diff --git a/constraint/go.mod b/constraint/go.mod
index 6727ea098..0b3d66733 100644
--- a/constraint/go.mod
+++ b/constraint/go.mod
@@ -5,37 +5,29 @@ go 1.16
require (
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
github.com/davecgh/go-spew v1.1.1
- github.com/go-openapi/spec v0.20.3 // indirect
- github.com/go-openapi/swag v0.19.15 // indirect
- github.com/golang/glog v0.0.0-20210429001901-424d2337a529
+ github.com/go-openapi/spec v0.20.4 // indirect
+ github.com/golang/glog v1.0.0
github.com/google/go-cmp v0.5.6
github.com/google/gofuzz v1.2.0 // indirect
- github.com/imdario/mergo v0.3.12 // indirect
- github.com/json-iterator/go v1.1.11 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
- github.com/mitchellh/mapstructure v1.4.1 // indirect
- github.com/onsi/gomega v1.10.5
- github.com/open-policy-agent/opa v0.29.4
- github.com/pkg/errors v0.9.1 // indirect
- github.com/prometheus/client_golang v1.10.0 // indirect
- github.com/prometheus/common v0.25.0 // indirect
+ github.com/onsi/gomega v1.13.0
+ github.com/open-policy-agent/opa v0.35.0
+ github.com/prometheus/common v0.32.1 // indirect
+ github.com/prometheus/procfs v0.7.3 // indirect
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
- github.com/spf13/cobra v1.1.3
+ github.com/spf13/cobra v1.2.1
github.com/spf13/pflag v1.0.5
- golang.org/x/net v0.0.0-20210525063256-abc453219eb5
- golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c // indirect
- golang.org/x/sys v0.0.0-20210601080250-7ecdf8ef093b // indirect
+ golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c
+ golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 // indirect
golang.org/x/term v0.0.0-20210503060354-a79de5458b56 // indirect
- google.golang.org/appengine v1.6.7 // indirect
- google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // indirect
- k8s.io/apiextensions-apiserver v0.20.2
- k8s.io/apimachinery v0.20.2
- k8s.io/client-go v0.20.2
+ golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 // indirect
+ k8s.io/apiextensions-apiserver v0.21.2
+ k8s.io/apimachinery v0.21.2
+ k8s.io/client-go v0.21.2
k8s.io/klog/v2 v2.9.0 // indirect
- k8s.io/kube-openapi v0.0.0-20210527164424-3c818078ee3d // indirect
- k8s.io/utils v0.0.0-20210527160623-6fdb442a123b // indirect
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.19 // indirect
- sigs.k8s.io/controller-runtime v0.8.3
- sigs.k8s.io/structured-merge-diff/v4 v4.1.1 // indirect
- sigs.k8s.io/yaml v1.2.0
+ k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect
+ k8s.io/utils v0.0.0-20210802155522-efc7438f0176
+ sigs.k8s.io/controller-runtime v0.9.2
+ sigs.k8s.io/structured-merge-diff/v4 v4.2.0 // indirect
+ sigs.k8s.io/yaml v1.3.0
)
diff --git a/constraint/go.sum b/constraint/go.sum
index c4e9c135a..4f4a35ac5 100644
--- a/constraint/go.sum
+++ b/constraint/go.sum
@@ -1,5 +1,3 @@
-4d63.com/gochecknoglobals v0.0.0-20201008074935-acfc0b28355a/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo=
-bitbucket.org/creachadair/shell v0.0.6/go.mod h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
@@ -13,9 +11,13 @@ cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6
cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
-cloud.google.com/go v0.60.0/go.mod h1:yw2G51M9IfRboUH61Us8GqCeF1PzPblB823Mn2q2eAU=
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
+cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
+cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
+cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
+cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
+cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
@@ -29,105 +31,69 @@ cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2k
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
-cloud.google.com/go/pubsub v1.5.0/go.mod h1:ZEwJccE3z93Z2HWvstpri00jOg7oO4UZDtKhwDwqF0w=
-cloud.google.com/go/spanner v1.7.0/go.mod h1:sd3K2gZ9Fd0vMPLXzeCrF6fq4i63Q7aTLW/lBIfBkIk=
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
-contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
-github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
-github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg=
+github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw=
github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A=
github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
-github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs=
-github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
-github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
-github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
-github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
-github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
-github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
+github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8=
github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
-github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM=
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
-github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
-github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
-github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g=
-github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE=
-github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
-github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
-github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
-github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
-github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
-github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ=
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
-github.com/ashanbrown/forbidigo v1.1.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI=
-github.com/ashanbrown/makezero v0.0.0-20210308000810-4155955488a0/go.mod h1:oG9Dnez7/ESBqc4EdrdNlryeo7d0KcW1ftXHm7nU/UU=
-github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU=
-github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
-github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
-github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
-github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
-github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
-github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI=
+github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
-github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc=
-github.com/bytecodealliance/wasmtime-go v0.27.0 h1:b/mvyw1YJSwF5zNxqLH9V24ENkZGAvp+KgIKHOFHk1c=
-github.com/bytecodealliance/wasmtime-go v0.27.0/go.mod h1:q320gUxqyI8yB+ZqRuaJOEnGkAnHh6WtJjMaT2CW4wI=
-github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
-github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
+github.com/bytecodealliance/wasmtime-go v0.31.0 h1:AbMdV1pwjw/0Ito5yARcGzY366cq5NIiDk5vpy1c2Lw=
+github.com/bytecodealliance/wasmtime-go v0.31.0/go.mod h1:q320gUxqyI8yB+ZqRuaJOEnGkAnHh6WtJjMaT2CW4wI=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/charithe/durationcheck v0.0.6/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg=
-github.com/chavacava/garif v0.0.0-20210405163807-87a70f3d418b/go.mod h1:Qjyv4H3//PWVzTeCezG2b9IRn6myJxJSr4TD/xo6ojU=
+github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
+github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
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/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
-github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
@@ -137,124 +103,99 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
-github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/daixiang0/gci v0.2.8/go.mod h1:+4dZ7TISfSmqfAGv59ePaHfNzgGtIkHAhhdKggP1JAc=
-github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/denis-tingajkin/go-header v0.4.2/go.mod h1:eLRHAVXzE5atsKAnNRDB90WHCFFnBUn4RN0nRcs1LJA=
+github.com/dgraph-io/badger/v3 v3.2103.2 h1:dpyM5eCJAtQCBcMCZcT4UBZchuTJgCywerHHgmxfxM8=
+github.com/dgraph-io/badger/v3 v3.2103.2/go.mod h1:RHo4/GmYcKKh5Lxu63wLEMHJ70Pac2JqZRYGhlyAo2M=
+github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI=
+github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
+github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
-github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
+github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
-github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
-github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
-github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
-github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
+github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
+github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/esimonov/ifshort v1.0.2/go.mod h1:yZqNJUrNn20K8Q9n2CrjTKYyVEmX209Hgu+M1LBpeZE=
-github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY=
-github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses=
+github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ=
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs=
+github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
-github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
-github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
-github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
-github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4=
-github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20=
+github.com/foxcpp/go-mockdns v0.0.0-20210729171921-fb145fc6f897 h1:E52jfcE64UG42SwLmrW0QByONfGynWuzBvm86BoB9z8=
+github.com/foxcpp/go-mockdns v0.0.0-20210729171921-fb145fc6f897/go.mod h1:lgRN6+KxQBawyIghpnl5CezHFGS9VLzvtVlwxvzXTQ4=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM=
-github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E=
-github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
+github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
+github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/go-critic/go-critic v0.5.6/go.mod h1:cVjj0DfqewQVIlIAGexPCaGaZDAqGE29PYDDADIVNEo=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o=
+github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
-github.com/go-logr/logr v0.3.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
-github.com/go-logr/zapr v0.2.0 h1:v6Ji8yBW77pva6NkJKQdHLAJKrIJKRHz0RXwPqCHSR4=
-github.com/go-logr/zapr v0.2.0/go.mod h1:qhKdvif7YF5GI9NWEpyxTSSBdGmzkNguibrdCNVPunU=
-github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM=
+github.com/go-logr/zapr v0.4.0 h1:uc1uML3hRYL9/ZZPdgHS/n8Nzo+eaYL/Efxkkamf7OM=
+github.com/go-logr/zapr v0.4.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk=
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
-github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=
-github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
+github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs=
+github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns=
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
-github.com/go-openapi/spec v0.20.3 h1:uH9RQ6vdyPSs2pSy9fL8QPspDF2AMIMPtmK5coSSjtQ=
-github.com/go-openapi/spec v0.20.3/go.mod h1:gG4F8wdEDN+YPBMVnzE85Rbhf+Th2DTvA9nFPQ5AYEg=
+github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
+github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M=
+github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM=
github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
-github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
-github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
-github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4=
-github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ=
-github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY=
-github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw=
-github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU=
-github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI=
-github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc=
-github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8=
-github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU=
-github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU=
-github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
+github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
-github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
-github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
+github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
-github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
-github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
-github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
+github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/glog v0.0.0-20210429001901-424d2337a529 h1:2voWjNECnrZRbfwXxHB1/j8wa6xdKn85B5NzgVL/pTU=
-github.com/golang/glog v0.0.0-20210429001901-424d2337a529/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=
+github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -268,7 +209,7 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
-github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -284,23 +225,16 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4=
-github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
-github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8=
-github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU=
-github.com/golangci/golangci-lint v1.40.1/go.mod h1:OyFTr1muxaWeGTcHQcL3B7C4rETnDphTKYenZDgH2/g=
-github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg=
-github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o=
-github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA=
-github.com/golangci/revgrep v0.0.0-20210208091834-cd28932614b5/go.mod h1:LK+zW4MpyytAWQRz0M4xnzEk50lSvqDQKfx304apFkY=
-github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ=
+github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
+github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg=
-github.com/google/certificate-transparency-go v1.1.1/go.mod h1:FDKqPvSXawb2ecErVRrD+nfy23RCzyl7eqVCEmlT1Zs=
+github.com/google/flatbuffers v1.12.1 h1:MVlul7pQNoDzWRLTw5imwYsl+usrS1TXG2H4jg6ImGw=
+github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -309,6 +243,7 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
@@ -319,17 +254,19 @@ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
+github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
-github.com/google/pprof v0.0.0-20200507031123-427632fa3b1c/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw=
-github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
@@ -337,53 +274,32 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
-github.com/googleapis/gnostic v0.5.1 h1:A8Yhf6EtqTv9RMsU6MQTyrtV1TjWlR6xU9BsZIwuTCM=
github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU=
-github.com/gookit/color v1.3.8/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ=
+github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw=
+github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU=
-github.com/gordonklaus/ineffassign v0.0.0-20210225214923-2e10b2664254/go.mod h1:M9mZEtGIsR1oDaZagNPNG9iq9n2HrhZ17dsXk73V3Lw=
-github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA=
-github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
-github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
-github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
-github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE=
-github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE=
-github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw=
-github.com/gostaticanalysis/analysisutil v0.4.1/go.mod h1:18U/DLpRgIUd459wGxVHE0fRgmo1UgHDcbw7F5idXu0=
-github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI=
-github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado=
-github.com/gostaticanalysis/forcetypeassert v0.0.0-20200621232751-01d4955beaa5/go.mod h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak=
-github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A=
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
-github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
-github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
-github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c=
+github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
-github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE=
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
-github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
-github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
@@ -395,55 +311,37 @@ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0m
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
-github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
-github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg=
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
-github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
-github.com/jgautheron/goconst v1.4.0/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4=
-github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4=
-github.com/jingyugao/rowserrcheck v0.0.0-20210315055705-d907ca737bb1/go.mod h1:TOQpc2SLx6huPfoFGK3UOnEG+u02D3C1GeosjupAKCA=
-github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0=
-github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
-github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
-github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
-github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
+github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
-github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ=
github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
-github.com/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
-github.com/julz/importas v0.0.0-20210419104244-841f0c0fe66d/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0=
-github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
-github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
-github.com/kisielk/errcheck v1.6.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
-github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
+github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
+github.com/klauspost/compress v1.13.5 h1:9O69jUPDcsT9fEm74W92rZL9FQY7rCdaXVneq+yyzl4=
+github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
@@ -452,60 +350,30 @@ github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/kulti/thelper v0.4.0/go.mod h1:vMu2Cizjy/grP+jmsvOFDx1kYP6+PD1lqg4Yu5exl2U=
-github.com/kunwardeep/paralleltest v1.0.2/go.mod h1:ZPqNm1fVHPllh5LPVujzbVz1JN2GhLxSfY+oqUsvG30=
-github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
-github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg=
-github.com/ldez/gomoddirectives v0.2.1/go.mod h1:sGicqkRgBOg//JfpXwkB9Hj0X5RyJ7mlACM5B9f6Me4=
-github.com/ldez/tagliatelle v0.2.0/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88=
-github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJiIbETBPTl9ATXQag=
-github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
-github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
-github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
-github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
-github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
-github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
-github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
+github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/maratori/testpackage v1.0.1/go.mod h1:ddKdw+XG0Phzhx8BFDTKgpWP4i7MpApTE5fXSKAqwDU=
-github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
-github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
-github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84=
-github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
-github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
-github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
-github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
-github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
-github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc=
-github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg=
-github.com/mgechev/revive v1.0.6/go.mod h1:Lj5gIVxjBlH8REa3icEOkdfchwYc291nShzZ4QYWyMo=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
-github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
-github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
+github.com/miekg/dns v1.1.25/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
+github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg=
+github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
-github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg=
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
@@ -513,167 +381,94 @@ github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:F
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
-github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
-github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo=
+github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
+github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
-github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k=
-github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8=
-github.com/mozilla/tls-observatory v0.0.0-20210209181001-cf43108d6880/go.mod h1:FUqVoUPHSEdDR0MnFM3Dh8AU0pZHLXUD127SAJGER/s=
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007/go.mod h1:m2XC9Qq0AlmmVksL6FktJCdTYyLk7V3fKyp0sl1yWQo=
-github.com/mwitkow/go-proto-validators v0.2.0/go.mod h1:ZfA1hW+UH/2ZHOWvQ3HnQaU0DtnpXu850MZiy+YUgcc=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
-github.com/nakabonne/nestif v0.3.0/go.mod h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c=
-github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
-github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
-github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k=
-github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w=
-github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
-github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w=
-github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
-github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
-github.com/nishanths/exhaustive v0.1.0/go.mod h1:S1j9110vxV1ECdCudXRkeMnFQ/DQk9ajLT0Uf2MYZQQ=
-github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62PewwiQTlm/7Rj+cxVYqZvDIUc+JjZq6GHAC1fsObQ=
-github.com/nishanths/predeclared v0.2.1/go.mod h1:HvkGJcA3naj4lOwnFXFDkFxVtSqQMB9sbB1usJ+xjQE=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
-github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs=
-github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
-github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
-github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
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/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
-github.com/onsi/ginkgo v1.15.0 h1:1V1NfVQR87RtWAgp1lv9JZJ5Jap+XFGKPi00andXGi4=
-github.com/onsi/ginkgo v1.15.0/go.mod h1:hF8qUzuuC8DJGygJH3726JnCZX4MYbRB8yFfISqnKUg=
+github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E=
+github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
+github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
-github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ=
-github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48=
-github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
-github.com/open-policy-agent/opa v0.29.4 h1:rNa/Gd3Fs0xWgL0aZoyblRwCZLJsSLDQOhnck6DWpaA=
-github.com/open-policy-agent/opa v0.29.4/go.mod h1:ZCOTD3yyFR8JvF8ETdWdiSPn9WcF1dXeQWOv7VoPorU=
-github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis=
-github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74=
-github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA=
-github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
-github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
-github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
-github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
+github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak=
+github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
+github.com/open-policy-agent/opa v0.35.0 h1:wsXkq/3JJucRUN4h46pn9Zv6cC6fnHWrVxjgoykxM7o=
+github.com/open-policy-agent/opa v0.35.0/go.mod h1:xEmekKlk6/c+so5HF9wtPnGPXDfBuBsrMGhSHOHEF+U=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
-github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
-github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
+github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/peterh/liner v0.0.0-20170211195444-bf27d3ba8e1d/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
-github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw=
-github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
-github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
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/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA=
-github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
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/polyfloyd/go-errorlint v0.0.0-20210418123303-74da32850375/go.mod h1:wi9BfjxjF/bwiZ701TzmfKu6UKC357IOAtNr0Td0Lvw=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.10.0 h1:/o0BDeWzLWXNZ+4q5gXltUvaMpJqckTa+jTNoB+z4cg=
-github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU=
+github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ=
+github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
-github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
-github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
-github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
-github.com/prometheus/common v0.25.0 h1:IjJYZJCI8HZYtqA3xYwGyDzSCy1r4CA2GRh+4vdOmtE=
-github.com/prometheus/common v0.25.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q=
+github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
+github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
+github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
+github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4=
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
+github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
-github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA=
-github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q=
-github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI=
-github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30=
-github.com/quasilyte/go-ruleguard v0.3.4/go.mod h1:57FZgMnoo6jqxkYKmVj5Fc8vOt0rVzoE/UNAmFFIPqA=
-github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=
-github.com/quasilyte/go-ruleguard/dsl v0.3.2/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=
-github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc=
-github.com/quasilyte/go-ruleguard/rules v0.0.0-20210203162857-b223e0831f88/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50=
-github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0=
-github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
-github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/ryancurrah/gomodguard v1.2.0/go.mod h1:rNqbC4TOIdUDcVMSIpNNAzTbzXAZa6W5lnUepvuMMgQ=
-github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
-github.com/sanposhiho/wastedassign v1.0.0/go.mod h1:LGpq5Hsv74QaqM47WtIsRSF/ik9kqk07kchgv66tLVE=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
-github.com/securego/gosec/v2 v2.7.0/go.mod h1:xNbGArrGUspJLuz3LS5XCY1EBW/0vABAl/LWfSklmiM=
-github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
-github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs=
-github.com/shirou/gopsutil/v3 v3.21.4/go.mod h1:ghfMypLDrFSWN2c9cDYFLHyynQ+QUht0cv/18ZqVczw=
-github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
-github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
@@ -683,20 +478,21 @@ github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI=
-github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
-github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
-github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc=
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
+github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY=
+github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
-github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M=
-github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo=
+github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=
+github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
+github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
@@ -704,17 +500,11 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
-github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
-github.com/ssgreg/nlreturn/v2 v2.1.0/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I=
+github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns=
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
-github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
-github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
-github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
-github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
@@ -723,28 +513,10 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
-github.com/tdakkota/asciicheck v0.0.0-20200416200610-e657995f937b/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM=
-github.com/tetafro/godot v1.4.6/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8=
-github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
-github.com/tklauser/go-sysconf v0.3.4/go.mod h1:Cl2c8ZRWfHD5IrfHo9VN+FX9kCFjIOyVklgXycLB6ek=
-github.com/tklauser/numcpus v0.2.1/go.mod h1:9aU+wOc6WjUIZEwWMP62PL/41d65P+iks1gBkr4QyP8=
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/tomarrell/wrapcheck/v2 v2.1.0/go.mod h1:crK5eI4RGSUrb9duDTQ5GqcukbKZvi85vX6nbhsBAeI=
-github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4=
-github.com/tommy-muehle/go-mnd/v2 v2.3.2/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw=
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
-github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA=
-github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
-github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
-github.com/uudashr/gocognit v1.0.1/go.mod h1:j44Ayx2KW4+oB6SWMv8KsmHzZrOInQav7D3cQMJ5JUM=
-github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/valyala/fasthttp v1.16.0/go.mod h1:YOKImeEosDdBPnxc0gy7INqi3m1zK6A+xl6TwOBhHCA=
-github.com/valyala/quicktemplate v1.6.3/go.mod h1:fwPzK2fHuYEODzJ9pkw0ipCPNHZ2tD5KW4lOuSdPKzY=
-github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
-github.com/viki-org/dnscache v0.0.0-20130720023526-c70c1f23c5d8/go.mod h1:dniwbG03GafCjFohMDmz6Zc6oCuiqgH6tGNyXTkHzXE=
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo=
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
@@ -753,10 +525,6 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/yashtewari/glob-intersection v0.0.0-20180916065949-5c77d914dd0b h1:vVRagRXf67ESqAb72hG2C/ZwI8NtJF2u2V76EsuOHGY=
github.com/yashtewari/glob-intersection v0.0.0-20180916065949-5c77d914dd0b/go.mod h1:HptNXiXVDcJjXe9SqMd0v2FsL9f8dz4GnXgltU6q/co=
-github.com/yeya24/promlinter v0.1.0/go.mod h1:rs5vtZzeBHqqMwXqFScncpCF6u06lezhZepno9AB1Oc=
-github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg=
-github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM=
-github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -764,38 +532,31 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
-go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
-go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
-go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k=
go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg=
-go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403/go.mod h1:jHoPAGnDrCy6kaI2tAze5Prf0Nr0w/oNkROt2lw3n3o=
-go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
-go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
+go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
+go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
+go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
+go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
+go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk=
-go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
+go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/automaxprocs v1.4.0/go.mod h1:/mTEdr7LvHhs0v7mjdxDreTz1OG5zdZGqgOnhWiR/+Q=
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
-go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
-go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A=
-go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.8.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
+go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
-go.uber.org/zap v1.15.0 h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM=
-go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
-golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U=
+go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -803,12 +564,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
-golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g=
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -820,7 +580,6 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
-golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -833,6 +592,7 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
@@ -842,6 +602,7 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB
golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -853,7 +614,6 @@ golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73r
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@@ -867,7 +627,6 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -875,36 +634,47 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210525063256-abc453219eb5 h1:wjuX4b5yYQnEQHzd+CBcrcC6OVR2J1CN6mUy0oSxIPo=
+golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
+golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211111083644-e5c967477495/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c h1:WtYZ93XtWSO5KlOMgPZu7hXY9WhMZpprvlm5VwvAl8c=
+golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -919,10 +689,8 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -934,18 +702,16 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -953,32 +719,41 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210217105451-b926d437f341/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210601080250-7ecdf8ef093b h1:qh4f65QIVFjq9eBURLEYWqaEXmOyqdUyiBSgaXWccWk=
-golang.org/x/sys v0.0.0-20210601080250-7ecdf8ef093b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211124211545-fe61309f8881 h1:TyHqChC80pFkXWraUUf6RuB5IqFdQieMLwwCJokV2pc=
+golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210503060354-a79de5458b56 h1:b8jxX3zqjpqb2LklXPzKSGJhzyxCOZSz8ncv8Nv+y7w=
golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -988,31 +763,24 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE=
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20210611083556-38a9dc6acbc6/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11 h1:GZokNIeuVkl3aZHJchRrr13WCsols02MLUcz1U9is6M=
+golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
@@ -1023,13 +791,9 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw
golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -1037,12 +801,9 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
@@ -1052,59 +813,37 @@ golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapK
golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
-golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
-golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
-golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200426102838-f3a5411a4c3b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200630154851-b2d8b0336632/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20200706234117-b22de6825cf7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
-golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
-golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
-golang.org/x/tools v0.0.0-20201011145850-ed2f50202694/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU=
-golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20201028025901-8cd080b735b3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20201114224030-61ea331ec02b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20201118003311-bd56c0adb394/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
+golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20210101214203-2dba1e4ea05c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20210104081019-d8d6ddbec6ee/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
-golang.org/x/tools v0.1.2-0.20210512205948-8287d5da45e4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
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/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gomodules.xyz/jsonpatch/v2 v2.1.0 h1:Phva6wqu+xR//Njw6iorylFFgn/z547tw5Ne3HZPQ+k=
-gomodules.xyz/jsonpatch/v2 v2.1.0/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3mwe7XcUU=
-google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
+gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY=
+gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
-google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
@@ -1117,28 +856,28 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
+google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
+google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
+google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
+google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
+google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
+google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
-google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20181107211654-5fc9ac540362/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
-google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
@@ -1152,40 +891,48 @@ google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfG
google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
-google.golang.org/genproto v0.0.0-20200626011028-ee7919e894b5/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20200707001353-8e8330bf89df/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c h1:wtujag7C+4D6KMoulW9YauvK2lgdvCMS260jsqqBXr0=
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
-google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
-google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
-google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
+google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
+google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
+google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0=
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
@@ -1199,8 +946,9 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
+google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
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=
@@ -1208,36 +956,33 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
-gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
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=
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.6/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
-honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
@@ -1245,57 +990,46 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-honnef.co/go/tools v0.1.4/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
-k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo=
-k8s.io/api v0.20.2 h1:y/HR22XDZY3pniu9hIFDLpUCPq2w5eQ6aV/VFQ7uJMw=
-k8s.io/api v0.20.2/go.mod h1:d7n6Ehyzx+S+cE3VhTGfVNNqtGc/oL9DCdYYahlurV8=
-k8s.io/apiextensions-apiserver v0.20.1/go.mod h1:ntnrZV+6a3dB504qwC5PN/Yg9PBiDNt1EVqbW2kORVk=
-k8s.io/apiextensions-apiserver v0.20.2 h1:rfrMWQ87lhd8EzQWRnbQ4gXrniL/yTRBgYH1x1+BLlo=
-k8s.io/apiextensions-apiserver v0.20.2/go.mod h1:F6TXp389Xntt+LUq3vw6HFOLttPa0V8821ogLGwb6Zs=
-k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
-k8s.io/apimachinery v0.20.2 h1:hFx6Sbt1oG0n6DZ+g4bFt5f6BoMkOjKWsQFu077M3Vg=
-k8s.io/apimachinery v0.20.2/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
-k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU=
-k8s.io/apiserver v0.20.2 h1:lGno2t3gcZnLtzsKH4oG0xA9/4GTiBzMO1DGp+K+Bak=
-k8s.io/apiserver v0.20.2/go.mod h1:2nKd93WyMhZx4Hp3RfgH2K5PhwyTrprrkWYnI7id7jA=
-k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y=
-k8s.io/client-go v0.20.2 h1:uuf+iIAbfnCSw8IGAv/Rg0giM+2bOzHLOsbbrwrdhNQ=
-k8s.io/client-go v0.20.2/go.mod h1:kH5brqWqp7HDxUFKoEgiI4v8G1xzbe9giaCenUWJzgE=
-k8s.io/code-generator v0.20.1/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg=
-k8s.io/code-generator v0.20.2/go.mod h1:UsqdF+VX4PU2g46NC2JRs4gc+IfrctnwHb76RNbWHJg=
-k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk=
-k8s.io/component-base v0.20.2 h1:LMmu5I0pLtwjpp5009KLuMGFqSc2S2isGw8t1hpYKLE=
-k8s.io/component-base v0.20.2/go.mod h1:pzFtCiwe/ASD0iV7ySMu8SYVJjCapNM9bjvk7ptpKh0=
+k8s.io/api v0.21.2 h1:vz7DqmRsXTCSa6pNxXwQ1IYeAZgdIsua+DZU+o+SX3Y=
+k8s.io/api v0.21.2/go.mod h1:Lv6UGJZ1rlMI1qusN8ruAp9PUBFyBwpEHAdG24vIsiU=
+k8s.io/apiextensions-apiserver v0.21.2 h1:+exKMRep4pDrphEafRvpEi79wTnCFMqKf8LBtlA3yrE=
+k8s.io/apiextensions-apiserver v0.21.2/go.mod h1:+Axoz5/l3AYpGLlhJDfcVQzCerVYq3K3CvDMvw6X1RA=
+k8s.io/apimachinery v0.21.2 h1:vezUc/BHqWlQDnZ+XkrpXSmnANSLbpnlpwo0Lhk0gpc=
+k8s.io/apimachinery v0.21.2/go.mod h1:CdTY8fU/BlvAbJ2z/8kBwimGki5Zp8/fbVuLY8gJumM=
+k8s.io/apiserver v0.21.2 h1:vfGLD8biFXHzbcIEXyW3652lDwkV8tZEFJAaS2iuJlw=
+k8s.io/apiserver v0.21.2/go.mod h1:lN4yBoGyiNT7SC1dmNk0ue6a5Wi6O3SWOIw91TsucQw=
+k8s.io/client-go v0.21.2 h1:Q1j4L/iMN4pTw6Y4DWppBoUxgKO8LbffEMVEV00MUp0=
+k8s.io/client-go v0.21.2/go.mod h1:HdJ9iknWpbl3vMGtib6T2PyI/VYxiZfq936WNVHBRrA=
+k8s.io/code-generator v0.21.2/go.mod h1:8mXJDCB7HcRo1xiEQstcguZkbxZaqeUOrO9SsicWs3U=
+k8s.io/component-base v0.21.2 h1:EsnmFFoJ86cEywC0DoIkAUiEV6fjgauNugiw1lmIjs4=
+k8s.io/component-base v0.21.2/go.mod h1:9lvmIThzdlrJj5Hp8Z/TOgIkdfsNARQ1pT+3PByuiuc=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
-k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
+k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
+k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
-k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
+k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM=
k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
-k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM=
-k8s.io/kube-openapi v0.0.0-20210527164424-3c818078ee3d h1:lUK8GPtuJy8ClWZhuvKoaLdKGPLq9H1PxWp7VPBZBkU=
-k8s.io/kube-openapi v0.0.0-20210527164424-3c818078ee3d/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
+k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE=
+k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 h1:E3J9oCLlaobFUqsjG9DfKbP2BmgwBL2p7pn0A3dG9W4=
+k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk=
k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20210111153108-fddb29f9d009/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-k8s.io/utils v0.0.0-20210527160623-6fdb442a123b h1:MSqsVQ3pZvPGTqCjptfimO2WjG7A9un2zcpiHkA6M/s=
k8s.io/utils v0.0.0-20210527160623-6fdb442a123b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
-mvdan.cc/gofumpt v0.1.1/go.mod h1:yXG1r1WqZVKWbVRtBWKWX9+CxGYfA51nSomhM0woR48=
-mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc=
-mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
-mvdan.cc/unparam v0.0.0-20210104141923-aac4ce9116a7/go.mod h1:hBpJkZE8H/sb+VRFvw2+rBpHNsTBcvSpk61hr8mzXZE=
+k8s.io/utils v0.0.0-20210802155522-efc7438f0176 h1:Mx0aa+SUAcNRQbs5jUzV8lkDlGFU8laZsY9jrcVX5SY=
+k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.19 h1:0jaDAAxtqIrrqas4vtTqxct4xS5kHfRNycTRLTyJmVM=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.19/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
-sigs.k8s.io/controller-runtime v0.8.3 h1:GMHvzjTmaWHQB8HadW+dIvBoJuLvZObYJ5YoZruPRao=
-sigs.k8s.io/controller-runtime v0.8.3/go.mod h1:U/l+DUopBc1ecfRZ5aviA9JDmGFQKvLf5YkZNx2e0sU=
+sigs.k8s.io/controller-runtime v0.9.2 h1:MnCAsopQno6+hI9SgJHKddzXpmv2wtouZz6931Eax+Q=
+sigs.k8s.io/controller-runtime v0.9.2/go.mod h1:TxzMCHyEUpaeuOiZx/bIdc2T81vfs/aKdvJt9wuu0zk=
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.1.1 h1:nYqY2A6oy37sKLYuSBXuQhbj4JVclzJK13BOIvJG5XU=
-sigs.k8s.io/structured-merge-diff/v4 v4.1.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
+sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
+sigs.k8s.io/structured-merge-diff/v4 v4.2.0 h1:kDvPBbnPk+qYmkHmSo8vKGp438IASWofnbbUKDE/bv0=
+sigs.k8s.io/structured-merge-diff/v4 v4.2.0/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4=
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
-sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
-sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU=
+sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
+sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/BUILD.bazel b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/BUILD.bazel
deleted file mode 100644
index 12d32c8f9..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/BUILD.bazel
+++ /dev/null
@@ -1,101 +0,0 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
-
-cc_library(
- name = "wasmtime",
- srcs = select({
- "@io_bazel_rules_go//go/platform:darwin_amd64": ["build/macos-x86_64/libwasmtime.a"],
- "@io_bazel_rules_go//go/platform:linux_amd64": ["build/linux-x86_64/libwasmtime.a"],
- "@io_bazel_rules_go//go/platform:windows_amd64": ["build/windows-x86_64/libwasmtime.a"],
- }),
- hdrs = glob(["build/include/*.h"]),
- includes = ["build/include"],
- visibility = ["//visibility:public"],
-)
-
-go_library(
- name = "go_default_library",
- srcs = [
- "config.go",
- "doc.go",
- "engine.go",
- "error.go",
- "exporttype.go",
- "extern.go",
- "externtype.go",
- "ffi.go",
- "freelist.go",
- "func.go",
- "functype.go",
- "global.go",
- "globaltype.go",
- "importtype.go",
- "instance.go",
- "instancetype.go",
- "limits.go",
- "linker.go",
- "maybe_gc_no.go",
- "memory.go",
- "memorytype.go",
- "module.go",
- "moduletype.go",
- "shims.c",
- "shims.h",
- "slab.go",
- "store.go",
- "table.go",
- "tabletype.go",
- "trap.go",
- "val.go",
- "valtype.go",
- "wasi.go",
- "wat2wasm.go",
- ],
- cdeps = [":wasmtime"], # add wasmtime dep
- cgo = True,
- clinkopts = select({
- "@io_bazel_rules_go//go/platform:windows": [
- "-luserenv -lole32 -lntdll -lws2_32 -lkernel32 -lbcrypt",
- ],
- "//conditions:default": ["-lm -ldl"],
- }),
- copts = [
- "-Ibuild/include",
- ] + select({
- "@io_bazel_rules_go//go/platform:windows": [
- "-DWASM_API_EXTERN= -DWASI_API_EXTERN=",
- ],
- "//conditions:default": [],
- }),
- importpath = "github.com/bytecodealliance/wasmtime-go",
- visibility = ["//visibility:public"],
-)
-
-go_test(
- name = "go_default_test",
- srcs = [
- "config_test.go",
- "doc_test.go",
- "engine_test.go",
- "exporttype_test.go",
- "func_test.go",
- "functype_test.go",
- "global_test.go",
- "globaltype_test.go",
- "importtype_test.go",
- "instance_test.go",
- "linker_test.go",
- "memorytype_test.go",
- "module_linking_test.go",
- "module_test.go",
- "reftypes_test.go",
- "slab_test.go",
- "store_test.go",
- "table_test.go",
- "tabletype_test.go",
- "trap_test.go",
- "valtype_test.go",
- "wasi_test.go",
- "wasm2wat_test.go",
- ],
- embed = [":go_default_library"],
-)
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/LICENSE b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/LICENSE
deleted file mode 100644
index f9d81955f..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/LICENSE
+++ /dev/null
@@ -1,220 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
---- LLVM Exceptions to the Apache 2.0 License ----
-
-As an exception, if, as a result of your compiling your source code, portions
-of this Software are embedded into an Object form of such source code, you
-may redistribute such embedded portions in such Object form without complying
-with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
-
-In addition, if you combine or link compiled forms of this Software with
-software that is licensed under the GPLv2 ("Combined Software") and if a
-court of competent jurisdiction determines that the patent provision (Section
-3), the indemnity provision (Section 9) or other Section of the License
-conflicts with the conditions of the GPLv2, you may retroactively and
-prospectively choose to deem waived or otherwise exclude such Section(s) of
-the License, but only in their entirety and only with respect to the Combined
-Software.
-
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/README.md b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/README.md
deleted file mode 100644
index f008cf637..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/README.md
+++ /dev/null
@@ -1,153 +0,0 @@
-
-
-## Installation
-
-```sh
-go get -u github.com/bytecodealliance/wasmtime-go@v0.27.0
-```
-
-Be sure to check out the [API documentation][api]!
-
-This Go library uses CGO to consume the C API of the [Wasmtime
-project][wasmtime] which is written in Rust. Precompiled binaries of Wasmtime
-are checked into this repository on tagged releases so you won't have to install
-Wasmtime locally, but it means that this project only works on Linux x86\_64,
-macOS x86\_64 , and Windows x86\_64 currently. Building on other platforms will
-need to arrange to build Wasmtime and use `CGO_*` env vars to compile correctly.
-
-This project has been tested with Go 1.13 or later. It is not recommended to
-use Go 1.14 earlier than Go 1.14.11 on macOS due to a [bug in the Go runtime][bug].
-
-[api]: https://pkg.go.dev/github.com/bytecodealliance/wasmtime-go
-[wasmtime]: https://github.com/bytecodealliance/wasmtime
-[bug]: https://github.com/golang/go/issues/39079
-
-
-If you are a bazel user, add following to your WORKSPACE file:
-
-```
-go_repository(
- name = "com_github_bytecodealliance_wasmtime_go",
- importpath = "github.com/bytecodealliance/wasmtime-go",
- version = "v0.27.0",
-)
-```
-
-## Usage
-
-A "Hello, world!" example of using this package looks like:
-
-```go
-package main
-
-import (
- "fmt"
- "github.com/bytecodealliance/wasmtime-go"
-)
-
-func main() {
- // Almost all operations in wasmtime require a contextual `store`
- // argument to share, so create that first
- store := wasmtime.NewStore(wasmtime.NewEngine())
-
- // Compiling modules requires WebAssembly binary input, but the wasmtime
- // package also supports converting the WebAssembly text format to the
- // binary format.
- wasm, err := wasmtime.Wat2Wasm(`
- (module
- (import "" "hello" (func $hello))
- (func (export "run")
- (call $hello))
- )
- `)
- check(err)
-
- // Once we have our binary `wasm` we can compile that into a `*Module`
- // which represents compiled JIT code.
- module, err := wasmtime.NewModule(store.Engine, wasm)
- check(err)
-
- // Our `hello.wat` file imports one item, so we create that function
- // here.
- item := wasmtime.WrapFunc(store, func() {
- fmt.Println("Hello from Go!")
- })
-
- // Next up we instantiate a module which is where we link in all our
- // imports. We've got one import so we pass that in here.
- instance, err := wasmtime.NewInstance(store,module, []*wasmtime.Extern{item.AsExtern()})
- check(err)
-
- // After we've instantiated we can lookup our `run` function and call
- // it.
- run := instance.GetExport("run").Func()
- _, err = run.Call()
- check(err)
-}
-
-func check(e error) {
- if e != nil {
- panic(e)
- }
-}
-```
-
-## Contributing
-
-So far this extension has been written by folks who are primarily Rust
-programmers, so it's highly likely that there's some faux pas in terms of Go
-idioms. Feel free to send a PR to help make things more idiomatic if you see
-something!
-
-To work on this extension locally you'll first want to clone the project:
-
-```sh
-$ git clone https://github.com/bytecodealliance/wasmtime-go
-```
-
-Next up you'll want to have a [local Wasmtime build
-available](https://bytecodealliance.github.io/wasmtime/contributing-building.html).
-
-You'll need to build at least the `wasmtime-c-api` crate, which, at the time of
-this writing, would be:
-
-```sh
-$ cargo build -p wasmtime-c-api
-```
-
-Once you've got that you can set up the environment of this library with:
-
-```sh
-$ ./ci/local.sh /path/to/wasmtime
-```
-
-This will create a `build` directory which has the compiled libraries and header
-files. Next up you can run normal commands such as:
-
-```sh
-$ go test
-```
-
-And after that you should be good to go!
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/WORKSPACE b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/WORKSPACE
deleted file mode 100644
index f2dcd75d1..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/WORKSPACE
+++ /dev/null
@@ -1,16 +0,0 @@
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-http_archive(
- name = "io_bazel_rules_go",
- sha256 = "7904dbecbaffd068651916dce77ff3437679f9d20e1a7956bff43826e7645fcc",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.25.1/rules_go-v0.25.1.tar.gz",
- "https://github.com/bazelbuild/rules_go/releases/download/v0.25.1/rules_go-v0.25.1.tar.gz",
- ],
-)
-
-load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
-
-go_rules_dependencies()
-
-go_register_toolchains(version = "1.16")
\ No newline at end of file
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/empty.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/empty.go
deleted file mode 100644
index 8e731cdfc..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/empty.go
+++ /dev/null
@@ -1 +0,0 @@
-package include
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/wasi.h b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/wasi.h
deleted file mode 100644
index 92271496c..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/wasi.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/**
- * \file wasi.h
- *
- * C API for WASI
- */
-
-#ifndef WASI_H
-#define WASI_H
-
-#include "wasm.h"
-
-#ifndef WASI_API_EXTERN
-#ifdef _WIN32
-#define WASI_API_EXTERN __declspec(dllimport)
-#else
-#define WASI_API_EXTERN
-#endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define own
-
-#define WASI_DECLARE_OWN(name) \
- typedef struct wasi_##name##_t wasi_##name##_t; \
- WASI_API_EXTERN void wasi_##name##_delete(own wasi_##name##_t*);
-
-/**
- * \typedef wasi_config_t
- * \brief Convenience alias for #wasi_config_t
- *
- * \struct wasi_config_t
- * \brief Opaque type used to create a #wasi_instance_t.
- *
- * \fn void wasi_config_delete(own wasi_config_t *);
- * \brief Deletes a configuration object.
- */
-WASI_DECLARE_OWN(config)
-
-/**
- * \brief Creates a new empty configuration object.
- *
- * The caller is expected to deallocate the returned configuration
- */
-WASI_API_EXTERN own wasi_config_t* wasi_config_new();
-
-/**
- * \brief Sets the argv list for this configuration object.
- *
- * By default WASI programs have an empty argv list, but this can be used to
- * explicitly specify what the argv list for the program is.
- *
- * The arguments are copied into the `config` object as part of this function
- * call, so the `argv` pointer only needs to stay alive for this function call.
- */
-WASI_API_EXTERN void wasi_config_set_argv(wasi_config_t* config, int argc, const char* argv[]);
-
-/**
- * \brief Indicates that the argv list should be inherited from this process's
- * argv list.
- */
-WASI_API_EXTERN void wasi_config_inherit_argv(wasi_config_t* config);
-
-/**
- * \brief Sets the list of environment variables available to the WASI instance.
- *
- * By default WASI programs have a blank environment, but this can be used to
- * define some environment variables for them.
- *
- * It is required that the `names` and `values` lists both have `envc` entries.
- *
- * The env vars are copied into the `config` object as part of this function
- * call, so the `names` and `values` pointers only need to stay alive for this
- * function call.
- */
-WASI_API_EXTERN void wasi_config_set_env(wasi_config_t* config, int envc, const char* names[], const char* values[]);
-
-/**
- * \brief Indicates that the entire environment of the calling process should be
- * inherited by this WASI configuration.
- */
-WASI_API_EXTERN void wasi_config_inherit_env(wasi_config_t* config);
-
-/**
- * \brief Configures standard input to be taken from the specified file.
- *
- * By default WASI programs have no stdin, but this configures the specified
- * file to be used as stdin for this configuration.
- *
- * If the stdin location does not exist or it cannot be opened for reading then
- * `false` is returned. Otherwise `true` is returned.
- */
-WASI_API_EXTERN bool wasi_config_set_stdin_file(wasi_config_t* config, const char* path);
-
-/**
- * \brief Configures this process's own stdin stream to be used as stdin for
- * this WASI configuration.
- */
-WASI_API_EXTERN void wasi_config_inherit_stdin(wasi_config_t* config);
-
-/**
- * \brief Configures standard output to be written to the specified file.
- *
- * By default WASI programs have no stdout, but this configures the specified
- * file to be used as stdout.
- *
- * If the stdout location could not be opened for writing then `false` is
- * returned. Otherwise `true` is returned.
- */
-WASI_API_EXTERN bool wasi_config_set_stdout_file(wasi_config_t* config, const char* path);
-
-/**
- * \brief Configures this process's own stdout stream to be used as stdout for
- * this WASI configuration.
- */
-WASI_API_EXTERN void wasi_config_inherit_stdout(wasi_config_t* config);
-
-/**
- * \brief Configures standard output to be written to the specified file.
- *
- * By default WASI programs have no stderr, but this configures the specified
- * file to be used as stderr.
- *
- * If the stderr location could not be opened for writing then `false` is
- * returned. Otherwise `true` is returned.
- */
-WASI_API_EXTERN bool wasi_config_set_stderr_file(wasi_config_t* config, const char* path);
-
-/**
- * \brief Configures this process's own stderr stream to be used as stderr for
- * this WASI configuration.
- */
-WASI_API_EXTERN void wasi_config_inherit_stderr(wasi_config_t* config);
-
-/**
- * \brief Configures a "preopened directory" to be available to WASI APIs.
- *
- * By default WASI programs do not have access to anything on the filesystem.
- * This API can be used to grant WASI programs access to a directory on the
- * filesystem, but only that directory (its whole contents but nothing above it).
- *
- * The `path` argument here is a path name on the host filesystem, and
- * `guest_path` is the name by which it will be known in wasm.
- */
-WASI_API_EXTERN bool wasi_config_preopen_dir(wasi_config_t* config, const char* path, const char* guest_path);
-
-/**
- * \typedef wasi_instance_t
- * \brief Convenience alias for #wasi_instance_t
- *
- * \struct wasi_instance_t
- * \brief Opaque type representing a WASI instance.
- *
- * \fn void wasi_instance_delete(own wasi_instance_t *);
- * \brief Deletes an instance object.
- */
-WASI_DECLARE_OWN(instance)
-
-/**
- * \brief Creates a new WASI instance from the specified configuration.
- *
- * \param store the store which functions will be attached to
- * \param name the WASI module name that is being instantiated, currently either
- * `wasi_unstable` or `wasi_snapshot_preview`.
- * \param config the configuration object which has settings for how WASI APIs
- * will behave.
- * \param trap a location, if `NULL` is returned, that contains information
- * about why instantiation failed.
- *
- * \return a #wasi_instance_t owned by the caller on success or `NULL` on
- * failure.
- *
- * Note that this function takes ownership of the `config` argument whether this
- * function succeeds or not. Ownership of the #wasi_instance_t and #wasm_trap_t
- * are transferred to the caller.
- *
- * With a #wasi_instance_t you'll likely call either
- * #wasmtime_linker_define_wasi or #wasi_instance_bind_import afterwards.
- */
-WASI_API_EXTERN own wasi_instance_t* wasi_instance_new(
- wasm_store_t* store,
- const char* name,
- own wasi_config_t* config,
- own wasm_trap_t** trap
-);
-
-/**
- * \brief Extracts a matching item for the given import from a #wasi_instance_t.
- *
- * \param instance the WASI instance an export is extracted from
- * \param import the desired import type that is being extracted, typically
- * acquired from #wasm_module_imports.
- *
- * \return a #wasm_extern_t which can be used to satisfy the `import`
- * requested, or `NULL` if the provided `instance` cannot satisfy `import`.
- *
- * This function does not take ownership of its arguments, and the lifetime of
- * the #wasm_extern_t is tied to the #wasi_instance_t argument.
- */
-WASI_API_EXTERN const wasm_extern_t* wasi_instance_bind_import(
- const wasi_instance_t* instance,
- const wasm_importtype_t* import
-);
-
-#undef own
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // #ifdef WASI_H
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/wasm.h b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/wasm.h
deleted file mode 100644
index 325e618b6..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/wasm.h
+++ /dev/null
@@ -1,723 +0,0 @@
-// WebAssembly C API
-
-#ifndef WASM_H
-#define WASM_H
-
-#include
-#include
-#include
-#include
-#include
-
-#ifndef WASM_API_EXTERN
-#ifdef _WIN32
-#define WASM_API_EXTERN __declspec(dllimport)
-#else
-#define WASM_API_EXTERN
-#endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-// Auxiliaries
-
-// Machine types
-
-inline void assertions(void) {
- static_assert(sizeof(float) == sizeof(uint32_t), "incompatible float type");
- static_assert(sizeof(double) == sizeof(uint64_t), "incompatible double type");
- static_assert(sizeof(intptr_t) == sizeof(uint32_t) ||
- sizeof(intptr_t) == sizeof(uint64_t),
- "incompatible pointer type");
-}
-
-typedef char byte_t;
-typedef float float32_t;
-typedef double float64_t;
-
-
-// Ownership
-
-#define own
-
-// The qualifier `own` is used to indicate ownership of data in this API.
-// It is intended to be interpreted similar to a `const` qualifier:
-//
-// - `own wasm_xxx_t*` owns the pointed-to data
-// - `own wasm_xxx_t` distributes to all fields of a struct or union `xxx`
-// - `own wasm_xxx_vec_t` owns the vector as well as its elements(!)
-// - an `own` function parameter passes ownership from caller to callee
-// - an `own` function result passes ownership from callee to caller
-// - an exception are `own` pointer parameters named `out`, which are copy-back
-// output parameters passing back ownership from callee to caller
-//
-// Own data is created by `wasm_xxx_new` functions and some others.
-// It must be released with the corresponding `wasm_xxx_delete` function.
-//
-// Deleting a reference does not necessarily delete the underlying object,
-// it merely indicates that this owner no longer uses it.
-//
-// For vectors, `const wasm_xxx_vec_t` is used informally to indicate that
-// neither the vector nor its elements should be modified.
-// TODO: introduce proper `wasm_xxx_const_vec_t`?
-
-
-#define WASM_DECLARE_OWN(name) \
- typedef struct wasm_##name##_t wasm_##name##_t; \
- \
- WASM_API_EXTERN void wasm_##name##_delete(own wasm_##name##_t*);
-
-
-// Vectors
-
-#define WASM_DECLARE_VEC(name, ptr_or_none) \
- typedef struct wasm_##name##_vec_t { \
- size_t size; \
- wasm_##name##_t ptr_or_none* data; \
- } wasm_##name##_vec_t; \
- \
- WASM_API_EXTERN void wasm_##name##_vec_new_empty(own wasm_##name##_vec_t* out); \
- WASM_API_EXTERN void wasm_##name##_vec_new_uninitialized( \
- own wasm_##name##_vec_t* out, size_t); \
- WASM_API_EXTERN void wasm_##name##_vec_new( \
- own wasm_##name##_vec_t* out, \
- size_t, own wasm_##name##_t ptr_or_none const[]); \
- WASM_API_EXTERN void wasm_##name##_vec_copy( \
- own wasm_##name##_vec_t* out, const wasm_##name##_vec_t*); \
- WASM_API_EXTERN void wasm_##name##_vec_delete(own wasm_##name##_vec_t*);
-
-
-// Byte vectors
-
-typedef byte_t wasm_byte_t;
-WASM_DECLARE_VEC(byte, )
-
-typedef wasm_byte_vec_t wasm_name_t;
-
-#define wasm_name wasm_byte_vec
-#define wasm_name_new wasm_byte_vec_new
-#define wasm_name_new_empty wasm_byte_vec_new_empty
-#define wasm_name_new_new_uninitialized wasm_byte_vec_new_uninitialized
-#define wasm_name_copy wasm_byte_vec_copy
-#define wasm_name_delete wasm_byte_vec_delete
-
-static inline void wasm_name_new_from_string(
- own wasm_name_t* out, const char* s
-) {
- wasm_name_new(out, strlen(s), s);
-}
-
-static inline void wasm_name_new_from_string_nt(
- own wasm_name_t* out, const char* s
-) {
- wasm_name_new(out, strlen(s) + 1, s);
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-// Runtime Environment
-
-// Configuration
-
-WASM_DECLARE_OWN(config)
-
-WASM_API_EXTERN own wasm_config_t* wasm_config_new(void);
-
-// Embedders may provide custom functions for manipulating configs.
-
-
-// Engine
-
-WASM_DECLARE_OWN(engine)
-
-WASM_API_EXTERN own wasm_engine_t* wasm_engine_new(void);
-WASM_API_EXTERN own wasm_engine_t* wasm_engine_new_with_config(own wasm_config_t*);
-
-
-// Store
-
-WASM_DECLARE_OWN(store)
-
-WASM_API_EXTERN own wasm_store_t* wasm_store_new(wasm_engine_t*);
-
-
-///////////////////////////////////////////////////////////////////////////////
-// Type Representations
-
-// Type attributes
-
-typedef uint8_t wasm_mutability_t;
-enum wasm_mutability_enum {
- WASM_CONST,
- WASM_VAR,
-};
-
-typedef struct wasm_limits_t {
- uint32_t min;
- uint32_t max;
-} wasm_limits_t;
-
-static const uint32_t wasm_limits_max_default = 0xffffffff;
-
-
-// Generic
-
-#define WASM_DECLARE_TYPE(name) \
- WASM_DECLARE_OWN(name) \
- WASM_DECLARE_VEC(name, *) \
- \
- WASM_API_EXTERN own wasm_##name##_t* wasm_##name##_copy(const wasm_##name##_t*);
-
-
-// Value Types
-
-WASM_DECLARE_TYPE(valtype)
-
-typedef uint8_t wasm_valkind_t;
-enum wasm_valkind_enum {
- WASM_I32,
- WASM_I64,
- WASM_F32,
- WASM_F64,
- WASM_ANYREF = 128,
- WASM_FUNCREF,
-};
-
-WASM_API_EXTERN own wasm_valtype_t* wasm_valtype_new(wasm_valkind_t);
-
-WASM_API_EXTERN wasm_valkind_t wasm_valtype_kind(const wasm_valtype_t*);
-
-static inline bool wasm_valkind_is_num(wasm_valkind_t k) {
- return k < WASM_ANYREF;
-}
-static inline bool wasm_valkind_is_ref(wasm_valkind_t k) {
- return k >= WASM_ANYREF;
-}
-
-static inline bool wasm_valtype_is_num(const wasm_valtype_t* t) {
- return wasm_valkind_is_num(wasm_valtype_kind(t));
-}
-static inline bool wasm_valtype_is_ref(const wasm_valtype_t* t) {
- return wasm_valkind_is_ref(wasm_valtype_kind(t));
-}
-
-
-// Function Types
-
-WASM_DECLARE_TYPE(functype)
-
-WASM_API_EXTERN own wasm_functype_t* wasm_functype_new(
- own wasm_valtype_vec_t* params, own wasm_valtype_vec_t* results);
-
-WASM_API_EXTERN const wasm_valtype_vec_t* wasm_functype_params(const wasm_functype_t*);
-WASM_API_EXTERN const wasm_valtype_vec_t* wasm_functype_results(const wasm_functype_t*);
-
-
-// Global Types
-
-WASM_DECLARE_TYPE(globaltype)
-
-WASM_API_EXTERN own wasm_globaltype_t* wasm_globaltype_new(
- own wasm_valtype_t*, wasm_mutability_t);
-
-WASM_API_EXTERN const wasm_valtype_t* wasm_globaltype_content(const wasm_globaltype_t*);
-WASM_API_EXTERN wasm_mutability_t wasm_globaltype_mutability(const wasm_globaltype_t*);
-
-
-// Table Types
-
-WASM_DECLARE_TYPE(tabletype)
-
-WASM_API_EXTERN own wasm_tabletype_t* wasm_tabletype_new(
- own wasm_valtype_t*, const wasm_limits_t*);
-
-WASM_API_EXTERN const wasm_valtype_t* wasm_tabletype_element(const wasm_tabletype_t*);
-WASM_API_EXTERN const wasm_limits_t* wasm_tabletype_limits(const wasm_tabletype_t*);
-
-
-// Memory Types
-
-WASM_DECLARE_TYPE(memorytype)
-
-WASM_API_EXTERN own wasm_memorytype_t* wasm_memorytype_new(const wasm_limits_t*);
-
-WASM_API_EXTERN const wasm_limits_t* wasm_memorytype_limits(const wasm_memorytype_t*);
-
-
-// Extern Types
-
-WASM_DECLARE_TYPE(externtype)
-
-typedef uint8_t wasm_externkind_t;
-enum wasm_externkind_enum {
- WASM_EXTERN_FUNC,
- WASM_EXTERN_GLOBAL,
- WASM_EXTERN_TABLE,
- WASM_EXTERN_MEMORY,
-};
-
-WASM_API_EXTERN wasm_externkind_t wasm_externtype_kind(const wasm_externtype_t*);
-
-WASM_API_EXTERN wasm_externtype_t* wasm_functype_as_externtype(wasm_functype_t*);
-WASM_API_EXTERN wasm_externtype_t* wasm_globaltype_as_externtype(wasm_globaltype_t*);
-WASM_API_EXTERN wasm_externtype_t* wasm_tabletype_as_externtype(wasm_tabletype_t*);
-WASM_API_EXTERN wasm_externtype_t* wasm_memorytype_as_externtype(wasm_memorytype_t*);
-
-WASM_API_EXTERN wasm_functype_t* wasm_externtype_as_functype(wasm_externtype_t*);
-WASM_API_EXTERN wasm_globaltype_t* wasm_externtype_as_globaltype(wasm_externtype_t*);
-WASM_API_EXTERN wasm_tabletype_t* wasm_externtype_as_tabletype(wasm_externtype_t*);
-WASM_API_EXTERN wasm_memorytype_t* wasm_externtype_as_memorytype(wasm_externtype_t*);
-
-WASM_API_EXTERN const wasm_externtype_t* wasm_functype_as_externtype_const(const wasm_functype_t*);
-WASM_API_EXTERN const wasm_externtype_t* wasm_globaltype_as_externtype_const(const wasm_globaltype_t*);
-WASM_API_EXTERN const wasm_externtype_t* wasm_tabletype_as_externtype_const(const wasm_tabletype_t*);
-WASM_API_EXTERN const wasm_externtype_t* wasm_memorytype_as_externtype_const(const wasm_memorytype_t*);
-
-WASM_API_EXTERN const wasm_functype_t* wasm_externtype_as_functype_const(const wasm_externtype_t*);
-WASM_API_EXTERN const wasm_globaltype_t* wasm_externtype_as_globaltype_const(const wasm_externtype_t*);
-WASM_API_EXTERN const wasm_tabletype_t* wasm_externtype_as_tabletype_const(const wasm_externtype_t*);
-WASM_API_EXTERN const wasm_memorytype_t* wasm_externtype_as_memorytype_const(const wasm_externtype_t*);
-
-
-// Import Types
-
-WASM_DECLARE_TYPE(importtype)
-
-WASM_API_EXTERN own wasm_importtype_t* wasm_importtype_new(
- own wasm_name_t* module, own wasm_name_t* name, own wasm_externtype_t*);
-
-WASM_API_EXTERN const wasm_name_t* wasm_importtype_module(const wasm_importtype_t*);
-WASM_API_EXTERN const wasm_name_t* wasm_importtype_name(const wasm_importtype_t*);
-WASM_API_EXTERN const wasm_externtype_t* wasm_importtype_type(const wasm_importtype_t*);
-
-
-// Export Types
-
-WASM_DECLARE_TYPE(exporttype)
-
-WASM_API_EXTERN own wasm_exporttype_t* wasm_exporttype_new(
- own wasm_name_t*, own wasm_externtype_t*);
-
-WASM_API_EXTERN const wasm_name_t* wasm_exporttype_name(const wasm_exporttype_t*);
-WASM_API_EXTERN const wasm_externtype_t* wasm_exporttype_type(const wasm_exporttype_t*);
-
-
-///////////////////////////////////////////////////////////////////////////////
-// Runtime Objects
-
-// Values
-
-struct wasm_ref_t;
-
-typedef struct wasm_val_t {
- wasm_valkind_t kind;
- union {
- int32_t i32;
- int64_t i64;
- float32_t f32;
- float64_t f64;
- struct wasm_ref_t* ref;
- } of;
-} wasm_val_t;
-
-WASM_API_EXTERN void wasm_val_delete(own wasm_val_t* v);
-WASM_API_EXTERN void wasm_val_copy(own wasm_val_t* out, const wasm_val_t*);
-
-WASM_DECLARE_VEC(val, )
-
-
-// References
-
-#define WASM_DECLARE_REF_BASE(name) \
- WASM_DECLARE_OWN(name) \
- \
- WASM_API_EXTERN own wasm_##name##_t* wasm_##name##_copy(const wasm_##name##_t*); \
- WASM_API_EXTERN bool wasm_##name##_same(const wasm_##name##_t*, const wasm_##name##_t*); \
- \
- WASM_API_EXTERN void* wasm_##name##_get_host_info(const wasm_##name##_t*); \
- WASM_API_EXTERN void wasm_##name##_set_host_info(wasm_##name##_t*, void*); \
- WASM_API_EXTERN void wasm_##name##_set_host_info_with_finalizer( \
- wasm_##name##_t*, void*, void (*)(void*));
-
-#define WASM_DECLARE_REF(name) \
- WASM_DECLARE_REF_BASE(name) \
- \
- WASM_API_EXTERN wasm_ref_t* wasm_##name##_as_ref(wasm_##name##_t*); \
- WASM_API_EXTERN wasm_##name##_t* wasm_ref_as_##name(wasm_ref_t*); \
- WASM_API_EXTERN const wasm_ref_t* wasm_##name##_as_ref_const(const wasm_##name##_t*); \
- WASM_API_EXTERN const wasm_##name##_t* wasm_ref_as_##name##_const(const wasm_ref_t*);
-
-#define WASM_DECLARE_SHARABLE_REF(name) \
- WASM_DECLARE_REF(name) \
- WASM_DECLARE_OWN(shared_##name) \
- \
- WASM_API_EXTERN own wasm_shared_##name##_t* wasm_##name##_share(const wasm_##name##_t*); \
- WASM_API_EXTERN own wasm_##name##_t* wasm_##name##_obtain(wasm_store_t*, const wasm_shared_##name##_t*);
-
-
-WASM_DECLARE_REF_BASE(ref)
-
-
-// Frames
-
-WASM_DECLARE_OWN(frame)
-WASM_DECLARE_VEC(frame, *)
-WASM_API_EXTERN own wasm_frame_t* wasm_frame_copy(const wasm_frame_t*);
-
-WASM_API_EXTERN struct wasm_instance_t* wasm_frame_instance(const wasm_frame_t*);
-WASM_API_EXTERN uint32_t wasm_frame_func_index(const wasm_frame_t*);
-WASM_API_EXTERN size_t wasm_frame_func_offset(const wasm_frame_t*);
-WASM_API_EXTERN size_t wasm_frame_module_offset(const wasm_frame_t*);
-
-
-// Traps
-
-typedef wasm_name_t wasm_message_t; // null terminated
-
-WASM_DECLARE_REF(trap)
-
-WASM_API_EXTERN own wasm_trap_t* wasm_trap_new(wasm_store_t* store, const wasm_message_t*);
-
-WASM_API_EXTERN void wasm_trap_message(const wasm_trap_t*, own wasm_message_t* out);
-WASM_API_EXTERN own wasm_frame_t* wasm_trap_origin(const wasm_trap_t*);
-WASM_API_EXTERN void wasm_trap_trace(const wasm_trap_t*, own wasm_frame_vec_t* out);
-
-
-// Foreign Objects
-
-WASM_DECLARE_REF(foreign)
-
-WASM_API_EXTERN own wasm_foreign_t* wasm_foreign_new(wasm_store_t*);
-
-
-// Modules
-
-WASM_DECLARE_SHARABLE_REF(module)
-
-WASM_API_EXTERN own wasm_module_t* wasm_module_new(
- wasm_store_t*, const wasm_byte_vec_t* binary);
-
-WASM_API_EXTERN bool wasm_module_validate(wasm_store_t*, const wasm_byte_vec_t* binary);
-
-WASM_API_EXTERN void wasm_module_imports(const wasm_module_t*, own wasm_importtype_vec_t* out);
-WASM_API_EXTERN void wasm_module_exports(const wasm_module_t*, own wasm_exporttype_vec_t* out);
-
-WASM_API_EXTERN void wasm_module_serialize(const wasm_module_t*, own wasm_byte_vec_t* out);
-WASM_API_EXTERN own wasm_module_t* wasm_module_deserialize(wasm_store_t*, const wasm_byte_vec_t*);
-
-
-// Function Instances
-
-WASM_DECLARE_REF(func)
-
-typedef own wasm_trap_t* (*wasm_func_callback_t)(
- const wasm_val_vec_t* args, own wasm_val_vec_t* results);
-typedef own wasm_trap_t* (*wasm_func_callback_with_env_t)(
- void* env, const wasm_val_vec_t* args, wasm_val_vec_t* results);
-
-WASM_API_EXTERN own wasm_func_t* wasm_func_new(
- wasm_store_t*, const wasm_functype_t*, wasm_func_callback_t);
-WASM_API_EXTERN own wasm_func_t* wasm_func_new_with_env(
- wasm_store_t*, const wasm_functype_t* type, wasm_func_callback_with_env_t,
- void* env, void (*finalizer)(void*));
-
-WASM_API_EXTERN own wasm_functype_t* wasm_func_type(const wasm_func_t*);
-WASM_API_EXTERN size_t wasm_func_param_arity(const wasm_func_t*);
-WASM_API_EXTERN size_t wasm_func_result_arity(const wasm_func_t*);
-
-WASM_API_EXTERN own wasm_trap_t* wasm_func_call(
- const wasm_func_t*, const wasm_val_vec_t* args, wasm_val_vec_t* results);
-
-
-// Global Instances
-
-WASM_DECLARE_REF(global)
-
-WASM_API_EXTERN own wasm_global_t* wasm_global_new(
- wasm_store_t*, const wasm_globaltype_t*, const wasm_val_t*);
-
-WASM_API_EXTERN own wasm_globaltype_t* wasm_global_type(const wasm_global_t*);
-
-WASM_API_EXTERN void wasm_global_get(const wasm_global_t*, own wasm_val_t* out);
-WASM_API_EXTERN void wasm_global_set(wasm_global_t*, const wasm_val_t*);
-
-
-// Table Instances
-
-WASM_DECLARE_REF(table)
-
-typedef uint32_t wasm_table_size_t;
-
-WASM_API_EXTERN own wasm_table_t* wasm_table_new(
- wasm_store_t*, const wasm_tabletype_t*, wasm_ref_t* init);
-
-WASM_API_EXTERN own wasm_tabletype_t* wasm_table_type(const wasm_table_t*);
-
-WASM_API_EXTERN own wasm_ref_t* wasm_table_get(const wasm_table_t*, wasm_table_size_t index);
-WASM_API_EXTERN bool wasm_table_set(wasm_table_t*, wasm_table_size_t index, wasm_ref_t*);
-
-WASM_API_EXTERN wasm_table_size_t wasm_table_size(const wasm_table_t*);
-WASM_API_EXTERN bool wasm_table_grow(wasm_table_t*, wasm_table_size_t delta, wasm_ref_t* init);
-
-
-// Memory Instances
-
-WASM_DECLARE_REF(memory)
-
-typedef uint32_t wasm_memory_pages_t;
-
-static const size_t MEMORY_PAGE_SIZE = 0x10000;
-
-WASM_API_EXTERN own wasm_memory_t* wasm_memory_new(wasm_store_t*, const wasm_memorytype_t*);
-
-WASM_API_EXTERN own wasm_memorytype_t* wasm_memory_type(const wasm_memory_t*);
-
-WASM_API_EXTERN byte_t* wasm_memory_data(wasm_memory_t*);
-WASM_API_EXTERN size_t wasm_memory_data_size(const wasm_memory_t*);
-
-WASM_API_EXTERN wasm_memory_pages_t wasm_memory_size(const wasm_memory_t*);
-WASM_API_EXTERN bool wasm_memory_grow(wasm_memory_t*, wasm_memory_pages_t delta);
-
-
-// Externals
-
-WASM_DECLARE_REF(extern)
-WASM_DECLARE_VEC(extern, *)
-
-WASM_API_EXTERN wasm_externkind_t wasm_extern_kind(const wasm_extern_t*);
-WASM_API_EXTERN own wasm_externtype_t* wasm_extern_type(const wasm_extern_t*);
-
-WASM_API_EXTERN wasm_extern_t* wasm_func_as_extern(wasm_func_t*);
-WASM_API_EXTERN wasm_extern_t* wasm_global_as_extern(wasm_global_t*);
-WASM_API_EXTERN wasm_extern_t* wasm_table_as_extern(wasm_table_t*);
-WASM_API_EXTERN wasm_extern_t* wasm_memory_as_extern(wasm_memory_t*);
-
-WASM_API_EXTERN wasm_func_t* wasm_extern_as_func(wasm_extern_t*);
-WASM_API_EXTERN wasm_global_t* wasm_extern_as_global(wasm_extern_t*);
-WASM_API_EXTERN wasm_table_t* wasm_extern_as_table(wasm_extern_t*);
-WASM_API_EXTERN wasm_memory_t* wasm_extern_as_memory(wasm_extern_t*);
-
-WASM_API_EXTERN const wasm_extern_t* wasm_func_as_extern_const(const wasm_func_t*);
-WASM_API_EXTERN const wasm_extern_t* wasm_global_as_extern_const(const wasm_global_t*);
-WASM_API_EXTERN const wasm_extern_t* wasm_table_as_extern_const(const wasm_table_t*);
-WASM_API_EXTERN const wasm_extern_t* wasm_memory_as_extern_const(const wasm_memory_t*);
-
-WASM_API_EXTERN const wasm_func_t* wasm_extern_as_func_const(const wasm_extern_t*);
-WASM_API_EXTERN const wasm_global_t* wasm_extern_as_global_const(const wasm_extern_t*);
-WASM_API_EXTERN const wasm_table_t* wasm_extern_as_table_const(const wasm_extern_t*);
-WASM_API_EXTERN const wasm_memory_t* wasm_extern_as_memory_const(const wasm_extern_t*);
-
-
-// Module Instances
-
-WASM_DECLARE_REF(instance)
-
-WASM_API_EXTERN own wasm_instance_t* wasm_instance_new(
- wasm_store_t*, const wasm_module_t*, const wasm_extern_vec_t* imports,
- own wasm_trap_t**
-);
-
-WASM_API_EXTERN void wasm_instance_exports(const wasm_instance_t*, own wasm_extern_vec_t* out);
-
-
-///////////////////////////////////////////////////////////////////////////////
-// Convenience
-
-// Vectors
-
-#define WASM_EMPTY_VEC {0, NULL}
-#define WASM_ARRAY_VEC(array) {sizeof(array)/sizeof(*(array)), array}
-
-
-// Value Type construction short-hands
-
-static inline own wasm_valtype_t* wasm_valtype_new_i32(void) {
- return wasm_valtype_new(WASM_I32);
-}
-static inline own wasm_valtype_t* wasm_valtype_new_i64(void) {
- return wasm_valtype_new(WASM_I64);
-}
-static inline own wasm_valtype_t* wasm_valtype_new_f32(void) {
- return wasm_valtype_new(WASM_F32);
-}
-static inline own wasm_valtype_t* wasm_valtype_new_f64(void) {
- return wasm_valtype_new(WASM_F64);
-}
-
-static inline own wasm_valtype_t* wasm_valtype_new_anyref(void) {
- return wasm_valtype_new(WASM_ANYREF);
-}
-static inline own wasm_valtype_t* wasm_valtype_new_funcref(void) {
- return wasm_valtype_new(WASM_FUNCREF);
-}
-
-
-// Function Types construction short-hands
-
-static inline own wasm_functype_t* wasm_functype_new_0_0(void) {
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new_empty(¶ms);
- wasm_valtype_vec_new_empty(&results);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_1_0(
- own wasm_valtype_t* p
-) {
- wasm_valtype_t* ps[1] = {p};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new(¶ms, 1, ps);
- wasm_valtype_vec_new_empty(&results);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_2_0(
- own wasm_valtype_t* p1, own wasm_valtype_t* p2
-) {
- wasm_valtype_t* ps[2] = {p1, p2};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new(¶ms, 2, ps);
- wasm_valtype_vec_new_empty(&results);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_3_0(
- own wasm_valtype_t* p1, own wasm_valtype_t* p2, own wasm_valtype_t* p3
-) {
- wasm_valtype_t* ps[3] = {p1, p2, p3};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new(¶ms, 3, ps);
- wasm_valtype_vec_new_empty(&results);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_0_1(
- own wasm_valtype_t* r
-) {
- wasm_valtype_t* rs[1] = {r};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new_empty(¶ms);
- wasm_valtype_vec_new(&results, 1, rs);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_1_1(
- own wasm_valtype_t* p, own wasm_valtype_t* r
-) {
- wasm_valtype_t* ps[1] = {p};
- wasm_valtype_t* rs[1] = {r};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new(¶ms, 1, ps);
- wasm_valtype_vec_new(&results, 1, rs);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_2_1(
- own wasm_valtype_t* p1, own wasm_valtype_t* p2, own wasm_valtype_t* r
-) {
- wasm_valtype_t* ps[2] = {p1, p2};
- wasm_valtype_t* rs[1] = {r};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new(¶ms, 2, ps);
- wasm_valtype_vec_new(&results, 1, rs);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_3_1(
- own wasm_valtype_t* p1, own wasm_valtype_t* p2, own wasm_valtype_t* p3,
- own wasm_valtype_t* r
-) {
- wasm_valtype_t* ps[3] = {p1, p2, p3};
- wasm_valtype_t* rs[1] = {r};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new(¶ms, 3, ps);
- wasm_valtype_vec_new(&results, 1, rs);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_0_2(
- own wasm_valtype_t* r1, own wasm_valtype_t* r2
-) {
- wasm_valtype_t* rs[2] = {r1, r2};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new_empty(¶ms);
- wasm_valtype_vec_new(&results, 2, rs);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_1_2(
- own wasm_valtype_t* p, own wasm_valtype_t* r1, own wasm_valtype_t* r2
-) {
- wasm_valtype_t* ps[1] = {p};
- wasm_valtype_t* rs[2] = {r1, r2};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new(¶ms, 1, ps);
- wasm_valtype_vec_new(&results, 2, rs);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_2_2(
- own wasm_valtype_t* p1, own wasm_valtype_t* p2,
- own wasm_valtype_t* r1, own wasm_valtype_t* r2
-) {
- wasm_valtype_t* ps[2] = {p1, p2};
- wasm_valtype_t* rs[2] = {r1, r2};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new(¶ms, 2, ps);
- wasm_valtype_vec_new(&results, 2, rs);
- return wasm_functype_new(¶ms, &results);
-}
-
-static inline own wasm_functype_t* wasm_functype_new_3_2(
- own wasm_valtype_t* p1, own wasm_valtype_t* p2, own wasm_valtype_t* p3,
- own wasm_valtype_t* r1, own wasm_valtype_t* r2
-) {
- wasm_valtype_t* ps[3] = {p1, p2, p3};
- wasm_valtype_t* rs[2] = {r1, r2};
- wasm_valtype_vec_t params, results;
- wasm_valtype_vec_new(¶ms, 3, ps);
- wasm_valtype_vec_new(&results, 2, rs);
- return wasm_functype_new(¶ms, &results);
-}
-
-
-// Value construction short-hands
-
-static inline void wasm_val_init_ptr(own wasm_val_t* out, void* p) {
-#if UINTPTR_MAX == UINT32_MAX
- out->kind = WASM_I32;
- out->of.i32 = (intptr_t)p;
-#elif UINTPTR_MAX == UINT64_MAX
- out->kind = WASM_I64;
- out->of.i64 = (intptr_t)p;
-#endif
-}
-
-static inline void* wasm_val_ptr(const wasm_val_t* val) {
-#if UINTPTR_MAX == UINT32_MAX
- return (void*)(intptr_t)val->of.i32;
-#elif UINTPTR_MAX == UINT64_MAX
- return (void*)(intptr_t)val->of.i64;
-#endif
-}
-
-#define WASM_I32_VAL(i) {.kind = WASM_I32, .of = {.i32 = i}}
-#define WASM_I64_VAL(i) {.kind = WASM_I64, .of = {.i64 = i}}
-#define WASM_F32_VAL(z) {.kind = WASM_F32, .of = {.f32 = z}}
-#define WASM_F64_VAL(z) {.kind = WASM_F64, .of = {.f64 = z}}
-#define WASM_REF_VAL(r) {.kind = WASM_ANYREF, .of = {.ref = r}}
-#define WASM_INIT_VAL {.kind = WASM_ANYREF, .of = {.ref = NULL}}
-
-
-///////////////////////////////////////////////////////////////////////////////
-
-#undef own
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // #ifdef WASM_H
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/wasmtime.h b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/wasmtime.h
deleted file mode 100644
index f163f923b..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/include/wasmtime.h
+++ /dev/null
@@ -1,1300 +0,0 @@
-/**
- * @file
- *
- * Wasmtime-specific extensions to the WebAssembly C API.
- *
- * This file contains all of the Wasmtime-specific functions which will not be
- * present in other engines. The intention of this file is to augment the
- * functionality provided in `wasm.h`.
- */
-
-
-#ifndef WASMTIME_API_H
-#define WASMTIME_API_H
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define own
-
-#define WASMTIME_DECLARE_OWN(name) \
- typedef struct wasmtime_##name##_t wasmtime_##name##_t; \
- \
- WASM_API_EXTERN void wasmtime_##name##_delete(own wasmtime_##name##_t*);
-
-/**
- * \typedef wasmtime_error_t
- * \brief Convenience alias for #wasmtime_error_t
- *
- * \struct wasmtime_error_t
- * \brief Errors generated by Wasmtime.
- *
- * This opaque type represents an error that happened as part of one of the
- * functions below. Errors primarily have an error message associated with them
- * at this time, which you can acquire by calling #wasmtime_error_message.
- *
- * \fn void wasmtime_error_delete(own wasmtime_error_t *);
- * \brief Deletes an error.
- */
-WASMTIME_DECLARE_OWN(error)
-
-/**
- * \brief Returns the string description of this error.
- *
- * This will "render" the error to a string and then return the string
- * representation of the error to the caller. The `message` argument should be
- * uninitialized before this function is called and the caller is responsible
- * for deallocating it with #wasm_byte_vec_delete afterwards.
- */
-WASM_API_EXTERN void wasmtime_error_message(
- const wasmtime_error_t *error,
- own wasm_name_t *message
-);
-
-/**
- * \brief Specifier for how Wasmtime will compile code, values are in
- * #wasmtime_strategy_enum
- */
-typedef uint8_t wasmtime_strategy_t;
-
-/**
- * \brief Different ways that Wasmtime can compile WebAssembly
- *
- * The default value is #WASMTIME_STRATEGY_AUTO.
- */
-enum wasmtime_strategy_enum { // Strategy
- /// Wasmtime will automatically determine whether to use Cranelift or
- /// Lightbeam, and currently it will always pick Cranelift. This default may
- /// change over time though.
- WASMTIME_STRATEGY_AUTO,
-
- /// Indicates that Cranelift will unconditionally use Cranelift to compile
- /// WebAssembly code.
- WASMTIME_STRATEGY_CRANELIFT,
-
- /// Indicates that Cranelift will unconditionally use Lightbeam to compile
- /// WebAssembly code. Note that Lightbeam isn't always enabled at compile
- /// time, and if that's the case an error will be returned.
- WASMTIME_STRATEGY_LIGHTBEAM,
-};
-
-/**
- * \brief Specifier of what optimization level to use for generated JIT code.
- *
- * See #wasmtime_opt_level_enum for possible values.
- */
-typedef uint8_t wasmtime_opt_level_t;
-
-/**
- * \brief Different ways Wasmtime can optimize generated code.
- *
- * The default value is #WASMTIME_OPT_LEVEL_SPEED.
- */
-enum wasmtime_opt_level_enum { // OptLevel
- /// Generated code will not be optimized at all.
- WASMTIME_OPT_LEVEL_NONE,
- /// Generated code will be optimized purely for speed.
- WASMTIME_OPT_LEVEL_SPEED,
- /// Generated code will be optimized, but some speed optimizations are
- /// disabled if they cause the generated code to be significantly larger.
- WASMTIME_OPT_LEVEL_SPEED_AND_SIZE,
-};
-
-/**
- * \brief Different ways wasmtime can enable profiling JIT code.
- *
- * See #wasmtime_profiling_strategy_enum for possible values.
- */
-typedef uint8_t wasmtime_profiling_strategy_t;
-
-/**
- * \brief Different ways to profile JIT code.
- *
- * The default is #WASMTIME_PROFILING_STRATEGY_NONE.
- */
-enum wasmtime_profiling_strategy_enum { // ProfilingStrategy
- /// No profiling is enabled at runtime.
- WASMTIME_PROFILING_STRATEGY_NONE,
- /// Linux's "jitdump" support in `perf` is enabled and when Wasmtime is run
- /// under `perf` necessary calls will be made to profile generated JIT code.
- WASMTIME_PROFILING_STRATEGY_JITDUMP,
- /// Support for VTune will be enabled and the VTune runtime will be informed,
- /// at runtime, about JIT code.
- ///
- /// Note that this isn't always enabled at build time.
- WASMTIME_PROFILING_STRATEGY_VTUNE,
-};
-
-#define WASMTIME_CONFIG_PROP(ret, name, ty) \
- WASM_API_EXTERN ret wasmtime_config_##name##_set(wasm_config_t*, ty);
-
-/**
- * \brief Configures whether DWARF debug information is constructed at runtime
- * to describe JIT code.
- *
- * This setting is `false` by default. When enabled it will attempt to inform
- * native debuggers about DWARF debugging information for JIT code to more
- * easily debug compiled WebAssembly via native debuggers. This can also
- * sometimes improve the quality of output when profiling is enabled.
- */
-WASMTIME_CONFIG_PROP(void, debug_info, bool)
-
-/**
- * \brief Enables WebAssembly code to be interrupted.
- *
- * This setting is `false` by default. When enabled it will enable getting an
- * interrupt handle via #wasmtime_interrupt_handle_new which can be used to
- * interrupt currently-executing WebAssembly code.
- */
-WASMTIME_CONFIG_PROP(void, interruptable, bool)
-
-/**
- * \brief Whether or not fuel is enabled for generated code.
- *
- * This setting is `false` by default. When enabled it will enable fuel counting
- * meaning that fuel will be consumed every time a wasm instruction is executed,
- * and trap when reaching zero.
- */
-WASMTIME_CONFIG_PROP(void, consume_fuel, bool)
-
-/**
- * \brief Configures the maximum stack size, in bytes, that JIT code can use.
- *
- * This setting is 2MB by default. Configuring this setting will limit the
- * amount of native stack space that JIT code can use while it is executing. If
- * you're hitting stack overflow you can try making this setting larger, or if
- * you'd like to limit wasm programs to less stack you can also configure this.
- *
- * Note that this setting is not interpreted with 100% precision. Additionally
- * the amount of stack space that wasm takes is always relative to the first
- * invocation of wasm on the stack, so recursive calls with host frames in the
- * middle will all need to fit within this setting.
- */
-WASMTIME_CONFIG_PROP(void, max_wasm_stack, size_t)
-
-/**
- * \brief Configures whether the WebAssembly threading proposal is enabled.
- *
- * This setting is `false` by default.
- *
- * Note that threads are largely unimplemented in Wasmtime at this time.
- */
-WASMTIME_CONFIG_PROP(void, wasm_threads, bool)
-
-/**
- * \brief Configures whether the WebAssembly reference types proposal is
- * enabled.
- *
- * This setting is `false` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_reference_types, bool)
-
-/**
- * \brief Configures whether the WebAssembly SIMD proposal is
- * enabled.
- *
- * This setting is `false` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_simd, bool)
-
-/**
- * \brief Configures whether the WebAssembly bulk memory proposal is
- * enabled.
- *
- * This setting is `false` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_bulk_memory, bool)
-
-/**
- * \brief Configures whether the WebAssembly multi value proposal is
- * enabled.
- *
- * This setting is `true` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_multi_value, bool)
-
-/**
- * \brief Configures whether the WebAssembly module linking proposal is
- * enabled.
- *
- * This setting is `false` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_module_linking, bool)
-
-/**
- * \brief Configures how JIT code will be compiled.
- *
- * This setting is #WASMTIME_STRATEGY_AUTO by default.
- *
- * If the compilation strategy selected could not be enabled then an error is
- * returned.
- */
-WASMTIME_CONFIG_PROP(wasmtime_error_t*, strategy, wasmtime_strategy_t)
-
-/**
- * \brief Configures whether Cranelift's debug verifier is enabled.
- *
- * This setting in `false` by default.
- *
- * When cranelift is used for compilation this enables expensive debug checks
- * within Cranelift itself to verify it's correct.
- */
-WASMTIME_CONFIG_PROP(void, cranelift_debug_verifier, bool)
-
-/**
- * \brief Configures Cranelift's optimization level for JIT code.
- *
- * This setting in #WASMTIME_OPT_LEVEL_SPEED by default.
- */
-WASMTIME_CONFIG_PROP(void, cranelift_opt_level, wasmtime_opt_level_t)
-
-/**
- * \brief Configures the profiling strategy used for JIT code.
- *
- * This setting in #WASMTIME_PROFILING_STRATEGY_NONE by default.
- */
-WASMTIME_CONFIG_PROP(wasmtime_error_t*, profiler, wasmtime_profiling_strategy_t)
-
-/**
- * \brief Configures the maximum size for memory to be considered "static"
- *
- * For more information see the Rust documentation at
- * https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Config.html#method.static_memory_maximum_size.
- */
-WASMTIME_CONFIG_PROP(void, static_memory_maximum_size, uint64_t)
-
-/**
- * \brief Configures the guard region size for "static" memory.
- *
- * For more information see the Rust documentation at
- * https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Config.html#method.static_memory_guard_size.
- */
-WASMTIME_CONFIG_PROP(void, static_memory_guard_size, uint64_t)
-
-/**
- * \brief Configures the guard region size for "dynamic" memory.
- *
- * For more information see the Rust documentation at
- * https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Config.html#method.dynamic_memory_guard_size.
- */
-WASMTIME_CONFIG_PROP(void, dynamic_memory_guard_size, uint64_t)
-
-/**
- * \brief Enables Wasmtime's cache and loads configuration from the specified
- * path.
- *
- * By default the Wasmtime compilation cache is disabled. The configuration path
- * here can be `NULL` to use the default settings, and otherwise the argument
- * here must be a file on the filesystem with TOML configuration -
- * https://bytecodealliance.github.io/wasmtime/cli-cache.html.
- *
- * An error is returned if the cache configuration could not be loaded or if the
- * cache could not be enabled.
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_config_cache_config_load(wasm_config_t*, const char*);
-
-/**
- * \brief Converts from the text format of WebAssembly to to the binary format.
- *
- * \param wat this it the input buffer with the WebAssembly Text Format inside of
- * it. This will be parsed and converted to the binary format.
- * \param ret if the conversion is successful, this byte vector is filled in with
- * the WebAssembly binary format.
- *
- * \return a non-null error if parsing fails, or returns `NULL`. If parsing
- * fails then `ret` isn't touched.
- *
- * This function does not take ownership of `wat`, and the caller is expected to
- * deallocate the returned #wasmtime_error_t and #wasm_byte_vec_t.
- */
-WASM_API_EXTERN own wasmtime_error_t* wasmtime_wat2wasm(
- const wasm_byte_vec_t *wat,
- own wasm_byte_vec_t *ret
-);
-
-/**
- * \brief Perform garbage collection within the given store.
- *
- * Garbage collects `externref`s that are used within this store. Any
- * `externref`s that are discovered to be unreachable by other code or objects
- * will have their finalizers run.
- *
- * The `store` argument must not be NULL.
- */
-WASM_API_EXTERN void wasmtime_store_gc(wasm_store_t* store);
-
-/**
- * \typedef wasmtime_linker_t
- * \brief Convenience alias for #wasmtime_linker_t
- *
- * \struct wasmtime_linker_t
- * \brief Object used to conveniently link together and instantiate wasm
- * modules.
- *
- * This type corresponds to the `wasmtime::Linker` type in Rust. This
- * Wasmtime-specific extension is intended to make it easier to manage a set of
- * modules that link together, or to make it easier to link WebAssembly modules
- * to WASI.
- *
- * A #wasmtime_linker_t is a higher level way to instantiate a module than
- * #wasm_instance_new since it works at the "string" level of imports rather
- * than requiring 1:1 mappings.
- *
- * \fn void wasmtime_linker_delete(own wasmtime_linker_t *);
- * \brief Deletes a linker.
- */
-WASMTIME_DECLARE_OWN(linker)
-
-/**
- * \brief Creates a new linker which will link together objects in the specified
- * store.
- *
- * This function does not take ownership of the store argument, and the caller
- * is expected to delete the returned linker.
- */
-WASM_API_EXTERN own wasmtime_linker_t* wasmtime_linker_new(wasm_store_t* store);
-
-/**
- * \brief Configures whether this linker allows later definitions to shadow
- * previous definitions.
- *
- * By default this setting is `false`.
- */
-WASM_API_EXTERN void wasmtime_linker_allow_shadowing(wasmtime_linker_t* linker, bool allow_shadowing);
-
-/**
- * \brief Defines a new item in this linker.
- *
- * \param linker the linker the name is being defined in.
- * \param module the module name the item is defined under.
- * \param name the field name the item is defined under
- * \param item the item that is being defined in this linker.
- *
- * \return On success `NULL` is returned, otherwise an error is returned which
- * describes why the definition failed.
- *
- * For more information about name resolution consult the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#name-resolution).
- */
-WASM_API_EXTERN own wasmtime_error_t* wasmtime_linker_define(
- wasmtime_linker_t *linker,
- const wasm_name_t *module,
- const wasm_name_t *name,
- const wasm_extern_t *item
-);
-
-/**
- * \brief Defines a WASI instance in this linker.
- *
- * \param linker the linker the name is being defined in.
- * \param instance a previously-created WASI instance.
- *
- * \return On success `NULL` is returned, otherwise an error is returned which
- * describes why the definition failed.
- *
- * For more information about name resolution consult the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#name-resolution).
- */
-WASM_API_EXTERN own wasmtime_error_t* wasmtime_linker_define_wasi(
- wasmtime_linker_t *linker,
- const wasi_instance_t *instance
-);
-
-/**
- * \brief Defines an instance under the specified name in this linker.
- *
- * \param linker the linker the name is being defined in.
- * \param name the module name to define `instance` under.
- * \param instance a previously-created instance.
- *
- * \return On success `NULL` is returned, otherwise an error is returned which
- * describes why the definition failed.
- *
- * This function will take all of the exports of the `instance` provided and
- * defined them under a module called `name` with a field name as the export's
- * own name.
- *
- * For more information about name resolution consult the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#name-resolution).
- */
-WASM_API_EXTERN own wasmtime_error_t* wasmtime_linker_define_instance(
- wasmtime_linker_t *linker,
- const wasm_name_t *name,
- const wasm_instance_t *instance
-);
-
-/**
- * \brief Instantiates a #wasm_module_t with the items defined in this linker.
- *
- * \param linker the linker used to instantiate the provided module.
- * \param module the module that is being instantiated.
- * \param instance the returned instance, if successful.
- * \param trap a trap returned, if the start function traps.
- *
- * \return One of three things can happen as a result of this function. First
- * the module could be successfully instantiated and returned through
- * `instance`, meaning the return value and `trap` are both set to `NULL`.
- * Second the start function may trap, meaning the return value and `instance`
- * are set to `NULL` and `trap` describes the trap that happens. Finally
- * instantiation may fail for another reason, in which case an error is returned
- * and `trap` and `instance` are set to `NULL`.
- *
- * This function will attempt to satisfy all of the imports of the `module`
- * provided with items previously defined in this linker. If any name isn't
- * defined in the linker than an error is returned. (or if the previously
- * defined item is of the wrong type).
- */
-WASM_API_EXTERN own wasmtime_error_t* wasmtime_linker_instantiate(
- const wasmtime_linker_t *linker,
- const wasm_module_t *module,
- own wasm_instance_t **instance,
- own wasm_trap_t **trap
-);
-
-/**
- * \brief Defines automatic instantiations of a #wasm_module_t in this linker.
- *
- * \param linker the linker the module is being added to
- * \param name the name of the module within the linker
- * \param module the module that's being instantiated
- *
- * \return An error if the module could not be instantiated or added or `NULL`
- * on success.
- *
- * This function automatically handles [Commands and
- * Reactors](https://github.com/WebAssembly/WASI/blob/master/design/application-abi.md#current-unstable-abi)
- * instantiation and initialization.
- *
- * For more information see the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#method.module).
- */
-WASM_API_EXTERN own wasmtime_error_t* wasmtime_linker_module(
- const wasmtime_linker_t *linker,
- const wasm_name_t *name,
- const wasm_module_t *module
-);
-
-/**
- * \brief Acquires the "default export" of the named module in this linker.
- *
- * \param linker the linker to load from
- * \param name the name of the module to get the default export for
- * \param func where to store the extracted default function.
- *
- * \return An error is returned if the default export could not be found, or
- * `NULL` is returned and `func` is filled in otherwise.
- *
- * For more information see the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#method.get_default).
- */
-WASM_API_EXTERN own wasmtime_error_t* wasmtime_linker_get_default(
- const wasmtime_linker_t *linker,
- const wasm_name_t *name,
- own wasm_func_t **func
-);
-
-/**
- * \brief Loads an item by name from this linker.
- *
- * \param linker the linker to load from
- * \param module the name of the module to get
- * \param name the name of the field to get
- * \param item where to store the extracted item
- *
- * \return An error is returned if the item isn't defined or has more than one
- * definition, or `NULL` is returned and `item` is filled in otherwise.
- */
-WASM_API_EXTERN own wasmtime_error_t* wasmtime_linker_get_one_by_name(
- const wasmtime_linker_t *linker,
- const wasm_name_t *module,
- const wasm_name_t *name,
- own wasm_extern_t **item
-);
-
-/**
- * \brief Structure used to learn about the caller of a host-defined function.
- *
- * This structure is the first argument of #wasmtime_func_callback_t and
- * wasmtime_func_callback_with_env_t. The main purpose of this structure is for
- * building a WASI-like API which can inspect the memory of the caller,
- * regardless of the caller.
- *
- * This is intended to be a temporary API extension until interface types have
- * become more prevalent. This is not intended to be supported until the end of
- * time, but it will be supported so long as WASI requires it.
- */
-typedef struct wasmtime_caller_t wasmtime_caller_t;
-
-/**
- * \brief Callback signature for #wasmtime_func_new.
- *
- * This function is the same as #wasm_func_callback_t except that its first
- * argument is a #wasmtime_caller_t which allows learning information about the
- * caller.
- */
-typedef own wasm_trap_t* (*wasmtime_func_callback_t)(const wasmtime_caller_t* caller, const wasm_val_vec_t *args, wasm_val_vec_t *results);
-
-/**
- * \brief Callback signature for #wasmtime_func_new_with_env.
- *
- * This function is the same as #wasm_func_callback_with_env_t except that its
- * first argument is a #wasmtime_caller_t which allows learning information
- * about the caller.
- */
-typedef own wasm_trap_t* (*wasmtime_func_callback_with_env_t)(const wasmtime_caller_t* caller, void* env, const wasm_val_vec_t *args, wasm_val_vec_t *results);
-
-/**
- * \brief Creates a new host-defined function.
- *
- * This function is the same as #wasm_func_new, except the callback has the type
- * signature #wasmtime_func_callback_t which gives a #wasmtime_caller_t as its
- * first argument.
- */
-WASM_API_EXTERN own wasm_func_t* wasmtime_func_new(wasm_store_t*, const wasm_functype_t*, wasmtime_func_callback_t callback);
-
-/**
- * \brief Creates a new host-defined function.
- *
- * This function is the same as #wasm_func_new_with_env, except the callback
- * has the type signature #wasmtime_func_callback_with_env_t which gives a
- * #wasmtime_caller_t as its first argument.
- */
-WASM_API_EXTERN own wasm_func_t* wasmtime_func_new_with_env(
- wasm_store_t* store,
- const wasm_functype_t* type,
- wasmtime_func_callback_with_env_t callback,
- void* env,
- void (*finalizer)(void*)
-);
-
-/**
- * \brief Creates a new `funcref` value referencing `func`.
- *
- * Create a `funcref` value that references `func` and writes it to `funcrefp`.
- *
- * Gives ownership fo the `funcref` value written to `funcrefp`.
- *
- * Both `func` and `funcrefp` must not be NULL.
- */
-WASM_API_EXTERN void wasmtime_func_as_funcref(const wasm_func_t* func, wasm_val_t* funcrefp);
-
-/**
- * \brief Get the `wasm_func_t*` referenced by the given `funcref` value.
- *
- * Gets an owning handle to the `wasm_func_t*` that the given `funcref` value is
- * referencing. Returns NULL if the value is not a `funcref`, or if the value is
- * a null function reference.
- *
- * The `val` pointer must not be NULL.
- */
-WASM_API_EXTERN own wasm_func_t* wasmtime_funcref_as_func(const wasm_val_t* val);
-
-/**
- * \brief Loads a #wasm_extern_t from the caller's context
- *
- * This function will attempt to look up the export named `name` on the caller
- * instance provided. If it is found then the #wasm_extern_t for that is
- * returned, otherwise `NULL` is returned.
- *
- * Note that this only works for exported memories right now for WASI
- * compatibility.
- */
-WASM_API_EXTERN own wasm_extern_t* wasmtime_caller_export_get(const wasmtime_caller_t* caller, const wasm_name_t* name);
-
-/**
- * \typedef wasmtime_interrupt_handle_t
- * \brief Convenience alias for #wasmtime_interrupt_handle_t
- *
- * \struct wasmtime_interrupt_handle_t
- * \brief A handle used to interrupt executing WebAssembly code.
- *
- * This structure is an opaque handle that represents a handle to a store. This
- * handle can be used to remotely (from another thread) interrupt currently
- * executing WebAssembly code.
- *
- * This structure is safe to share from multiple threads.
- *
- * \fn void wasmtime_interrupt_handle_delete(own wasmtime_interrupt_handle_t *);
- * \brief Deletes an interrupt handle.
- */
-WASMTIME_DECLARE_OWN(interrupt_handle)
-
-/**
- * \brief Creates a new interrupt handle to interrupt executing WebAssembly from
- * the provided store.
- *
- * There are a number of caveats about how interrupt is handled in Wasmtime. For
- * more information see the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Store.html#method.interrupt_handle).
- *
- * This function returns `NULL` if the store's configuration does not have
- * interrupts enabled. See #wasmtime_config_interruptable_set.
- */
-WASM_API_EXTERN own wasmtime_interrupt_handle_t *wasmtime_interrupt_handle_new(wasm_store_t *store);
-
-/**
- * \brief Adds fuel to this Store for wasm to consume while executing.
- *
- * For this method to work fuel consumption must be enabled via
- * #wasmtime_config_consume_fuel_set. By default a Store starts with 0 fuel
- * for wasm to execute with (meaning it will immediately trap).
- * This function must be called for the store to have
- * some fuel to allow WebAssembly to execute.
- *
- * Note that at this time when fuel is entirely consumed it will cause
- * wasm to trap. More usages of fuel are planned for the future.
- *
- * If fuel is not enabled within this store then an error is returned. If fuel
- * is successfully added then NULL is returned.
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_store_add_fuel(wasm_store_t *store, uint64_t fuel);
-
-/**
- * \brief Returns the amount of fuel consumed by this store's execution so far.
- *
- * If fuel consumption is not enabled via #wasmtime_config_consume_fuel_set
- * then this function will return false. Otherwise true is returned and the
- * fuel parameter is filled in with fuel consuemd so far.
- *
- * Also note that fuel, if enabled, must be originally configured via
- * #wasmtime_store_add_fuel.
- */
-WASM_API_EXTERN bool wasmtime_store_fuel_consumed(wasm_store_t *store, uint64_t *fuel);
-
-/**
- * \brief Requests that WebAssembly code running in the store attached to this
- * interrupt handle is interrupted.
- *
- * For more information about interrupts see #wasmtime_interrupt_handle_new.
- *
- * Note that this is safe to call from any thread.
- */
-WASM_API_EXTERN void wasmtime_interrupt_handle_interrupt(wasmtime_interrupt_handle_t *handle);
-
-/**
- * \brief Attempts to extract a WASI-specific exit status from this trap.
- *
- * Returns `true` if the trap is a WASI "exit" trap and has a return status. If
- * `true` is returned then the exit status is returned through the `status`
- * pointer. If `false` is returned then this is not a wasi exit trap.
- */
-WASM_API_EXTERN bool wasmtime_trap_exit_status(const wasm_trap_t*, int *status);
-
-/**
- * \brief Returns a human-readable name for this frame's function.
- *
- * This function will attempt to load a human-readable name for function this
- * frame points to. This function may return `NULL`.
- *
- * The lifetime of the returned name is the same as the #wasm_frame_t itself.
- */
-WASM_API_EXTERN const wasm_name_t *wasmtime_frame_func_name(const wasm_frame_t*);
-
-/**
- * \brief Returns a human-readable name for this frame's module.
- *
- * This function will attempt to load a human-readable name for module this
- * frame points to. This function may return `NULL`.
- *
- * The lifetime of the returned name is the same as the #wasm_frame_t itself.
- */
-WASM_API_EXTERN const wasm_name_t *wasmtime_frame_module_name(const wasm_frame_t*);
-
-/**
- * \brief Call a WebAssembly function.
- *
- * This function is similar to #wasm_func_call, but with a few tweaks:
- *
- * * An error *and* a trap can be returned
- * * Errors are returned if `args` have the wrong types, if the args/results
- * arrays have the wrong lengths, or if values come from the wrong store.
- *
- * There are three possible return states from this function:
- *
- * 1. The returned error is non-null. This means `results`
- * wasn't written to and `trap` will have `NULL` written to it. This state
- * means that programmer error happened when calling the function (e.g. the
- * size of the args/results were wrong)
- * 2. The trap pointer is filled in. This means the returned error is `NULL` and
- * `results` was not written to. This state means that the function was
- * executing but hit a wasm trap while executing.
- * 3. The error and trap returned are both `NULL` and `results` are written to.
- * This means that the function call worked and the specified results were
- * produced.
- *
- * The `trap` pointer cannot be `NULL`. The `args` and `results` pointers may be
- * `NULL` if the corresponding length is zero.
- *
- * Does not take ownership of `wasm_val_t` arguments. Gives ownership of
- * `wasm_val_t` results.
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_func_call(
- wasm_func_t *func,
- const wasm_val_vec_t *args,
- wasm_val_vec_t *results,
- own wasm_trap_t **trap
-);
-
-/**
- * \brief Creates a new global value.
- *
- * Similar to #wasm_global_new, but with a few tweaks:
- *
- * * An error is returned instead of #wasm_global_t, which is taken as an
- * out-parameter
- * * An error happens when the `type` specified does not match the type of the
- * value `val`, or if it comes from a different store than `store`.
- *
- * This function does not take ownership of any of its arguments but returned
- * values are owned by the caller.
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_global_new(
- wasm_store_t *store,
- const wasm_globaltype_t *type,
- const wasm_val_t *val,
- own wasm_global_t **ret
-);
-
-/**
- * \brief Sets a global to a new value.
- *
- * This function is the same as #wasm_global_set, except in the case of an error
- * a #wasmtime_error_t is returned.
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_global_set(
- wasm_global_t *global,
- const wasm_val_t *val
-);
-
-/**
- * \brief Wasmtime-specific function to instantiate a module.
- *
- * This function is similar to #wasm_instance_new, but with a few tweaks:
- *
- * * An error message can be returned from this function.
- * * The `trap` pointer is required to not be NULL.
- *
- * The states of return values from this function are similar to
- * #wasmtime_func_call where an error can be returned meaning something like a
- * link error in this context. A trap can be returned (meaning no error or
- * instance is returned), or an instance can be returned (meaning no error or
- * trap is returned).
- *
- * This function does not take ownership of any of its arguments, but all return
- * values are owned by the caller.
- *
- * See #wasm_instance_new for information about how to fill in the `imports`
- * array.
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_instance_new(
- wasm_store_t *store,
- const wasm_module_t *module,
- const wasm_extern_vec_t* imports,
- own wasm_instance_t **instance,
- own wasm_trap_t **trap
-);
-
-/**
- * \brief Wasmtime-specific function to compile a module.
- *
- * This function will compile a WebAssembly binary into an owned #wasm_module_t.
- * This performs the same as #wasm_module_new except that it returns a
- * #wasmtime_error_t type to get richer error information.
- *
- * On success the returned #wasmtime_error_t is `NULL` and the `ret` pointer is
- * filled in with a #wasm_module_t. On failure the #wasmtime_error_t is
- * non-`NULL` and the `ret` pointer is unmodified.
- *
- * This function does not take ownership of any of its arguments, but the
- * returned error and module are owned by the caller.
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_module_new(
- wasm_engine_t *engine,
- const wasm_byte_vec_t *binary,
- own wasm_module_t **ret
-);
-
-/**
- * \brief Wasmtime-specific function to validate a module.
- *
- * This function will validate the provided byte sequence to determine if it is
- * a valid WebAssembly binary. This function performs the same as
- * #wasm_module_validate except that it returns a #wasmtime_error_t which
- * contains an error message if validation fails.
- *
- * This function does not take ownership of its arguments but the caller is
- * expected to deallocate the returned error if it is non-`NULL`.
- *
- * If the binary validates then `NULL` is returned, otherwise the error returned
- * describes why the binary did not validate.
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_module_validate(
- wasm_store_t *store,
- const wasm_byte_vec_t *binary
-);
-
-
-/**
- * \brief Creates a new host-defined wasm table.
- *
- * This function is the same as #wasm_table_new except that it's specialized for
- * funcref tables by taking a `wasm_func_t` initialization value. Additionally
- * it returns errors via #wasmtime_error_t.
- *
- * This function does not take ownership of any of its parameters, but yields
- * ownership of returned values (the table and error).
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_funcref_table_new(
- wasm_store_t *store,
- const wasm_tabletype_t *element_ty,
- wasm_func_t *init,
- own wasm_table_t **table
-);
-
-/**
- * \brief Gets a value in a table.
- *
- * This function is the same as #wasm_table_get except that it's specialized for
- * funcref tables by returning a `wasm_func_t` value. Additionally a `bool`
- * return value indicates whether the `index` provided was in bounds.
- *
- * This function does not take ownership of any of its parameters, but yields
- * ownership of returned #wasm_func_t.
- */
-WASM_API_EXTERN bool wasmtime_funcref_table_get(
- const wasm_table_t *table,
- wasm_table_size_t index,
- own wasm_func_t **func
-);
-
-/**
- * \brief Sets a value in a table.
- *
- * This function is similar to #wasm_table_set, but has a few differences:
- *
- * * An error is returned through #wasmtime_error_t describing erroneous
- * situations.
- * * The value being set is specialized to #wasm_func_t.
- *
- * This function does not take ownership of any of its parameters, but yields
- * ownership of returned #wasmtime_error_t.
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_funcref_table_set(
- wasm_table_t *table,
- wasm_table_size_t index,
- const wasm_func_t *value
-);
-
-/**
- * \brief Grows a table.
- *
- * This function is similar to #wasm_table_grow, but has a few differences:
- *
- * * An error is returned through #wasmtime_error_t describing erroneous
- * situations.
- * * The initialization value is specialized to #wasm_func_t.
- * * The previous size of the table is returned through `prev_size`.
- *
- * This function does not take ownership of any of its parameters, but yields
- * ownership of returned #wasmtime_error_t.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_funcref_table_grow(
- wasm_table_t *table,
- wasm_table_size_t delta,
- const wasm_func_t *init,
- wasm_table_size_t *prev_size
-);
-
-/**
- * \brief Create a new `externref` value.
- *
- * Creates a new `externref` value wrapping the provided data, and writes it to
- * `valp`.
- *
- * This function does not take an associated finalizer to clean up the data when
- * the reference is reclaimed. If you need a finalizer to clean up the data,
- * then use #wasmtime_externref_new_with_finalizer.
- *
- * Gives ownership of the newly created `externref` value.
- */
-WASM_API_EXTERN void wasmtime_externref_new(own void *data, wasm_val_t *valp);
-
-/**
- * \brief A finalizer for an `externref`'s wrapped data.
- *
- * A finalizer callback to clean up an `externref`'s wrapped data after the
- * `externref` has been reclaimed. This is an opportunity to run destructors,
- * free dynamically allocated memory, close file handles, etc.
- */
-typedef void (*wasmtime_externref_finalizer_t)(void*);
-
-/**
- * \brief Create a new `externref` value with a finalizer.
- *
- * Creates a new `externref` value wrapping the provided data, and writes it to
- * `valp`.
- *
- * When the reference is reclaimed, the wrapped data is cleaned up with the
- * provided finalizer. If you do not need to clean up the wrapped data, then use
- * #wasmtime_externref_new.
- *
- * Gives ownership of the newly created `externref` value.
- */
-WASM_API_EXTERN void wasmtime_externref_new_with_finalizer(
- own void *data,
- wasmtime_externref_finalizer_t finalizer,
- wasm_val_t *valp
-);
-
-/**
- * \brief Get an `externref`'s wrapped data
- *
- * If the given value is a reference to a non-null `externref`, writes the
- * wrapped data that was passed into #wasmtime_externref_new or
- * #wasmtime_externref_new_with_finalizer when creating the given `externref` to
- * `datap`, and returns `true`.
- *
- * If the value is a reference to a null `externref`, writes `NULL` to `datap`
- * and returns `true`.
- *
- * If the given value is not an `externref`, returns `false` and leaves `datap`
- * unmodified.
- *
- * Does not take ownership of `val`. Does not give up ownership of the `void*`
- * data written to `datap`.
- *
- * Both `val` and `datap` must not be `NULL`.
- */
-WASM_API_EXTERN bool wasmtime_externref_data(wasm_val_t* val, void** datap);
-
-/**
- * \brief This function serializes compiled module artifacts
- * as blob data.
- *
- * \param module the module
- * \param ret if the conversion is successful, this byte vector is filled in with
- * the serialized compiled module.
- *
- * \return a non-null error if parsing fails, or returns `NULL`. If parsing
- * fails then `ret` isn't touched.
- *
- * This function does not take ownership of `module`, and the caller is
- * expected to deallocate the returned #wasmtime_error_t and #wasm_byte_vec_t.
- */
-WASM_API_EXTERN own wasmtime_error_t* wasmtime_module_serialize(
- wasm_module_t* module,
- own wasm_byte_vec_t *ret
-);
-
-/**
- * \brief Build a module from serialized data.
- *
- * This function does not take ownership of any of its arguments, but the
- * returned error and module are owned by the caller.
- *
- * This function is not safe to receive arbitrary user input. See the Rust
- * documentation for more information on what inputs are safe to pass in here
- * (e.g. only that of #wasmtime_module_serialize)
- */
-WASM_API_EXTERN own wasmtime_error_t *wasmtime_module_deserialize(
- wasm_engine_t *engine,
- const wasm_byte_vec_t *serialized,
- own wasm_module_t **ret
-);
-
-/**
- * \struct wasm_instancetype_t
- * \brief An opaque object representing the type of a function.
- *
- * \typedef wasm_instancetype_t
- * \brief Convenience alias for #wasm_instancetype_t
- *
- * \struct wasm_instancetype_vec_t
- * \brief A list of #wasm_instancetype_t values.
- *
- * \var wasm_instancetype_vec_t::size
- * \brief Length of this vector.
- *
- * \var wasm_instancetype_vec_t::data
- * \brief Pointer to the base of this vector
- *
- * \typedef wasm_instancetype_vec_t
- * \brief Convenience alias for #wasm_instancetype_vec_t
- *
- * \fn void wasm_instancetype_delete(own wasm_instancetype_t *);
- * \brief Deletes a type.
- *
- * \fn void wasm_instancetype_vec_new_empty(own wasm_instancetype_vec_t *out);
- * \brief Creates an empty vector.
- *
- * See #wasm_byte_vec_new_empty for more information.
- *
- * \fn void wasm_instancetype_vec_new_uninitialized(own wasm_instancetype_vec_t *out, size_t);
- * \brief Creates a vector with the given capacity.
- *
- * See #wasm_byte_vec_new_uninitialized for more information.
- *
- * \fn void wasm_instancetype_vec_new(own wasm_instancetype_vec_t *out, size_t, own wasm_instancetype_t *const[]);
- * \brief Creates a vector with the provided contents.
- *
- * See #wasm_byte_vec_new for more information.
- *
- * \fn void wasm_instancetype_vec_copy(own wasm_instancetype_vec_t *out, const wasm_instancetype_vec_t *)
- * \brief Copies one vector to another
- *
- * See #wasm_byte_vec_copy for more information.
- *
- * \fn void wasm_instancetype_vec_delete(own wasm_instancetype_vec_t *out)
- * \brief Deallocates memory for a vector.
- *
- * See #wasm_byte_vec_delete for more information.
- *
- * \fn own wasm_instancetype_t* wasm_instancetype_copy(const wasm_instancetype_t *)
- * \brief Creates a new value which matches the provided one.
- *
- * The caller is responsible for deleting the returned value.
- */
-WASM_DECLARE_TYPE(instancetype)
-
-/**
- * \brief Returns the list of exports that this instance type provides.
- *
- * This function does not take ownership of the provided instance type but
- * ownership of `out` is passed to the caller. Note that `out` is treated as
- * uninitialized when passed to this function.
- */
-WASM_API_EXTERN void wasm_instancetype_exports(const wasm_instancetype_t*, own wasm_exporttype_vec_t* out);
-
-/**
- * \brief Converts a #wasm_instancetype_t to a #wasm_externtype_t
- *
- * The returned value is owned by the #wasm_instancetype_t argument and should not
- * be deleted.
- */
-WASM_API_EXTERN wasm_externtype_t* wasm_instancetype_as_externtype(wasm_instancetype_t*);
-
-/**
- * \brief Attempts to convert a #wasm_externtype_t to a #wasm_instancetype_t
- *
- * The returned value is owned by the #wasm_instancetype_t argument and should not
- * be deleted. Returns `NULL` if the provided argument is not a
- * #wasm_instancetype_t.
- */
-WASM_API_EXTERN wasm_instancetype_t* wasm_externtype_as_instancetype(wasm_externtype_t*);
-
-/**
- * \brief Converts a #wasm_instancetype_t to a #wasm_externtype_t
- *
- * The returned value is owned by the #wasm_instancetype_t argument and should not
- * be deleted.
- */
-WASM_API_EXTERN const wasm_externtype_t* wasm_instancetype_as_externtype_const(const wasm_instancetype_t*);
-
-/**
- * \brief Attempts to convert a #wasm_externtype_t to a #wasm_instancetype_t
- *
- * The returned value is owned by the #wasm_instancetype_t argument and should not
- * be deleted. Returns `NULL` if the provided argument is not a
- * #wasm_instancetype_t.
- */
-WASM_API_EXTERN const wasm_instancetype_t* wasm_externtype_as_instancetype_const(const wasm_externtype_t*);
-
-/**
- * \struct wasm_moduletype_t
- * \brief An opaque object representing the type of a function.
- *
- * \typedef wasm_moduletype_t
- * \brief Convenience alias for #wasm_moduletype_t
- *
- * \struct wasm_moduletype_vec_t
- * \brief A list of #wasm_moduletype_t values.
- *
- * \var wasm_moduletype_vec_t::size
- * \brief Length of this vector.
- *
- * \var wasm_moduletype_vec_t::data
- * \brief Pointer to the base of this vector
- *
- * \typedef wasm_moduletype_vec_t
- * \brief Convenience alias for #wasm_moduletype_vec_t
- *
- * \fn void wasm_moduletype_delete(own wasm_moduletype_t *);
- * \brief Deletes a type.
- *
- * \fn void wasm_moduletype_vec_new_empty(own wasm_moduletype_vec_t *out);
- * \brief Creates an empty vector.
- *
- * See #wasm_byte_vec_new_empty for more information.
- *
- * \fn void wasm_moduletype_vec_new_uninitialized(own wasm_moduletype_vec_t *out, size_t);
- * \brief Creates a vector with the given capacity.
- *
- * See #wasm_byte_vec_new_uninitialized for more information.
- *
- * \fn void wasm_moduletype_vec_new(own wasm_moduletype_vec_t *out, size_t, own wasm_moduletype_t *const[]);
- * \brief Creates a vector with the provided contents.
- *
- * See #wasm_byte_vec_new for more information.
- *
- * \fn void wasm_moduletype_vec_copy(own wasm_moduletype_vec_t *out, const wasm_moduletype_vec_t *)
- * \brief Copies one vector to another
- *
- * See #wasm_byte_vec_copy for more information.
- *
- * \fn void wasm_moduletype_vec_delete(own wasm_moduletype_vec_t *out)
- * \brief Deallocates memory for a vector.
- *
- * See #wasm_byte_vec_delete for more information.
- *
- * \fn own wasm_moduletype_t* wasm_moduletype_copy(const wasm_moduletype_t *)
- * \brief Creates a new value which matches the provided one.
- *
- * The caller is responsible for deleting the returned value.
- */
-WASM_DECLARE_TYPE(moduletype)
-
-/**
- * \brief Returns the list of imports that this module type requires.
- *
- * This function does not take ownership of the provided module type but
- * ownership of `out` is passed to the caller. Note that `out` is treated as
- * uninitialized when passed to this function.
- */
-WASM_API_EXTERN void wasm_moduletype_imports(const wasm_moduletype_t*, own wasm_importtype_vec_t* out);
-
-/**
- * \brief Returns the list of exports that this module type provides.
- *
- * This function does not take ownership of the provided module type but
- * ownership of `out` is passed to the caller. Note that `out` is treated as
- * uninitialized when passed to this function.
- */
-WASM_API_EXTERN void wasm_moduletype_exports(const wasm_moduletype_t*, own wasm_exporttype_vec_t* out);
-
-/**
- * \brief Converts a #wasm_moduletype_t to a #wasm_externtype_t
- *
- * The returned value is owned by the #wasm_moduletype_t argument and should not
- * be deleted.
- */
-WASM_API_EXTERN wasm_externtype_t* wasm_moduletype_as_externtype(wasm_moduletype_t*);
-
-/**
- * \brief Attempts to convert a #wasm_externtype_t to a #wasm_moduletype_t
- *
- * The returned value is owned by the #wasm_moduletype_t argument and should not
- * be deleted. Returns `NULL` if the provided argument is not a
- * #wasm_moduletype_t.
- */
-WASM_API_EXTERN wasm_moduletype_t* wasm_externtype_as_moduletype(wasm_externtype_t*);
-
-/**
- * \brief Converts a #wasm_moduletype_t to a #wasm_externtype_t
- *
- * The returned value is owned by the #wasm_moduletype_t argument and should not
- * be deleted.
- */
-WASM_API_EXTERN const wasm_externtype_t* wasm_moduletype_as_externtype_const(const wasm_moduletype_t*);
-
-/**
- * \brief Attempts to convert a #wasm_externtype_t to a #wasm_moduletype_t
- *
- * The returned value is owned by the #wasm_moduletype_t argument and should not
- * be deleted. Returns `NULL` if the provided argument is not a
- * #wasm_moduletype_t.
- */
-WASM_API_EXTERN const wasm_moduletype_t* wasm_externtype_as_moduletype_const(const wasm_externtype_t*);
-
-/**
- * \brief Converts a #wasm_module_t to #wasm_extern_t.
- *
- * The returned #wasm_extern_t is owned by the #wasm_module_t argument. Callers
- * should not delete the returned value, and it only lives as long as the
- * #wasm_module_t argument.
- */
-WASM_API_EXTERN wasm_extern_t* wasm_module_as_extern(wasm_module_t*);
-
-/**
- * \brief Converts a #wasm_extern_t to #wasm_module_t.
- *
- * The returned #wasm_module_t is owned by the #wasm_extern_t argument. Callers
- * should not delete the returned value, and it only lives as long as the
- * #wasm_extern_t argument.
- *
- * If the #wasm_extern_t argument isn't a #wasm_module_t then `NULL` is returned.
- */
-WASM_API_EXTERN wasm_module_t* wasm_extern_as_module(wasm_extern_t*);
-
-/**
- * \brief Converts a #wasm_extern_t to #wasm_instance_t.
- *
- * The returned #wasm_instance_t is owned by the #wasm_extern_t argument. Callers
- * should not delete the returned value, and it only lives as long as the
- * #wasm_extern_t argument.
- */
-WASM_API_EXTERN const wasm_module_t* wasm_extern_as_module_const(const wasm_extern_t*);
-
-/**
- * \brief Converts a #wasm_instance_t to #wasm_extern_t.
- *
- * The returned #wasm_extern_t is owned by the #wasm_instance_t argument. Callers
- * should not delete the returned value, and it only lives as long as the
- * #wasm_instance_t argument.
- */
-WASM_API_EXTERN wasm_extern_t* wasm_instance_as_extern(wasm_instance_t*);
-
-/**
- * \brief Converts a #wasm_extern_t to #wasm_instance_t.
- *
- * The returned #wasm_instance_t is owned by the #wasm_extern_t argument. Callers
- * should not delete the returned value, and it only lives as long as the
- * #wasm_extern_t argument.
- *
- * If the #wasm_extern_t argument isn't a #wasm_instance_t then `NULL` is returned.
- */
-WASM_API_EXTERN wasm_instance_t* wasm_extern_as_instance(wasm_extern_t*);
-
-/**
- * \brief Converts a #wasm_extern_t to #wasm_instance_t.
- *
- * The returned #wasm_instance_t is owned by the #wasm_extern_t argument. Callers
- * should not delete the returned value, and it only lives as long as the
- * #wasm_extern_t argument.
- */
-WASM_API_EXTERN const wasm_instance_t* wasm_extern_as_instance_const(const wasm_extern_t*);
-
-/**
- * \brief Returns the type of this instance.
- *
- * The returned #wasm_instancetype_t is expected to be deallocated by the caller.
- */
-WASM_API_EXTERN own wasm_instancetype_t* wasm_instance_type(const wasm_instance_t*);
-
-/**
- * \brief Returns the type of this module.
- *
- * The returned #wasm_moduletype_t is expected to be deallocated by the caller.
- */
-WASM_API_EXTERN own wasm_moduletype_t* wasm_module_type(const wasm_module_t*);
-
-/**
- * \brief Value of #wasm_externkind_enum corresponding to a wasm module.
- */
-#define WASM_EXTERN_MODULE 4
-
-/**
- * \brief Value of #wasm_externkind_enum corresponding to a wasm instance.
- */
-#define WASM_EXTERN_INSTANCE 5
-
-#undef own
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_API_H
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/linux-x86_64/empty.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/linux-x86_64/empty.go
deleted file mode 100644
index da5524747..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/linux-x86_64/empty.go
+++ /dev/null
@@ -1 +0,0 @@
-package linux_x86_64
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/linux-x86_64/libwasmtime.a b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/linux-x86_64/libwasmtime.a
deleted file mode 100644
index 67b3c8187..000000000
Binary files a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/linux-x86_64/libwasmtime.a and /dev/null differ
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/macos-x86_64/empty.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/macos-x86_64/empty.go
deleted file mode 100644
index 0aa17a7b5..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/macos-x86_64/empty.go
+++ /dev/null
@@ -1 +0,0 @@
-package macos_x86_64
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/macos-x86_64/libwasmtime.a b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/macos-x86_64/libwasmtime.a
deleted file mode 100644
index ab859f2d7..000000000
Binary files a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/macos-x86_64/libwasmtime.a and /dev/null differ
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/windows-x86_64/empty.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/windows-x86_64/empty.go
deleted file mode 100644
index 0cd04cf85..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/windows-x86_64/empty.go
+++ /dev/null
@@ -1 +0,0 @@
-package windows_x86_64
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/windows-x86_64/libwasmtime.a b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/windows-x86_64/libwasmtime.a
deleted file mode 100644
index e821f2014..000000000
Binary files a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/build/windows-x86_64/libwasmtime.a and /dev/null differ
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/config.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/config.go
deleted file mode 100644
index 96f96e897..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/config.go
+++ /dev/null
@@ -1,181 +0,0 @@
-package wasmtime
-
-// #include
-// #include
-// #include
-import "C"
-import (
- "runtime"
- "unsafe"
-)
-
-// Strategy is the compilation strategies for wasmtime
-type Strategy C.wasmtime_strategy_t
-
-const (
- // StrategyAuto will let wasmtime automatically pick an appropriate compilation strategy
- StrategyAuto Strategy = C.WASMTIME_STRATEGY_AUTO
- // StrategyCranelift will force wasmtime to use the Cranelift backend
- StrategyCranelift Strategy = C.WASMTIME_STRATEGY_CRANELIFT
- // StrategyLightbeam will force wasmtime to use the lightbeam backend
- StrategyLightbeam Strategy = C.WASMTIME_STRATEGY_LIGHTBEAM
-)
-
-// OptLevel decides what degree of optimization wasmtime will perform on generated machine code
-type OptLevel C.wasmtime_opt_level_t
-
-const (
- // OptLevelNone will perform no optimizations
- OptLevelNone OptLevel = C.WASMTIME_OPT_LEVEL_NONE
- // OptLevelSpeed will optimize machine code to be as fast as possible
- OptLevelSpeed OptLevel = C.WASMTIME_OPT_LEVEL_SPEED
- // OptLevelSpeedAndSize will optimize machine code for speed, but also optimize
- // to be small, sometimes at the cost of speed.
- OptLevelSpeedAndSize OptLevel = C.WASMTIME_OPT_LEVEL_SPEED_AND_SIZE
-)
-
-// ProfilingStrategy decides what sort of profiling to enable, if any.
-type ProfilingStrategy C.wasmtime_profiling_strategy_t
-
-const (
- // ProfilingStrategyNone means no profiler will be used
- ProfilingStrategyNone ProfilingStrategy = C.WASMTIME_PROFILING_STRATEGY_NONE
- // ProfilingStrategyJitdump will use the "jitdump" linux support
- ProfilingStrategyJitdump ProfilingStrategy = C.WASMTIME_PROFILING_STRATEGY_JITDUMP
-)
-
-// Config holds options used to create an Engine and customize its behavior.
-type Config struct {
- _ptr *C.wasm_config_t
-}
-
-// NewConfig creates a new `Config` with all default options configured.
-func NewConfig() *Config {
- config := &Config{_ptr: C.wasm_config_new()}
- runtime.SetFinalizer(config, func(config *Config) {
- C.wasm_config_delete(config._ptr)
- })
- return config
-}
-
-// SetDebugInfo configures whether dwarf debug information for JIT code is enabled
-func (cfg *Config) SetDebugInfo(enabled bool) {
- C.wasmtime_config_debug_info_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmThreads configures whether the wasm threads proposal is enabled
-func (cfg *Config) SetWasmThreads(enabled bool) {
- C.wasmtime_config_wasm_threads_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmReferenceTypes configures whether the wasm reference types proposal is enabled
-func (cfg *Config) SetWasmReferenceTypes(enabled bool) {
- C.wasmtime_config_wasm_reference_types_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmSIMD configures whether the wasm SIMD proposal is enabled
-func (cfg *Config) SetWasmSIMD(enabled bool) {
- C.wasmtime_config_wasm_simd_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmBulkMemory configures whether the wasm bulk memory proposal is enabled
-func (cfg *Config) SetWasmBulkMemory(enabled bool) {
- C.wasmtime_config_wasm_bulk_memory_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmMultiValue configures whether the wasm multi value proposal is enabled
-func (cfg *Config) SetWasmMultiValue(enabled bool) {
- C.wasmtime_config_wasm_multi_value_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmModuleLinking configures whether the wasm module linking proposal is enabled
-func (cfg *Config) SetWasmModuleLinking(enabled bool) {
- C.wasmtime_config_wasm_module_linking_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetStrategy configures what compilation strategy is used to compile wasm code
-func (cfg *Config) SetStrategy(strat Strategy) error {
- err := C.wasmtime_config_strategy_set(cfg.ptr(), C.wasmtime_strategy_t(strat))
- runtime.KeepAlive(cfg)
- if err != nil {
- return mkError(err)
- }
- return nil
-}
-
-// SetCraneliftDebugVerifier configures whether the cranelift debug verifier will be active when
-// cranelift is used to compile wasm code.
-func (cfg *Config) SetCraneliftDebugVerifier(enabled bool) {
- C.wasmtime_config_cranelift_debug_verifier_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetCraneliftOptLevel configures the cranelift optimization level for generated code
-func (cfg *Config) SetCraneliftOptLevel(level OptLevel) {
- C.wasmtime_config_cranelift_opt_level_set(cfg.ptr(), C.wasmtime_opt_level_t(level))
- runtime.KeepAlive(cfg)
-}
-
-// SetProfiler configures what profiler strategy to use for generated code
-func (cfg *Config) SetProfiler(profiler ProfilingStrategy) error {
- err := C.wasmtime_config_profiler_set(cfg.ptr(), C.wasmtime_profiling_strategy_t(profiler))
- runtime.KeepAlive(cfg)
- if err != nil {
- return mkError(err)
- }
- return nil
-}
-
-// CacheConfigLoadDefault enables compiled code caching for this `Config` using the default settings
-// configuration can be found.
-//
-// For more information about caching see
-// https://bytecodealliance.github.io/wasmtime/cli-cache.html
-func (cfg *Config) CacheConfigLoadDefault() error {
- err := C.wasmtime_config_cache_config_load(cfg.ptr(), nil)
- runtime.KeepAlive(cfg)
- if err != nil {
- return mkError(err)
- }
- return nil
-}
-
-// CacheConfigLoad enables compiled code caching for this `Config` using the settings specified
-// in the configuration file `path`.
-//
-// For more information about caching and configuration options see
-// https://bytecodealliance.github.io/wasmtime/cli-cache.html
-func (cfg *Config) CacheConfigLoad(path string) error {
- cstr := C.CString(path)
- err := C.wasmtime_config_cache_config_load(cfg.ptr(), cstr)
- C.free(unsafe.Pointer(cstr))
- runtime.KeepAlive(cfg)
- if err != nil {
- return mkError(err)
- }
- return nil
-}
-
-// SetInterruptable configures whether generated wasm code can be interrupted via interrupt
-// handles.
-func (cfg *Config) SetInterruptable(interruptable bool) {
- C.wasmtime_config_interruptable_set(cfg.ptr(), C.bool(interruptable))
- runtime.KeepAlive(cfg)
-}
-
-// See comments in `ffi.go` for what's going on here
-func (cfg *Config) ptr() *C.wasm_config_t {
- ret := cfg._ptr
- maybeGC()
- if ret == nil {
- panic("Config has already been used up")
- }
- return ret
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/doc.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/doc.go
deleted file mode 100644
index ef44184bc..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/doc.go
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
-Package wasmtime is a WebAssembly runtime for Go powered by Wasmtime.
-
-This package provides everything necessary to compile and execute WebAssembly
-modules as part of a Go program. Wasmtime is a JIT compiler written in Rust,
-and can be found at https://github.com/bytecodealliance/wasmtime. This package
-is a binding to the C API provided by Wasmtime.
-
-The API of this Go package is intended to mirror the Rust API
-(https://docs.rs/wasmtime) relatively closely, so if you find something is
-under-documented here then you may have luck consulting the Rust documentation
-as well. As always though feel free to file any issues at
-https://github.com/bytecodealliance/wasmtime-go/issues/new.
-
-It's also worth pointing out that the authors of this package up to this point
-primarily work in Rust, so if you've got suggestions of how to make this package
-more idiomatic for Go we'd love to hear your thoughts! */
-package wasmtime
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/engine.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/engine.go
deleted file mode 100644
index 47daf8667..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/engine.go
+++ /dev/null
@@ -1,44 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// Engine is an instance of a wasmtime engine which is used to create a `Store`.
-//
-// Engines are a form of global configuration for wasm compilations and modules
-// and such.
-type Engine struct {
- _ptr *C.wasm_engine_t
-}
-
-// NewEngine creates a new `Engine` with default configuration.
-func NewEngine() *Engine {
- engine := &Engine{_ptr: C.wasm_engine_new()}
- runtime.SetFinalizer(engine, func(engine *Engine) {
- C.wasm_engine_delete(engine._ptr)
- })
- return engine
-}
-
-// NewEngineWithConfig creates a new `Engine` with the `Config` provided
-//
-// Note that once a `Config` is passed to this method it cannot be used again.
-func NewEngineWithConfig(config *Config) *Engine {
- if config.ptr() == nil {
- panic("config already used")
- }
- engine := &Engine{_ptr: C.wasm_engine_new_with_config(config.ptr())}
- runtime.SetFinalizer(config, nil)
- config._ptr = nil
- runtime.SetFinalizer(engine, func(engine *Engine) {
- C.wasm_engine_delete(engine._ptr)
- })
- return engine
-}
-
-func (engine *Engine) ptr() *C.wasm_engine_t {
- ret := engine._ptr
- maybeGC()
- return ret
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/error.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/error.go
deleted file mode 100644
index 026b9410e..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/error.go
+++ /dev/null
@@ -1,32 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-type Error struct {
- _ptr *C.wasmtime_error_t
-}
-
-func mkError(ptr *C.wasmtime_error_t) *Error {
- err := &Error{_ptr: ptr}
- runtime.SetFinalizer(err, func(err *Error) {
- C.wasmtime_error_delete(err._ptr)
- })
- return err
-}
-
-func (e *Error) ptr() *C.wasmtime_error_t {
- ret := e._ptr
- maybeGC()
- return ret
-}
-
-func (e *Error) Error() string {
- message := C.wasm_byte_vec_t{}
- C.wasmtime_error_message(e.ptr(), &message)
- ret := C.GoStringN(message.data, C.int(message.size))
- runtime.KeepAlive(e)
- C.wasm_byte_vec_delete(&message)
- return ret
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/exporttype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/exporttype.go
deleted file mode 100644
index 393e23099..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/exporttype.go
+++ /dev/null
@@ -1,66 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// ExportType is one of the exports component.
-// A module defines a set of exports that become accessible to the host environment once the module has been instantiated.
-type ExportType struct {
- _ptr *C.wasm_exporttype_t
- _owner interface{}
-}
-
-// NewExportType creates a new `ExportType` with the `name` and the type provided.
-func NewExportType(name string, ty AsExternType) *ExportType {
- nameVec := stringToByteVec(name)
-
- // Creating an export type requires taking ownership, so create a copy
- // so we don't have to invalidate pointers here. Shouldn't be too
- // costly in theory anyway.
- extern := ty.AsExternType()
- ptr := C.wasm_externtype_copy(extern.ptr())
- runtime.KeepAlive(extern)
-
- // And once we've got all that create the export type!
- exportPtr := C.wasm_exporttype_new(&nameVec, ptr)
-
- return mkExportType(exportPtr, nil)
-}
-
-func mkExportType(ptr *C.wasm_exporttype_t, owner interface{}) *ExportType {
- exporttype := &ExportType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(exporttype, func(exporttype *ExportType) {
- C.wasm_exporttype_delete(exporttype._ptr)
- })
- }
- return exporttype
-}
-
-func (ty *ExportType) ptr() *C.wasm_exporttype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *ExportType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// Name returns the name in the module this export type is exporting
-func (ty *ExportType) Name() string {
- ptr := C.wasm_exporttype_name(ty.ptr())
- ret := C.GoStringN(ptr.data, C.int(ptr.size))
- runtime.KeepAlive(ty)
- return ret
-}
-
-// Type returns the type of item this export type expects
-func (ty *ExportType) Type() *ExternType {
- ptr := C.wasm_exporttype_type(ty.ptr())
- return mkExternType(ptr, ty.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/extern.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/extern.go
deleted file mode 100644
index 9aee69772..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/extern.go
+++ /dev/null
@@ -1,116 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// Extern is an external value, which is the runtime representation of an entity that can be imported or exported.
-// It is an address denoting either a function instance, table instance, memory instance, or global instances in the shared store.
-// Read more in [spec](https://webassembly.github.io/spec/core/exec/runtime.html#external-values)
-//
-type Extern struct {
- _ptr *C.wasm_extern_t
- _owner interface{}
- freelist *freeList
-}
-
-// AsExtern is an interface for all types which can be imported or exported as an Extern
-type AsExtern interface {
- AsExtern() *Extern
-}
-
-func mkExtern(ptr *C.wasm_extern_t, freelist *freeList, owner interface{}) *Extern {
- f := &Extern{_ptr: ptr, _owner: owner, freelist: freelist}
- if owner == nil {
- runtime.SetFinalizer(f, func(f *Extern) {
- f.freelist.lock.Lock()
- defer f.freelist.lock.Unlock()
- f.freelist.externs = append(f.freelist.externs, f._ptr)
- })
- }
- return f
-}
-
-func (e *Extern) ptr() *C.wasm_extern_t {
- ret := e._ptr
- maybeGC()
- return ret
-}
-
-func (e *Extern) owner() interface{} {
- if e._owner != nil {
- return e._owner
- }
- return e
-}
-
-// Type returns the type of this export
-func (e *Extern) Type() *ExternType {
- ptr := C.wasm_extern_type(e.ptr())
- runtime.KeepAlive(e)
- return mkExternType(ptr, nil)
-}
-
-// Func returns a Func if this export is a function or nil otherwise
-func (e *Extern) Func() *Func {
- ret := C.wasm_extern_as_func(e.ptr())
- if ret == nil {
- return nil
- }
-
- return mkFunc(ret, e.freelist, e.owner())
-}
-
-// Global returns a Global if this export is a global or nil otherwise
-func (e *Extern) Global() *Global {
- ret := C.wasm_extern_as_global(e.ptr())
- if ret == nil {
- return nil
- }
-
- return mkGlobal(ret, e.freelist, e.owner())
-}
-
-// Memory returns a Memory if this export is a memory or nil otherwise
-func (e *Extern) Memory() *Memory {
- ret := C.wasm_extern_as_memory(e.ptr())
- if ret == nil {
- return nil
- }
-
- return mkMemory(ret, e.freelist, e.owner())
-}
-
-// Table returns a Table if this export is a table or nil otherwise
-func (e *Extern) Table() *Table {
- ret := C.wasm_extern_as_table(e.ptr())
- if ret == nil {
- return nil
- }
-
- return mkTable(ret, e.freelist, e.owner())
-}
-
-// Module returns a Module if this export is a module or nil otherwise
-func (e *Extern) Module() *Module {
- ret := C.wasm_extern_as_module(e.ptr())
- if ret == nil {
- return nil
- }
-
- return mkModule(ret, e.owner())
-}
-
-// Instance returns a Instance if this export is a module or nil otherwise
-func (e *Extern) Instance() *Instance {
- ret := C.wasm_extern_as_instance(e.ptr())
- if ret == nil {
- return nil
- }
-
- return mkInstance(ret, e.freelist, e.owner())
-}
-
-func (e *Extern) AsExtern() *Extern {
- return e
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/externtype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/externtype.go
deleted file mode 100644
index 622904c55..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/externtype.go
+++ /dev/null
@@ -1,84 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// ExternType means one of external types which classify imports and external values with their respective types.
-type ExternType struct {
- _ptr *C.wasm_externtype_t
- _owner interface{}
-}
-
-// AsExternType is an interface for all types which can be ExternType.
-type AsExternType interface {
- AsExternType() *ExternType
-}
-
-func mkExternType(ptr *C.wasm_externtype_t, owner interface{}) *ExternType {
- externtype := &ExternType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(externtype, func(externtype *ExternType) {
- C.wasm_externtype_delete(externtype._ptr)
- })
- }
- return externtype
-}
-
-func (ty *ExternType) ptr() *C.wasm_externtype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *ExternType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// FuncType returns the underlying `FuncType` for this `ExternType` if it's a function
-// type. Otherwise returns `nil`.
-func (ty *ExternType) FuncType() *FuncType {
- ptr := C.wasm_externtype_as_functype(ty.ptr())
- if ptr == nil {
- return nil
- }
- return mkFuncType(ptr, ty.owner())
-}
-
-// GlobalType returns the underlying `GlobalType` for this `ExternType` if it's a *global* type.
-// Otherwise returns `nil`.
-func (ty *ExternType) GlobalType() *GlobalType {
- ptr := C.wasm_externtype_as_globaltype(ty.ptr())
- if ptr == nil {
- return nil
- }
- return mkGlobalType(ptr, ty.owner())
-}
-
-// TableType returns the underlying `TableType` for this `ExternType` if it's a *table* type.
-// Otherwise returns `nil`.
-func (ty *ExternType) TableType() *TableType {
- ptr := C.wasm_externtype_as_tabletype(ty.ptr())
- if ptr == nil {
- return nil
- }
- return mkTableType(ptr, ty.owner())
-}
-
-// MemoryType returns the underlying `MemoryType` for this `ExternType` if it's a *memory* type.
-// Otherwise returns `nil`.
-func (ty *ExternType) MemoryType() *MemoryType {
- ptr := C.wasm_externtype_as_memorytype(ty.ptr())
- if ptr == nil {
- return nil
- }
- return mkMemoryType(ptr, ty.owner())
-}
-
-// AsExternType returns this type itself
-func (ty *ExternType) AsExternType() *ExternType {
- return ty
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/ffi.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/ffi.go
deleted file mode 100644
index 0aa6f4cf8..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/ffi.go
+++ /dev/null
@@ -1,54 +0,0 @@
-package wasmtime
-
-// #cgo CFLAGS:-I${SRCDIR}/build/include
-// #cgo !windows LDFLAGS:-lwasmtime -lm -ldl
-// #cgo windows CFLAGS:-DWASM_API_EXTERN= -DWASI_API_EXTERN=
-// #cgo windows LDFLAGS:-lwasmtime -luserenv -lole32 -lntdll -lws2_32 -lkernel32 -lbcrypt
-// #cgo linux,amd64 LDFLAGS:-L${SRCDIR}/build/linux-x86_64
-// #cgo darwin,amd64 LDFLAGS:-L${SRCDIR}/build/macos-x86_64
-// #cgo windows,amd64 LDFLAGS:-L${SRCDIR}/build/windows-x86_64
-// #include
-import "C"
-import "runtime"
-import "unsafe"
-
-// # What's up with `ptr()` methods?
-//
-// We use `runtime.SetFinalizer` to free all objects we allocate from C. This
-// is intended to make usage of the API much simpler since you don't have to
-// close/free anything. The tricky part here though is laid out in
-// `runtime.SetFinalizer`'s documentation which is that if you read a
-// non-gc-value (like a C pointer) from a GC object then after the value is
-// read the GC value might get garbage collected. This is quite bad for us
-// because the garbage collection will free the C pointer, making the C pointer
-// actually invalid.
-//
-// The solution is to add `runtime.KeepAlive` calls after C function calls to
-// ensure that the GC object lives at least as long as the C function call
-// itself. This is naturally quite error-prone, so the goal here with `ptr()`
-// methods is to make us a bit more resilient to these sorts of errors and
-// expose segfaults during development.
-//
-// Each `ptr()` method has the basic structure of doing these steps:
-//
-// 1. First it reads the pointer value from the GC object
-// 2. Next it conditionally calls `runtime.GC()`, depending on build flags
-// 3. Finally it returns the original pointer value
-//
-// The goal here is to as aggressively as we can collect GC objects when
-// testing and trigger finalizers as frequently as we can. This naturally
-// slows things down quite a bit, so conditional compilation (with the `debug`
-// tag) is used to enable this. Our CI runs tests with `-tag debug` to make
-// sure this is at least run somewhere.
-//
-// If anyone else has a better idea of what to handle all this it would be very
-// much appreciated :)
-
-// Convert a Go string into an owned `wasm_byte_vec_t`
-func stringToByteVec(s string) C.wasm_byte_vec_t {
- vec := C.wasm_byte_vec_t{}
- C.wasm_byte_vec_new_uninitialized(&vec, C.size_t(len(s)))
- C.memcpy(unsafe.Pointer(vec.data), unsafe.Pointer(C._GoStringPtr(s)), vec.size)
- runtime.KeepAlive(s)
- return vec
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/freelist.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/freelist.go
deleted file mode 100644
index 54028335d..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/freelist.go
+++ /dev/null
@@ -1,123 +0,0 @@
-package wasmtime
-
-// #include
-// #include
-import "C"
-import (
- "runtime"
- "sync"
-)
-
-// A structure used to defer deletion of C API objects to the main thread.
-//
-// The C API is not threadsafe and objects must be destroyed on the original
-// thread that they came from. We also, however, want to use `SetFinalizer` to
-// free objects because it's vastly more convenient than explicit free
-// methods. The `SetFinalizer` routine will spin up a goroutine for finalizers
-// that might run concurrently, however. To fix this we use this structure to
-// collect pointers which need to be free'd.
-//
-// When a `SetFinalizer` finalizer runs it will enqueue a pointer inside of
-// this freelist. This list is then periodically checked to clear out any
-// pointers on the main thread with the store. Pointers contained here are
-// basically those all connected to a `wasm_store_t`.
-//
-// This isn't really a great solution but at this time I can't really think
-// of anything else unfortunately. I'm hoping that we can continue to optimize
-// this over time if necessary, but otherwise this should at least fix crashes
-// seen on CI and ensure that everything is free'd correctly.
-type freeList struct {
- // The freelist can be modified from both the main thread with a store
- // and from finalizers, so because that can happen concurrently we
- // protect the arrays below with a lock.
- lock sync.Mutex
-
- // All the various kinds of pointers that we'll store to get deallocated
- // here.
-
- stores []*C.wasm_store_t
- memories []*C.wasm_memory_t
- funcs []*C.wasm_func_t
- tables []*C.wasm_table_t
- globals []*C.wasm_global_t
- instances []*C.wasm_instance_t
- externs []*C.wasm_extern_t
- linkers []*C.wasmtime_linker_t
- wasiInstances []*C.wasi_instance_t
- externVecs []*C.wasm_extern_vec_t
- vals []*C.wasm_val_t
-}
-
-func newFreeList() *freeList {
- // freelists have their own finalizer which clears out all the contents
- // once the freelist itself has gone away. If this happens that should
- // be safe to do because no other live objects have access to the
- // freelist, so whatever thread is running the freelist is "the thread
- // which own things" so it's safe to clear everything out, we know that
- // no other concurrent accesses will be happening.
- ret := &freeList{}
- runtime.SetFinalizer(ret, func(f *freeList) { f.clear() })
- return ret
-}
-
-// Clears out this freelist, actually deleting all pointers that are contained
-// within it.
-func (f *freeList) clear() {
- f.lock.Lock()
- defer f.lock.Unlock()
-
- for _, p := range f.memories {
- C.wasm_memory_delete(p)
- }
- f.memories = nil
-
- for _, p := range f.stores {
- C.wasm_store_delete(p)
- }
- f.stores = nil
-
- for _, p := range f.funcs {
- C.wasm_func_delete(p)
- }
- f.funcs = nil
-
- for _, p := range f.tables {
- C.wasm_table_delete(p)
- }
- f.tables = nil
-
- for _, p := range f.globals {
- C.wasm_global_delete(p)
- }
- f.globals = nil
-
- for _, p := range f.instances {
- C.wasm_instance_delete(p)
- }
- f.instances = nil
-
- for _, p := range f.externs {
- C.wasm_extern_delete(p)
- }
- f.externs = nil
-
- for _, p := range f.linkers {
- C.wasmtime_linker_delete(p)
- }
- f.linkers = nil
-
- for _, p := range f.wasiInstances {
- C.wasi_instance_delete(p)
- }
- f.wasiInstances = nil
-
- for _, p := range f.externVecs {
- C.wasm_extern_vec_delete(p)
- }
- f.externVecs = nil
-
- for _, p := range f.vals {
- C.wasm_val_delete(p)
- }
- f.vals = nil
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/func.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/func.go
deleted file mode 100644
index d4a5c20ce..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/func.go
+++ /dev/null
@@ -1,620 +0,0 @@
-package wasmtime
-
-// #include "shims.h"
-import "C"
-import (
- "errors"
- "reflect"
- "runtime"
- "sync"
- "unsafe"
-)
-
-// Func is a function instance, which is the runtime representation of a function.
-// It effectively is a closure of the original function over the runtime module instance of its originating module.
-// The module instance is used to resolve references to other definitions during execution of the function.
-// Read more in [spec](https://webassembly.github.io/spec/core/exec/runtime.html#function-instances)
-type Func struct {
- _ptr *C.wasm_func_t
- _owner interface{}
- freelist *freeList
-}
-
-// TODO
-type Caller struct {
- ptr *C.wasmtime_caller_t
- freelist *freeList
-}
-
-// Note that `newMapEntry` and `wrapMapEntry` here need to be careful to not
-// close over any state that can retain the `freelist` or other wasmtime
-// objects. Otherwise that'll create a cycle between the Rust and Go heaps
-// which can't be garbage collected.
-type newMapEntry struct {
- callback func(*Caller, []Val) ([]Val, *Trap)
- results []*ValType
- caller_id C.size_t
-}
-
-type wrapMapEntry struct {
- callback reflect.Value
- caller_id C.size_t
-}
-
-type callerState struct {
- freelist *freeList
- lastPanic interface{}
- cnt uint
-}
-
-var gLock sync.Mutex
-var gNewMap = make(map[int]newMapEntry)
-var gNewMapSlab slab
-var gWrapMap = make(map[int]wrapMapEntry)
-var gWrapMapSlab slab
-var gCallerState = make(map[C.size_t]*callerState)
-
-// NewFunc creates a new `Func` with the given `ty` which, when called, will call `f`
-//
-// The `ty` given is the wasm type signature of the `Func` to create. When called
-// the `f` callback receives two arguments. The first is a `Caller` to learn
-// information about the calling context and the second is a list of arguments
-// represented as a `Val`. The parameters are guaranteed to match the parameters
-// types specified in `ty`.
-//
-// The `f` callback is expected to produce one of two values. Results can be
-// returned as an array of `[]Val`. The number and types of these results much
-// match the `ty` given, otherwise the program will panic. The `f` callback can
-// also produce a trap which will trigger trap unwinding in wasm, and the trap
-// will be returned to the original caller.
-//
-// If the `f` callback panics then the panic will be propagated to the caller
-// as well.
-func NewFunc(
- store *Store,
- ty *FuncType,
- f func(*Caller, []Val) ([]Val, *Trap),
-) *Func {
- gLock.Lock()
- idx := gNewMapSlab.allocate()
- gNewMap[idx] = newMapEntry{
- callback: f,
- results: ty.Results(),
- caller_id: C.size_t(uintptr(unsafe.Pointer(store.freelist))),
- }
- gLock.Unlock()
-
- ptr := C.c_func_new_with_env(
- store.ptr(),
- ty.ptr(),
- C.size_t(idx),
- 0,
- )
- runtime.KeepAlive(store)
- runtime.KeepAlive(ty)
-
- return mkFunc(ptr, store.freelist, nil)
-}
-
-//export goTrampolineNew
-func goTrampolineNew(
- callerPtr *C.wasmtime_caller_t,
- env C.size_t,
- argsPtr *C.wasm_val_vec_t,
- resultsPtr *C.wasm_val_vec_t,
-) *C.wasm_trap_t {
- idx := int(env)
- gLock.Lock()
- entry := gNewMap[idx]
- caller_id := entry.caller_id
- freelist := gCallerState[caller_id].freelist
- gLock.Unlock()
-
- caller := &Caller{ptr: callerPtr, freelist: freelist}
- defer func() { caller.ptr = nil }()
-
- params := make([]Val, int(argsPtr.size))
- var val C.wasm_val_t
- base := unsafe.Pointer(argsPtr.data)
- for i := 0; i < len(params); i++ {
- ptr := (*C.wasm_val_t)(unsafe.Pointer(uintptr(base) + uintptr(i)*unsafe.Sizeof(val)))
- params[i] = mkVal(ptr, freelist)
- }
-
- var results []Val
- var trap *Trap
- var lastPanic interface{}
- func() {
- defer func() { lastPanic = recover() }()
- results, trap = entry.callback(caller, params)
- if trap != nil {
- return
- }
- if len(results) != len(entry.results) {
- panic("callback didn't produce the correct number of results")
- }
- for i, ty := range entry.results {
- if results[i].Kind() != ty.Kind() {
- panic("callback produced wrong type of result")
- }
- }
- }()
- if trap == nil && lastPanic != nil {
- gLock.Lock()
- gCallerState[caller_id].lastPanic = lastPanic
- gLock.Unlock()
- return nil
- }
- if trap != nil {
- runtime.SetFinalizer(trap, nil)
- return trap.ptr()
- }
-
- base = unsafe.Pointer(resultsPtr.data)
- for i := 0; i < len(results); i++ {
- ptr := (*C.wasm_val_t)(unsafe.Pointer(uintptr(base) + uintptr(i)*unsafe.Sizeof(val)))
- C.wasm_val_copy(ptr, results[i].ptr())
- }
- runtime.KeepAlive(results)
- return nil
-}
-
-//export goFinalizeNew
-func goFinalizeNew(env unsafe.Pointer) {
- idx := int(uintptr(env))
- gLock.Lock()
- defer gLock.Unlock()
- delete(gNewMap, idx)
- gNewMapSlab.deallocate(idx)
-}
-
-// WrapFunc wraps a native Go function, `f`, as a wasm `Func`.
-//
-// This function differs from `NewFunc` in that it will determine the type
-// signature of the wasm function given the input value `f`. The `f` value
-// provided must be a Go function. It may take any number of the following
-// types as arguments:
-//
-// `int32` - a wasm `i32`
-//
-// `int64` - a wasm `i64`
-//
-// `float32` - a wasm `f32`
-//
-// `float64` - a wasm `f32`
-//
-// `*Caller` - information about the caller's instance
-//
-// `*Func` - a wasm `funcref`
-//
-// anything else - a wasm `externref`
-//
-// The Go function may return any number of values. It can return any number of
-// primitive wasm values (integers/floats), and the last return value may
-// optionally be `*Trap`. If a `*Trap` returned is `nil` then the other values
-// are returned from the wasm function. Otherwise the `*Trap` is returned and
-// it's considered as if the host function trapped.
-//
-// If the function `f` panics then the panic will be propagated to the caller.
-func WrapFunc(
- store *Store,
- f interface{},
-) *Func {
- // Make sure the `interface{}` passed in was indeed a function
- val := reflect.ValueOf(f)
- ty := val.Type()
- if ty.Kind() != reflect.Func {
- panic("callback provided must be a `func`")
- }
-
- // infer the parameter types, and `*Caller` type is special in the
- // parameters so be sure to case on that as well.
- params := make([]*ValType, 0, ty.NumIn())
- var caller *Caller
- for i := 0; i < ty.NumIn(); i++ {
- paramTy := ty.In(i)
- if paramTy != reflect.TypeOf(caller) {
- params = append(params, typeToValType(paramTy))
- }
- }
-
- // Then infer the result types, where a final `*Trap` result value is
- // also special.
- results := make([]*ValType, 0, ty.NumOut())
- var trap *Trap
- for i := 0; i < ty.NumOut(); i++ {
- resultTy := ty.Out(i)
- if i == ty.NumOut()-1 && resultTy == reflect.TypeOf(trap) {
- continue
- }
- results = append(results, typeToValType(resultTy))
- }
- wasmTy := NewFuncType(params, results)
-
- // Store our `f` callback into the slab for wrapped functions, and now
- // we've got everything necessary to make thw asm handle.
- gLock.Lock()
- idx := gWrapMapSlab.allocate()
- gWrapMap[idx] = wrapMapEntry{
- callback: val,
- caller_id: C.size_t(uintptr(unsafe.Pointer(store.freelist))),
- }
- gLock.Unlock()
-
- ptr := C.c_func_new_with_env(
- store.ptr(),
- wasmTy.ptr(),
- C.size_t(idx),
- 1, // this is `WrapFunc`, not `NewFunc`
- )
- runtime.KeepAlive(store)
- runtime.KeepAlive(wasmTy)
- return mkFunc(ptr, store.freelist, nil)
-}
-
-func typeToValType(ty reflect.Type) *ValType {
- var a int32
- if ty == reflect.TypeOf(a) {
- return NewValType(KindI32)
- }
- var b int64
- if ty == reflect.TypeOf(b) {
- return NewValType(KindI64)
- }
- var c float32
- if ty == reflect.TypeOf(c) {
- return NewValType(KindF32)
- }
- var d float64
- if ty == reflect.TypeOf(d) {
- return NewValType(KindF64)
- }
- var f *Func
- if ty == reflect.TypeOf(f) {
- return NewValType(KindFuncref)
- }
- return NewValType(KindExternref)
-}
-
-//export goTrampolineWrap
-func goTrampolineWrap(
- callerPtr *C.wasmtime_caller_t,
- env C.size_t,
- argsPtr *C.wasm_val_vec_t,
- resultsPtr *C.wasm_val_vec_t,
-) *C.wasm_trap_t {
- // Convert all our parameters to `[]reflect.Value`, taking special care
- // for `*Caller` but otherwise reading everything through `Val`.
- idx := int(env)
- gLock.Lock()
- entry := gWrapMap[idx]
- caller_id := entry.caller_id
- freelist := gCallerState[caller_id].freelist
- gLock.Unlock()
-
- // Wrap our `Caller` argument in case it's needed
- caller := &Caller{ptr: callerPtr, freelist: freelist}
- defer func() { caller.ptr = nil }()
-
- ty := entry.callback.Type()
- params := make([]reflect.Value, ty.NumIn())
- base := unsafe.Pointer(argsPtr.data)
- var raw C.wasm_val_t
- for i := 0; i < len(params); i++ {
- if ty.In(i) == reflect.TypeOf(caller) {
- params[i] = reflect.ValueOf(caller)
- } else {
- ptr := (*C.wasm_val_t)(base)
- val := mkVal(ptr, freelist)
- params[i] = reflect.ValueOf(val.Get())
- base = unsafe.Pointer(uintptr(base) + unsafe.Sizeof(raw))
- }
- }
-
- // Invoke the function, catching any panics to propagate later. Panics
- // result in immediately returning a trap.
- var results []reflect.Value
- var lastPanic interface{}
- func() {
- defer func() { lastPanic = recover() }()
- results = entry.callback.Call(params)
- }()
- if lastPanic != nil {
- gLock.Lock()
- gCallerState[caller_id].lastPanic = lastPanic
- gLock.Unlock()
- return nil
- }
-
- // And now we write all the results into memory depending on the type
- // of value that was returned.
- base = unsafe.Pointer(resultsPtr.data)
- for _, result := range results {
- ptr := (*C.wasm_val_t)(base)
- switch val := result.Interface().(type) {
- case int32:
- *ptr = *ValI32(val).ptr()
- case int64:
- *ptr = *ValI64(val).ptr()
- case float32:
- *ptr = *ValF32(val).ptr()
- case float64:
- *ptr = *ValF64(val).ptr()
- case *Func:
- raw := ValFuncref(val)
- C.wasm_val_copy(ptr, raw.ptr())
- runtime.KeepAlive(raw)
- case *Trap:
- if val != nil {
- runtime.SetFinalizer(val, nil)
- return val.ptr()
- }
- default:
- raw := ValExternref(val)
- C.wasm_val_copy(ptr, raw.ptr())
- runtime.KeepAlive(raw)
- }
- base = unsafe.Pointer(uintptr(base) + unsafe.Sizeof(raw))
- }
- return nil
-}
-
-//export goFinalizeWrap
-func goFinalizeWrap(env unsafe.Pointer) {
- idx := int(uintptr(env))
- gLock.Lock()
- defer gLock.Unlock()
- delete(gWrapMap, idx)
- gWrapMapSlab.deallocate(idx)
-}
-
-func mkFunc(ptr *C.wasm_func_t, freelist *freeList, owner interface{}) *Func {
- f := &Func{_ptr: ptr, _owner: owner, freelist: freelist}
- if owner == nil {
- runtime.SetFinalizer(f, func(f *Func) {
- f.freelist.lock.Lock()
- defer f.freelist.lock.Unlock()
- f.freelist.funcs = append(f.freelist.funcs, f._ptr)
- })
- }
- return f
-}
-
-func (f *Func) ptr() *C.wasm_func_t {
- f.freelist.clear()
- ret := f._ptr
- maybeGC()
- return ret
-}
-
-func (f *Func) owner() interface{} {
- if f._owner != nil {
- return f._owner
- }
- return f
-}
-
-// Type returns the type of this func
-func (f *Func) Type() *FuncType {
- ptr := C.wasm_func_type(f.ptr())
- runtime.KeepAlive(f)
- return mkFuncType(ptr, nil)
-}
-
-// ParamArity returns the numer of parameters this function expects
-func (f *Func) ParamArity() int {
- ret := C.wasm_func_param_arity(f.ptr())
- runtime.KeepAlive(f)
- return int(ret)
-}
-
-// ResultArity returns the numer of results this function produces
-func (f *Func) ResultArity() int {
- ret := C.wasm_func_result_arity(f.ptr())
- runtime.KeepAlive(f)
- return int(ret)
-}
-
-// Call invokes this function with the provided `args`.
-//
-// This variadic function must be invoked with the correct number and type of
-// `args` as specified by the type of this function. This property is checked
-// at runtime. Each `args` may have one of the following types:
-//
-// `int32` - a wasm `i32`
-//
-// `int64` - a wasm `i64`
-//
-// `float32` - a wasm `f32`
-//
-// `float64` - a wasm `f64`
-//
-// `Val` - correspond to a wasm value
-//
-// `*Func` - a wasm `funcref`
-//
-// anything else - a wasm `externref`
-//
-// This function will have one of three results:
-//
-// 1. If the function returns successfully, then the `interface{}` return
-// argument will be the result of the function. If there were 0 results then
-// this value is `nil`. If there was one result then this is that result.
-// Otherwise if there were multiple results then `[]Val` is returned.
-//
-// 2. If this function invocation traps, then the returned `interface{}` value
-// will be `nil` and a non-`nil` `*Trap` will be returned with information
-// about the trap that happened.
-//
-// 3. If a panic in Go ends up happening somewhere, then this function will
-// panic.
-func (f *Func) Call(args ...interface{}) (interface{}, error) {
- params := f.Type().Params()
- if len(args) > len(params) {
- return nil, errors.New("too many arguments provided")
- }
- paramsVec := C.wasm_val_vec_t{}
- C.wasm_val_vec_new_uninitialized(¶msVec, C.size_t(len(args)))
- for i, param := range args {
- var rawVal Val
- switch val := param.(type) {
- case int:
- switch params[i].Kind() {
- case KindI32:
- rawVal = ValI32(int32(val))
- case KindI64:
- rawVal = ValI64(int64(val))
- default:
- return nil, errors.New("integer provided for non-integer argument")
- }
- case int32:
- rawVal = ValI32(val)
- case int64:
- rawVal = ValI64(val)
- case float32:
- rawVal = ValF32(val)
- case float64:
- rawVal = ValF64(val)
- case *Func:
- rawVal = ValFuncref(val)
- case Val:
- rawVal = val
-
- default:
- rawVal = ValExternref(val)
- }
-
- base := unsafe.Pointer(paramsVec.data)
- ptr := rawVal.ptr()
- C.wasm_val_copy(
- (*C.wasm_val_t)(unsafe.Pointer(uintptr(base)+unsafe.Sizeof(*ptr)*uintptr(i))),
- ptr,
- )
- runtime.KeepAlive(rawVal)
- }
-
- resultsVec := C.wasm_val_vec_t{}
- C.wasm_val_vec_new_uninitialized(&resultsVec, C.size_t(f.ResultArity()))
-
- var err *C.wasmtime_error_t
- trap := enterWasm(f.freelist, func(trap **C.wasm_trap_t) {
- err = C.go_wasmtime_func_call(
- f.ptr(),
- ¶msVec,
- &resultsVec,
- trap,
- )
- })
- runtime.KeepAlive(f)
- runtime.KeepAlive(args)
- C.wasm_val_vec_delete(¶msVec)
-
- if trap != nil {
- return nil, trap
- }
-
- if err != nil {
- return nil, mkError(err)
- }
-
- if resultsVec.size == 0 {
- return nil, nil
- } else if resultsVec.size == 1 {
- ret := mkVal(resultsVec.data, f.freelist).Get()
- C.wasm_val_vec_delete(&resultsVec)
- return ret, nil
- } else {
- results := make([]Val, int(resultsVec.size))
- base := unsafe.Pointer(resultsVec.data)
- var val C.wasm_val_t
- for i := 0; i < int(resultsVec.size); i++ {
- ptr := (*C.wasm_val_t)(unsafe.Pointer(uintptr(base) + unsafe.Sizeof(val)*uintptr(i)))
- results[i] = mkVal(ptr, f.freelist)
- }
- C.wasm_val_vec_delete(&resultsVec)
- return results, nil
- }
-
-}
-
-func (f *Func) AsExtern() *Extern {
- ptr := C.wasm_func_as_extern(f.ptr())
- return mkExtern(ptr, f.freelist, f.owner())
-}
-
-// GetExport gets an exported item from the caller's module.
-//
-// May return `nil` if the export doesn't, if it's not a memory, if there isn't
-// a caller, etc.
-func (c *Caller) GetExport(name string) *Extern {
- if c.ptr == nil {
- return nil
- }
- ptr := C.go_caller_export_get(
- c.ptr,
- C._GoStringPtr(name),
- C._GoStringLen(name),
- )
- runtime.KeepAlive(name)
- runtime.KeepAlive(c)
- if ptr == nil {
- return nil
- }
-
- return mkExtern(ptr, c.freelist, nil)
-}
-
-// Shim function that's expected to wrap any invocations of WebAssembly from Go
-// itself.
-func enterWasm(freelist *freeList, wasm func(**C.wasm_trap_t)) *Trap {
- // First thing we need to do is update `gCallerState` with the actual
- // pointer to `freelist` since when calling wasm we may call a Go
- // function which needs the freelist.
- //
- // Note that if there's already an entry in the map we just increase
- // the reference count.
- gLock.Lock()
- caller_id := C.size_t(uintptr(unsafe.Pointer(freelist)))
- if _, ok := gCallerState[caller_id]; !ok {
- gCallerState[caller_id] = &callerState{freelist: freelist}
- }
- gCallerState[caller_id].cnt++
- gLock.Unlock()
-
- // After `gCallerState` is configured we can actually enter the wasm
- // code. We handle traps/panics here so we pass in the trap pointer.
- //
- // Note that it's assumed that this never panics.
- var trap *C.wasm_trap_t
- wasm(&trap)
-
- // After wasm has finished we need to remove `freelist` from the global
- // `gCallerState` map to ensure it can eventually get GC'd. Here we
- // also propagate any Go-originating panics if they're found.
- gLock.Lock()
- state := gCallerState[caller_id]
- lastPanic := state.lastPanic
- state.lastPanic = nil
- state.cnt--
- if state.cnt == 0 {
- delete(gCallerState, caller_id)
- }
- gLock.Unlock()
-
- // Take ownership of the return trapped pointer to ensure we don't leak
- // it, even if Go panicked.
- var wrappedTrap *Trap
- if trap != nil {
- wrappedTrap = mkTrap(trap)
- }
-
- // Check to see if we called a Go host function which panicked, in
- // which case we propagate that here.
- if lastPanic != nil {
- panic(lastPanic)
- }
-
- // And otherwise if Go didn't panic we return whether the function
- // trapped or not.
- return wrappedTrap
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/functype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/functype.go
deleted file mode 100644
index 8c071c362..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/functype.go
+++ /dev/null
@@ -1,91 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import (
- "runtime"
- "unsafe"
-)
-
-// FuncType is one of function types which classify the signature of functions, mapping a vector of parameters to a vector of results.
-// They are also used to classify the inputs and outputs of instructions.
-type FuncType struct {
- _ptr *C.wasm_functype_t
- _owner interface{}
-}
-
-// NewFuncType creates a new `FuncType` with the `kind` provided
-func NewFuncType(params, results []*ValType) *FuncType {
- paramVec := mkValTypeList(params)
- resultVec := mkValTypeList(results)
-
- ptr := C.wasm_functype_new(¶mVec, &resultVec)
-
- return mkFuncType(ptr, nil)
-}
-
-func mkValTypeList(tys []*ValType) C.wasm_valtype_vec_t {
- vec := C.wasm_valtype_vec_t{}
- C.wasm_valtype_vec_new_uninitialized(&vec, C.size_t(len(tys)))
- base := unsafe.Pointer(vec.data)
- for i, ty := range tys {
- ptr := C.wasm_valtype_new(C.wasm_valtype_kind(ty.ptr()))
- *(**C.wasm_valtype_t)(unsafe.Pointer(uintptr(base) + unsafe.Sizeof(ptr)*uintptr(i))) = ptr
- }
- runtime.KeepAlive(tys)
- return vec
-}
-
-func mkFuncType(ptr *C.wasm_functype_t, owner interface{}) *FuncType {
- functype := &FuncType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(functype, func(functype *FuncType) {
- C.wasm_functype_delete(functype._ptr)
- })
- }
- return functype
-}
-
-func (ty *FuncType) ptr() *C.wasm_functype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *FuncType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// Params returns the parameter types of this function type
-func (ty *FuncType) Params() []*ValType {
- ptr := C.wasm_functype_params(ty.ptr())
- return ty.convertTypeList(ptr)
-}
-
-// Results returns the result types of this function type
-func (ty *FuncType) Results() []*ValType {
- ptr := C.wasm_functype_results(ty.ptr())
- return ty.convertTypeList(ptr)
-}
-
-func (ty *FuncType) convertTypeList(list *C.wasm_valtype_vec_t) []*ValType {
- ret := make([]*ValType, list.size)
-
- base := unsafe.Pointer(list.data)
- var ptr *C.wasm_valtype_t
- for i := 0; i < int(list.size); i++ {
- ptr := *(**C.wasm_valtype_t)(unsafe.Pointer(uintptr(base) + unsafe.Sizeof(ptr)*uintptr(i)))
- ty := mkValType(ptr, ty.owner())
- ret[i] = ty
- }
- return ret
-}
-
-// AsExternType converts this type to an instance of `ExternType`
-func (ty *FuncType) AsExternType() *ExternType {
- ptr := C.wasm_functype_as_externtype_const(ty.ptr())
- return mkExternType(ptr, ty.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/global.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/global.go
deleted file mode 100644
index fb1af01c2..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/global.go
+++ /dev/null
@@ -1,95 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// Global is a global instance, which is the runtime representation of a global variable.
-// It holds an individual value and a flag indicating whether it is mutable.
-// Read more in [spec](https://webassembly.github.io/spec/core/exec/runtime.html#global-instances)
-type Global struct {
- _ptr *C.wasm_global_t
- _owner interface{}
- freelist *freeList
-}
-
-// NewGlobal creates a new `Global` in the given `Store` with the specified `ty` and
-// initial value `val`.
-func NewGlobal(
- store *Store,
- ty *GlobalType,
- val Val,
-) (*Global, error) {
- var ptr *C.wasm_global_t
- err := C.wasmtime_global_new(
- store.ptr(),
- ty.ptr(),
- val.ptr(),
- &ptr,
- )
- runtime.KeepAlive(store)
- runtime.KeepAlive(ty)
- runtime.KeepAlive(val)
- if err != nil {
- return nil, mkError(err)
- }
-
- return mkGlobal(ptr, store.freelist, nil), nil
-}
-
-func mkGlobal(ptr *C.wasm_global_t, freelist *freeList, owner interface{}) *Global {
- f := &Global{_ptr: ptr, _owner: owner, freelist: freelist}
- if owner == nil {
- runtime.SetFinalizer(f, func(f *Global) {
- f.freelist.lock.Lock()
- defer f.freelist.lock.Unlock()
- f.freelist.globals = append(f.freelist.globals, f._ptr)
- })
- }
- return f
-}
-
-func (g *Global) ptr() *C.wasm_global_t {
- ret := g._ptr
- maybeGC()
- return ret
-}
-
-func (g *Global) owner() interface{} {
- if g._owner != nil {
- return g._owner
- }
- return g
-}
-
-// Type returns the type of this global
-func (g *Global) Type() *GlobalType {
- ptr := C.wasm_global_type(g.ptr())
- runtime.KeepAlive(g)
- return mkGlobalType(ptr, nil)
-}
-
-// Get gets the value of this global
-func (g *Global) Get() Val {
- ret := C.wasm_val_t{}
- C.wasm_global_get(g.ptr(), &ret)
- runtime.KeepAlive(g)
- return takeVal(&ret, g.freelist)
-}
-
-// Set sets the value of this global
-func (g *Global) Set(val Val) error {
- err := C.wasmtime_global_set(g.ptr(), val.ptr())
- runtime.KeepAlive(g)
- runtime.KeepAlive(val)
- if err == nil {
- return nil
- }
-
- return mkError(err)
-}
-
-func (g *Global) AsExtern() *Extern {
- ptr := C.wasm_global_as_extern(g.ptr())
- return mkExtern(ptr, g.freelist, g.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/globaltype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/globaltype.go
deleted file mode 100644
index b948febaf..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/globaltype.go
+++ /dev/null
@@ -1,67 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// GlobalType is a ValType, which classify global variables and hold a value and can either be mutable or immutable.
-type GlobalType struct {
- _ptr *C.wasm_globaltype_t
- _owner interface{}
-}
-
-// NewGlobalType creates a new `GlobalType` with the `kind` provided and whether it's
-// `mutable` or not
-func NewGlobalType(content *ValType, mutable bool) *GlobalType {
- mutability := C.WASM_CONST
- if mutable {
- mutability = C.WASM_VAR
- }
- contentPtr := C.wasm_valtype_new(C.wasm_valtype_kind(content.ptr()))
- runtime.KeepAlive(content)
- ptr := C.wasm_globaltype_new(contentPtr, C.wasm_mutability_t(mutability))
-
- return mkGlobalType(ptr, nil)
-}
-
-func mkGlobalType(ptr *C.wasm_globaltype_t, owner interface{}) *GlobalType {
- globaltype := &GlobalType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(globaltype, func(globaltype *GlobalType) {
- C.wasm_globaltype_delete(globaltype._ptr)
- })
- }
- return globaltype
-}
-
-func (ty *GlobalType) ptr() *C.wasm_globaltype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *GlobalType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// Content returns the type of value stored in this global
-func (ty *GlobalType) Content() *ValType {
- ptr := C.wasm_globaltype_content(ty.ptr())
- return mkValType(ptr, ty.owner())
-}
-
-// Mutable returns whether this global type is mutable or not
-func (ty *GlobalType) Mutable() bool {
- ret := C.wasm_globaltype_mutability(ty.ptr()) == C.WASM_VAR
- runtime.KeepAlive(ty)
- return ret
-}
-
-// AsExternType converts this type to an instance of `ExternType`
-func (ty *GlobalType) AsExternType() *ExternType {
- ptr := C.wasm_globaltype_as_externtype_const(ty.ptr())
- return mkExternType(ptr, ty.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/go.mod b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/go.mod
deleted file mode 100644
index 7f140bb0b..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/go.mod
+++ /dev/null
@@ -1,3 +0,0 @@
-module github.com/bytecodealliance/wasmtime-go
-
-go 1.14
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/importtype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/importtype.go
deleted file mode 100644
index a8f2fced5..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/importtype.go
+++ /dev/null
@@ -1,82 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// ImportType is one of the imports component
-// A module defines a set of imports that are required for instantiation.
-type ImportType struct {
- _ptr *C.wasm_importtype_t
- _owner interface{}
-}
-
-// NewImportType creates a new `ImportType` with the given `module` and `name` and the type
-// provided.
-func NewImportType(module, name string, ty AsExternType) *ImportType {
- moduleVec := stringToByteVec(module)
- nameVec := stringToByteVec(name)
-
- // Creating an import type requires taking ownership, so create a copy
- // so we don't have to invalidate pointers here. Shouldn't be too
- // costly in theory anyway.
- extern := ty.AsExternType()
- ptr := C.wasm_externtype_copy(extern.ptr())
- runtime.KeepAlive(extern)
-
- // And once we've got all that create the import type!
- importPtr := C.wasm_importtype_new(&moduleVec, &nameVec, ptr)
-
- return mkImportType(importPtr, nil)
-}
-
-func mkImportType(ptr *C.wasm_importtype_t, owner interface{}) *ImportType {
- importtype := &ImportType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(importtype, func(importtype *ImportType) {
- C.wasm_importtype_delete(importtype._ptr)
- })
- }
- return importtype
-}
-
-func (ty *ImportType) ptr() *C.wasm_importtype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *ImportType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// Module returns the name in the module this import type is importing
-func (ty *ImportType) Module() string {
- ptr := C.wasm_importtype_module(ty.ptr())
- ret := C.GoStringN(ptr.data, C.int(ptr.size))
- runtime.KeepAlive(ty)
- return ret
-}
-
-// Name returns the name in the module this import type is importing.
-//
-// Note that the returned string may be `nil` with the module linking proposal
-// where this field is optional in the import type.
-func (ty *ImportType) Name() *string {
- ptr := C.wasm_importtype_name(ty.ptr())
- if ptr == nil {
- return nil
- }
- ret := C.GoStringN(ptr.data, C.int(ptr.size))
- runtime.KeepAlive(ty)
- return &ret
-}
-
-// Type returns the type of item this import type expects
-func (ty *ImportType) Type() *ExternType {
- ptr := C.wasm_importtype_type(ty.ptr())
- return mkExternType(ptr, ty.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/instance.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/instance.go
deleted file mode 100644
index c8b105c09..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/instance.go
+++ /dev/null
@@ -1,160 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import (
- "runtime"
- "unsafe"
-)
-
-// Instance is an instantiated module instance.
-// Once a module has been instantiated as an Instance, any exported function can be invoked externally via its function address funcaddr in the store S and an appropriate list val∗ of argument values.
-type Instance struct {
- _ptr *C.wasm_instance_t
- exports map[string]*Extern
- exportsPopulated bool
- freelist *freeList
- _owner interface{}
-}
-
-// NewInstance instantiates a WebAssembly `module` with the `imports` provided.
-//
-// This function will attempt to create a new wasm instance given the provided
-// imports. This can fail if the wrong number of imports are specified, the
-// imports aren't of the right type, or for other resource-related issues.
-//
-// This will also run the `start` function of the instance, returning an error
-// if it traps.
-func NewInstance(store *Store, module *Module, imports []*Extern) (*Instance, error) {
- importsRaw := C.wasm_extern_vec_t{}
- C.wasm_extern_vec_new_uninitialized(&importsRaw, C.size_t(len(imports)))
- base := unsafe.Pointer(importsRaw.data)
- for i, imp := range imports {
- ptr := C.wasm_extern_copy(imp.ptr())
- *(**C.wasm_extern_t)(unsafe.Pointer(uintptr(base) + unsafe.Sizeof(ptr)*uintptr(i))) = ptr
- }
- var ptr *C.wasm_instance_t
- var err *C.wasmtime_error_t
- trap := enterWasm(store.freelist, func(trap **C.wasm_trap_t) {
- err = C.wasmtime_instance_new(
- store.ptr(),
- module.ptr(),
- &importsRaw,
- &ptr,
- trap,
- )
- })
- runtime.KeepAlive(store)
- runtime.KeepAlive(module)
- C.wasm_extern_vec_delete(&importsRaw)
- if trap != nil {
- return nil, trap
- }
- if err != nil {
- return nil, mkError(err)
- }
- return mkInstance(ptr, store.freelist, nil), nil
-}
-
-func mkInstance(ptr *C.wasm_instance_t, freelist *freeList, owner interface{}) *Instance {
- instance := &Instance{
- _ptr: ptr,
- exports: make(map[string]*Extern),
- exportsPopulated: false,
- freelist: freelist,
- _owner: owner,
- }
- if owner == nil {
- runtime.SetFinalizer(instance, func(instance *Instance) {
- freelist := instance.freelist
- freelist.lock.Lock()
- defer freelist.lock.Unlock()
- freelist.instances = append(freelist.instances, instance._ptr)
- })
- }
- return instance
-}
-
-func (i *Instance) ptr() *C.wasm_instance_t {
- ret := i._ptr
- maybeGC()
- return ret
-}
-
-func (i *Instance) owner() interface{} {
- if i._owner != nil {
- return i._owner
- }
- return i
-}
-
-// Type returns an `InstanceType` that corresponds for this instance.
-func (i *Instance) Type() *InstanceType {
- ptr := C.wasm_instance_type(i.ptr())
- runtime.KeepAlive(i)
- return mkInstanceType(ptr, nil)
-}
-
-type externList struct {
- vec C.wasm_extern_vec_t
-}
-
-// Exports returns a list of exports from this instance.
-//
-// Each export is returned as a `*Extern` and lines up with the exports list of
-// the associated `Module`.
-func (i *Instance) Exports() []*Extern {
- externs := &externList{}
- C.wasm_instance_exports(i.ptr(), &externs.vec)
- runtime.KeepAlive(i)
- freelist := i.freelist
- runtime.SetFinalizer(externs, func(externs *externList) {
- freelist.lock.Lock()
- defer freelist.lock.Unlock()
- freelist.externVecs = append(freelist.externVecs, &externs.vec)
- })
-
- ret := make([]*Extern, int(externs.vec.size))
- base := unsafe.Pointer(externs.vec.data)
- var ptr *C.wasm_extern_t
- for i := 0; i < int(externs.vec.size); i++ {
- ptr := *(**C.wasm_extern_t)(unsafe.Pointer(uintptr(base) + unsafe.Sizeof(ptr)*uintptr(i)))
- ty := mkExtern(ptr, freelist, externs)
- ret[i] = ty
- }
- return ret
-}
-
-// GetExport attempts to find an export on this instance by `name`
-//
-// May return `nil` if this instance has no export named `name`
-func (i *Instance) GetExport(name string) *Extern {
- if !i.exportsPopulated {
- i.populateExports()
- }
- return i.exports[name]
-}
-
-// GetFunc attemps to find a function on this instance by `name`.
-//
-// May return `nil` if this instance has no function named `name`,
-// it is not a function, etc.
-func (i *Instance) GetFunc(name string) *Func {
- f := i.GetExport(name)
- if f == nil {
- return nil
- }
- return f.Func()
-}
-
-func (i *Instance) populateExports() {
- exports := i.Exports()
- for j, ty := range i.Type().Exports() {
- i.exports[ty.Name()] = exports[j]
- }
-}
-
-func (i *Instance) AsExtern() *Extern {
- ptr := C.wasm_instance_as_extern(i.ptr())
- return mkExtern(ptr, i.freelist, i.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/instancetype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/instancetype.go
deleted file mode 100644
index 7164bcb05..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/instancetype.go
+++ /dev/null
@@ -1,49 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// InstanceType describes the exports of an instance.
-type InstanceType struct {
- _ptr *C.wasm_instancetype_t
- _owner interface{}
-}
-
-func mkInstanceType(ptr *C.wasm_instancetype_t, owner interface{}) *InstanceType {
- instancetype := &InstanceType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(instancetype, func(instancetype *InstanceType) {
- C.wasm_instancetype_delete(instancetype._ptr)
- })
- }
- return instancetype
-}
-
-func (ty *InstanceType) ptr() *C.wasm_instancetype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *InstanceType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// AsExternType converts this type to an instance of `ExternType`
-func (ty *InstanceType) AsExternType() *ExternType {
- ptr := C.wasm_instancetype_as_externtype_const(ty.ptr())
- return mkExternType(ptr, ty.owner())
-}
-
-// Exports returns a list of `ExportType` items which are the items that will
-// be exported by this instance after instantiation.
-func (ty *InstanceType) Exports() []*ExportType {
- exports := &exportTypeList{}
- C.wasm_instancetype_exports(ty.ptr(), &exports.vec)
- runtime.KeepAlive(ty)
- return exports.mkGoList()
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/limits.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/limits.go
deleted file mode 100644
index 7655dc7b9..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/limits.go
+++ /dev/null
@@ -1,45 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// LimitsMaxNone is the value for the Max field in Limits
-const LimitsMaxNone = 0xffffffff
-
-// Limits is the resource limits specified for a TableType and MemoryType
-type Limits struct {
- // The minimum size of this resource, in units specified by the resource
- // itself.
- Min uint32
- // The maximum size of this resource, in units specified by the resource
- // itself.
- //
- // A value of LimitsMaxNone will mean that there is no maximum.
- Max uint32
-}
-
-// NewLimits creates a new resource limits specified for a TableType and MemoryType,
-// in which min and max are the minimum and maximum size of this resource.
-func NewLimits(min, max uint32) *Limits {
- return &Limits{
- Min: min,
- Max: max,
- }
-}
-
-func (limits Limits) ffi() C.wasm_limits_t {
- return C.wasm_limits_t{
- min: C.uint32_t(limits.Min),
- max: C.uint32_t(limits.Max),
- }
-}
-
-func mkLimits(ptr *C.wasm_limits_t, owner interface{}) Limits {
- ret := Limits{
- Min: uint32(ptr.min),
- Max: uint32(ptr.max),
- }
- runtime.KeepAlive(owner)
- return ret
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/linker.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/linker.go
deleted file mode 100644
index 851ed4898..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/linker.go
+++ /dev/null
@@ -1,202 +0,0 @@
-package wasmtime
-
-// #include
-// #include "shims.h"
-import "C"
-import "runtime"
-
-// Linker implements a wasmtime Linking module, which can link instantiated modules together.
-// More details you can see [examples for C](https://bytecodealliance.github.io/wasmtime/examples-c-linking.html) or
-// [examples for Rust](https://bytecodealliance.github.io/wasmtime/examples-rust-linking.html)
-type Linker struct {
- _ptr *C.wasmtime_linker_t
- Store *Store
-}
-
-func NewLinker(store *Store) *Linker {
- ptr := C.wasmtime_linker_new(store.ptr())
- runtime.KeepAlive(store)
- return mkLinker(ptr, store)
-}
-
-func mkLinker(ptr *C.wasmtime_linker_t, store *Store) *Linker {
- linker := &Linker{_ptr: ptr, Store: store}
- runtime.SetFinalizer(linker, func(linker *Linker) {
- freelist := linker.Store.freelist
- freelist.lock.Lock()
- defer freelist.lock.Unlock()
- freelist.linkers = append(freelist.linkers, linker._ptr)
- })
- return linker
-}
-
-func (l *Linker) ptr() *C.wasmtime_linker_t {
- ret := l._ptr
- maybeGC()
- return ret
-}
-
-// AllowShadowing configures whether names can be redefined after they've already been defined
-// in this linker.
-func (l *Linker) AllowShadowing(allow bool) {
- C.wasmtime_linker_allow_shadowing(l.ptr(), C.bool(allow))
- runtime.KeepAlive(l)
-}
-
-// Define defines a new item in this linker with the given module/name pair. Returns
-// an error if shadowing is disallowed and the module/name is already defined.
-func (l *Linker) Define(module, name string, item AsExtern) error {
- extern := item.AsExtern()
- err := C.go_linker_define(
- l.ptr(),
- C._GoStringPtr(module),
- C._GoStringLen(module),
- C._GoStringPtr(name),
- C._GoStringLen(name),
- extern.ptr(),
- )
- runtime.KeepAlive(l)
- runtime.KeepAlive(module)
- runtime.KeepAlive(name)
- runtime.KeepAlive(extern)
- if err == nil {
- return nil
- }
-
- return mkError(err)
-}
-
-// DefineFunc acts as a convenience wrapper to calling Define and WrapFunc.
-//
-// Returns an error if shadowing is disabled and the name is already defined.
-func (l *Linker) DefineFunc(module, name string, f interface{}) error {
- return l.Define(module, name, WrapFunc(l.Store, f))
-}
-
-// DefineInstance defines all exports of an instance provided under the module name provided.
-//
-// Returns an error if shadowing is disabled and names are already defined.
-func (l *Linker) DefineInstance(module string, instance *Instance) error {
- err := C.go_linker_define_instance(
- l.ptr(),
- C._GoStringPtr(module),
- C._GoStringLen(module),
- instance.ptr(),
- )
- runtime.KeepAlive(l)
- runtime.KeepAlive(module)
- runtime.KeepAlive(instance)
- if err == nil {
- return nil
- }
-
- return mkError(err)
-}
-
-// DefineModule defines automatic instantiations of the module in this linker.
-//
-// The `name` of the module is the name within the linker, and the `module` is
-// the one that's being instantiated. This function automatically handles
-// WASI Commands and Reactors for instantiation and initialization. For more
-// information see the Rust documentation --
-// https://docs.wasmtime.dev/api/wasmtime/struct.Linker.html#method.module.
-func (l *Linker) DefineModule(name string, module *Module) error {
- err := C.go_linker_define_module(
- l.ptr(),
- C._GoStringPtr(name),
- C._GoStringLen(name),
- module.ptr(),
- )
- runtime.KeepAlive(l)
- runtime.KeepAlive(name)
- runtime.KeepAlive(module)
- if err == nil {
- return nil
- }
-
- return mkError(err)
-}
-
-// DefineWasi links a WASI module into this linker, ensuring that all exported functions
-// are available for linking.
-//
-// Returns an error if shadowing is disabled and names are already defined.
-func (l *Linker) DefineWasi(instance *WasiInstance) error {
- err := C.wasmtime_linker_define_wasi(l.ptr(), instance.ptr())
- runtime.KeepAlive(l)
- runtime.KeepAlive(instance)
- if err == nil {
- return nil
- }
-
- return mkError(err)
-}
-
-// Instantiate instantates a module with all imports defined in this linker.
-//
-// Returns an error if the instance's imports couldn't be satisfied, had the
-// wrong types, or if a trap happened executing the start function.
-func (l *Linker) Instantiate(module *Module) (*Instance, error) {
- var ret *C.wasm_instance_t
- var err *C.wasmtime_error_t
- trap := enterWasm(l.Store.freelist, func(trap **C.wasm_trap_t) {
- err = C.wasmtime_linker_instantiate(l.ptr(), module.ptr(), &ret, trap)
- })
- runtime.KeepAlive(l)
- runtime.KeepAlive(module)
- if trap != nil {
- return nil, trap
- }
- if err != nil {
- return nil, mkError(err)
- }
- return mkInstance(ret, l.Store.freelist, nil), nil
-}
-
-// GetDefault acquires the "default export" of the named module in this linker.
-//
-// If there is no default item then an error is returned, otherwise the default
-// function is returned.
-//
-// For more information see the Rust documentation --
-// https://docs.wasmtime.dev/api/wasmtime/struct.Linker.html#method.get_default.
-func (l *Linker) GetDefault(name string) (*Func, error) {
- var ret *C.wasm_func_t
- err := C.go_linker_get_default(
- l.ptr(),
- C._GoStringPtr(name),
- C._GoStringLen(name),
- &ret,
- )
- runtime.KeepAlive(l)
- runtime.KeepAlive(name)
- if err != nil {
- return nil, mkError(err)
- }
- return mkFunc(ret, l.Store.freelist, nil), nil
-
-}
-
-// GetOneByName loads an item by name from this linker.
-//
-// If the item isn't defined then an error is returned, otherwise the item is
-// returned.
-func (l *Linker) GetOneByName(module, name string) (*Extern, error) {
- var ret *C.wasm_extern_t
- err := C.go_linker_get_one_by_name(
- l.ptr(),
- C._GoStringPtr(module),
- C._GoStringLen(module),
- C._GoStringPtr(name),
- C._GoStringLen(name),
- &ret,
- )
- runtime.KeepAlive(l)
- runtime.KeepAlive(name)
- runtime.KeepAlive(module)
- if err != nil {
- return nil, mkError(err)
- }
- return mkExtern(ret, l.Store.freelist, nil), nil
-
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/maybe_gc_actual.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/maybe_gc_actual.go
deleted file mode 100644
index 7ef37c434..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/maybe_gc_actual.go
+++ /dev/null
@@ -1,11 +0,0 @@
-// +build debug
-
-package wasmtime
-
-// See `ffi.go` documentation about `ptr()` for what's going on here.
-
-import "runtime"
-
-func maybeGC() {
- runtime.GC()
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/maybe_gc_no.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/maybe_gc_no.go
deleted file mode 100644
index 5b8f39821..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/maybe_gc_no.go
+++ /dev/null
@@ -1,8 +0,0 @@
-// +build !debug
-
-package wasmtime
-
-// See `ffi.go` documentation about `ptr()` for what's going on here.
-
-func maybeGC() {
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/memory.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/memory.go
deleted file mode 100644
index ce7bddd73..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/memory.go
+++ /dev/null
@@ -1,111 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import (
- "runtime"
- "unsafe"
-)
-
-// Memory instance is the runtime representation of a linear memory.
-// It holds a vector of bytes and an optional maximum size, if one was specified at the definition site of the memory.
-// Read more in [spec](https://webassembly.github.io/spec/core/exec/runtime.html#memory-instances)
-// In wasmtime-go, you can get the vector of bytes by the unsafe pointer of memory from `Memory.Data()`, or go style byte slice from `Memory.UnsafeData()`
-type Memory struct {
- _ptr *C.wasm_memory_t
- freelist *freeList
- _owner interface{}
-}
-
-// NewMemory creates a new `Memory` in the given `Store` with the specified `ty`.
-func NewMemory(store *Store, ty *MemoryType) *Memory {
- ptr := C.wasm_memory_new(store.ptr(), ty.ptr())
- runtime.KeepAlive(store)
- runtime.KeepAlive(ty)
- return mkMemory(ptr, store.freelist, nil)
-}
-
-func mkMemory(ptr *C.wasm_memory_t, freelist *freeList, owner interface{}) *Memory {
- f := &Memory{_ptr: ptr, _owner: owner, freelist: freelist}
- if owner == nil {
- runtime.SetFinalizer(f, func(f *Memory) {
- f.freelist.lock.Lock()
- defer f.freelist.lock.Unlock()
- f.freelist.memories = append(f.freelist.memories, f._ptr)
- })
- }
- return f
-}
-
-func (mem *Memory) ptr() *C.wasm_memory_t {
- ret := mem._ptr
- maybeGC()
- return ret
-}
-
-func (mem *Memory) owner() interface{} {
- if mem._owner != nil {
- return mem._owner
- }
- return mem
-}
-
-// Type returns the type of this memory
-func (mem *Memory) Type() *MemoryType {
- ptr := C.wasm_memory_type(mem.ptr())
- runtime.KeepAlive(mem)
- return mkMemoryType(ptr, nil)
-}
-
-// Data returns the raw pointer in memory of where this memory starts
-func (mem *Memory) Data() unsafe.Pointer {
- ret := unsafe.Pointer(C.wasm_memory_data(mem.ptr()))
- runtime.KeepAlive(mem)
- return ret
-}
-
-// UnsafeData returns the raw memory backed by this `Memory` as a byte slice (`[]byte`).
-//
-// This is not a safe method to call, hence the "unsafe" in the name. The byte
-// slice returned from this function is not managed by the Go garbage collector.
-// You need to ensure that `m`, the original `Memory`, lives longer than the
-// `[]byte` returned.
-//
-// Note that you may need to use `runtime.KeepAlive` to keep the original memory
-// `m` alive for long enough while you're using the `[]byte` slice. If the
-// `[]byte` slice is used after `m` is GC'd then that is undefined behavior.
-func (mem *Memory) UnsafeData() []byte {
- // see https://github.com/golang/go/wiki/cgo#turning-c-arrays-into-go-slices
- const MaxLen = 1 << 32
- length := mem.DataSize()
- if length >= MaxLen {
- panic("memory is too big")
- }
- return (*[MaxLen]byte)(mem.Data())[:length:length]
-}
-
-// DataSize returns the size, in bytes, that `Data()` is valid for
-func (mem *Memory) DataSize() uintptr {
- ret := uintptr(C.wasm_memory_data_size(mem.ptr()))
- runtime.KeepAlive(mem)
- return ret
-}
-
-// Size returns the size, in wasm pages, of this memory
-func (mem *Memory) Size() uint32 {
- ret := uint32(C.wasm_memory_size(mem.ptr()))
- runtime.KeepAlive(mem)
- return ret
-}
-
-// Grow grows this memory by `delta` pages
-func (mem *Memory) Grow(delta uint) bool {
- ret := C.wasm_memory_grow(mem.ptr(), C.wasm_memory_pages_t(delta))
- runtime.KeepAlive(mem)
- return bool(ret)
-}
-
-func (mem *Memory) AsExtern() *Extern {
- ptr := C.wasm_memory_as_extern(mem.ptr())
- return mkExtern(ptr, mem.freelist, mem.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/memorytype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/memorytype.go
deleted file mode 100644
index fb354cf7b..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/memorytype.go
+++ /dev/null
@@ -1,54 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// MemoryType is one of Memory types which classify linear memories and their size range.
-// The limits constrain the minimum and optionally the maximum size of a memory. The limits are given in units of page size.
-type MemoryType struct {
- _ptr *C.wasm_memorytype_t
- _owner interface{}
-}
-
-// NewMemoryType creates a new `MemoryType` with the `limits` on size provided
-func NewMemoryType(limits Limits) *MemoryType {
- limitsFFI := limits.ffi()
- ptr := C.wasm_memorytype_new(&limitsFFI)
- return mkMemoryType(ptr, nil)
-}
-
-func mkMemoryType(ptr *C.wasm_memorytype_t, owner interface{}) *MemoryType {
- memorytype := &MemoryType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(memorytype, func(memorytype *MemoryType) {
- C.wasm_memorytype_delete(memorytype._ptr)
- })
- }
- return memorytype
-}
-
-func (ty *MemoryType) ptr() *C.wasm_memorytype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *MemoryType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// Limits returns the limits on the size of this memory type
-func (ty *MemoryType) Limits() Limits {
- ptr := C.wasm_memorytype_limits(ty.ptr())
- return mkLimits(ptr, ty.owner())
-}
-
-// AsExternType converts this type to an instance of `ExternType`
-func (ty *MemoryType) AsExternType() *ExternType {
- ptr := C.wasm_memorytype_as_externtype_const(ty.ptr())
- return mkExternType(ptr, ty.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/module.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/module.go
deleted file mode 100644
index 47f75136d..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/module.go
+++ /dev/null
@@ -1,260 +0,0 @@
-package wasmtime
-
-// #include
-//
-// wasmtime_error_t *go_module_new(wasm_engine_t *engine, uint8_t *bytes, size_t len, wasm_module_t **ret) {
-// wasm_byte_vec_t vec;
-// vec.data = (wasm_byte_t*) bytes;
-// vec.size = len;
-// return wasmtime_module_new(engine, &vec, ret);
-// }
-//
-// wasmtime_error_t *go_module_validate(wasm_store_t *store, uint8_t *bytes, size_t len) {
-// wasm_byte_vec_t vec;
-// vec.data = (wasm_byte_t*) bytes;
-// vec.size = len;
-// return wasmtime_module_validate(store, &vec);
-// }
-//
-// wasmtime_error_t *go_module_deserialize(wasm_engine_t *engine, uint8_t *bytes, size_t len, wasm_module_t **ret) {
-// wasm_byte_vec_t vec;
-// vec.data = (wasm_byte_t*) bytes;
-// vec.size = len;
-// return wasmtime_module_deserialize(engine, &vec, ret);
-// }
-import "C"
-import (
- "io/ioutil"
- "runtime"
- "unsafe"
-)
-
-// Module is a module which collects definitions for types, functions, tables, memories, and globals.
-// In addition, it can declare imports and exports and provide initialization logic in the form of data and element segments or a start function.
-// Modules organized WebAssembly programs as the unit of deployment, loading, and compilation.
-type Module struct {
- _ptr *C.wasm_module_t
- _owner interface{}
-}
-
-// NewModule compiles a new `Module` from the `wasm` provided with the given configuration
-// in `engine`.
-func NewModule(engine *Engine, wasm []byte) (*Module, error) {
- // We can't create the `wasm_byte_vec_t` here and pass it in because
- // that runs into the error of "passed a pointer to a pointer" because
- // the vec itself is passed by pointer and it contains a pointer to
- // `wasm`. To work around this we insert some C shims above and call
- // them.
- var wasmPtr *C.uint8_t
- if len(wasm) > 0 {
- wasmPtr = (*C.uint8_t)(unsafe.Pointer(&wasm[0]))
- }
- var ptr *C.wasm_module_t
- err := C.go_module_new(engine.ptr(), wasmPtr, C.size_t(len(wasm)), &ptr)
- runtime.KeepAlive(engine)
- runtime.KeepAlive(wasm)
-
- if err != nil {
- return nil, mkError(err)
- }
-
- return mkModule(ptr, nil), nil
-}
-
-// NewModuleFromFile reads the contents of the `file` provided and interprets them as either the
-// text format or the binary format for WebAssembly.
-//
-// Afterwards delegates to the `NewModule` constructor with the contents read.
-func NewModuleFromFile(engine *Engine, file string) (*Module, error) {
- wasm, err := ioutil.ReadFile(file)
- if err != nil {
- return nil, err
- }
- // If this wasm isn't actually wasm, treat it as the text format and
- // parse it as such.
- if len(wasm) > 0 && wasm[0] != 0 {
- wasm, err = Wat2Wasm(string(wasm))
- if err != nil {
- return nil, err
- }
- }
- return NewModule(engine, wasm)
-
-}
-
-// ModuleValidate validates whether `wasm` would be a valid wasm module according to the
-// configuration in `store`
-func ModuleValidate(store *Store, wasm []byte) error {
- var wasmPtr *C.uint8_t
- if len(wasm) > 0 {
- wasmPtr = (*C.uint8_t)(unsafe.Pointer(&wasm[0]))
- }
- err := C.go_module_validate(store.ptr(), wasmPtr, C.size_t(len(wasm)))
- runtime.KeepAlive(store)
- runtime.KeepAlive(wasm)
- if err == nil {
- return nil
- }
-
- return mkError(err)
-}
-
-func mkModule(ptr *C.wasm_module_t, owner interface{}) *Module {
- module := &Module{_ptr: ptr}
- if owner == nil {
- runtime.SetFinalizer(module, func(module *Module) {
- C.wasm_module_delete(module._ptr)
- })
- }
- return module
-}
-
-func (m *Module) ptr() *C.wasm_module_t {
- ret := m._ptr
- maybeGC()
- return ret
-}
-
-func (m *Module) owner() interface{} {
- if m._owner != nil {
- return m._owner
- }
- return m
-}
-
-// Type returns a `ModuleType` that corresponds for this module.
-func (m *Module) Type() *ModuleType {
- ptr := C.wasm_module_type(m.ptr())
- runtime.KeepAlive(m)
- return mkModuleType(ptr, nil)
-}
-
-type importTypeList struct {
- vec C.wasm_importtype_vec_t
-}
-
-func (list *importTypeList) mkGoList() []*ImportType {
- runtime.SetFinalizer(list, func(imports *importTypeList) {
- C.wasm_importtype_vec_delete(&imports.vec)
- })
-
- ret := make([]*ImportType, int(list.vec.size))
- base := unsafe.Pointer(list.vec.data)
- var ptr *C.wasm_importtype_t
- for i := 0; i < int(list.vec.size); i++ {
- ptr := *(**C.wasm_importtype_t)(unsafe.Pointer(uintptr(base) + unsafe.Sizeof(ptr)*uintptr(i)))
- ty := mkImportType(ptr, list)
- ret[i] = ty
- }
- return ret
-}
-
-// Imports returns a list of `ImportType` items which are the items imported by this
-// module and are required for instantiation.
-func (m *Module) Imports() []*ImportType {
- imports := &importTypeList{}
- C.wasm_module_imports(m.ptr(), &imports.vec)
- runtime.KeepAlive(m)
- runtime.SetFinalizer(imports, func(imports *importTypeList) {
- C.wasm_importtype_vec_delete(&imports.vec)
- })
-
- ret := make([]*ImportType, int(imports.vec.size))
- base := unsafe.Pointer(imports.vec.data)
- var ptr *C.wasm_importtype_t
- for i := 0; i < int(imports.vec.size); i++ {
- ptr := *(**C.wasm_importtype_t)(unsafe.Pointer(uintptr(base) + unsafe.Sizeof(ptr)*uintptr(i)))
- ty := mkImportType(ptr, imports)
- ret[i] = ty
- }
- return ret
-}
-
-type exportTypeList struct {
- vec C.wasm_exporttype_vec_t
-}
-
-func (list *exportTypeList) mkGoList() []*ExportType {
- runtime.SetFinalizer(list, func(exports *exportTypeList) {
- C.wasm_exporttype_vec_delete(&exports.vec)
- })
-
- ret := make([]*ExportType, int(list.vec.size))
- base := unsafe.Pointer(list.vec.data)
- var ptr *C.wasm_exporttype_t
- for i := 0; i < int(list.vec.size); i++ {
- ptr := *(**C.wasm_exporttype_t)(unsafe.Pointer(uintptr(base) + unsafe.Sizeof(ptr)*uintptr(i)))
- ty := mkExportType(ptr, list)
- ret[i] = ty
- }
- return ret
-}
-
-// Exports returns a list of `ExportType` items which are the items that will
-// be exported by this module after instantiation.
-func (m *Module) Exports() []*ExportType {
- exports := &exportTypeList{}
- C.wasm_module_exports(m.ptr(), &exports.vec)
- runtime.KeepAlive(m)
- return exports.mkGoList()
-}
-
-// NewModuleDeserialize decodes and deserializes in-memory bytes previously
-// produced by `module.Serialize()`.
-//
-// This function does not take a WebAssembly binary as input. It takes
-// as input the results of a previous call to `Serialize()`, and only takes
-// that as input.
-//
-// If deserialization is successful then a compiled module is returned,
-// otherwise nil and an error are returned.
-//
-// Note that to deserialize successfully the bytes provided must have beeen
-// produced with an `Engine` that has the same commpilation options as the
-// provided engine, and from the same version of this library.
-func NewModuleDeserialize(engine *Engine, encoded []byte) (*Module, error) {
- var encodedPtr *C.uint8_t
- var ptr *C.wasm_module_t
- if len(encoded) > 0 {
- encodedPtr = (*C.uint8_t)(unsafe.Pointer(&encoded[0]))
- }
- err := C.go_module_deserialize(
- engine.ptr(),
- encodedPtr,
- C.size_t(len(encoded)),
- &ptr,
- )
- runtime.KeepAlive(engine)
- runtime.KeepAlive(encoded)
-
- if err != nil {
- return nil, mkError(err)
- }
-
- return mkModule(ptr, nil), nil
-}
-
-// Serialize will convert this in-memory compiled module into a list of bytes.
-//
-// The purpose of this method is to extract an artifact which can be stored
-// elsewhere from this `Module`. The returned bytes can, for example, be stored
-// on disk or in an object store. The `NewModuleDeserialize` function can be
-// used to deserialize the returned bytes at a later date to get the module
-// back.
-func (m *Module) Serialize() ([]byte, error) {
- retVec := C.wasm_byte_vec_t{}
- err := C.wasmtime_module_serialize(m.ptr(), &retVec)
- runtime.KeepAlive(m)
-
- if err != nil {
- return nil, mkError(err)
- }
- ret := C.GoBytes(unsafe.Pointer(retVec.data), C.int(retVec.size))
- C.wasm_byte_vec_delete(&retVec)
- return ret, nil
-}
-
-func (m *Module) AsExtern() *Extern {
- ptr := C.wasm_module_as_extern(m.ptr())
- return mkExtern(ptr, nil, m.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/moduletype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/moduletype.go
deleted file mode 100644
index 8fb0ba71d..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/moduletype.go
+++ /dev/null
@@ -1,58 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// ModuleType describes the imports/exports of a module.
-type ModuleType struct {
- _ptr *C.wasm_moduletype_t
- _owner interface{}
-}
-
-func mkModuleType(ptr *C.wasm_moduletype_t, owner interface{}) *ModuleType {
- moduletype := &ModuleType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(moduletype, func(moduletype *ModuleType) {
- C.wasm_moduletype_delete(moduletype._ptr)
- })
- }
- return moduletype
-}
-
-func (ty *ModuleType) ptr() *C.wasm_moduletype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *ModuleType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// AsExternType converts this type to an instance of `ExternType`
-func (ty *ModuleType) AsExternType() *ExternType {
- ptr := C.wasm_moduletype_as_externtype_const(ty.ptr())
- return mkExternType(ptr, ty.owner())
-}
-
-// Imports returns a list of `ImportType` items which are the items imported by
-// this module and are required for instantiation.
-func (m *ModuleType) Imports() []*ImportType {
- imports := &importTypeList{}
- C.wasm_moduletype_imports(m.ptr(), &imports.vec)
- runtime.KeepAlive(m)
- return imports.mkGoList()
-}
-
-// Exports returns a list of `ExportType` items which are the items that will
-// be exported by this module after instantiation.
-func (m *ModuleType) Exports() []*ExportType {
- exports := &exportTypeList{}
- C.wasm_moduletype_exports(m.ptr(), &exports.vec)
- runtime.KeepAlive(m)
- return exports.mkGoList()
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/shims.c b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/shims.c
deleted file mode 100644
index 84ed37d79..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/shims.c
+++ /dev/null
@@ -1,133 +0,0 @@
-#include "_cgo_export.h"
-#include "shims.h"
-
-static wasm_trap_t* trampoline(
- const wasmtime_caller_t *caller,
- void *env,
- const wasm_val_vec_t *args,
- wasm_val_vec_t *results
-) {
- return goTrampolineNew((wasmtime_caller_t*) caller, (size_t) env, (wasm_val_vec_t*) args, results);
-}
-
-static wasm_trap_t* wrap_trampoline(
- const wasmtime_caller_t *caller,
- void *env,
- const wasm_val_vec_t *args,
- wasm_val_vec_t *results
-) {
- return goTrampolineWrap((wasmtime_caller_t*) caller, (size_t) env, (wasm_val_vec_t*) args, results);
-}
-
-wasm_func_t *c_func_new_with_env(wasm_store_t *store, wasm_functype_t *ty, size_t env, int wrap) {
- if (wrap)
- return wasmtime_func_new_with_env(store, ty, wrap_trampoline, (void*) env, goFinalizeWrap);
- return wasmtime_func_new_with_env(store, ty, trampoline, (void*) env, goFinalizeNew);
-}
-
-wasmtime_error_t *go_wasmtime_func_call(
- wasm_func_t *func,
- const wasm_val_vec_t *args,
- wasm_val_vec_t *results,
- wasm_trap_t **trap
-) {
- wasmtime_error_t *ret = wasmtime_func_call(func, args, results, trap);
- return ret;
-}
-
-wasm_extern_t* go_caller_export_get(
- const wasmtime_caller_t* caller,
- char *name_ptr,
- size_t name_len
-) {
- wasm_byte_vec_t name;
- name.data = name_ptr;
- name.size = name_len;
- return wasmtime_caller_export_get(caller, &name);
-}
-
-wasmtime_error_t* go_linker_define(
- wasmtime_linker_t *linker,
- char *module_ptr,
- size_t module_len,
- char *name_ptr,
- size_t name_len,
- wasm_extern_t *item
-) {
- wasm_byte_vec_t module;
- module.data = module_ptr;
- module.size = module_len;
- wasm_byte_vec_t name;
- name.data = name_ptr;
- name.size = name_len;
- return wasmtime_linker_define(linker, &module, &name, item);
-}
-
-wasmtime_error_t* go_linker_define_instance(
- wasmtime_linker_t *linker,
- char *name_ptr,
- size_t name_len,
- wasm_instance_t *instance
-) {
- wasm_byte_vec_t name;
- name.data = name_ptr;
- name.size = name_len;
- return wasmtime_linker_define_instance(linker, &name, instance);
-}
-
-wasmtime_error_t* go_linker_define_module(
- wasmtime_linker_t *linker,
- char *name_ptr,
- size_t name_len,
- wasm_module_t *module
-) {
- wasm_byte_vec_t name;
- name.data = name_ptr;
- name.size = name_len;
- return wasmtime_linker_module(linker, &name, module);
-}
-
-wasmtime_error_t* go_linker_get_default(
- wasmtime_linker_t *linker,
- char *name_ptr,
- size_t name_len,
- wasm_func_t **func
-) {
- wasm_byte_vec_t name;
- name.data = name_ptr;
- name.size = name_len;
- return wasmtime_linker_get_default(linker, &name, func);
-}
-
-wasmtime_error_t* go_linker_get_one_by_name(
- wasmtime_linker_t *linker,
- char *module_ptr,
- size_t module_len,
- char *name_ptr,
- size_t name_len,
- wasm_extern_t **item
-) {
- wasm_byte_vec_t module, name;
- module.data = module_ptr;
- module.size = module_len;
- name.data = name_ptr;
- name.size = name_len;
- return wasmtime_linker_get_one_by_name(linker, &module,&name, item);
-}
-
-void go_externref_new_with_finalizer(
- size_t env,
- wasm_val_t *valp
-) {
- wasmtime_externref_new_with_finalizer((void*) env, goFinalizeExternref, valp);
-}
-
-void go_init_i32(wasm_val_t *val, int32_t i) { val->of.i32 = i; }
-void go_init_i64(wasm_val_t *val, int64_t i) { val->of.i64 = i; }
-void go_init_f32(wasm_val_t *val, float i) { val->of.f32 = i; }
-void go_init_f64(wasm_val_t *val, double i) { val->of.f64 = i; }
-
-int32_t go_get_i32(wasm_val_t *val) { return val->of.i32; }
-int64_t go_get_i64(wasm_val_t *val) { return val->of.i64; }
-float go_get_f32(wasm_val_t *val) { return val->of.f32; }
-double go_get_f64(wasm_val_t *val) { return val->of.f64; }
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/shims.h b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/shims.h
deleted file mode 100644
index 50fda7867..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/shims.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#include
-#include
-
-wasm_func_t *c_func_new_with_env(wasm_store_t *store, wasm_functype_t *ty, size_t env, int wrap);
-wasm_extern_t* go_caller_export_get(const wasmtime_caller_t* caller, char *name_ptr, size_t name_len);
-wasmtime_error_t* go_linker_define(
- wasmtime_linker_t *linker,
- char *module_ptr,
- size_t module_len,
- char *name_ptr,
- size_t name_len,
- wasm_extern_t *item
-);
-wasmtime_error_t* go_linker_define_instance(
- wasmtime_linker_t *linker,
- char *name_ptr,
- size_t name_len,
- wasm_instance_t *item
-);
-wasmtime_error_t* go_linker_define_module(
- wasmtime_linker_t *linker,
- char *name_ptr,
- size_t name_len,
- wasm_module_t *item
-);
-wasmtime_error_t* go_linker_get_default(
- wasmtime_linker_t *linker,
- char *name_ptr,
- size_t name_len,
- wasm_func_t **func
-);
-wasmtime_error_t* go_linker_get_one_by_name(
- wasmtime_linker_t *linker,
- char *module_ptr,
- size_t module_len,
- char *name_ptr,
- size_t name_len,
- wasm_extern_t **item
-);
-void go_externref_new_with_finalizer(
- size_t env,
- wasm_val_t *valp
-);
-wasmtime_error_t *go_wasmtime_func_call(
- wasm_func_t *func,
- const wasm_val_vec_t *args,
- wasm_val_vec_t *results,
- wasm_trap_t **trap
-);
-void go_init_i32(wasm_val_t *val, int32_t i);
-void go_init_i64(wasm_val_t *val, int64_t i);
-void go_init_f32(wasm_val_t *val, float i);
-void go_init_f64(wasm_val_t *val, double i);
-
-int32_t go_get_i32(wasm_val_t *val);
-int64_t go_get_i64(wasm_val_t *val);
-float go_get_f32(wasm_val_t *val);
-double go_get_f64(wasm_val_t *val);
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/slab.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/slab.go
deleted file mode 100644
index decc62250..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/slab.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package wasmtime
-
-type slab struct {
- list []int
- next int
-}
-
-func (s *slab) allocate() int {
- if s.next == len(s.list) {
- s.list = append(s.list, s.next+1)
- }
- ret := s.next
- s.next = s.list[ret]
- return ret
-}
-
-func (s *slab) deallocate(slot int) {
- s.list[slot] = s.next
- s.next = slot
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/store.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/store.go
deleted file mode 100644
index 2b2e4d0a0..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/store.go
+++ /dev/null
@@ -1,90 +0,0 @@
-package wasmtime
-
-// #include
-// #include
-import "C"
-import (
- "errors"
- "runtime"
-)
-
-// Store is a general group of wasm instances, and many objects
-// must all be created with and reference the same `Store`
-type Store struct {
- _ptr *C.wasm_store_t
- freelist *freeList
- Engine *Engine
-}
-
-// NewStore creates a new `Store` from the configuration provided in `engine`
-func NewStore(engine *Engine) *Store {
- store := &Store{
- _ptr: C.wasm_store_new(engine.ptr()),
- freelist: newFreeList(),
- Engine: engine,
- }
- runtime.KeepAlive(engine)
- runtime.SetFinalizer(store, func(store *Store) {
- freelist := store.freelist
- freelist.lock.Lock()
- defer freelist.lock.Unlock()
- freelist.stores = append(freelist.stores, store._ptr)
- })
- return store
-}
-
-func (store *Store) InterruptHandle() (*InterruptHandle, error) {
- ptr := C.wasmtime_interrupt_handle_new(store.ptr())
- runtime.KeepAlive(store)
- if ptr == nil {
- return nil, errors.New("interrupts not enabled in `Config`")
- }
-
- handle := &InterruptHandle{_ptr: ptr}
- runtime.SetFinalizer(handle, func(handle *InterruptHandle) {
- C.wasmtime_interrupt_handle_delete(handle._ptr)
- })
- return handle, nil
-}
-
-// GC will clean up any `externref` values that are no longer actually
-// referenced.
-//
-// This function is not required to be called for correctness, it's only an
-// optimization if desired to clean out any extra `externref` values.
-func (store *Store) GC() {
- C.wasmtime_store_gc(store.ptr())
- runtime.KeepAlive(store)
-}
-
-func (store *Store) ptr() *C.wasm_store_t {
- store.freelist.clear()
- ret := store._ptr
- maybeGC()
- return ret
-}
-
-// InterruptHandle is used to interrupt the execution of currently running
-// wasm code.
-//
-// For more information see
-// https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Store.html#method.interrupt_handle
-type InterruptHandle struct {
- _ptr *C.wasmtime_interrupt_handle_t
-}
-
-// Interrupt interrupts currently executing WebAssembly code, if it's currently running,
-// or interrupts wasm the next time it starts running.
-//
-// For more information see
-// https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Store.html#method.interrupt_handle
-func (i *InterruptHandle) Interrupt() {
- C.wasmtime_interrupt_handle_interrupt(i.ptr())
- runtime.KeepAlive(i)
-}
-
-func (i *InterruptHandle) ptr() *C.wasmtime_interrupt_handle_t {
- ret := i._ptr
- maybeGC()
- return ret
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/table.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/table.go
deleted file mode 100644
index c05610fa5..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/table.go
+++ /dev/null
@@ -1,169 +0,0 @@
-package wasmtime
-
-// #include
-//
-// wasm_ref_t *go_get_ref(wasm_val_t *val) { return val->of.ref; }
-// void go_init_ref(wasm_val_t *val, wasm_ref_t *i) { val->of.ref = i; }
-import "C"
-import (
- "errors"
- "runtime"
-)
-
-// Table is a table instance, which is the runtime representation of a table.
-//
-// It holds a vector of reference types and an optional maximum size, if one was
-// specified in the table type at the table’s definition site.
-// Read more in [spec](https://webassembly.github.io/spec/core/exec/runtime.html#table-instances)
-type Table struct {
- _ptr *C.wasm_table_t
- _owner interface{}
- freelist *freeList
-}
-
-// NewTable creates a new `Table` in the given `Store` with the specified `ty`.
-//
-// The `ty` must be a reference type (`funref` or `externref`) and `init`
-// is the initial value for all table slots and must have the type specified by
-// `ty`.
-func NewTable(store *Store, ty *TableType, init Val) (*Table, error) {
- initPtr, err := getRefPtr(init)
- if err != nil {
- return nil, err
- }
- ptr := C.wasm_table_new(store.ptr(), ty.ptr(), initPtr)
- runtime.KeepAlive(store)
- runtime.KeepAlive(ty)
- runtime.KeepAlive(init)
- if ptr == nil {
- return nil, errors.New("failed to create table")
- }
- return mkTable(ptr, store.freelist, nil), nil
-}
-
-func mkTable(ptr *C.wasm_table_t, freelist *freeList, owner interface{}) *Table {
- f := &Table{_ptr: ptr, _owner: owner, freelist: freelist}
- if owner == nil {
- runtime.SetFinalizer(f, func(f *Table) {
- f.freelist.lock.Lock()
- defer f.freelist.lock.Unlock()
- f.freelist.tables = append(f.freelist.tables, f._ptr)
- })
- }
- return f
-}
-
-func (t *Table) ptr() *C.wasm_table_t {
- ret := t._ptr
- maybeGC()
- return ret
-}
-
-func (t *Table) owner() interface{} {
- if t._owner != nil {
- return t._owner
- }
- return t
-}
-
-// Size returns the size of this table in units of elements.
-func (t *Table) Size() uint32 {
- ret := C.wasm_table_size(t.ptr())
- runtime.KeepAlive(t)
- return uint32(ret)
-}
-
-// Grow grows this table by the number of units specified, using the
-// specified initializer value for new slots.
-//
-// Returns an error if the table failed to grow, or the previous size of the
-// table if growth was successful.
-func (t *Table) Grow(delta uint32, init Val) (uint32, error) {
- if t.Type().Element().Kind() != init.Kind() {
- return 0, errors.New("wrong type of initializer passed to `Grow`")
- }
- ptr, err := getRefPtr(init)
- if err != nil {
- return 0, err
- }
- ok := C.wasm_table_grow(t.ptr(), C.uint32_t(delta), ptr)
- runtime.KeepAlive(t)
- runtime.KeepAlive(init)
- if ok {
- return t.Size() - delta, nil
- }
-
- return 0, errors.New("failed to grow table")
-}
-
-func (t *Table) nullValue() Val {
- switch t.Type().Element().Kind() {
- case KindFuncref:
- return ValFuncref(nil)
- case KindExternref:
- return ValExternref(nil)
- default:
- panic("unsupported table type")
- }
-}
-
-// Get gets an item from this table from the specified index.
-//
-// Returns an error if the index is out of bounds, or returns a value (which
-// may be internally null) if the index is in bounds corresponding to the entry
-// at the specified index.
-func (t *Table) Get(idx uint32) (Val, error) {
- null := t.nullValue()
- if idx >= t.Size() {
- return null, errors.New("index out of bounds")
- }
- valPtr := C.wasm_table_get(t.ptr(), C.uint32_t(idx))
- runtime.KeepAlive(t)
- if valPtr == nil {
- return null, nil
- }
- C.go_init_ref(null.ptr(), valPtr)
- ret := takeVal(null.ptr(), t.freelist)
- runtime.KeepAlive(null)
- return ret, nil
-}
-
-// Set sets an item in this table at the specified index.
-//
-// Returns an error if the index is out of bounds.
-func (t *Table) Set(idx uint32, val Val) error {
- if t.Type().Element().Kind() != val.Kind() {
- return errors.New("wrong type of initializer passed to `Grow`")
- }
- ptr, err := getRefPtr(val)
- if err != nil {
- return err
- }
- ok := C.wasm_table_set(t.ptr(), C.uint32_t(idx), ptr)
- runtime.KeepAlive(t)
- runtime.KeepAlive(val)
- if !ok {
- return errors.New("failed to set table index")
- }
- return nil
-}
-
-// Type returns the underlying type of this table
-func (t *Table) Type() *TableType {
- ptr := C.wasm_table_type(t.ptr())
- runtime.KeepAlive(t)
- return mkTableType(ptr, nil)
-}
-
-func (t *Table) AsExtern() *Extern {
- ptr := C.wasm_table_as_extern(t.ptr())
- return mkExtern(ptr, t.freelist, t.owner())
-}
-
-func getRefPtr(val Val) (*C.wasm_ref_t, error) {
- switch val.Kind() {
- case KindExternref, KindFuncref:
- return C.go_get_ref(val.ptr()), nil
- }
- return nil, errors.New("not a reference type")
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/tabletype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/tabletype.go
deleted file mode 100644
index a7a293006..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/tabletype.go
+++ /dev/null
@@ -1,63 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// TableType is one of table types which classify tables over elements of element types within a size range.
-type TableType struct {
- _ptr *C.wasm_tabletype_t
- _owner interface{}
-}
-
-// NewTableType creates a new `TableType` with the `element` type provided as well as
-// `limits` on its size.
-func NewTableType(element *ValType, limits Limits) *TableType {
- valptr := C.wasm_valtype_new(C.wasm_valtype_kind(element.ptr()))
- runtime.KeepAlive(element)
- limitsFFI := limits.ffi()
- ptr := C.wasm_tabletype_new(valptr, &limitsFFI)
-
- return mkTableType(ptr, nil)
-}
-
-func mkTableType(ptr *C.wasm_tabletype_t, owner interface{}) *TableType {
- tabletype := &TableType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(tabletype, func(tabletype *TableType) {
- C.wasm_tabletype_delete(tabletype._ptr)
- })
- }
- return tabletype
-}
-
-func (ty *TableType) ptr() *C.wasm_tabletype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *TableType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// Element returns the type of value stored in this table
-func (ty *TableType) Element() *ValType {
- ptr := C.wasm_tabletype_element(ty.ptr())
- return mkValType(ptr, ty.owner())
-}
-
-// Limits returns limits on the size of this table type
-func (ty *TableType) Limits() Limits {
- ptr := C.wasm_tabletype_limits(ty.ptr())
- return mkLimits(ptr, ty.owner())
-}
-
-// AsExternType converts this type to an instance of `ExternType`
-func (ty *TableType) AsExternType() *ExternType {
- ptr := C.wasm_tabletype_as_externtype_const(ty.ptr())
- return mkExternType(ptr, ty.owner())
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/trap.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/trap.go
deleted file mode 100644
index ce12bd831..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/trap.go
+++ /dev/null
@@ -1,151 +0,0 @@
-package wasmtime
-
-// #include
-// #include
-// #include
-import "C"
-
-import (
- "runtime"
- "unsafe"
-)
-
-// Trap is the trap instruction which represents the occurrence of a trap.
-// Traps are bubbled up through nested instruction sequences, ultimately reducing the entire program to a single trap instruction, signalling abrupt termination.
-type Trap struct {
- _ptr *C.wasm_trap_t
-}
-
-// Frame is one of activation frames which carry the return arity n of the respective function,
-// hold the values of its locals (including arguments) in the order corresponding to their static local indices,
-// and a reference to the function’s own module instance
-type Frame struct {
- _ptr *C.wasm_frame_t
- _owner interface{}
-}
-
-// NewTrap creates a new `Trap` with the `name` and the type provided.
-func NewTrap(store *Store, message string) *Trap {
- cs := C.CString(message)
- messageVec := C.wasm_byte_vec_t{
- data: cs,
- size: C.size_t(len(message) + 1),
- }
- ptr := C.wasm_trap_new(store.ptr(), &messageVec)
- C.free(unsafe.Pointer(cs))
- runtime.KeepAlive(store)
- return mkTrap(ptr)
-}
-
-func mkTrap(ptr *C.wasm_trap_t) *Trap {
- trap := &Trap{_ptr: ptr}
- runtime.SetFinalizer(trap, func(trap *Trap) {
- C.wasm_trap_delete(trap._ptr)
- })
- return trap
-}
-
-func (t *Trap) ptr() *C.wasm_trap_t {
- ret := t._ptr
- maybeGC()
- return ret
-}
-
-// Message returns the name in the module this export type is exporting
-func (t *Trap) Message() string {
- message := C.wasm_byte_vec_t{}
- C.wasm_trap_message(t.ptr(), &message)
- ret := C.GoStringN(message.data, C.int(message.size-1))
- runtime.KeepAlive(t)
- C.wasm_byte_vec_delete(&message)
- return ret
-}
-
-func (t *Trap) Error() string {
- return t.Message()
-}
-
-func unwrapStrOr(s *string, other string) string {
- if s == nil {
- return other
- }
-
- return *s
-}
-
-type frameList struct {
- vec C.wasm_frame_vec_t
-}
-
-// Frames returns the wasm function frames that make up this trap
-func (t *Trap) Frames() []*Frame {
- frames := &frameList{}
- C.wasm_trap_trace(t.ptr(), &frames.vec)
- runtime.KeepAlive(t)
- runtime.SetFinalizer(frames, func(frames *frameList) {
- C.wasm_frame_vec_delete(&frames.vec)
- })
-
- ret := make([]*Frame, int(frames.vec.size))
- base := unsafe.Pointer(frames.vec.data)
- var ptr *C.wasm_frame_t
- for i := 0; i < int(frames.vec.size); i++ {
- ptr := *(**C.wasm_frame_t)(unsafe.Pointer(uintptr(base) + unsafe.Sizeof(ptr)*uintptr(i)))
- ret[i] = &Frame{
- _ptr: ptr,
- _owner: frames,
- }
- }
- return ret
-}
-
-func (f *Frame) ptr() *C.wasm_frame_t {
- ret := f._ptr
- maybeGC()
- return ret
-}
-
-// FuncIndex returns the function index in the wasm module that this frame represents
-func (f *Frame) FuncIndex() uint32 {
- ret := C.wasm_frame_func_index(f.ptr())
- runtime.KeepAlive(f)
- return uint32(ret)
-}
-
-// FuncName returns the name, if available, for this frame's function
-func (f *Frame) FuncName() *string {
- ret := C.wasmtime_frame_func_name(f.ptr())
- if ret == nil {
- runtime.KeepAlive(f)
- return nil
- }
- str := C.GoStringN(ret.data, C.int(ret.size))
- runtime.KeepAlive(f)
- return &str
-}
-
-// ModuleName returns the name, if available, for this frame's module
-func (f *Frame) ModuleName() *string {
- ret := C.wasmtime_frame_module_name(f.ptr())
- if ret == nil {
- runtime.KeepAlive(f)
- return nil
- }
- str := C.GoStringN(ret.data, C.int(ret.size))
- runtime.KeepAlive(f)
- return &str
-}
-
-// ModuleOffset returns offset of this frame's instruction into the original module
-func (f *Frame) ModuleOffset() uint {
- ret := uint(C.wasm_frame_module_offset(f.ptr()))
- runtime.KeepAlive(f)
- return ret
-}
-
-// FuncOffset returns offset of this frame's instruction into the original function
-func (f *Frame) FuncOffset() uint {
- ret := uint(C.wasm_frame_func_offset(f.ptr()))
- runtime.KeepAlive(f)
- return ret
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/val.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/val.go
deleted file mode 100644
index 9cb42f2e5..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/val.go
+++ /dev/null
@@ -1,230 +0,0 @@
-package wasmtime
-
-// #include
-// #include "shims.h"
-import "C"
-import (
- "runtime"
- "sync"
- "unsafe"
-)
-
-var gExternrefLock sync.Mutex
-var gExternrefMap = make(map[int]interface{})
-var gExternrefSlab slab
-
-// Val is a primitive numeric value.
-// Moreover, in the definition of programs, immutable sequences of values occur to represent more complex data, such as text strings or other vectors.
-type Val struct {
- _raw *C.wasm_val_t
- freelist *freeList
-}
-
-// ValI32 converts a go int32 to a i32 Val
-func ValI32(val int32) Val {
- ret := Val{_raw: &C.wasm_val_t{kind: C.WASM_I32}}
- C.go_init_i32(ret.ptr(), C.int32_t(val))
- return ret
-}
-
-// ValI64 converts a go int64 to a i64 Val
-func ValI64(val int64) Val {
- ret := Val{_raw: &C.wasm_val_t{kind: C.WASM_I64}}
- C.go_init_i64(ret.ptr(), C.int64_t(val))
- return ret
-}
-
-// ValF32 converts a go float32 to a f32 Val
-func ValF32(val float32) Val {
- ret := Val{_raw: &C.wasm_val_t{kind: C.WASM_F32}}
- C.go_init_f32(ret.ptr(), C.float(val))
- return ret
-}
-
-// ValF64 converts a go float64 to a f64 Val
-func ValF64(val float64) Val {
- ret := Val{_raw: &C.wasm_val_t{kind: C.WASM_F64}}
- C.go_init_f64(ret.ptr(), C.double(val))
- return ret
-}
-
-// ValFuncref converts a Func to a funcref Val
-//
-// Note that `f` can be `nil` to represent a null `funcref`.
-func ValFuncref(f *Func) Val {
- ret := Val{_raw: &C.wasm_val_t{kind: C.WASM_FUNCREF}}
- if f != nil {
- ret.freelist = f.freelist
- C.wasmtime_func_as_funcref(f.ptr(), ret.ptr())
- runtime.KeepAlive(f)
- ret.setDtor()
- }
- return ret
-}
-
-// ValExternref converts a go value to a externref Val
-//
-// Using `externref` is a way to pass arbitrary Go data into a WebAssembly
-// module for it to store. Later, when you get a `Val`, you can extract the type
-// with the `Externref()` method.
-func ValExternref(val interface{}) Val {
- ret := Val{_raw: &C.wasm_val_t{kind: C.WASM_ANYREF}}
-
- // If we have a non-nil value then store it in our global map of all
- // externref values. Otherwise there's nothing for us to do since the
- // `ref` field will already be a nil pointer.
- //
- // Note that we add 1 so all non-null externref values are created with
- // non-null pointers.
- if val != nil {
- gExternrefLock.Lock()
- defer gExternrefLock.Unlock()
- index := gExternrefSlab.allocate()
- gExternrefMap[index] = val
- C.go_externref_new_with_finalizer(C.size_t(index+1), ret.ptr())
- ret.setDtor()
- }
- return ret
-}
-
-//export goFinalizeExternref
-func goFinalizeExternref(env unsafe.Pointer) {
- idx := int(uintptr(env)) - 1
- gExternrefLock.Lock()
- defer gExternrefLock.Unlock()
- delete(gExternrefMap, idx)
- gExternrefSlab.deallocate(idx)
-}
-
-func mkVal(src *C.wasm_val_t, freelist *freeList) Val {
- ret := Val{_raw: &C.wasm_val_t{}, freelist: freelist}
- C.wasm_val_copy(ret.ptr(), src)
- ret.setDtor()
- return ret
-}
-
-func takeVal(src *C.wasm_val_t, freelist *freeList) Val {
- ret := Val{_raw: &C.wasm_val_t{}, freelist: freelist}
- *ret.ptr() = *src
- ret.setDtor()
- return ret
-}
-
-func (v Val) setDtor() {
- freelist := v.freelist
- if v.Kind() == KindFuncref && freelist == nil {
- panic("freelist not set")
- }
- // If we're deleting a funcref, that needs to happen on the thread with
- // the original `Store`. Otherwise we can delete values on any thread,
- // such as externrefs.
- runtime.SetFinalizer(v.ptr(), func(ptr *C.wasm_val_t) {
- if ptr.kind == C.WASM_FUNCREF {
- freelist.lock.Lock()
- defer freelist.lock.Unlock()
- freelist.vals = append(freelist.vals, ptr)
- } else {
- C.wasm_val_delete(ptr)
- }
- })
-}
-
-func (v Val) ptr() *C.wasm_val_t {
- ret := v._raw
- maybeGC()
- return ret
-}
-
-// Kind returns the kind of value that this `Val` contains.
-func (v Val) Kind() ValKind {
- return ValKind(v.ptr().kind)
-}
-
-// I32 returns the underlying 32-bit integer if this is an `i32`, or panics.
-func (v Val) I32() int32 {
- if v.Kind() != KindI32 {
- panic("not an i32")
- }
- return int32(C.go_get_i32(v.ptr()))
-}
-
-// I64 returns the underlying 64-bit integer if this is an `i64`, or panics.
-func (v Val) I64() int64 {
- if v.Kind() != KindI64 {
- panic("not an i64")
- }
- return int64(C.go_get_i64(v.ptr()))
-}
-
-// F32 returns the underlying 32-bit float if this is an `f32`, or panics.
-func (v Val) F32() float32 {
- if v.Kind() != KindF32 {
- panic("not an f32")
- }
- return float32(C.go_get_f32(v.ptr()))
-}
-
-// F64 returns the underlying 64-bit float if this is an `f64`, or panics.
-func (v Val) F64() float64 {
- if v.Kind() != KindF64 {
- panic("not an f64")
- }
- return float64(C.go_get_f64(v.ptr()))
-}
-
-// Funcref returns the underlying function if this is a `funcref`, or panics.
-//
-// Note that a null `funcref` is returned as `nil`.
-func (v Val) Funcref() *Func {
- if v.Kind() != KindFuncref {
- panic("not a funcref")
- }
- ptr := C.wasmtime_funcref_as_func(v.ptr())
- runtime.KeepAlive(v)
- if ptr != nil {
- if v.freelist == nil {
- panic("freelist not available")
- }
- return mkFunc(ptr, v.freelist, nil)
- } else {
- return nil
- }
-}
-
-// Externref returns the underlying value if this is an `externref`, or panics.
-//
-// Note that a null `externref` is returned as `nil`.
-func (v Val) Externref() interface{} {
- var data unsafe.Pointer
- ok := C.wasmtime_externref_data(v.ptr(), &data)
- runtime.KeepAlive(v)
- if !ok {
- panic("not an externref")
- }
- if data == nil {
- return nil
- }
-
- gExternrefLock.Lock()
- defer gExternrefLock.Unlock()
- return gExternrefMap[int(uintptr(data))-1]
-}
-
-// Get returns the underlying 64-bit float if this is an `f64`, or panics.
-func (v Val) Get() interface{} {
- switch v.Kind() {
- case KindI32:
- return v.I32()
- case KindI64:
- return v.I64()
- case KindF32:
- return v.F32()
- case KindF64:
- return v.F64()
- case KindFuncref:
- return v.Funcref()
- case KindExternref:
- return v.Externref()
- }
- panic("failed to get value of `Val`")
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/valtype.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/valtype.go
deleted file mode 100644
index 1ddb00a6a..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/valtype.go
+++ /dev/null
@@ -1,90 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// ValKind enumeration of different kinds of value types
-type ValKind C.wasm_valkind_t
-
-const (
- // KindI32 is the types i32 classify 32 bit integers. Integers are not inherently signed or unsigned, their interpretation is determined by individual operations.
- KindI32 ValKind = C.WASM_I32
- // KindI64 is the types i64 classify 64 bit integers. Integers are not inherently signed or unsigned, their interpretation is determined by individual operations.
- KindI64 ValKind = C.WASM_I64
- // KindF32 is the types f32 classify 32 bit floating-point data. They correspond to the respective binary floating-point representations, also known as single and double precision, as defined by the IEEE 754-2019 standard.
- KindF32 ValKind = C.WASM_F32
- // KindF64 is the types f64 classify 64 bit floating-point data. They correspond to the respective binary floating-point representations, also known as single and double precision, as defined by the IEEE 754-2019 standard.
- KindF64 ValKind = C.WASM_F64
- // TODO: Unknown
- KindExternref ValKind = C.WASM_ANYREF
- // KindFuncref is the infinite union of all function types.
- KindFuncref ValKind = C.WASM_FUNCREF
-)
-
-// String renders this kind as a string, similar to the `*.wat` format
-func (ty ValKind) String() string {
- switch ty {
- case KindI32:
- return "i32"
- case KindI64:
- return "i64"
- case KindF32:
- return "f32"
- case KindF64:
- return "f64"
- case KindExternref:
- return "externref"
- case KindFuncref:
- return "funcref"
- }
- panic("unknown kind")
-}
-
-// ValType means one of the value types, which classify the individual values that WebAssembly code can compute with and the values that a variable accepts.
-type ValType struct {
- _ptr *C.wasm_valtype_t
- _owner interface{}
-}
-
-// NewValType creates a new `ValType` with the `kind` provided
-func NewValType(kind ValKind) *ValType {
- ptr := C.wasm_valtype_new(C.wasm_valkind_t(kind))
- return mkValType(ptr, nil)
-}
-
-func mkValType(ptr *C.wasm_valtype_t, owner interface{}) *ValType {
- valtype := &ValType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(valtype, func(valtype *ValType) {
- C.wasm_valtype_delete(valtype._ptr)
- })
- }
- return valtype
-}
-
-// Kind returns the corresponding `ValKind` for this `ValType`
-func (t *ValType) Kind() ValKind {
- ret := ValKind(C.wasm_valtype_kind(t.ptr()))
- runtime.KeepAlive(t)
- return ret
-}
-
-// Converts this `ValType` into a string according to the string representation
-// of `ValKind`.
-func (t *ValType) String() string {
- return t.Kind().String()
-}
-
-func (t *ValType) ptr() *C.wasm_valtype_t {
- ret := t._ptr
- maybeGC()
- return ret
-}
-
-func (t *ValType) owner() interface{} {
- if t._owner != nil {
- return t._owner
- }
- return t
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/wasi.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/wasi.go
deleted file mode 100644
index 14d716620..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/wasi.go
+++ /dev/null
@@ -1,216 +0,0 @@
-package wasmtime
-
-// #include
-// #include
-import "C"
-import (
- "errors"
- "runtime"
- "unsafe"
-)
-
-type WasiConfig struct {
- _ptr *C.wasi_config_t
-}
-
-func NewWasiConfig() *WasiConfig {
- ptr := C.wasi_config_new()
- config := &WasiConfig{_ptr: ptr}
- runtime.SetFinalizer(config, func(config *WasiConfig) {
- C.wasi_config_delete(config._ptr)
- })
- return config
-}
-
-func (c *WasiConfig) ptr() *C.wasi_config_t {
- ret := c._ptr
- maybeGC()
- return ret
-}
-
-// SetArgv will explicitly configure the argv for this WASI configuration.
-// Note that this field can only be set, it cannot be read
-func (c *WasiConfig) SetArgv(argv []string) {
- ptrs := make([]*C.char, len(argv))
- for i, arg := range argv {
- ptrs[i] = C.CString(arg)
- }
- var argvRaw **C.char
- if len(ptrs) > 0 {
- argvRaw = &ptrs[0]
- }
- C.wasi_config_set_argv(c.ptr(), C.int(len(argv)), argvRaw)
- runtime.KeepAlive(c)
- for _, ptr := range ptrs {
- C.free(unsafe.Pointer(ptr))
- }
-}
-
-func (c *WasiConfig) InheritArgv() {
- C.wasi_config_inherit_argv(c.ptr())
- runtime.KeepAlive(c)
-}
-
-// SetEnv configures environment variables to be returned for this WASI configuration.
-// The pairs provided must be an iterable list of key/value pairs of environment variables.
-// Note that this field can only be set, it cannot be read
-func (c *WasiConfig) SetEnv(keys, values []string) {
- if len(keys) != len(values) {
- panic("mismatched numbers of keys and values")
- }
- namePtrs := make([]*C.char, len(values))
- valuePtrs := make([]*C.char, len(values))
- for i, key := range keys {
- namePtrs[i] = C.CString(key)
- }
- for i, value := range values {
- valuePtrs[i] = C.CString(value)
- }
- var namesRaw, valuesRaw **C.char
- if len(keys) > 0 {
- namesRaw = &namePtrs[0]
- valuesRaw = &valuePtrs[0]
- }
- C.wasi_config_set_env(c.ptr(), C.int(len(keys)), namesRaw, valuesRaw)
- runtime.KeepAlive(c)
- for i, ptr := range namePtrs {
- C.free(unsafe.Pointer(ptr))
- C.free(unsafe.Pointer(valuePtrs[i]))
- }
-}
-
-func (c *WasiConfig) InheritEnv() {
- C.wasi_config_inherit_env(c.ptr())
- runtime.KeepAlive(c)
-}
-
-func (c *WasiConfig) SetStdinFile(path string) error {
- pathC := C.CString(path)
- ok := C.wasi_config_set_stdin_file(c.ptr(), pathC)
- runtime.KeepAlive(c)
- C.free(unsafe.Pointer(pathC))
- if ok {
- return nil
- }
-
- return errors.New("failed to open file")
-}
-
-func (c *WasiConfig) InheritStdin() {
- C.wasi_config_inherit_stdin(c.ptr())
- runtime.KeepAlive(c)
-}
-
-func (c *WasiConfig) SetStdoutFile(path string) error {
- pathC := C.CString(path)
- ok := C.wasi_config_set_stdout_file(c.ptr(), pathC)
- runtime.KeepAlive(c)
- C.free(unsafe.Pointer(pathC))
- if ok {
- return nil
- }
-
- return errors.New("failed to open file")
-}
-
-func (c *WasiConfig) InheritStdout() {
- C.wasi_config_inherit_stdout(c.ptr())
- runtime.KeepAlive(c)
-}
-
-func (c *WasiConfig) SetStderrFile(path string) error {
- pathC := C.CString(path)
- ok := C.wasi_config_set_stderr_file(c.ptr(), pathC)
- runtime.KeepAlive(c)
- C.free(unsafe.Pointer(pathC))
- if ok {
- return nil
- }
-
- return errors.New("failed to open file")
-}
-
-func (c *WasiConfig) InheritStderr() {
- C.wasi_config_inherit_stderr(c.ptr())
- runtime.KeepAlive(c)
-}
-
-func (c *WasiConfig) PreopenDir(path, guestPath string) error {
- pathC := C.CString(path)
- guestPathC := C.CString(guestPath)
- ok := C.wasi_config_preopen_dir(c.ptr(), pathC, guestPathC)
- runtime.KeepAlive(c)
- C.free(unsafe.Pointer(pathC))
- C.free(unsafe.Pointer(guestPathC))
- if ok {
- return nil
- }
-
- return errors.New("failed to preopen directory")
-}
-
-type WasiInstance struct {
- _ptr *C.wasi_instance_t
- freelist *freeList
-}
-
-// NewWasiInstance creates a new instance of WASI with the given configuration.
-//
-// The version of WASI must be explicitly requested via `name`.
-func NewWasiInstance(store *Store, config *WasiConfig, name string) (*WasiInstance, error) {
- if config._ptr == nil {
- panic("config already used to create wasi instance")
- }
- var trap *C.wasm_trap_t
- namePtr := C.CString(name)
- ptr := C.wasi_instance_new(
- store.ptr(),
- namePtr,
- config.ptr(),
- &trap,
- )
- runtime.KeepAlive(store)
- config._ptr = nil
- runtime.SetFinalizer(config, nil)
- C.free(unsafe.Pointer(namePtr))
-
- if ptr == nil {
- if trap != nil {
- return nil, mkTrap(trap)
- }
- return nil, errors.New("failed to create instance")
- }
-
- instance := &WasiInstance{
- _ptr: ptr,
- freelist: store.freelist,
- }
- runtime.SetFinalizer(instance, func(instance *WasiInstance) {
- freelist := instance.freelist
- freelist.lock.Lock()
- defer freelist.lock.Unlock()
- freelist.wasiInstances = append(freelist.wasiInstances, instance._ptr)
- })
- return instance, nil
-}
-
-func (i *WasiInstance) ptr() *C.wasi_instance_t {
- ret := i._ptr
- maybeGC()
- return ret
-}
-
-// BindImport attempts to bind the `imp` import provided, returning an Extern suitable for
-// satisfying the import if one can be found.
-//
-// If `imp` isn't defined by this instance of WASI then `nil` is returned.
-func (i *WasiInstance) BindImport(imp *ImportType) *Extern {
- ret := C.wasi_instance_bind_import(i.ptr(), imp.ptr())
- runtime.KeepAlive(i)
- runtime.KeepAlive(imp)
- if ret == nil {
- return nil
- }
-
- return mkExtern(ret, i.freelist, nil)
-}
diff --git a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/wat2wasm.go b/constraint/vendor/github.com/bytecodealliance/wasmtime-go/wat2wasm.go
deleted file mode 100644
index eb6a62af0..000000000
--- a/constraint/vendor/github.com/bytecodealliance/wasmtime-go/wat2wasm.go
+++ /dev/null
@@ -1,41 +0,0 @@
-package wasmtime
-
-// #include
-//
-// wasmtime_error_t *go_wat2wasm(
-// char *wat_ptr,
-// size_t wat_len,
-// wasm_byte_vec_t *ret
-// ) {
-// wasm_byte_vec_t wat;
-// wat.data = wat_ptr;
-// wat.size = wat_len;
-// return wasmtime_wat2wasm(&wat, ret);
-// }
-import "C"
-import (
- "runtime"
- "unsafe"
-)
-
-// Wat2Wasm converts the text format of WebAssembly to the binary format.
-//
-// Takes the text format in-memory as input, and returns either the binary
-// encoding of the text format or an error if parsing fails.
-func Wat2Wasm(wat string) ([]byte, error) {
- retVec := C.wasm_byte_vec_t{}
- err := C.go_wat2wasm(
- C._GoStringPtr(wat),
- C._GoStringLen(wat),
- &retVec,
- )
- runtime.KeepAlive(wat)
-
- if err == nil {
- ret := C.GoBytes(unsafe.Pointer(retVec.data), C.int(retVec.size))
- C.wasm_byte_vec_delete(&retVec)
- return ret, nil
- }
-
- return nil, mkError(err)
-}
diff --git a/constraint/vendor/github.com/cespare/xxhash/v2/.travis.yml b/constraint/vendor/github.com/cespare/xxhash/v2/.travis.yml
deleted file mode 100644
index c516ea88d..000000000
--- a/constraint/vendor/github.com/cespare/xxhash/v2/.travis.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-language: go
-go:
- - "1.x"
- - master
-env:
- - TAGS=""
- - TAGS="-tags purego"
-script: go test $TAGS -v ./...
diff --git a/constraint/vendor/github.com/cespare/xxhash/v2/README.md b/constraint/vendor/github.com/cespare/xxhash/v2/README.md
index 2fd8693c2..792b4a60b 100644
--- a/constraint/vendor/github.com/cespare/xxhash/v2/README.md
+++ b/constraint/vendor/github.com/cespare/xxhash/v2/README.md
@@ -1,7 +1,7 @@
# xxhash
-[![GoDoc](https://godoc.org/github.com/cespare/xxhash?status.svg)](https://godoc.org/github.com/cespare/xxhash)
-[![Build Status](https://travis-ci.org/cespare/xxhash.svg?branch=master)](https://travis-ci.org/cespare/xxhash)
+[![Go Reference](https://pkg.go.dev/badge/github.com/cespare/xxhash/v2.svg)](https://pkg.go.dev/github.com/cespare/xxhash/v2)
+[![Test](https://github.com/cespare/xxhash/actions/workflows/test.yml/badge.svg)](https://github.com/cespare/xxhash/actions/workflows/test.yml)
xxhash is a Go implementation of the 64-bit
[xxHash](http://cyan4973.github.io/xxHash/) algorithm, XXH64. This is a
@@ -64,4 +64,6 @@ $ go test -benchtime 10s -bench '/xxhash,direct,bytes'
- [InfluxDB](https://github.com/influxdata/influxdb)
- [Prometheus](https://github.com/prometheus/prometheus)
+- [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics)
- [FreeCache](https://github.com/coocood/freecache)
+- [FastCache](https://github.com/VictoriaMetrics/fastcache)
diff --git a/constraint/vendor/github.com/cespare/xxhash/v2/xxhash.go b/constraint/vendor/github.com/cespare/xxhash/v2/xxhash.go
index db0b35fbe..15c835d54 100644
--- a/constraint/vendor/github.com/cespare/xxhash/v2/xxhash.go
+++ b/constraint/vendor/github.com/cespare/xxhash/v2/xxhash.go
@@ -193,7 +193,6 @@ func (d *Digest) UnmarshalBinary(b []byte) error {
b, d.v4 = consumeUint64(b)
b, d.total = consumeUint64(b)
copy(d.mem[:], b)
- b = b[len(d.mem):]
d.n = int(d.total % uint64(len(d.mem)))
return nil
}
diff --git a/constraint/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s b/constraint/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
index d580e32ae..be8db5bf7 100644
--- a/constraint/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
+++ b/constraint/vendor/github.com/cespare/xxhash/v2/xxhash_amd64.s
@@ -6,7 +6,7 @@
// Register allocation:
// AX h
-// CX pointer to advance through b
+// SI pointer to advance through b
// DX n
// BX loop end
// R8 v1, k1
@@ -16,39 +16,39 @@
// R12 tmp
// R13 prime1v
// R14 prime2v
-// R15 prime4v
+// DI prime4v
-// round reads from and advances the buffer pointer in CX.
+// round reads from and advances the buffer pointer in SI.
// It assumes that R13 has prime1v and R14 has prime2v.
#define round(r) \
- MOVQ (CX), R12 \
- ADDQ $8, CX \
+ MOVQ (SI), R12 \
+ ADDQ $8, SI \
IMULQ R14, R12 \
ADDQ R12, r \
ROLQ $31, r \
IMULQ R13, r
// mergeRound applies a merge round on the two registers acc and val.
-// It assumes that R13 has prime1v, R14 has prime2v, and R15 has prime4v.
+// It assumes that R13 has prime1v, R14 has prime2v, and DI has prime4v.
#define mergeRound(acc, val) \
IMULQ R14, val \
ROLQ $31, val \
IMULQ R13, val \
XORQ val, acc \
IMULQ R13, acc \
- ADDQ R15, acc
+ ADDQ DI, acc
// func Sum64(b []byte) uint64
TEXT ·Sum64(SB), NOSPLIT, $0-32
// Load fixed primes.
MOVQ ·prime1v(SB), R13
MOVQ ·prime2v(SB), R14
- MOVQ ·prime4v(SB), R15
+ MOVQ ·prime4v(SB), DI
// Load slice.
- MOVQ b_base+0(FP), CX
+ MOVQ b_base+0(FP), SI
MOVQ b_len+8(FP), DX
- LEAQ (CX)(DX*1), BX
+ LEAQ (SI)(DX*1), BX
// The first loop limit will be len(b)-32.
SUBQ $32, BX
@@ -65,14 +65,14 @@ TEXT ·Sum64(SB), NOSPLIT, $0-32
XORQ R11, R11
SUBQ R13, R11
- // Loop until CX > BX.
+ // Loop until SI > BX.
blockLoop:
round(R8)
round(R9)
round(R10)
round(R11)
- CMPQ CX, BX
+ CMPQ SI, BX
JLE blockLoop
MOVQ R8, AX
@@ -100,16 +100,16 @@ noBlocks:
afterBlocks:
ADDQ DX, AX
- // Right now BX has len(b)-32, and we want to loop until CX > len(b)-8.
+ // Right now BX has len(b)-32, and we want to loop until SI > len(b)-8.
ADDQ $24, BX
- CMPQ CX, BX
+ CMPQ SI, BX
JG fourByte
wordLoop:
// Calculate k1.
- MOVQ (CX), R8
- ADDQ $8, CX
+ MOVQ (SI), R8
+ ADDQ $8, SI
IMULQ R14, R8
ROLQ $31, R8
IMULQ R13, R8
@@ -117,18 +117,18 @@ wordLoop:
XORQ R8, AX
ROLQ $27, AX
IMULQ R13, AX
- ADDQ R15, AX
+ ADDQ DI, AX
- CMPQ CX, BX
+ CMPQ SI, BX
JLE wordLoop
fourByte:
ADDQ $4, BX
- CMPQ CX, BX
+ CMPQ SI, BX
JG singles
- MOVL (CX), R8
- ADDQ $4, CX
+ MOVL (SI), R8
+ ADDQ $4, SI
IMULQ R13, R8
XORQ R8, AX
@@ -138,19 +138,19 @@ fourByte:
singles:
ADDQ $4, BX
- CMPQ CX, BX
+ CMPQ SI, BX
JGE finalize
singlesLoop:
- MOVBQZX (CX), R12
- ADDQ $1, CX
+ MOVBQZX (SI), R12
+ ADDQ $1, SI
IMULQ ·prime5v(SB), R12
XORQ R12, AX
ROLQ $11, AX
IMULQ R13, AX
- CMPQ CX, BX
+ CMPQ SI, BX
JL singlesLoop
finalize:
@@ -179,9 +179,9 @@ TEXT ·writeBlocks(SB), NOSPLIT, $0-40
MOVQ ·prime2v(SB), R14
// Load slice.
- MOVQ b_base+8(FP), CX
+ MOVQ b_base+8(FP), SI
MOVQ b_len+16(FP), DX
- LEAQ (CX)(DX*1), BX
+ LEAQ (SI)(DX*1), BX
SUBQ $32, BX
// Load vN from d.
@@ -199,7 +199,7 @@ blockLoop:
round(R10)
round(R11)
- CMPQ CX, BX
+ CMPQ SI, BX
JLE blockLoop
// Copy vN back to d.
@@ -208,8 +208,8 @@ blockLoop:
MOVQ R10, 16(AX)
MOVQ R11, 24(AX)
- // The number of bytes written is CX minus the old base pointer.
- SUBQ b_base+8(FP), CX
- MOVQ CX, ret+32(FP)
+ // The number of bytes written is SI minus the old base pointer.
+ SUBQ b_base+8(FP), SI
+ MOVQ SI, ret+32(FP)
RET
diff --git a/constraint/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go b/constraint/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
index 53bf76efb..376e0ca2e 100644
--- a/constraint/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
+++ b/constraint/vendor/github.com/cespare/xxhash/v2/xxhash_unsafe.go
@@ -6,41 +6,52 @@
package xxhash
import (
- "reflect"
"unsafe"
)
-// Notes:
+// In the future it's possible that compiler optimizations will make these
+// XxxString functions unnecessary by realizing that calls such as
+// Sum64([]byte(s)) don't need to copy s. See https://golang.org/issue/2205.
+// If that happens, even if we keep these functions they can be replaced with
+// the trivial safe code.
+
+// NOTE: The usual way of doing an unsafe string-to-[]byte conversion is:
//
-// See https://groups.google.com/d/msg/golang-nuts/dcjzJy-bSpw/tcZYBzQqAQAJ
-// for some discussion about these unsafe conversions.
+// var b []byte
+// bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
+// bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
+// bh.Len = len(s)
+// bh.Cap = len(s)
//
-// In the future it's possible that compiler optimizations will make these
-// unsafe operations unnecessary: https://golang.org/issue/2205.
+// Unfortunately, as of Go 1.15.3 the inliner's cost model assigns a high enough
+// weight to this sequence of expressions that any function that uses it will
+// not be inlined. Instead, the functions below use a different unsafe
+// conversion designed to minimize the inliner weight and allow both to be
+// inlined. There is also a test (TestInlining) which verifies that these are
+// inlined.
//
-// Both of these wrapper functions still incur function call overhead since they
-// will not be inlined. We could write Go/asm copies of Sum64 and Digest.Write
-// for strings to squeeze out a bit more speed. Mid-stack inlining should
-// eventually fix this.
+// See https://github.com/golang/go/issues/42739 for discussion.
// Sum64String computes the 64-bit xxHash digest of s.
// It may be faster than Sum64([]byte(s)) by avoiding a copy.
func Sum64String(s string) uint64 {
- var b []byte
- bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
- bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
- bh.Len = len(s)
- bh.Cap = len(s)
+ b := *(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)}))
return Sum64(b)
}
// WriteString adds more data to d. It always returns len(s), nil.
// It may be faster than Write([]byte(s)) by avoiding a copy.
func (d *Digest) WriteString(s string) (n int, err error) {
- var b []byte
- bh := (*reflect.SliceHeader)(unsafe.Pointer(&b))
- bh.Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data
- bh.Len = len(s)
- bh.Cap = len(s)
- return d.Write(b)
+ d.Write(*(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)})))
+ // d.Write always returns len(s), nil.
+ // Ignoring the return output and returning these fixed values buys a
+ // savings of 6 in the inliner's cost model.
+ return len(s), nil
+}
+
+// sliceHeader is similar to reflect.SliceHeader, but it assumes that the layout
+// of the first two words is the same as the layout of a string.
+type sliceHeader struct {
+ s string
+ cap int
}
diff --git a/constraint/vendor/github.com/evanphx/json-patch/.travis.yml b/constraint/vendor/github.com/evanphx/json-patch/.travis.yml
deleted file mode 100644
index 50e4afd19..000000000
--- a/constraint/vendor/github.com/evanphx/json-patch/.travis.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-language: go
-
-go:
- - 1.14
- - 1.13
-
-install:
- - if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi
- - go get github.com/jessevdk/go-flags
-
-script:
- - go get
- - go test -cover ./...
- - cd ./v5
- - go get
- - go test -cover ./...
-
-notifications:
- email: false
diff --git a/constraint/vendor/github.com/evanphx/json-patch/README.md b/constraint/vendor/github.com/evanphx/json-patch/README.md
index 121b039db..28e351693 100644
--- a/constraint/vendor/github.com/evanphx/json-patch/README.md
+++ b/constraint/vendor/github.com/evanphx/json-patch/README.md
@@ -39,6 +39,25 @@ go get -u github.com/evanphx/json-patch/v5
which limits the total size increase in bytes caused by "copy" operations in a
patch. It defaults to 0, which means there is no limit.
+These global variables control the behavior of `jsonpatch.Apply`.
+
+An alternative to `jsonpatch.Apply` is `jsonpatch.ApplyWithOptions` whose behavior
+is controlled by an `options` parameter of type `*jsonpatch.ApplyOptions`.
+
+Structure `jsonpatch.ApplyOptions` includes the configuration options above
+and adds two new options: `AllowMissingPathOnRemove` and `EnsurePathExistsOnAdd`.
+
+When `AllowMissingPathOnRemove` is set to `true`, `jsonpatch.ApplyWithOptions` will ignore
+`remove` operations whose `path` points to a non-existent location in the JSON document.
+`AllowMissingPathOnRemove` defaults to `false` which will lead to `jsonpatch.ApplyWithOptions`
+returning an error when hitting a missing `path` on `remove`.
+
+When `EnsurePathExistsOnAdd` is set to `true`, `jsonpatch.ApplyWithOptions` will make sure
+that `add` operations produce all the `path` elements that are missing from the target object.
+
+Use `jsonpatch.NewApplyOptions` to create an instance of `jsonpatch.ApplyOptions`
+whose values are populated from the global configuration variables.
+
## Create and apply a merge patch
Given both an original JSON document and a modified JSON document, you can create
a [Merge Patch](https://tools.ietf.org/html/rfc7396) document.
diff --git a/constraint/vendor/github.com/evanphx/json-patch/merge.go b/constraint/vendor/github.com/evanphx/json-patch/merge.go
index 14e8bb5ce..ad88d4018 100644
--- a/constraint/vendor/github.com/evanphx/json-patch/merge.go
+++ b/constraint/vendor/github.com/evanphx/json-patch/merge.go
@@ -38,7 +38,10 @@ func mergeDocs(doc, patch *partialDoc, mergeMerge bool) {
cur, ok := (*doc)[k]
if !ok || cur == nil {
- pruneNulls(v)
+ if !mergeMerge {
+ pruneNulls(v)
+ }
+
(*doc)[k] = v
} else {
(*doc)[k] = merge(cur, v, mergeMerge)
@@ -79,8 +82,8 @@ func pruneAryNulls(ary *partialArray) *partialArray {
for _, v := range *ary {
if v != nil {
pruneNulls(v)
- newAry = append(newAry, v)
}
+ newAry = append(newAry, v)
}
*ary = newAry
@@ -88,8 +91,8 @@ func pruneAryNulls(ary *partialArray) *partialArray {
return ary
}
-var errBadJSONDoc = fmt.Errorf("Invalid JSON Document")
-var errBadJSONPatch = fmt.Errorf("Invalid JSON Patch")
+var ErrBadJSONDoc = fmt.Errorf("Invalid JSON Document")
+var ErrBadJSONPatch = fmt.Errorf("Invalid JSON Patch")
var errBadMergeTypes = fmt.Errorf("Mismatched JSON Documents")
// MergeMergePatches merges two merge patches together, such that
@@ -114,19 +117,19 @@ func doMergePatch(docData, patchData []byte, mergeMerge bool) ([]byte, error) {
patchErr := json.Unmarshal(patchData, patch)
if _, ok := docErr.(*json.SyntaxError); ok {
- return nil, errBadJSONDoc
+ return nil, ErrBadJSONDoc
}
if _, ok := patchErr.(*json.SyntaxError); ok {
- return nil, errBadJSONPatch
+ return nil, ErrBadJSONPatch
}
if docErr == nil && *doc == nil {
- return nil, errBadJSONDoc
+ return nil, ErrBadJSONDoc
}
if patchErr == nil && *patch == nil {
- return nil, errBadJSONPatch
+ return nil, ErrBadJSONPatch
}
if docErr != nil || patchErr != nil {
@@ -142,7 +145,7 @@ func doMergePatch(docData, patchData []byte, mergeMerge bool) ([]byte, error) {
patchErr = json.Unmarshal(patchData, patchAry)
if patchErr != nil {
- return nil, errBadJSONPatch
+ return nil, ErrBadJSONPatch
}
pruneAryNulls(patchAry)
@@ -150,7 +153,7 @@ func doMergePatch(docData, patchData []byte, mergeMerge bool) ([]byte, error) {
out, patchErr := json.Marshal(patchAry)
if patchErr != nil {
- return nil, errBadJSONPatch
+ return nil, ErrBadJSONPatch
}
return out, nil
@@ -207,12 +210,12 @@ func createObjectMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error) {
err := json.Unmarshal(originalJSON, &originalDoc)
if err != nil {
- return nil, errBadJSONDoc
+ return nil, ErrBadJSONDoc
}
err = json.Unmarshal(modifiedJSON, &modifiedDoc)
if err != nil {
- return nil, errBadJSONDoc
+ return nil, ErrBadJSONDoc
}
dest, err := getDiff(originalDoc, modifiedDoc)
@@ -233,17 +236,17 @@ func createArrayMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error) {
err := json.Unmarshal(originalJSON, &originalDocs)
if err != nil {
- return nil, errBadJSONDoc
+ return nil, ErrBadJSONDoc
}
err = json.Unmarshal(modifiedJSON, &modifiedDocs)
if err != nil {
- return nil, errBadJSONDoc
+ return nil, ErrBadJSONDoc
}
total := len(originalDocs)
if len(modifiedDocs) != total {
- return nil, errBadJSONDoc
+ return nil, ErrBadJSONDoc
}
result := []json.RawMessage{}
diff --git a/constraint/vendor/github.com/evanphx/json-patch/patch.go b/constraint/vendor/github.com/evanphx/json-patch/patch.go
index f185a45b2..182985490 100644
--- a/constraint/vendor/github.com/evanphx/json-patch/patch.go
+++ b/constraint/vendor/github.com/evanphx/json-patch/patch.go
@@ -721,6 +721,10 @@ func (p Patch) Apply(doc []byte) ([]byte, error) {
// ApplyIndent mutates a JSON document according to the patch, and returns the new
// document indented.
func (p Patch) ApplyIndent(doc []byte, indent string) ([]byte, error) {
+ if len(doc) == 0 {
+ return doc, nil
+ }
+
var pd container
if doc[0] == '[' {
pd = &partialArray{}
diff --git a/constraint/vendor/github.com/go-openapi/jsonreference/go.mod b/constraint/vendor/github.com/go-openapi/jsonreference/go.mod
index e6c2ec4d9..94727ab3e 100644
--- a/constraint/vendor/github.com/go-openapi/jsonreference/go.mod
+++ b/constraint/vendor/github.com/go-openapi/jsonreference/go.mod
@@ -5,8 +5,7 @@ require (
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
github.com/go-openapi/jsonpointer v0.19.3
github.com/stretchr/testify v1.3.0
- golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect
- golang.org/x/text v0.3.3 // indirect
+ golang.org/x/net v0.0.0-20210421230115-4e50805a0758 // indirect
)
go 1.13
diff --git a/constraint/vendor/github.com/go-openapi/jsonreference/go.sum b/constraint/vendor/github.com/go-openapi/jsonreference/go.sum
index b37f873e5..61714872d 100644
--- a/constraint/vendor/github.com/go-openapi/jsonreference/go.sum
+++ b/constraint/vendor/github.com/go-openapi/jsonreference/go.sum
@@ -14,7 +14,6 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
@@ -23,13 +22,13 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
-golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/net v0.0.0-20210421230115-4e50805a0758 h1:aEpZnXcAmXkd6AvLb2OPt+EN1Zu/8Ne3pCqPjja5PXY=
+golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
diff --git a/constraint/vendor/github.com/go-openapi/spec/.travis.yml b/constraint/vendor/github.com/go-openapi/spec/.travis.yml
index e8ceca446..2281a07b0 100644
--- a/constraint/vendor/github.com/go-openapi/spec/.travis.yml
+++ b/constraint/vendor/github.com/go-openapi/spec/.travis.yml
@@ -1,7 +1,7 @@
after_success:
- bash <(curl -s https://codecov.io/bash)
go:
-- 1.14.x
+- 1.16.x
- 1.x
arch:
- amd64
diff --git a/constraint/vendor/github.com/go-openapi/spec/go.mod b/constraint/vendor/github.com/go-openapi/spec/go.mod
index 63d9e82e9..39aab5f7e 100644
--- a/constraint/vendor/github.com/go-openapi/spec/go.mod
+++ b/constraint/vendor/github.com/go-openapi/spec/go.mod
@@ -2,11 +2,10 @@ module github.com/go-openapi/spec
require (
github.com/go-openapi/jsonpointer v0.19.5
- github.com/go-openapi/jsonreference v0.19.5
- github.com/go-openapi/swag v0.19.14
+ github.com/go-openapi/jsonreference v0.19.6
+ github.com/go-openapi/swag v0.19.15
github.com/stretchr/testify v1.6.1
- golang.org/x/net v0.0.0-20210119194325-5f4716e94777 // indirect
- golang.org/x/text v0.3.5 // indirect
+ golang.org/x/text v0.3.7 // indirect
gopkg.in/yaml.v2 v2.4.0
)
diff --git a/constraint/vendor/github.com/go-openapi/spec/go.sum b/constraint/vendor/github.com/go-openapi/spec/go.sum
index 9e86ed981..3a2f52263 100644
--- a/constraint/vendor/github.com/go-openapi/spec/go.sum
+++ b/constraint/vendor/github.com/go-openapi/spec/go.sum
@@ -10,11 +10,11 @@ github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm7232
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=
-github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
+github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs=
+github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng=
-github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM=
+github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -37,20 +37,14 @@ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
-golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew=
-golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/net v0.0.0-20210421230115-4e50805a0758 h1:aEpZnXcAmXkd6AvLb2OPt+EN1Zu/8Ne3pCqPjja5PXY=
+golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ=
-golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
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=
diff --git a/constraint/vendor/github.com/go-openapi/spec/schema_loader.go b/constraint/vendor/github.com/go-openapi/spec/schema_loader.go
index 0059b99ae..b81175afd 100644
--- a/constraint/vendor/github.com/go-openapi/spec/schema_loader.go
+++ b/constraint/vendor/github.com/go-openapi/spec/schema_loader.go
@@ -168,7 +168,14 @@ func (r *schemaLoader) load(refURL *url.URL) (interface{}, url.URL, bool, error)
normalized := normalizeBase(pth)
debugLog("loading doc from: %s", normalized)
- data, fromCache := r.cache.Get(normalized)
+ unescaped, err := url.PathUnescape(normalized)
+ if err != nil {
+ return nil, url.URL{}, false, err
+ }
+
+ u := url.URL{Path: unescaped}
+
+ data, fromCache := r.cache.Get(u.RequestURI())
if fromCache {
return data, toFetch, fromCache, nil
}
diff --git a/constraint/vendor/github.com/gogo/protobuf/proto/text_parser.go b/constraint/vendor/github.com/gogo/protobuf/proto/text_parser.go
index 1ce0be2fa..f85c0cc81 100644
--- a/constraint/vendor/github.com/gogo/protobuf/proto/text_parser.go
+++ b/constraint/vendor/github.com/gogo/protobuf/proto/text_parser.go
@@ -318,7 +318,7 @@ func unescape(s string) (ch string, tail string, err error) {
if i > utf8.MaxRune {
return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss)
}
- return string(i), s, nil
+ return string(rune(i)), s, nil
}
return "", "", fmt.Errorf(`unknown escape \%c`, r)
}
diff --git a/constraint/vendor/github.com/golang/glog/glog.go b/constraint/vendor/github.com/golang/glog/glog.go
index 54bd7afdc..718c34f88 100644
--- a/constraint/vendor/github.com/golang/glog/glog.go
+++ b/constraint/vendor/github.com/golang/glog/glog.go
@@ -879,7 +879,7 @@ const flushInterval = 30 * time.Second
// flushDaemon periodically flushes the log file buffers.
func (l *loggingT) flushDaemon() {
- for _ = range time.NewTicker(flushInterval).C {
+ for range time.NewTicker(flushInterval).C {
l.lockAndFlushAll()
}
}
@@ -994,7 +994,7 @@ type Verbose bool
//
// Whether an individual call to V generates a log record depends on the setting of
// the -v and --vmodule flags; both are off by default. If the level in the call to
-// V is at least the value of -v, or of -vmodule for the source file containing the
+// V is at most the value of -v, or of -vmodule for the source file containing the
// call, the V call will log.
func V(level Level) Verbose {
// This function tries hard to be cheap unless there's work to do.
diff --git a/constraint/vendor/github.com/golang/glog/go.mod b/constraint/vendor/github.com/golang/glog/go.mod
new file mode 100644
index 000000000..376dc05b9
--- /dev/null
+++ b/constraint/vendor/github.com/golang/glog/go.mod
@@ -0,0 +1,3 @@
+module github.com/golang/glog
+
+go 1.11
diff --git a/constraint/vendor/github.com/googleapis/gnostic/compiler/context.go b/constraint/vendor/github.com/googleapis/gnostic/compiler/context.go
index 1250a6c59..1bfe96121 100644
--- a/constraint/vendor/github.com/googleapis/gnostic/compiler/context.go
+++ b/constraint/vendor/github.com/googleapis/gnostic/compiler/context.go
@@ -14,30 +14,36 @@
package compiler
+import (
+ yaml "gopkg.in/yaml.v3"
+)
+
// Context contains state of the compiler as it traverses a document.
type Context struct {
Parent *Context
Name string
+ Node *yaml.Node
ExtensionHandlers *[]ExtensionHandler
}
// NewContextWithExtensions returns a new object representing the compiler state
-func NewContextWithExtensions(name string, parent *Context, extensionHandlers *[]ExtensionHandler) *Context {
- return &Context{Name: name, Parent: parent, ExtensionHandlers: extensionHandlers}
+func NewContextWithExtensions(name string, node *yaml.Node, parent *Context, extensionHandlers *[]ExtensionHandler) *Context {
+ return &Context{Name: name, Node: node, Parent: parent, ExtensionHandlers: extensionHandlers}
}
// NewContext returns a new object representing the compiler state
-func NewContext(name string, parent *Context) *Context {
+func NewContext(name string, node *yaml.Node, parent *Context) *Context {
if parent != nil {
- return &Context{Name: name, Parent: parent, ExtensionHandlers: parent.ExtensionHandlers}
+ return &Context{Name: name, Node: node, Parent: parent, ExtensionHandlers: parent.ExtensionHandlers}
}
return &Context{Name: name, Parent: parent, ExtensionHandlers: nil}
}
// Description returns a text description of the compiler state
func (context *Context) Description() string {
+ name := context.Name
if context.Parent != nil {
- return context.Parent.Description() + "." + context.Name
+ name = context.Parent.Description() + "." + name
}
- return context.Name
+ return name
}
diff --git a/constraint/vendor/github.com/googleapis/gnostic/compiler/error.go b/constraint/vendor/github.com/googleapis/gnostic/compiler/error.go
index 7db23997b..6f40515d6 100644
--- a/constraint/vendor/github.com/googleapis/gnostic/compiler/error.go
+++ b/constraint/vendor/github.com/googleapis/gnostic/compiler/error.go
@@ -14,6 +14,8 @@
package compiler
+import "fmt"
+
// Error represents compiler errors and their location in the document.
type Error struct {
Context *Context
@@ -25,12 +27,19 @@ func NewError(context *Context, message string) *Error {
return &Error{Context: context, Message: message}
}
+func (err *Error) locationDescription() string {
+ if err.Context.Node != nil {
+ return fmt.Sprintf("[%d,%d] %s", err.Context.Node.Line, err.Context.Node.Column, err.Context.Description())
+ }
+ return err.Context.Description()
+}
+
// Error returns the string value of an Error.
func (err *Error) Error() string {
if err.Context == nil {
- return "ERROR " + err.Message
+ return err.Message
}
- return "ERROR " + err.Context.Description() + " " + err.Message
+ return err.locationDescription() + " " + err.Message
}
// ErrorGroup is a container for groups of Error values.
diff --git a/constraint/vendor/github.com/googleapis/gnostic/compiler/helpers.go b/constraint/vendor/github.com/googleapis/gnostic/compiler/helpers.go
index a580f40ac..48f02f395 100644
--- a/constraint/vendor/github.com/googleapis/gnostic/compiler/helpers.go
+++ b/constraint/vendor/github.com/googleapis/gnostic/compiler/helpers.go
@@ -176,6 +176,8 @@ func StringForScalarNode(node *yaml.Node) (string, bool) {
return node.Value, true
case "!!str":
return node.Value, true
+ case "!!timestamp":
+ return node.Value, true
case "!!null":
return "", true
default:
@@ -241,6 +243,15 @@ func InvalidKeysInMap(m *yaml.Node, allowedKeys []string, allowedPatterns []*reg
return invalidKeys
}
+// NewNullNode creates a new Null node.
+func NewNullNode() *yaml.Node {
+ node := &yaml.Node{
+ Kind: yaml.ScalarNode,
+ Tag: "!!null",
+ }
+ return node
+}
+
// NewMappingNode creates a new Mapping node.
func NewMappingNode() *yaml.Node {
return &yaml.Node{
diff --git a/constraint/vendor/github.com/googleapis/gnostic/extensions/extension.pb.go b/constraint/vendor/github.com/googleapis/gnostic/extensions/extension.pb.go
index 4198fa17e..5aab58ebf 100644
--- a/constraint/vendor/github.com/googleapis/gnostic/extensions/extension.pb.go
+++ b/constraint/vendor/github.com/googleapis/gnostic/extensions/extension.pb.go
@@ -14,17 +14,16 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.23.0
-// protoc v3.12.3
+// protoc-gen-go v1.26.0
+// protoc v3.15.5
// source: extensions/extension.proto
package gnostic_extension_v1
import (
- proto "github.com/golang/protobuf/proto"
- any "github.com/golang/protobuf/ptypes/any"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ anypb "google.golang.org/protobuf/types/known/anypb"
reflect "reflect"
sync "sync"
)
@@ -36,10 +35,6 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
// The version number of Gnostic.
type Version struct {
state protoimpl.MessageState
@@ -191,7 +186,7 @@ type ExtensionHandlerResponse struct {
// status code.
Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"`
// text output
- Value *any.Any `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
+ Value *anypb.Any `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
}
func (x *ExtensionHandlerResponse) Reset() {
@@ -240,7 +235,7 @@ func (x *ExtensionHandlerResponse) GetErrors() []string {
return nil
}
-func (x *ExtensionHandlerResponse) GetValue() *any.Any {
+func (x *ExtensionHandlerResponse) GetValue() *anypb.Any {
if x != nil {
return x.Value
}
@@ -350,12 +345,13 @@ var file_extensions_extension_proto_rawDesc = []byte{
0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x42, 0x4b, 0x0a, 0x0e, 0x6f,
+ 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x42, 0x4d, 0x0a, 0x0e, 0x6f,
0x72, 0x67, 0x2e, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x47,
0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50,
- 0x01, 0x5a, 0x1f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x67, 0x6e,
- 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
- 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x4e, 0x58, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x01, 0x5a, 0x21, 0x2e, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3b,
+ 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x4e, 0x58, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
}
var (
@@ -376,7 +372,7 @@ var file_extensions_extension_proto_goTypes = []interface{}{
(*ExtensionHandlerRequest)(nil), // 1: gnostic.extension.v1.ExtensionHandlerRequest
(*ExtensionHandlerResponse)(nil), // 2: gnostic.extension.v1.ExtensionHandlerResponse
(*Wrapper)(nil), // 3: gnostic.extension.v1.Wrapper
- (*any.Any)(nil), // 4: google.protobuf.Any
+ (*anypb.Any)(nil), // 4: google.protobuf.Any
}
var file_extensions_extension_proto_depIdxs = []int32{
3, // 0: gnostic.extension.v1.ExtensionHandlerRequest.wrapper:type_name -> gnostic.extension.v1.Wrapper
diff --git a/constraint/vendor/github.com/googleapis/gnostic/extensions/extension.proto b/constraint/vendor/github.com/googleapis/gnostic/extensions/extension.proto
index 8ac1faffc..875137c1a 100644
--- a/constraint/vendor/github.com/googleapis/gnostic/extensions/extension.proto
+++ b/constraint/vendor/github.com/googleapis/gnostic/extensions/extension.proto
@@ -38,10 +38,11 @@ option java_package = "org.gnostic.v1";
// hopefully unique enough to not conflict with things that may come along in
// the future. 'GPB' is reserved for the protocol buffer implementation itself.
//
-option objc_class_prefix = "GNX"; // "Gnostic Extension"
+// "Gnostic Extension"
+option objc_class_prefix = "GNX";
// The Go package name.
-option go_package = "extensions;gnostic_extension_v1";
+option go_package = "./extensions;gnostic_extension_v1";
// The version number of Gnostic.
message Version {
diff --git a/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.go b/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.go
index af6c0eee0..727d7f4ad 100644
--- a/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.go
+++ b/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.go
@@ -39,7 +39,7 @@ func NewAdditionalPropertiesItem(in *yaml.Node, context *compiler.Context) (*Add
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewSchema(m, compiler.NewContext("schema", context))
+ t, matchingError := NewSchema(m, compiler.NewContext("schema", m, context))
if matchingError == nil {
x.Oneof = &AdditionalPropertiesItem_Schema{Schema: t}
matched = true
@@ -57,6 +57,10 @@ func NewAdditionalPropertiesItem(in *yaml.Node, context *compiler.Context) (*Add
if matched {
// since the oneof matched one of its possibilities, discard any matching errors
errors = make([]error, 0)
+ } else {
+ message := fmt.Sprintf("contains an invalid AdditionalPropertiesItem")
+ err := compiler.NewError(context, message)
+ errors = []error{err}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
@@ -162,7 +166,7 @@ func NewApiKeySecurity(in *yaml.Node, context *compiler.Context) (*ApiKeySecurit
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -243,7 +247,7 @@ func NewBasicAuthenticationSecurity(in *yaml.Node, context *compiler.Context) (*
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -324,7 +328,7 @@ func NewBodyParameter(in *yaml.Node, context *compiler.Context) (*BodyParameter,
v5 := compiler.MapValueForKey(m, "schema")
if v5 != nil {
var err error
- x.Schema, err = NewSchema(v5, compiler.NewContext("schema", context))
+ x.Schema, err = NewSchema(v5, compiler.NewContext("schema", v5, context))
if err != nil {
errors = append(errors, err)
}
@@ -351,7 +355,7 @@ func NewBodyParameter(in *yaml.Node, context *compiler.Context) (*BodyParameter,
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -429,7 +433,7 @@ func NewContact(in *yaml.Node, context *compiler.Context) (*Contact, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -472,7 +476,7 @@ func NewDefault(in *yaml.Node, context *compiler.Context) (*Default, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -503,7 +507,7 @@ func NewDefinitions(in *yaml.Node, context *compiler.Context) (*Definitions, err
pair := &NamedSchema{}
pair.Name = k
var err error
- pair.Value, err = NewSchema(v, compiler.NewContext(k, context))
+ pair.Value, err = NewSchema(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -555,7 +559,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
v2 := compiler.MapValueForKey(m, "info")
if v2 != nil {
var err error
- x.Info, err = NewInfo(v2, compiler.NewContext("info", context))
+ x.Info, err = NewInfo(v2, compiler.NewContext("info", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -621,7 +625,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
v8 := compiler.MapValueForKey(m, "paths")
if v8 != nil {
var err error
- x.Paths, err = NewPaths(v8, compiler.NewContext("paths", context))
+ x.Paths, err = NewPaths(v8, compiler.NewContext("paths", v8, context))
if err != nil {
errors = append(errors, err)
}
@@ -630,7 +634,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
v9 := compiler.MapValueForKey(m, "definitions")
if v9 != nil {
var err error
- x.Definitions, err = NewDefinitions(v9, compiler.NewContext("definitions", context))
+ x.Definitions, err = NewDefinitions(v9, compiler.NewContext("definitions", v9, context))
if err != nil {
errors = append(errors, err)
}
@@ -639,7 +643,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
v10 := compiler.MapValueForKey(m, "parameters")
if v10 != nil {
var err error
- x.Parameters, err = NewParameterDefinitions(v10, compiler.NewContext("parameters", context))
+ x.Parameters, err = NewParameterDefinitions(v10, compiler.NewContext("parameters", v10, context))
if err != nil {
errors = append(errors, err)
}
@@ -648,7 +652,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
v11 := compiler.MapValueForKey(m, "responses")
if v11 != nil {
var err error
- x.Responses, err = NewResponseDefinitions(v11, compiler.NewContext("responses", context))
+ x.Responses, err = NewResponseDefinitions(v11, compiler.NewContext("responses", v11, context))
if err != nil {
errors = append(errors, err)
}
@@ -661,7 +665,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
a, ok := compiler.SequenceNodeForNode(v12)
if ok {
for _, item := range a.Content {
- y, err := NewSecurityRequirement(item, compiler.NewContext("security", context))
+ y, err := NewSecurityRequirement(item, compiler.NewContext("security", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -673,7 +677,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
v13 := compiler.MapValueForKey(m, "securityDefinitions")
if v13 != nil {
var err error
- x.SecurityDefinitions, err = NewSecurityDefinitions(v13, compiler.NewContext("securityDefinitions", context))
+ x.SecurityDefinitions, err = NewSecurityDefinitions(v13, compiler.NewContext("securityDefinitions", v13, context))
if err != nil {
errors = append(errors, err)
}
@@ -686,7 +690,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
a, ok := compiler.SequenceNodeForNode(v14)
if ok {
for _, item := range a.Content {
- y, err := NewTag(item, compiler.NewContext("tags", context))
+ y, err := NewTag(item, compiler.NewContext("tags", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -698,7 +702,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
v15 := compiler.MapValueForKey(m, "externalDocs")
if v15 != nil {
var err error
- x.ExternalDocs, err = NewExternalDocs(v15, compiler.NewContext("externalDocs", context))
+ x.ExternalDocs, err = NewExternalDocs(v15, compiler.NewContext("externalDocs", v15, context))
if err != nil {
errors = append(errors, err)
}
@@ -725,7 +729,7 @@ func NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -768,7 +772,7 @@ func NewExamples(in *yaml.Node, context *compiler.Context) (*Examples, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -842,7 +846,7 @@ func NewExternalDocs(in *yaml.Node, context *compiler.Context) (*ExternalDocs, e
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -908,7 +912,7 @@ func NewFileSchema(in *yaml.Node, context *compiler.Context) (*FileSchema, error
v4 := compiler.MapValueForKey(m, "default")
if v4 != nil {
var err error
- x.Default, err = NewAny(v4, compiler.NewContext("default", context))
+ x.Default, err = NewAny(v4, compiler.NewContext("default", v4, context))
if err != nil {
errors = append(errors, err)
}
@@ -952,7 +956,7 @@ func NewFileSchema(in *yaml.Node, context *compiler.Context) (*FileSchema, error
v8 := compiler.MapValueForKey(m, "externalDocs")
if v8 != nil {
var err error
- x.ExternalDocs, err = NewExternalDocs(v8, compiler.NewContext("externalDocs", context))
+ x.ExternalDocs, err = NewExternalDocs(v8, compiler.NewContext("externalDocs", v8, context))
if err != nil {
errors = append(errors, err)
}
@@ -961,7 +965,7 @@ func NewFileSchema(in *yaml.Node, context *compiler.Context) (*FileSchema, error
v9 := compiler.MapValueForKey(m, "example")
if v9 != nil {
var err error
- x.Example, err = NewAny(v9, compiler.NewContext("example", context))
+ x.Example, err = NewAny(v9, compiler.NewContext("example", v9, context))
if err != nil {
errors = append(errors, err)
}
@@ -988,7 +992,7 @@ func NewFileSchema(in *yaml.Node, context *compiler.Context) (*FileSchema, error
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -1096,7 +1100,7 @@ func NewFormDataParameterSubSchema(in *yaml.Node, context *compiler.Context) (*F
v8 := compiler.MapValueForKey(m, "items")
if v8 != nil {
var err error
- x.Items, err = NewPrimitivesItems(v8, compiler.NewContext("items", context))
+ x.Items, err = NewPrimitivesItems(v8, compiler.NewContext("items", v8, context))
if err != nil {
errors = append(errors, err)
}
@@ -1120,7 +1124,7 @@ func NewFormDataParameterSubSchema(in *yaml.Node, context *compiler.Context) (*F
v10 := compiler.MapValueForKey(m, "default")
if v10 != nil {
var err error
- x.Default, err = NewAny(v10, compiler.NewContext("default", context))
+ x.Default, err = NewAny(v10, compiler.NewContext("default", v10, context))
if err != nil {
errors = append(errors, err)
}
@@ -1235,7 +1239,7 @@ func NewFormDataParameterSubSchema(in *yaml.Node, context *compiler.Context) (*F
a, ok := compiler.SequenceNodeForNode(v21)
if ok {
for _, item := range a.Content {
- y, err := NewAny(item, compiler.NewContext("enum", context))
+ y, err := NewAny(item, compiler.NewContext("enum", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -1276,7 +1280,7 @@ func NewFormDataParameterSubSchema(in *yaml.Node, context *compiler.Context) (*F
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -1339,7 +1343,7 @@ func NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {
v3 := compiler.MapValueForKey(m, "items")
if v3 != nil {
var err error
- x.Items, err = NewPrimitivesItems(v3, compiler.NewContext("items", context))
+ x.Items, err = NewPrimitivesItems(v3, compiler.NewContext("items", v3, context))
if err != nil {
errors = append(errors, err)
}
@@ -1363,7 +1367,7 @@ func NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {
v5 := compiler.MapValueForKey(m, "default")
if v5 != nil {
var err error
- x.Default, err = NewAny(v5, compiler.NewContext("default", context))
+ x.Default, err = NewAny(v5, compiler.NewContext("default", v5, context))
if err != nil {
errors = append(errors, err)
}
@@ -1478,7 +1482,7 @@ func NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {
a, ok := compiler.SequenceNodeForNode(v16)
if ok {
for _, item := range a.Content {
- y, err := NewAny(item, compiler.NewContext("enum", context))
+ y, err := NewAny(item, compiler.NewContext("enum", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -1528,7 +1532,7 @@ func NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -1627,7 +1631,7 @@ func NewHeaderParameterSubSchema(in *yaml.Node, context *compiler.Context) (*Hea
v7 := compiler.MapValueForKey(m, "items")
if v7 != nil {
var err error
- x.Items, err = NewPrimitivesItems(v7, compiler.NewContext("items", context))
+ x.Items, err = NewPrimitivesItems(v7, compiler.NewContext("items", v7, context))
if err != nil {
errors = append(errors, err)
}
@@ -1651,7 +1655,7 @@ func NewHeaderParameterSubSchema(in *yaml.Node, context *compiler.Context) (*Hea
v9 := compiler.MapValueForKey(m, "default")
if v9 != nil {
var err error
- x.Default, err = NewAny(v9, compiler.NewContext("default", context))
+ x.Default, err = NewAny(v9, compiler.NewContext("default", v9, context))
if err != nil {
errors = append(errors, err)
}
@@ -1766,7 +1770,7 @@ func NewHeaderParameterSubSchema(in *yaml.Node, context *compiler.Context) (*Hea
a, ok := compiler.SequenceNodeForNode(v20)
if ok {
for _, item := range a.Content {
- y, err := NewAny(item, compiler.NewContext("enum", context))
+ y, err := NewAny(item, compiler.NewContext("enum", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -1807,7 +1811,7 @@ func NewHeaderParameterSubSchema(in *yaml.Node, context *compiler.Context) (*Hea
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -1839,7 +1843,7 @@ func NewHeaders(in *yaml.Node, context *compiler.Context) (*Headers, error) {
pair := &NamedHeader{}
pair.Name = k
var err error
- pair.Value, err = NewHeader(v, compiler.NewContext(k, context))
+ pair.Value, err = NewHeader(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -1912,7 +1916,7 @@ func NewInfo(in *yaml.Node, context *compiler.Context) (*Info, error) {
v5 := compiler.MapValueForKey(m, "contact")
if v5 != nil {
var err error
- x.Contact, err = NewContact(v5, compiler.NewContext("contact", context))
+ x.Contact, err = NewContact(v5, compiler.NewContext("contact", v5, context))
if err != nil {
errors = append(errors, err)
}
@@ -1921,7 +1925,7 @@ func NewInfo(in *yaml.Node, context *compiler.Context) (*Info, error) {
v6 := compiler.MapValueForKey(m, "license")
if v6 != nil {
var err error
- x.License, err = NewLicense(v6, compiler.NewContext("license", context))
+ x.License, err = NewLicense(v6, compiler.NewContext("license", v6, context))
if err != nil {
errors = append(errors, err)
}
@@ -1948,7 +1952,7 @@ func NewInfo(in *yaml.Node, context *compiler.Context) (*Info, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -1971,7 +1975,7 @@ func NewItemsItem(in *yaml.Node, context *compiler.Context) (*ItemsItem, error)
errors = append(errors, compiler.NewError(context, message))
} else {
x.Schema = make([]*Schema, 0)
- y, err := NewSchema(m, compiler.NewContext("", context))
+ y, err := NewSchema(m, compiler.NewContext("", m, context))
if err != nil {
return nil, err
}
@@ -2079,7 +2083,7 @@ func NewLicense(in *yaml.Node, context *compiler.Context) (*License, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -2121,7 +2125,7 @@ func NewNamedAny(in *yaml.Node, context *compiler.Context) (*NamedAny, error) {
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
- x.Value, err = NewAny(v2, compiler.NewContext("value", context))
+ x.Value, err = NewAny(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -2159,7 +2163,7 @@ func NewNamedHeader(in *yaml.Node, context *compiler.Context) (*NamedHeader, err
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
- x.Value, err = NewHeader(v2, compiler.NewContext("value", context))
+ x.Value, err = NewHeader(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -2197,7 +2201,7 @@ func NewNamedParameter(in *yaml.Node, context *compiler.Context) (*NamedParamete
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
- x.Value, err = NewParameter(v2, compiler.NewContext("value", context))
+ x.Value, err = NewParameter(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -2235,7 +2239,7 @@ func NewNamedPathItem(in *yaml.Node, context *compiler.Context) (*NamedPathItem,
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
- x.Value, err = NewPathItem(v2, compiler.NewContext("value", context))
+ x.Value, err = NewPathItem(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -2273,7 +2277,7 @@ func NewNamedResponse(in *yaml.Node, context *compiler.Context) (*NamedResponse,
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
- x.Value, err = NewResponse(v2, compiler.NewContext("value", context))
+ x.Value, err = NewResponse(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -2311,7 +2315,7 @@ func NewNamedResponseValue(in *yaml.Node, context *compiler.Context) (*NamedResp
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
- x.Value, err = NewResponseValue(v2, compiler.NewContext("value", context))
+ x.Value, err = NewResponseValue(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -2349,7 +2353,7 @@ func NewNamedSchema(in *yaml.Node, context *compiler.Context) (*NamedSchema, err
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
- x.Value, err = NewSchema(v2, compiler.NewContext("value", context))
+ x.Value, err = NewSchema(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -2387,7 +2391,7 @@ func NewNamedSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
- x.Value, err = NewSecurityDefinitionsItem(v2, compiler.NewContext("value", context))
+ x.Value, err = NewSecurityDefinitionsItem(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -2463,7 +2467,7 @@ func NewNamedStringArray(in *yaml.Node, context *compiler.Context) (*NamedString
v2 := compiler.MapValueForKey(m, "value")
if v2 != nil {
var err error
- x.Value, err = NewStringArray(v2, compiler.NewContext("value", context))
+ x.Value, err = NewStringArray(v2, compiler.NewContext("value", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -2491,7 +2495,7 @@ func NewNonBodyParameter(in *yaml.Node, context *compiler.Context) (*NonBodyPara
// HeaderParameterSubSchema header_parameter_sub_schema = 1;
{
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewHeaderParameterSubSchema(m, compiler.NewContext("headerParameterSubSchema", context))
+ t, matchingError := NewHeaderParameterSubSchema(m, compiler.NewContext("headerParameterSubSchema", m, context))
if matchingError == nil {
x.Oneof = &NonBodyParameter_HeaderParameterSubSchema{HeaderParameterSubSchema: t}
matched = true
@@ -2502,7 +2506,7 @@ func NewNonBodyParameter(in *yaml.Node, context *compiler.Context) (*NonBodyPara
// FormDataParameterSubSchema form_data_parameter_sub_schema = 2;
{
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewFormDataParameterSubSchema(m, compiler.NewContext("formDataParameterSubSchema", context))
+ t, matchingError := NewFormDataParameterSubSchema(m, compiler.NewContext("formDataParameterSubSchema", m, context))
if matchingError == nil {
x.Oneof = &NonBodyParameter_FormDataParameterSubSchema{FormDataParameterSubSchema: t}
matched = true
@@ -2513,7 +2517,7 @@ func NewNonBodyParameter(in *yaml.Node, context *compiler.Context) (*NonBodyPara
// QueryParameterSubSchema query_parameter_sub_schema = 3;
{
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewQueryParameterSubSchema(m, compiler.NewContext("queryParameterSubSchema", context))
+ t, matchingError := NewQueryParameterSubSchema(m, compiler.NewContext("queryParameterSubSchema", m, context))
if matchingError == nil {
x.Oneof = &NonBodyParameter_QueryParameterSubSchema{QueryParameterSubSchema: t}
matched = true
@@ -2524,7 +2528,7 @@ func NewNonBodyParameter(in *yaml.Node, context *compiler.Context) (*NonBodyPara
// PathParameterSubSchema path_parameter_sub_schema = 4;
{
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewPathParameterSubSchema(m, compiler.NewContext("pathParameterSubSchema", context))
+ t, matchingError := NewPathParameterSubSchema(m, compiler.NewContext("pathParameterSubSchema", m, context))
if matchingError == nil {
x.Oneof = &NonBodyParameter_PathParameterSubSchema{PathParameterSubSchema: t}
matched = true
@@ -2536,6 +2540,10 @@ func NewNonBodyParameter(in *yaml.Node, context *compiler.Context) (*NonBodyPara
if matched {
// since the oneof matched one of its possibilities, discard any matching errors
errors = make([]error, 0)
+ } else {
+ message := fmt.Sprintf("contains an invalid NonBodyParameter")
+ err := compiler.NewError(context, message)
+ errors = []error{err}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
@@ -2596,7 +2604,7 @@ func NewOauth2AccessCodeSecurity(in *yaml.Node, context *compiler.Context) (*Oau
v3 := compiler.MapValueForKey(m, "scopes")
if v3 != nil {
var err error
- x.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext("scopes", context))
+ x.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext("scopes", v3, context))
if err != nil {
errors = append(errors, err)
}
@@ -2650,7 +2658,7 @@ func NewOauth2AccessCodeSecurity(in *yaml.Node, context *compiler.Context) (*Oau
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -2719,7 +2727,7 @@ func NewOauth2ApplicationSecurity(in *yaml.Node, context *compiler.Context) (*Oa
v3 := compiler.MapValueForKey(m, "scopes")
if v3 != nil {
var err error
- x.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext("scopes", context))
+ x.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext("scopes", v3, context))
if err != nil {
errors = append(errors, err)
}
@@ -2764,7 +2772,7 @@ func NewOauth2ApplicationSecurity(in *yaml.Node, context *compiler.Context) (*Oa
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -2833,7 +2841,7 @@ func NewOauth2ImplicitSecurity(in *yaml.Node, context *compiler.Context) (*Oauth
v3 := compiler.MapValueForKey(m, "scopes")
if v3 != nil {
var err error
- x.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext("scopes", context))
+ x.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext("scopes", v3, context))
if err != nil {
errors = append(errors, err)
}
@@ -2878,7 +2886,7 @@ func NewOauth2ImplicitSecurity(in *yaml.Node, context *compiler.Context) (*Oauth
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -2947,7 +2955,7 @@ func NewOauth2PasswordSecurity(in *yaml.Node, context *compiler.Context) (*Oauth
v3 := compiler.MapValueForKey(m, "scopes")
if v3 != nil {
var err error
- x.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext("scopes", context))
+ x.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext("scopes", v3, context))
if err != nil {
errors = append(errors, err)
}
@@ -2992,7 +3000,7 @@ func NewOauth2PasswordSecurity(in *yaml.Node, context *compiler.Context) (*Oauth
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -3086,7 +3094,7 @@ func NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error)
v4 := compiler.MapValueForKey(m, "externalDocs")
if v4 != nil {
var err error
- x.ExternalDocs, err = NewExternalDocs(v4, compiler.NewContext("externalDocs", context))
+ x.ExternalDocs, err = NewExternalDocs(v4, compiler.NewContext("externalDocs", v4, context))
if err != nil {
errors = append(errors, err)
}
@@ -3130,7 +3138,7 @@ func NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error)
a, ok := compiler.SequenceNodeForNode(v8)
if ok {
for _, item := range a.Content {
- y, err := NewParametersItem(item, compiler.NewContext("parameters", context))
+ y, err := NewParametersItem(item, compiler.NewContext("parameters", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -3142,7 +3150,7 @@ func NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error)
v9 := compiler.MapValueForKey(m, "responses")
if v9 != nil {
var err error
- x.Responses, err = NewResponses(v9, compiler.NewContext("responses", context))
+ x.Responses, err = NewResponses(v9, compiler.NewContext("responses", v9, context))
if err != nil {
errors = append(errors, err)
}
@@ -3181,7 +3189,7 @@ func NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error)
a, ok := compiler.SequenceNodeForNode(v12)
if ok {
for _, item := range a.Content {
- y, err := NewSecurityRequirement(item, compiler.NewContext("security", context))
+ y, err := NewSecurityRequirement(item, compiler.NewContext("security", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -3211,7 +3219,7 @@ func NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error)
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -3234,7 +3242,7 @@ func NewParameter(in *yaml.Node, context *compiler.Context) (*Parameter, error)
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewBodyParameter(m, compiler.NewContext("bodyParameter", context))
+ t, matchingError := NewBodyParameter(m, compiler.NewContext("bodyParameter", m, context))
if matchingError == nil {
x.Oneof = &Parameter_BodyParameter{BodyParameter: t}
matched = true
@@ -3248,7 +3256,7 @@ func NewParameter(in *yaml.Node, context *compiler.Context) (*Parameter, error)
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewNonBodyParameter(m, compiler.NewContext("nonBodyParameter", context))
+ t, matchingError := NewNonBodyParameter(m, compiler.NewContext("nonBodyParameter", m, context))
if matchingError == nil {
x.Oneof = &Parameter_NonBodyParameter{NonBodyParameter: t}
matched = true
@@ -3260,6 +3268,10 @@ func NewParameter(in *yaml.Node, context *compiler.Context) (*Parameter, error)
if matched {
// since the oneof matched one of its possibilities, discard any matching errors
errors = make([]error, 0)
+ } else {
+ message := fmt.Sprintf("contains an invalid Parameter")
+ err := compiler.NewError(context, message)
+ errors = []error{err}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
@@ -3283,7 +3295,7 @@ func NewParameterDefinitions(in *yaml.Node, context *compiler.Context) (*Paramet
pair := &NamedParameter{}
pair.Name = k
var err error
- pair.Value, err = NewParameter(v, compiler.NewContext(k, context))
+ pair.Value, err = NewParameter(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -3304,7 +3316,7 @@ func NewParametersItem(in *yaml.Node, context *compiler.Context) (*ParametersIte
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewParameter(m, compiler.NewContext("parameter", context))
+ t, matchingError := NewParameter(m, compiler.NewContext("parameter", m, context))
if matchingError == nil {
x.Oneof = &ParametersItem_Parameter{Parameter: t}
matched = true
@@ -3318,7 +3330,7 @@ func NewParametersItem(in *yaml.Node, context *compiler.Context) (*ParametersIte
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewJsonReference(m, compiler.NewContext("jsonReference", context))
+ t, matchingError := NewJsonReference(m, compiler.NewContext("jsonReference", m, context))
if matchingError == nil {
x.Oneof = &ParametersItem_JsonReference{JsonReference: t}
matched = true
@@ -3330,6 +3342,10 @@ func NewParametersItem(in *yaml.Node, context *compiler.Context) (*ParametersIte
if matched {
// since the oneof matched one of its possibilities, discard any matching errors
errors = make([]error, 0)
+ } else {
+ message := fmt.Sprintf("contains an invalid ParametersItem")
+ err := compiler.NewError(context, message)
+ errors = []error{err}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
@@ -3363,7 +3379,7 @@ func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
v2 := compiler.MapValueForKey(m, "get")
if v2 != nil {
var err error
- x.Get, err = NewOperation(v2, compiler.NewContext("get", context))
+ x.Get, err = NewOperation(v2, compiler.NewContext("get", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -3372,7 +3388,7 @@ func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
v3 := compiler.MapValueForKey(m, "put")
if v3 != nil {
var err error
- x.Put, err = NewOperation(v3, compiler.NewContext("put", context))
+ x.Put, err = NewOperation(v3, compiler.NewContext("put", v3, context))
if err != nil {
errors = append(errors, err)
}
@@ -3381,7 +3397,7 @@ func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
v4 := compiler.MapValueForKey(m, "post")
if v4 != nil {
var err error
- x.Post, err = NewOperation(v4, compiler.NewContext("post", context))
+ x.Post, err = NewOperation(v4, compiler.NewContext("post", v4, context))
if err != nil {
errors = append(errors, err)
}
@@ -3390,7 +3406,7 @@ func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
v5 := compiler.MapValueForKey(m, "delete")
if v5 != nil {
var err error
- x.Delete, err = NewOperation(v5, compiler.NewContext("delete", context))
+ x.Delete, err = NewOperation(v5, compiler.NewContext("delete", v5, context))
if err != nil {
errors = append(errors, err)
}
@@ -3399,7 +3415,7 @@ func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
v6 := compiler.MapValueForKey(m, "options")
if v6 != nil {
var err error
- x.Options, err = NewOperation(v6, compiler.NewContext("options", context))
+ x.Options, err = NewOperation(v6, compiler.NewContext("options", v6, context))
if err != nil {
errors = append(errors, err)
}
@@ -3408,7 +3424,7 @@ func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
v7 := compiler.MapValueForKey(m, "head")
if v7 != nil {
var err error
- x.Head, err = NewOperation(v7, compiler.NewContext("head", context))
+ x.Head, err = NewOperation(v7, compiler.NewContext("head", v7, context))
if err != nil {
errors = append(errors, err)
}
@@ -3417,7 +3433,7 @@ func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
v8 := compiler.MapValueForKey(m, "patch")
if v8 != nil {
var err error
- x.Patch, err = NewOperation(v8, compiler.NewContext("patch", context))
+ x.Patch, err = NewOperation(v8, compiler.NewContext("patch", v8, context))
if err != nil {
errors = append(errors, err)
}
@@ -3430,7 +3446,7 @@ func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
a, ok := compiler.SequenceNodeForNode(v9)
if ok {
for _, item := range a.Content {
- y, err := NewParametersItem(item, compiler.NewContext("parameters", context))
+ y, err := NewParametersItem(item, compiler.NewContext("parameters", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -3460,7 +3476,7 @@ func NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -3565,7 +3581,7 @@ func NewPathParameterSubSchema(in *yaml.Node, context *compiler.Context) (*PathP
v7 := compiler.MapValueForKey(m, "items")
if v7 != nil {
var err error
- x.Items, err = NewPrimitivesItems(v7, compiler.NewContext("items", context))
+ x.Items, err = NewPrimitivesItems(v7, compiler.NewContext("items", v7, context))
if err != nil {
errors = append(errors, err)
}
@@ -3589,7 +3605,7 @@ func NewPathParameterSubSchema(in *yaml.Node, context *compiler.Context) (*PathP
v9 := compiler.MapValueForKey(m, "default")
if v9 != nil {
var err error
- x.Default, err = NewAny(v9, compiler.NewContext("default", context))
+ x.Default, err = NewAny(v9, compiler.NewContext("default", v9, context))
if err != nil {
errors = append(errors, err)
}
@@ -3704,7 +3720,7 @@ func NewPathParameterSubSchema(in *yaml.Node, context *compiler.Context) (*PathP
a, ok := compiler.SequenceNodeForNode(v20)
if ok {
for _, item := range a.Content {
- y, err := NewAny(item, compiler.NewContext("enum", context))
+ y, err := NewAny(item, compiler.NewContext("enum", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -3745,7 +3761,7 @@ func NewPathParameterSubSchema(in *yaml.Node, context *compiler.Context) (*PathP
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -3796,7 +3812,7 @@ func NewPaths(in *yaml.Node, context *compiler.Context) (*Paths, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -3816,7 +3832,7 @@ func NewPaths(in *yaml.Node, context *compiler.Context) (*Paths, error) {
pair := &NamedPathItem{}
pair.Name = k
var err error
- pair.Value, err = NewPathItem(v, compiler.NewContext(k, context))
+ pair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -3872,7 +3888,7 @@ func NewPrimitivesItems(in *yaml.Node, context *compiler.Context) (*PrimitivesIt
v3 := compiler.MapValueForKey(m, "items")
if v3 != nil {
var err error
- x.Items, err = NewPrimitivesItems(v3, compiler.NewContext("items", context))
+ x.Items, err = NewPrimitivesItems(v3, compiler.NewContext("items", v3, context))
if err != nil {
errors = append(errors, err)
}
@@ -3896,7 +3912,7 @@ func NewPrimitivesItems(in *yaml.Node, context *compiler.Context) (*PrimitivesIt
v5 := compiler.MapValueForKey(m, "default")
if v5 != nil {
var err error
- x.Default, err = NewAny(v5, compiler.NewContext("default", context))
+ x.Default, err = NewAny(v5, compiler.NewContext("default", v5, context))
if err != nil {
errors = append(errors, err)
}
@@ -4011,7 +4027,7 @@ func NewPrimitivesItems(in *yaml.Node, context *compiler.Context) (*PrimitivesIt
a, ok := compiler.SequenceNodeForNode(v16)
if ok {
for _, item := range a.Content {
- y, err := NewAny(item, compiler.NewContext("enum", context))
+ y, err := NewAny(item, compiler.NewContext("enum", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -4052,7 +4068,7 @@ func NewPrimitivesItems(in *yaml.Node, context *compiler.Context) (*PrimitivesIt
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -4084,7 +4100,7 @@ func NewProperties(in *yaml.Node, context *compiler.Context) (*Properties, error
pair := &NamedSchema{}
pair.Name = k
var err error
- pair.Value, err = NewSchema(v, compiler.NewContext(k, context))
+ pair.Value, err = NewSchema(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -4190,7 +4206,7 @@ func NewQueryParameterSubSchema(in *yaml.Node, context *compiler.Context) (*Quer
v8 := compiler.MapValueForKey(m, "items")
if v8 != nil {
var err error
- x.Items, err = NewPrimitivesItems(v8, compiler.NewContext("items", context))
+ x.Items, err = NewPrimitivesItems(v8, compiler.NewContext("items", v8, context))
if err != nil {
errors = append(errors, err)
}
@@ -4214,7 +4230,7 @@ func NewQueryParameterSubSchema(in *yaml.Node, context *compiler.Context) (*Quer
v10 := compiler.MapValueForKey(m, "default")
if v10 != nil {
var err error
- x.Default, err = NewAny(v10, compiler.NewContext("default", context))
+ x.Default, err = NewAny(v10, compiler.NewContext("default", v10, context))
if err != nil {
errors = append(errors, err)
}
@@ -4329,7 +4345,7 @@ func NewQueryParameterSubSchema(in *yaml.Node, context *compiler.Context) (*Quer
a, ok := compiler.SequenceNodeForNode(v21)
if ok {
for _, item := range a.Content {
- y, err := NewAny(item, compiler.NewContext("enum", context))
+ y, err := NewAny(item, compiler.NewContext("enum", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -4370,7 +4386,7 @@ func NewQueryParameterSubSchema(in *yaml.Node, context *compiler.Context) (*Quer
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -4418,7 +4434,7 @@ func NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {
v2 := compiler.MapValueForKey(m, "schema")
if v2 != nil {
var err error
- x.Schema, err = NewSchemaItem(v2, compiler.NewContext("schema", context))
+ x.Schema, err = NewSchemaItem(v2, compiler.NewContext("schema", v2, context))
if err != nil {
errors = append(errors, err)
}
@@ -4427,7 +4443,7 @@ func NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {
v3 := compiler.MapValueForKey(m, "headers")
if v3 != nil {
var err error
- x.Headers, err = NewHeaders(v3, compiler.NewContext("headers", context))
+ x.Headers, err = NewHeaders(v3, compiler.NewContext("headers", v3, context))
if err != nil {
errors = append(errors, err)
}
@@ -4436,7 +4452,7 @@ func NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {
v4 := compiler.MapValueForKey(m, "examples")
if v4 != nil {
var err error
- x.Examples, err = NewExamples(v4, compiler.NewContext("examples", context))
+ x.Examples, err = NewExamples(v4, compiler.NewContext("examples", v4, context))
if err != nil {
errors = append(errors, err)
}
@@ -4463,7 +4479,7 @@ func NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -4495,7 +4511,7 @@ func NewResponseDefinitions(in *yaml.Node, context *compiler.Context) (*Response
pair := &NamedResponse{}
pair.Name = k
var err error
- pair.Value, err = NewResponse(v, compiler.NewContext(k, context))
+ pair.Value, err = NewResponse(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -4516,7 +4532,7 @@ func NewResponseValue(in *yaml.Node, context *compiler.Context) (*ResponseValue,
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewResponse(m, compiler.NewContext("response", context))
+ t, matchingError := NewResponse(m, compiler.NewContext("response", m, context))
if matchingError == nil {
x.Oneof = &ResponseValue_Response{Response: t}
matched = true
@@ -4530,7 +4546,7 @@ func NewResponseValue(in *yaml.Node, context *compiler.Context) (*ResponseValue,
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewJsonReference(m, compiler.NewContext("jsonReference", context))
+ t, matchingError := NewJsonReference(m, compiler.NewContext("jsonReference", m, context))
if matchingError == nil {
x.Oneof = &ResponseValue_JsonReference{JsonReference: t}
matched = true
@@ -4542,6 +4558,10 @@ func NewResponseValue(in *yaml.Node, context *compiler.Context) (*ResponseValue,
if matched {
// since the oneof matched one of its possibilities, discard any matching errors
errors = make([]error, 0)
+ } else {
+ message := fmt.Sprintf("contains an invalid ResponseValue")
+ err := compiler.NewError(context, message)
+ errors = []error{err}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
@@ -4573,7 +4593,7 @@ func NewResponses(in *yaml.Node, context *compiler.Context) (*Responses, error)
pair := &NamedResponseValue{}
pair.Name = k
var err error
- pair.Value, err = NewResponseValue(v, compiler.NewContext(k, context))
+ pair.Value, err = NewResponseValue(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -4603,7 +4623,7 @@ func NewResponses(in *yaml.Node, context *compiler.Context) (*Responses, error)
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -4672,7 +4692,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
v5 := compiler.MapValueForKey(m, "default")
if v5 != nil {
var err error
- x.Default, err = NewAny(v5, compiler.NewContext("default", context))
+ x.Default, err = NewAny(v5, compiler.NewContext("default", v5, context))
if err != nil {
errors = append(errors, err)
}
@@ -4831,7 +4851,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
a, ok := compiler.SequenceNodeForNode(v20)
if ok {
for _, item := range a.Content {
- y, err := NewAny(item, compiler.NewContext("enum", context))
+ y, err := NewAny(item, compiler.NewContext("enum", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -4843,7 +4863,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
v21 := compiler.MapValueForKey(m, "additionalProperties")
if v21 != nil {
var err error
- x.AdditionalProperties, err = NewAdditionalPropertiesItem(v21, compiler.NewContext("additionalProperties", context))
+ x.AdditionalProperties, err = NewAdditionalPropertiesItem(v21, compiler.NewContext("additionalProperties", v21, context))
if err != nil {
errors = append(errors, err)
}
@@ -4852,7 +4872,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
v22 := compiler.MapValueForKey(m, "type")
if v22 != nil {
var err error
- x.Type, err = NewTypeItem(v22, compiler.NewContext("type", context))
+ x.Type, err = NewTypeItem(v22, compiler.NewContext("type", v22, context))
if err != nil {
errors = append(errors, err)
}
@@ -4861,7 +4881,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
v23 := compiler.MapValueForKey(m, "items")
if v23 != nil {
var err error
- x.Items, err = NewItemsItem(v23, compiler.NewContext("items", context))
+ x.Items, err = NewItemsItem(v23, compiler.NewContext("items", v23, context))
if err != nil {
errors = append(errors, err)
}
@@ -4874,7 +4894,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
a, ok := compiler.SequenceNodeForNode(v24)
if ok {
for _, item := range a.Content {
- y, err := NewSchema(item, compiler.NewContext("allOf", context))
+ y, err := NewSchema(item, compiler.NewContext("allOf", item, context))
if err != nil {
errors = append(errors, err)
}
@@ -4886,7 +4906,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
v25 := compiler.MapValueForKey(m, "properties")
if v25 != nil {
var err error
- x.Properties, err = NewProperties(v25, compiler.NewContext("properties", context))
+ x.Properties, err = NewProperties(v25, compiler.NewContext("properties", v25, context))
if err != nil {
errors = append(errors, err)
}
@@ -4913,7 +4933,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
v28 := compiler.MapValueForKey(m, "xml")
if v28 != nil {
var err error
- x.Xml, err = NewXml(v28, compiler.NewContext("xml", context))
+ x.Xml, err = NewXml(v28, compiler.NewContext("xml", v28, context))
if err != nil {
errors = append(errors, err)
}
@@ -4922,7 +4942,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
v29 := compiler.MapValueForKey(m, "externalDocs")
if v29 != nil {
var err error
- x.ExternalDocs, err = NewExternalDocs(v29, compiler.NewContext("externalDocs", context))
+ x.ExternalDocs, err = NewExternalDocs(v29, compiler.NewContext("externalDocs", v29, context))
if err != nil {
errors = append(errors, err)
}
@@ -4931,7 +4951,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
v30 := compiler.MapValueForKey(m, "example")
if v30 != nil {
var err error
- x.Example, err = NewAny(v30, compiler.NewContext("example", context))
+ x.Example, err = NewAny(v30, compiler.NewContext("example", v30, context))
if err != nil {
errors = append(errors, err)
}
@@ -4958,7 +4978,7 @@ func NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -4981,7 +5001,7 @@ func NewSchemaItem(in *yaml.Node, context *compiler.Context) (*SchemaItem, error
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewSchema(m, compiler.NewContext("schema", context))
+ t, matchingError := NewSchema(m, compiler.NewContext("schema", m, context))
if matchingError == nil {
x.Oneof = &SchemaItem_Schema{Schema: t}
matched = true
@@ -4995,7 +5015,7 @@ func NewSchemaItem(in *yaml.Node, context *compiler.Context) (*SchemaItem, error
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewFileSchema(m, compiler.NewContext("fileSchema", context))
+ t, matchingError := NewFileSchema(m, compiler.NewContext("fileSchema", m, context))
if matchingError == nil {
x.Oneof = &SchemaItem_FileSchema{FileSchema: t}
matched = true
@@ -5007,6 +5027,10 @@ func NewSchemaItem(in *yaml.Node, context *compiler.Context) (*SchemaItem, error
if matched {
// since the oneof matched one of its possibilities, discard any matching errors
errors = make([]error, 0)
+ } else {
+ message := fmt.Sprintf("contains an invalid SchemaItem")
+ err := compiler.NewError(context, message)
+ errors = []error{err}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
@@ -5030,7 +5054,7 @@ func NewSecurityDefinitions(in *yaml.Node, context *compiler.Context) (*Security
pair := &NamedSecurityDefinitionsItem{}
pair.Name = k
var err error
- pair.Value, err = NewSecurityDefinitionsItem(v, compiler.NewContext(k, context))
+ pair.Value, err = NewSecurityDefinitionsItem(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -5051,7 +5075,7 @@ func NewSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*Secu
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewBasicAuthenticationSecurity(m, compiler.NewContext("basicAuthenticationSecurity", context))
+ t, matchingError := NewBasicAuthenticationSecurity(m, compiler.NewContext("basicAuthenticationSecurity", m, context))
if matchingError == nil {
x.Oneof = &SecurityDefinitionsItem_BasicAuthenticationSecurity{BasicAuthenticationSecurity: t}
matched = true
@@ -5065,7 +5089,7 @@ func NewSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*Secu
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewApiKeySecurity(m, compiler.NewContext("apiKeySecurity", context))
+ t, matchingError := NewApiKeySecurity(m, compiler.NewContext("apiKeySecurity", m, context))
if matchingError == nil {
x.Oneof = &SecurityDefinitionsItem_ApiKeySecurity{ApiKeySecurity: t}
matched = true
@@ -5079,7 +5103,7 @@ func NewSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*Secu
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewOauth2ImplicitSecurity(m, compiler.NewContext("oauth2ImplicitSecurity", context))
+ t, matchingError := NewOauth2ImplicitSecurity(m, compiler.NewContext("oauth2ImplicitSecurity", m, context))
if matchingError == nil {
x.Oneof = &SecurityDefinitionsItem_Oauth2ImplicitSecurity{Oauth2ImplicitSecurity: t}
matched = true
@@ -5093,7 +5117,7 @@ func NewSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*Secu
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewOauth2PasswordSecurity(m, compiler.NewContext("oauth2PasswordSecurity", context))
+ t, matchingError := NewOauth2PasswordSecurity(m, compiler.NewContext("oauth2PasswordSecurity", m, context))
if matchingError == nil {
x.Oneof = &SecurityDefinitionsItem_Oauth2PasswordSecurity{Oauth2PasswordSecurity: t}
matched = true
@@ -5107,7 +5131,7 @@ func NewSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*Secu
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewOauth2ApplicationSecurity(m, compiler.NewContext("oauth2ApplicationSecurity", context))
+ t, matchingError := NewOauth2ApplicationSecurity(m, compiler.NewContext("oauth2ApplicationSecurity", m, context))
if matchingError == nil {
x.Oneof = &SecurityDefinitionsItem_Oauth2ApplicationSecurity{Oauth2ApplicationSecurity: t}
matched = true
@@ -5121,7 +5145,7 @@ func NewSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*Secu
m, ok := compiler.UnpackMap(in)
if ok {
// errors might be ok here, they mean we just don't have the right subtype
- t, matchingError := NewOauth2AccessCodeSecurity(m, compiler.NewContext("oauth2AccessCodeSecurity", context))
+ t, matchingError := NewOauth2AccessCodeSecurity(m, compiler.NewContext("oauth2AccessCodeSecurity", m, context))
if matchingError == nil {
x.Oneof = &SecurityDefinitionsItem_Oauth2AccessCodeSecurity{Oauth2AccessCodeSecurity: t}
matched = true
@@ -5133,6 +5157,10 @@ func NewSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*Secu
if matched {
// since the oneof matched one of its possibilities, discard any matching errors
errors = make([]error, 0)
+ } else {
+ message := fmt.Sprintf("contains an invalid SecurityDefinitionsItem")
+ err := compiler.NewError(context, message)
+ errors = []error{err}
}
return x, compiler.NewErrorGroupOrNil(errors)
}
@@ -5156,7 +5184,7 @@ func NewSecurityRequirement(in *yaml.Node, context *compiler.Context) (*Security
pair := &NamedStringArray{}
pair.Name = k
var err error
- pair.Value, err = NewStringArray(v, compiler.NewContext(k, context))
+ pair.Value, err = NewStringArray(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -5223,7 +5251,7 @@ func NewTag(in *yaml.Node, context *compiler.Context) (*Tag, error) {
v3 := compiler.MapValueForKey(m, "externalDocs")
if v3 != nil {
var err error
- x.ExternalDocs, err = NewExternalDocs(v3, compiler.NewContext("externalDocs", context))
+ x.ExternalDocs, err = NewExternalDocs(v3, compiler.NewContext("externalDocs", v3, context))
if err != nil {
errors = append(errors, err)
}
@@ -5250,7 +5278,7 @@ func NewTag(in *yaml.Node, context *compiler.Context) (*Tag, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -5321,7 +5349,7 @@ func NewVendorExtension(in *yaml.Node, context *compiler.Context) (*VendorExtens
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -5416,7 +5444,7 @@ func NewXml(in *yaml.Node, context *compiler.Context) (*Xml, error) {
pair.Value = result
}
} else {
- pair.Value, err = NewAny(v, compiler.NewContext(k, context))
+ pair.Value, err = NewAny(v, compiler.NewContext(k, v, context))
if err != nil {
errors = append(errors, err)
}
@@ -6817,7 +6845,7 @@ func (m *AdditionalPropertiesItem) ToRawInfo() *yaml.Node {
if v1, ok := m.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {
return compiler.NewScalarNodeForBool(v1.Boolean)
}
- return nil
+ return compiler.NewNullNode()
}
// ToRawInfo returns a description of Any suitable for JSON or YAML export.
@@ -6830,10 +6858,8 @@ func (m *Any) ToRawInfo() *yaml.Node {
return node.Content[0]
}
return &node
- } else {
- return nil
}
- return nil
+ return compiler.NewNullNode()
}
// ToRawInfo returns a description of ApiKeySecurity suitable for JSON or YAML export.
@@ -7559,7 +7585,10 @@ func (m *NamedAny) ToRawInfo() *yaml.Node {
info.Content = append(info.Content, compiler.NewScalarNodeForString("name"))
info.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))
}
- // &{Name:value Type:Any StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}
+ if m.Value != nil {
+ info.Content = append(info.Content, compiler.NewScalarNodeForString("value"))
+ info.Content = append(info.Content, m.Value.ToRawInfo())
+ }
return info
}
@@ -7716,7 +7745,7 @@ func (m *NonBodyParameter) ToRawInfo() *yaml.Node {
if v3 != nil {
return v3.ToRawInfo()
}
- return nil
+ return compiler.NewNullNode()
}
// ToRawInfo returns a description of Oauth2AccessCodeSecurity suitable for JSON or YAML export.
@@ -7944,7 +7973,7 @@ func (m *Parameter) ToRawInfo() *yaml.Node {
if v1 != nil {
return v1.ToRawInfo()
}
- return nil
+ return compiler.NewNullNode()
}
// ToRawInfo returns a description of ParameterDefinitions suitable for JSON or YAML export.
@@ -7976,7 +8005,7 @@ func (m *ParametersItem) ToRawInfo() *yaml.Node {
if v1 != nil {
return v1.ToRawInfo()
}
- return nil
+ return compiler.NewNullNode()
}
// ToRawInfo returns a description of PathItem suitable for JSON or YAML export.
@@ -8425,7 +8454,7 @@ func (m *ResponseValue) ToRawInfo() *yaml.Node {
if v1 != nil {
return v1.ToRawInfo()
}
- return nil
+ return compiler.NewNullNode()
}
// ToRawInfo returns a description of Responses suitable for JSON or YAML export.
@@ -8618,7 +8647,7 @@ func (m *SchemaItem) ToRawInfo() *yaml.Node {
if v1 != nil {
return v1.ToRawInfo()
}
- return nil
+ return compiler.NewNullNode()
}
// ToRawInfo returns a description of SecurityDefinitions suitable for JSON or YAML export.
@@ -8670,7 +8699,7 @@ func (m *SecurityDefinitionsItem) ToRawInfo() *yaml.Node {
if v5 != nil {
return v5.ToRawInfo()
}
- return nil
+ return compiler.NewNullNode()
}
// ToRawInfo returns a description of SecurityRequirement suitable for JSON or YAML export.
diff --git a/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.pb.go b/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.pb.go
index 559ddea1a..8a5f302f3 100644
--- a/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.pb.go
+++ b/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.pb.go
@@ -16,17 +16,16 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.23.0
-// protoc v3.12.3
+// protoc-gen-go v1.26.0
+// protoc v3.15.5
// source: openapiv2/OpenAPIv2.proto
package openapi_v2
import (
- proto "github.com/golang/protobuf/proto"
- any "github.com/golang/protobuf/ptypes/any"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ anypb "google.golang.org/protobuf/types/known/anypb"
reflect "reflect"
sync "sync"
)
@@ -38,10 +37,6 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
type AdditionalPropertiesItem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -127,8 +122,8 @@ type Any struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Value *any.Any `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
- Yaml string `protobuf:"bytes,2,opt,name=yaml,proto3" json:"yaml,omitempty"`
+ Value *anypb.Any `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
+ Yaml string `protobuf:"bytes,2,opt,name=yaml,proto3" json:"yaml,omitempty"`
}
func (x *Any) Reset() {
@@ -163,7 +158,7 @@ func (*Any) Descriptor() ([]byte, []int) {
return file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{1}
}
-func (x *Any) GetValue() *any.Any {
+func (x *Any) GetValue() *anypb.Any {
if x != nil {
return x.Value
}
@@ -6341,11 +6336,11 @@ var file_openapiv2_OpenAPIv2_proto_rawDesc = []byte{
0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,
0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,
0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x3c, 0x0a, 0x0e, 0x6f, 0x72, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x3e, 0x0a, 0x0e, 0x6f, 0x72, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
0x61, 0x70, 0x69, 0x5f, 0x76, 0x32, 0x42, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x50, 0x49, 0x50,
- 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x14, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76,
- 0x32, 0x3b, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x4f,
- 0x41, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x2e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,
+ 0x69, 0x76, 0x32, 0x3b, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x32, 0xa2, 0x02,
+ 0x03, 0x4f, 0x41, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -6422,7 +6417,7 @@ var file_openapiv2_OpenAPIv2_proto_goTypes = []interface{}{
(*TypeItem)(nil), // 57: openapi.v2.TypeItem
(*VendorExtension)(nil), // 58: openapi.v2.VendorExtension
(*Xml)(nil), // 59: openapi.v2.Xml
- (*any.Any)(nil), // 60: google.protobuf.Any
+ (*anypb.Any)(nil), // 60: google.protobuf.Any
}
var file_openapiv2_OpenAPIv2_proto_depIdxs = []int32{
50, // 0: openapi.v2.AdditionalPropertiesItem.schema:type_name -> openapi.v2.Schema
diff --git a/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.proto b/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.proto
index 00ac1b0a0..1c59b2f4a 100644
--- a/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.proto
+++ b/constraint/vendor/github.com/googleapis/gnostic/openapiv2/OpenAPIv2.proto
@@ -42,7 +42,7 @@ option java_package = "org.openapi_v2";
option objc_class_prefix = "OAS";
// The Go package name.
-option go_package = "openapiv2;openapi_v2";
+option go_package = "./openapiv2;openapi_v2";
message AdditionalPropertiesItem {
oneof oneof {
diff --git a/constraint/vendor/github.com/googleapis/gnostic/openapiv2/document.go b/constraint/vendor/github.com/googleapis/gnostic/openapiv2/document.go
index ddeed5c89..56e5966b4 100644
--- a/constraint/vendor/github.com/googleapis/gnostic/openapiv2/document.go
+++ b/constraint/vendor/github.com/googleapis/gnostic/openapiv2/document.go
@@ -14,7 +14,10 @@
package openapi_v2
-import "github.com/googleapis/gnostic/compiler"
+import (
+ "github.com/googleapis/gnostic/compiler"
+ "gopkg.in/yaml.v3"
+)
// ParseDocument reads an OpenAPI v2 description from a YAML/JSON representation.
func ParseDocument(b []byte) (*Document, error) {
@@ -22,5 +25,17 @@ func ParseDocument(b []byte) (*Document, error) {
if err != nil {
return nil, err
}
- return NewDocument(info.Content[0], compiler.NewContextWithExtensions("$root", nil, nil))
+ root := info.Content[0]
+ return NewDocument(root, compiler.NewContextWithExtensions("$root", root, nil, nil))
+}
+
+// YAMLValue produces a serialized YAML representation of the document.
+func (d *Document) YAMLValue(comment string) ([]byte, error) {
+ rawInfo := d.ToRawInfo()
+ rawInfo = &yaml.Node{
+ Kind: yaml.DocumentNode,
+ Content: []*yaml.Node{rawInfo},
+ HeadComment: comment,
+ }
+ return yaml.Marshal(rawInfo)
}
diff --git a/constraint/vendor/github.com/onsi/gomega/.travis.yml b/constraint/vendor/github.com/onsi/gomega/.travis.yml
index 348e3014c..6543dc553 100644
--- a/constraint/vendor/github.com/onsi/gomega/.travis.yml
+++ b/constraint/vendor/github.com/onsi/gomega/.travis.yml
@@ -1,20 +1,18 @@
language: go
arch:
- - amd64
- - ppc64le
+ - amd64
+ - ppc64le
go:
- - 1.14.x
- - 1.15.x
- gotip
+ - 1.16.x
+ - 1.15.x
env:
- GO111MODULE=on
-install:
- - go get -v ./...
- - go build ./...
- - go get github.com/onsi/ginkgo
- - go install github.com/onsi/ginkgo/ginkgo
+install: skip
-script: make test
+script:
+ - go mod tidy && git diff --exit-code go.mod go.sum
+ - make test
diff --git a/constraint/vendor/github.com/onsi/gomega/CHANGELOG.md b/constraint/vendor/github.com/onsi/gomega/CHANGELOG.md
index 16095fa3c..4783c0d43 100644
--- a/constraint/vendor/github.com/onsi/gomega/CHANGELOG.md
+++ b/constraint/vendor/github.com/onsi/gomega/CHANGELOG.md
@@ -1,3 +1,36 @@
+## 1.13.0
+
+### Features
+- gmeasure provides BETA support for benchmarking (#447) [8f2dfbf]
+- Set consistently and eventually defaults on init (#443) [12eb778]
+
+## 1.12.0
+
+### Features
+- Add Satisfy() matcher (#437) [c548f31]
+- tweak truncation message [3360b8c]
+- Add format.GomegaStringer (#427) [cc80b6f]
+- Add Clear() method to gbytes.Buffer [c3c0920]
+
+### Fixes
+- Fix error message in BeNumericallyMatcher (#432) [09c074a]
+- Bump github.com/onsi/ginkgo from 1.12.1 to 1.16.2 (#442) [e5f6ea0]
+- Bump github.com/golang/protobuf from 1.4.3 to 1.5.2 (#431) [adae3bf]
+- Bump golang.org/x/net (#441) [3275b35]
+
+## 1.11.0
+
+### Features
+- feature: add index to gstruct element func (#419) [334e00d]
+- feat(gexec) Add CompileTest functions. Close #410 (#411) [47c613f]
+
+### Fixes
+- Check more carefully for nils in WithTransform (#423) [3c60a15]
+- fix: typo in Makefile [b82522a]
+- Allow WithTransform function to accept a nil value (#422) [b75d2f2]
+- fix: print value type for interface{} containers (#409) [f08e2dc]
+- fix(BeElementOf): consistently flatten expected values [1fa9468]
+
## 1.10.5
### Fixes
diff --git a/constraint/vendor/github.com/onsi/gomega/Dockerfile b/constraint/vendor/github.com/onsi/gomega/Dockerfile
new file mode 100644
index 000000000..11c7e63e7
--- /dev/null
+++ b/constraint/vendor/github.com/onsi/gomega/Dockerfile
@@ -0,0 +1 @@
+FROM golang:1.15
diff --git a/constraint/vendor/github.com/onsi/gomega/Makefile b/constraint/vendor/github.com/onsi/gomega/Makefile
index c92cd56e3..1c6d107e1 100644
--- a/constraint/vendor/github.com/onsi/gomega/Makefile
+++ b/constraint/vendor/github.com/onsi/gomega/Makefile
@@ -1,6 +1,33 @@
-test:
- [ -z "`gofmt -s -w -l -e .`" ]
- go vet
- ginkgo -p -r --randomizeAllSpecs --failOnPending --randomizeSuites --race
+###### Help ###################################################################
-.PHONY: test
+.DEFAULT_GOAL = help
+
+.PHONY: help
+
+help: ## list Makefile targets
+ @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
+
+###### Targets ################################################################
+
+test: version download fmt vet ginkgo ## Runs all build, static analysis, and test steps
+
+download: ## Download dependencies
+ go mod download
+
+vet: ## Run static code analysis
+ go vet ./...
+
+ginkgo: ## Run tests using Ginkgo
+ go run github.com/onsi/ginkgo/ginkgo -p -r --randomizeAllSpecs --failOnPending --randomizeSuites --race
+
+fmt: ## Checks that the code is formatted correcty
+ @@if [ -n "$$(gofmt -s -e -l -d .)" ]; then \
+ echo "gofmt check failed: run 'gofmt -s -e -l -w .'"; \
+ exit 1; \
+ fi
+
+docker_test: ## Run tests in a container via docker-compose
+ docker-compose build test && docker-compose run --rm test make test
+
+version: ## Display the version of Go
+ @@go version
diff --git a/constraint/vendor/github.com/onsi/gomega/docker-compose.yaml b/constraint/vendor/github.com/onsi/gomega/docker-compose.yaml
new file mode 100644
index 000000000..f37496143
--- /dev/null
+++ b/constraint/vendor/github.com/onsi/gomega/docker-compose.yaml
@@ -0,0 +1,10 @@
+version: '3.0'
+
+services:
+ test:
+ build:
+ dockerfile: Dockerfile
+ context: .
+ working_dir: /app
+ volumes:
+ - ${PWD}:/app
diff --git a/constraint/vendor/github.com/onsi/gomega/env.go b/constraint/vendor/github.com/onsi/gomega/env.go
new file mode 100644
index 000000000..62fd885a9
--- /dev/null
+++ b/constraint/vendor/github.com/onsi/gomega/env.go
@@ -0,0 +1,40 @@
+package gomega
+
+import (
+ "os"
+
+ "github.com/onsi/gomega/internal/defaults"
+)
+
+const (
+ ConsistentlyDurationEnvVarName = "GOMEGA_DEFAULT_CONSISTENTLY_DURATION"
+ ConsistentlyPollingIntervalEnvVarName = "GOMEGA_DEFAULT_CONSISTENTLY_POLLING_INTERVAL"
+ EventuallyTimeoutEnvVarName = "GOMEGA_DEFAULT_EVENTUALLY_TIMEOUT"
+ EventuallyPollingIntervalEnvVarName = "GOMEGA_DEFAULT_EVENTUALLY_POLLING_INTERVAL"
+)
+
+func init() {
+ defaults.SetDurationFromEnv(
+ os.Getenv,
+ SetDefaultConsistentlyDuration,
+ ConsistentlyDurationEnvVarName,
+ )
+
+ defaults.SetDurationFromEnv(
+ os.Getenv,
+ SetDefaultConsistentlyPollingInterval,
+ ConsistentlyPollingIntervalEnvVarName,
+ )
+
+ defaults.SetDurationFromEnv(
+ os.Getenv,
+ SetDefaultEventuallyTimeout,
+ EventuallyTimeoutEnvVarName,
+ )
+
+ defaults.SetDurationFromEnv(
+ os.Getenv,
+ SetDefaultEventuallyPollingInterval,
+ EventuallyPollingIntervalEnvVarName,
+ )
+}
diff --git a/constraint/vendor/github.com/onsi/gomega/format/format.go b/constraint/vendor/github.com/onsi/gomega/format/format.go
index e59d7d75b..6e78c391d 100644
--- a/constraint/vendor/github.com/onsi/gomega/format/format.go
+++ b/constraint/vendor/github.com/onsi/gomega/format/format.go
@@ -7,6 +7,7 @@ Gomega's format package pretty-prints objects. It explores input objects recurs
package format
import (
+ "context"
"fmt"
"reflect"
"strconv"
@@ -17,6 +18,10 @@ import (
// Use MaxDepth to set the maximum recursion depth when printing deeply nested objects
var MaxDepth = uint(10)
+// MaxLength of the string representation of an object.
+// If MaxLength is set to 0, the Object will not be truncated.
+var MaxLength = 4000
+
/*
By default, all objects (even those that implement fmt.Stringer and fmt.GoStringer) are recursively inspected to generate output.
@@ -44,16 +49,7 @@ var TruncateThreshold uint = 50
// after the first diff location in a truncated string assertion error message.
var CharactersAroundMismatchToInclude uint = 5
-// Ctx interface defined here to keep backwards compatibility with go < 1.7
-// It matches the context.Context interface
-type Ctx interface {
- Deadline() (deadline time.Time, ok bool)
- Done() <-chan struct{}
- Err() error
- Value(key interface{}) interface{}
-}
-
-var contextType = reflect.TypeOf((*Ctx)(nil)).Elem()
+var contextType = reflect.TypeOf((*context.Context)(nil)).Elem()
var timeType = reflect.TypeOf(time.Time{})
//The default indentation string emitted by the format package
@@ -61,6 +57,14 @@ var Indent = " "
var longFormThreshold = 20
+// GomegaStringer allows for custom formating of objects for gomega.
+type GomegaStringer interface {
+ // GomegaString will be used to custom format an object.
+ // It does not follow UseStringerRepresentation value and will always be called regardless.
+ // It also ignores the MaxLength value.
+ GomegaString() string
+}
+
/*
Generates a formatted matcher success/failure message of the form:
@@ -167,6 +171,33 @@ func findFirstMismatch(a, b string) int {
return 0
}
+const truncateHelpText = `
+Gomega truncated this representation as it exceeds 'format.MaxLength'.
+Consider having the object provide a custom 'GomegaStringer' representation
+or adjust the parameters in Gomega's 'format' package.
+
+Learn more here: https://onsi.github.io/gomega/#adjusting-output
+`
+
+func truncateLongStrings(s string) string {
+ if MaxLength > 0 && len(s) > MaxLength {
+ var sb strings.Builder
+ for i, r := range s {
+ if i < MaxLength {
+ sb.WriteRune(r)
+ continue
+ }
+ break
+ }
+
+ sb.WriteString("...\n")
+ sb.WriteString(truncateHelpText)
+
+ return sb.String()
+ }
+ return s
+}
+
/*
Pretty prints the passed in object at the passed in indentation level.
@@ -181,7 +212,7 @@ Set PrintContextObjects to true to print the content of objects implementing con
func Object(object interface{}, indentation uint) string {
indent := strings.Repeat(Indent, int(indentation))
value := reflect.ValueOf(object)
- return fmt.Sprintf("%s<%s>: %s", indent, formatType(object), formatValue(value, indentation))
+ return fmt.Sprintf("%s<%s>: %s", indent, formatType(value), formatValue(value, indentation))
}
/*
@@ -201,25 +232,20 @@ func IndentString(s string, indentation uint) string {
return result
}
-func formatType(object interface{}) string {
- t := reflect.TypeOf(object)
- if t == nil {
+func formatType(v reflect.Value) string {
+ switch v.Kind() {
+ case reflect.Invalid:
return "nil"
- }
- switch t.Kind() {
case reflect.Chan:
- v := reflect.ValueOf(object)
- return fmt.Sprintf("%T | len:%d, cap:%d", object, v.Len(), v.Cap())
+ return fmt.Sprintf("%s | len:%d, cap:%d", v.Type(), v.Len(), v.Cap())
case reflect.Ptr:
- return fmt.Sprintf("%T | %p", object, object)
+ return fmt.Sprintf("%s | 0x%x", v.Type(), v.Pointer())
case reflect.Slice:
- v := reflect.ValueOf(object)
- return fmt.Sprintf("%T | len:%d, cap:%d", object, v.Len(), v.Cap())
+ return fmt.Sprintf("%s | len:%d, cap:%d", v.Type(), v.Len(), v.Cap())
case reflect.Map:
- v := reflect.ValueOf(object)
- return fmt.Sprintf("%T | len:%d", object, v.Len())
+ return fmt.Sprintf("%s | len:%d", v.Type(), v.Len())
default:
- return fmt.Sprintf("%T", object)
+ return fmt.Sprintf("%s", v.Type())
}
}
@@ -232,14 +258,21 @@ func formatValue(value reflect.Value, indentation uint) string {
return "nil"
}
- if UseStringerRepresentation {
- if value.CanInterface() {
- obj := value.Interface()
+ if value.CanInterface() {
+ obj := value.Interface()
+
+ // GomegaStringer will take precedence to other representations and disregards UseStringerRepresentation
+ if x, ok := obj.(GomegaStringer); ok {
+ // do not truncate a user-defined GoMegaString() value
+ return x.GomegaString()
+ }
+
+ if UseStringerRepresentation {
switch x := obj.(type) {
case fmt.GoStringer:
- return x.GoString()
+ return truncateLongStrings(x.GoString())
case fmt.Stringer:
- return x.String()
+ return truncateLongStrings(x.String())
}
}
}
@@ -270,26 +303,26 @@ func formatValue(value reflect.Value, indentation uint) string {
case reflect.Ptr:
return formatValue(value.Elem(), indentation)
case reflect.Slice:
- return formatSlice(value, indentation)
+ return truncateLongStrings(formatSlice(value, indentation))
case reflect.String:
- return formatString(value.String(), indentation)
+ return truncateLongStrings(formatString(value.String(), indentation))
case reflect.Array:
- return formatSlice(value, indentation)
+ return truncateLongStrings(formatSlice(value, indentation))
case reflect.Map:
- return formatMap(value, indentation)
+ return truncateLongStrings(formatMap(value, indentation))
case reflect.Struct:
if value.Type() == timeType && value.CanInterface() {
t, _ := value.Interface().(time.Time)
return t.Format(time.RFC3339Nano)
}
- return formatStruct(value, indentation)
+ return truncateLongStrings(formatStruct(value, indentation))
case reflect.Interface:
- return formatValue(value.Elem(), indentation)
+ return formatInterface(value, indentation)
default:
if value.CanInterface() {
- return fmt.Sprintf("%#v", value.Interface())
+ return truncateLongStrings(fmt.Sprintf("%#v", value.Interface()))
}
- return fmt.Sprintf("%#v", value)
+ return truncateLongStrings(fmt.Sprintf("%#v", value))
}
}
@@ -379,6 +412,10 @@ func formatStruct(v reflect.Value, indentation uint) string {
return fmt.Sprintf("{%s}", strings.Join(result, ", "))
}
+func formatInterface(v reflect.Value, indentation uint) string {
+ return fmt.Sprintf("<%s>%s", formatType(v.Elem()), formatValue(v.Elem(), indentation))
+}
+
func isNilValue(a reflect.Value) bool {
switch a.Kind() {
case reflect.Invalid:
diff --git a/constraint/vendor/github.com/onsi/gomega/gbytes/buffer.go b/constraint/vendor/github.com/onsi/gomega/gbytes/buffer.go
deleted file mode 100644
index 336086f4a..000000000
--- a/constraint/vendor/github.com/onsi/gomega/gbytes/buffer.go
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
-Package gbytes provides a buffer that supports incrementally detecting input.
-
-You use gbytes.Buffer with the gbytes.Say matcher. When Say finds a match, it fastforwards the buffer's read cursor to the end of that match.
-
-Subsequent matches against the buffer will only operate against data that appears *after* the read cursor.
-
-The read cursor is an opaque implementation detail that you cannot access. You should use the Say matcher to sift through the buffer. You can always
-access the entire buffer's contents with Contents().
-
-*/
-package gbytes
-
-import (
- "errors"
- "fmt"
- "io"
- "regexp"
- "sync"
- "time"
-)
-
-/*
-gbytes.Buffer implements an io.Writer and can be used with the gbytes.Say matcher.
-
-You should only use a gbytes.Buffer in test code. It stores all writes in an in-memory buffer - behavior that is inappropriate for production code!
-*/
-type Buffer struct {
- contents []byte
- readCursor uint64
- lock *sync.Mutex
- detectCloser chan interface{}
- closed bool
-}
-
-/*
-NewBuffer returns a new gbytes.Buffer
-*/
-func NewBuffer() *Buffer {
- return &Buffer{
- lock: &sync.Mutex{},
- }
-}
-
-/*
-BufferWithBytes returns a new gbytes.Buffer seeded with the passed in bytes
-*/
-func BufferWithBytes(bytes []byte) *Buffer {
- return &Buffer{
- lock: &sync.Mutex{},
- contents: bytes,
- }
-}
-
-/*
-BufferReader returns a new gbytes.Buffer that wraps a reader. The reader's contents are read into
-the Buffer via io.Copy
-*/
-func BufferReader(reader io.Reader) *Buffer {
- b := &Buffer{
- lock: &sync.Mutex{},
- }
-
- go func() {
- io.Copy(b, reader)
- b.Close()
- }()
-
- return b
-}
-
-/*
-Write implements the io.Writer interface
-*/
-func (b *Buffer) Write(p []byte) (n int, err error) {
- b.lock.Lock()
- defer b.lock.Unlock()
-
- if b.closed {
- return 0, errors.New("attempt to write to closed buffer")
- }
-
- b.contents = append(b.contents, p...)
- return len(p), nil
-}
-
-/*
-Read implements the io.Reader interface. It advances the
-cursor as it reads.
-
-Returns an error if called after Close.
-*/
-func (b *Buffer) Read(d []byte) (int, error) {
- b.lock.Lock()
- defer b.lock.Unlock()
-
- if b.closed {
- return 0, errors.New("attempt to read from closed buffer")
- }
-
- if uint64(len(b.contents)) <= b.readCursor {
- return 0, io.EOF
- }
-
- n := copy(d, b.contents[b.readCursor:])
- b.readCursor += uint64(n)
-
- return n, nil
-}
-
-/*
-Close signifies that the buffer will no longer be written to
-*/
-func (b *Buffer) Close() error {
- b.lock.Lock()
- defer b.lock.Unlock()
-
- b.closed = true
-
- return nil
-}
-
-/*
-Closed returns true if the buffer has been closed
-*/
-func (b *Buffer) Closed() bool {
- b.lock.Lock()
- defer b.lock.Unlock()
-
- return b.closed
-}
-
-/*
-Contents returns all data ever written to the buffer.
-*/
-func (b *Buffer) Contents() []byte {
- b.lock.Lock()
- defer b.lock.Unlock()
-
- contents := make([]byte, len(b.contents))
- copy(contents, b.contents)
- return contents
-}
-
-/*
-Detect takes a regular expression and returns a channel.
-
-The channel will receive true the first time data matching the regular expression is written to the buffer.
-The channel is subsequently closed and the buffer's read-cursor is fast-forwarded to just after the matching region.
-
-You typically don't need to use Detect and should use the ghttp.Say matcher instead. Detect is useful, however, in cases where your code must
-be branch and handle different outputs written to the buffer.
-
-For example, consider a buffer hooked up to the stdout of a client library. You may (or may not, depending on state outside of your control) need to authenticate the client library.
-
-You could do something like:
-
-select {
-case <-buffer.Detect("You are not logged in"):
- //log in
-case <-buffer.Detect("Success"):
- //carry on
-case <-time.After(time.Second):
- //welp
-}
-buffer.CancelDetects()
-
-You should always call CancelDetects after using Detect. This will close any channels that have not detected and clean up the goroutines that were spawned to support them.
-
-Finally, you can pass detect a format string followed by variadic arguments. This will construct the regexp using fmt.Sprintf.
-*/
-func (b *Buffer) Detect(desired string, args ...interface{}) chan bool {
- formattedRegexp := desired
- if len(args) > 0 {
- formattedRegexp = fmt.Sprintf(desired, args...)
- }
- re := regexp.MustCompile(formattedRegexp)
-
- b.lock.Lock()
- defer b.lock.Unlock()
-
- if b.detectCloser == nil {
- b.detectCloser = make(chan interface{})
- }
-
- closer := b.detectCloser
- response := make(chan bool)
- go func() {
- ticker := time.NewTicker(10 * time.Millisecond)
- defer ticker.Stop()
- defer close(response)
- for {
- select {
- case <-ticker.C:
- b.lock.Lock()
- data, cursor := b.contents[b.readCursor:], b.readCursor
- loc := re.FindIndex(data)
- b.lock.Unlock()
-
- if loc != nil {
- response <- true
- b.lock.Lock()
- newCursorPosition := cursor + uint64(loc[1])
- if newCursorPosition >= b.readCursor {
- b.readCursor = newCursorPosition
- }
- b.lock.Unlock()
- return
- }
- case <-closer:
- return
- }
- }
- }()
-
- return response
-}
-
-/*
-CancelDetects cancels any pending detects and cleans up their goroutines. You should always call this when you're done with a set of Detect channels.
-*/
-func (b *Buffer) CancelDetects() {
- b.lock.Lock()
- defer b.lock.Unlock()
-
- close(b.detectCloser)
- b.detectCloser = nil
-}
-
-func (b *Buffer) didSay(re *regexp.Regexp) (bool, []byte) {
- b.lock.Lock()
- defer b.lock.Unlock()
-
- unreadBytes := b.contents[b.readCursor:]
- copyOfUnreadBytes := make([]byte, len(unreadBytes))
- copy(copyOfUnreadBytes, unreadBytes)
-
- loc := re.FindIndex(unreadBytes)
-
- if loc != nil {
- b.readCursor += uint64(loc[1])
- return true, copyOfUnreadBytes
- }
- return false, copyOfUnreadBytes
-}
diff --git a/constraint/vendor/github.com/onsi/gomega/gbytes/io_wrappers.go b/constraint/vendor/github.com/onsi/gomega/gbytes/io_wrappers.go
deleted file mode 100644
index a41ad6232..000000000
--- a/constraint/vendor/github.com/onsi/gomega/gbytes/io_wrappers.go
+++ /dev/null
@@ -1,85 +0,0 @@
-package gbytes
-
-import (
- "errors"
- "io"
- "time"
-)
-
-// ErrTimeout is returned by TimeoutCloser, TimeoutReader, and TimeoutWriter when the underlying Closer/Reader/Writer does not return within the specified timeout
-var ErrTimeout = errors.New("timeout occurred")
-
-// TimeoutCloser returns an io.Closer that wraps the passed-in io.Closer. If the underlying Closer fails to close within the allotted timeout ErrTimeout is returned.
-func TimeoutCloser(c io.Closer, timeout time.Duration) io.Closer {
- return timeoutReaderWriterCloser{c: c, d: timeout}
-}
-
-// TimeoutReader returns an io.Reader that wraps the passed-in io.Reader. If the underlying Reader fails to read within the allotted timeout ErrTimeout is returned.
-func TimeoutReader(r io.Reader, timeout time.Duration) io.Reader {
- return timeoutReaderWriterCloser{r: r, d: timeout}
-}
-
-// TimeoutWriter returns an io.Writer that wraps the passed-in io.Writer. If the underlying Writer fails to write within the allotted timeout ErrTimeout is returned.
-func TimeoutWriter(w io.Writer, timeout time.Duration) io.Writer {
- return timeoutReaderWriterCloser{w: w, d: timeout}
-}
-
-type timeoutReaderWriterCloser struct {
- c io.Closer
- w io.Writer
- r io.Reader
- d time.Duration
-}
-
-func (t timeoutReaderWriterCloser) Close() error {
- done := make(chan struct{})
- var err error
-
- go func() {
- err = t.c.Close()
- close(done)
- }()
-
- select {
- case <-done:
- return err
- case <-time.After(t.d):
- return ErrTimeout
- }
-}
-
-func (t timeoutReaderWriterCloser) Read(p []byte) (int, error) {
- done := make(chan struct{})
- var n int
- var err error
-
- go func() {
- n, err = t.r.Read(p)
- close(done)
- }()
-
- select {
- case <-done:
- return n, err
- case <-time.After(t.d):
- return 0, ErrTimeout
- }
-}
-
-func (t timeoutReaderWriterCloser) Write(p []byte) (int, error) {
- done := make(chan struct{})
- var n int
- var err error
-
- go func() {
- n, err = t.w.Write(p)
- close(done)
- }()
-
- select {
- case <-done:
- return n, err
- case <-time.After(t.d):
- return 0, ErrTimeout
- }
-}
diff --git a/constraint/vendor/github.com/onsi/gomega/gbytes/say_matcher.go b/constraint/vendor/github.com/onsi/gomega/gbytes/say_matcher.go
deleted file mode 100644
index 0763f5e2d..000000000
--- a/constraint/vendor/github.com/onsi/gomega/gbytes/say_matcher.go
+++ /dev/null
@@ -1,106 +0,0 @@
-// untested sections: 1
-
-package gbytes
-
-import (
- "fmt"
- "regexp"
-
- "github.com/onsi/gomega/format"
-)
-
-//Objects satisfying the BufferProvider can be used with the Say matcher.
-type BufferProvider interface {
- Buffer() *Buffer
-}
-
-/*
-Say is a Gomega matcher that operates on gbytes.Buffers:
-
- Expect(buffer).Should(Say("something"))
-
-will succeed if the unread portion of the buffer matches the regular expression "something".
-
-When Say succeeds, it fast forwards the gbytes.Buffer's read cursor to just after the successful match.
-Thus, subsequent calls to Say will only match against the unread portion of the buffer
-
-Say pairs very well with Eventually. To assert that a buffer eventually receives data matching "[123]-star" within 3 seconds you can:
-
- Eventually(buffer, 3).Should(Say("[123]-star"))
-
-Ditto with consistently. To assert that a buffer does not receive data matching "never-see-this" for 1 second you can:
-
- Consistently(buffer, 1).ShouldNot(Say("never-see-this"))
-
-In addition to bytes.Buffers, Say can operate on objects that implement the gbytes.BufferProvider interface.
-In such cases, Say simply operates on the *gbytes.Buffer returned by Buffer()
-
-If the buffer is closed, the Say matcher will tell Eventually to abort.
-*/
-func Say(expected string, args ...interface{}) *sayMatcher {
- if len(args) > 0 {
- expected = fmt.Sprintf(expected, args...)
- }
- return &sayMatcher{
- re: regexp.MustCompile(expected),
- }
-}
-
-type sayMatcher struct {
- re *regexp.Regexp
- receivedSayings []byte
-}
-
-func (m *sayMatcher) buffer(actual interface{}) (*Buffer, bool) {
- var buffer *Buffer
-
- switch x := actual.(type) {
- case *Buffer:
- buffer = x
- case BufferProvider:
- buffer = x.Buffer()
- default:
- return nil, false
- }
-
- return buffer, true
-}
-
-func (m *sayMatcher) Match(actual interface{}) (success bool, err error) {
- buffer, ok := m.buffer(actual)
- if !ok {
- return false, fmt.Errorf("Say must be passed a *gbytes.Buffer or BufferProvider. Got:\n%s", format.Object(actual, 1))
- }
-
- didSay, sayings := buffer.didSay(m.re)
- m.receivedSayings = sayings
-
- return didSay, nil
-}
-
-func (m *sayMatcher) FailureMessage(actual interface{}) (message string) {
- return fmt.Sprintf(
- "Got stuck at:\n%s\nWaiting for:\n%s",
- format.IndentString(string(m.receivedSayings), 1),
- format.IndentString(m.re.String(), 1),
- )
-}
-
-func (m *sayMatcher) NegatedFailureMessage(actual interface{}) (message string) {
- return fmt.Sprintf(
- "Saw:\n%s\nWhich matches the unexpected:\n%s",
- format.IndentString(string(m.receivedSayings), 1),
- format.IndentString(m.re.String(), 1),
- )
-}
-
-func (m *sayMatcher) MatchMayChangeInTheFuture(actual interface{}) bool {
- switch x := actual.(type) {
- case *Buffer:
- return !x.Closed()
- case BufferProvider:
- return !x.Buffer().Closed()
- default:
- return true
- }
-}
diff --git a/constraint/vendor/github.com/onsi/gomega/gexec/build.go b/constraint/vendor/github.com/onsi/gomega/gexec/build.go
deleted file mode 100644
index 741d845f4..000000000
--- a/constraint/vendor/github.com/onsi/gomega/gexec/build.go
+++ /dev/null
@@ -1,114 +0,0 @@
-// untested sections: 5
-
-package gexec
-
-import (
- "errors"
- "fmt"
- "go/build"
- "io/ioutil"
- "os"
- "os/exec"
- "path"
- "path/filepath"
- "runtime"
- "strings"
- "sync"
-)
-
-var (
- mu sync.Mutex
- tmpDir string
-)
-
-/*
-Build uses go build to compile the package at packagePath. The resulting binary is saved off in a temporary directory.
-A path pointing to this binary is returned.
-
-Build uses the $GOPATH set in your environment. If $GOPATH is not set and you are using Go 1.8+,
-it will use the default GOPATH instead. It passes the variadic args on to `go build`.
-*/
-func Build(packagePath string, args ...string) (compiledPath string, err error) {
- return doBuild(build.Default.GOPATH, packagePath, nil, args...)
-}
-
-/*
-BuildWithEnvironment is identical to Build but allows you to specify env vars to be set at build time.
-*/
-func BuildWithEnvironment(packagePath string, env []string, args ...string) (compiledPath string, err error) {
- return doBuild(build.Default.GOPATH, packagePath, env, args...)
-}
-
-/*
-BuildIn is identical to Build but allows you to specify a custom $GOPATH (the first argument).
-*/
-func BuildIn(gopath string, packagePath string, args ...string) (compiledPath string, err error) {
- return doBuild(gopath, packagePath, nil, args...)
-}
-
-func replaceGoPath(environ []string, newGoPath string) []string {
- newEnviron := []string{}
- for _, v := range environ {
- if !strings.HasPrefix(v, "GOPATH=") {
- newEnviron = append(newEnviron, v)
- }
- }
- return append(newEnviron, "GOPATH="+newGoPath)
-}
-
-func doBuild(gopath, packagePath string, env []string, args ...string) (compiledPath string, err error) {
- tmpDir, err := temporaryDirectory()
- if err != nil {
- return "", err
- }
-
- if len(gopath) == 0 {
- return "", errors.New("$GOPATH not provided when building " + packagePath)
- }
-
- executable := filepath.Join(tmpDir, path.Base(packagePath))
- if runtime.GOOS == "windows" {
- executable += ".exe"
- }
-
- cmdArgs := append([]string{"build"}, args...)
- cmdArgs = append(cmdArgs, "-o", executable, packagePath)
-
- build := exec.Command("go", cmdArgs...)
- build.Env = replaceGoPath(os.Environ(), gopath)
- build.Env = append(build.Env, env...)
-
- output, err := build.CombinedOutput()
- if err != nil {
- return "", fmt.Errorf("Failed to build %s:\n\nError:\n%s\n\nOutput:\n%s", packagePath, err, string(output))
- }
-
- return executable, nil
-}
-
-/*
-You should call CleanupBuildArtifacts before your test ends to clean up any temporary artifacts generated by
-gexec. In Ginkgo this is typically done in an AfterSuite callback.
-*/
-func CleanupBuildArtifacts() {
- mu.Lock()
- defer mu.Unlock()
- if tmpDir != "" {
- os.RemoveAll(tmpDir)
- tmpDir = ""
- }
-}
-
-func temporaryDirectory() (string, error) {
- var err error
- mu.Lock()
- defer mu.Unlock()
- if tmpDir == "" {
- tmpDir, err = ioutil.TempDir("", "gexec_artifacts")
- if err != nil {
- return "", err
- }
- }
-
- return ioutil.TempDir(tmpDir, "g")
-}
diff --git a/constraint/vendor/github.com/onsi/gomega/gexec/exit_matcher.go b/constraint/vendor/github.com/onsi/gomega/gexec/exit_matcher.go
deleted file mode 100644
index 6e70de68d..000000000
--- a/constraint/vendor/github.com/onsi/gomega/gexec/exit_matcher.go
+++ /dev/null
@@ -1,88 +0,0 @@
-// untested sections: 2
-
-package gexec
-
-import (
- "fmt"
-
- "github.com/onsi/gomega/format"
-)
-
-/*
-The Exit matcher operates on a session:
-
- Expect(session).Should(Exit())
-
-Exit passes if the session has already exited.
-
-If no status code is provided, then Exit will succeed if the session has exited regardless of exit code.
-Otherwise, Exit will only succeed if the process has exited with the provided status code.
-
-Note that the process must have already exited. To wait for a process to exit, use Eventually:
-
- Eventually(session, 3).Should(Exit(0))
-*/
-func Exit(optionalExitCode ...int) *exitMatcher {
- exitCode := -1
- if len(optionalExitCode) > 0 {
- exitCode = optionalExitCode[0]
- }
-
- return &exitMatcher{
- exitCode: exitCode,
- }
-}
-
-type exitMatcher struct {
- exitCode int
- didExit bool
- actualExitCode int
-}
-
-type Exiter interface {
- ExitCode() int
-}
-
-func (m *exitMatcher) Match(actual interface{}) (success bool, err error) {
- exiter, ok := actual.(Exiter)
- if !ok {
- return false, fmt.Errorf("Exit must be passed a gexec.Exiter (Missing method ExitCode() int) Got:\n%s", format.Object(actual, 1))
- }
-
- m.actualExitCode = exiter.ExitCode()
-
- if m.actualExitCode == -1 {
- return false, nil
- }
-
- if m.exitCode == -1 {
- return true, nil
- }
- return m.exitCode == m.actualExitCode, nil
-}
-
-func (m *exitMatcher) FailureMessage(actual interface{}) (message string) {
- if m.actualExitCode == -1 {
- return "Expected process to exit. It did not."
- }
- return format.Message(m.actualExitCode, "to match exit code:", m.exitCode)
-}
-
-func (m *exitMatcher) NegatedFailureMessage(actual interface{}) (message string) {
- if m.actualExitCode == -1 {
- return "you really shouldn't be able to see this!"
- } else {
- if m.exitCode == -1 {
- return "Expected process not to exit. It did."
- }
- return format.Message(m.actualExitCode, "not to match exit code:", m.exitCode)
- }
-}
-
-func (m *exitMatcher) MatchMayChangeInTheFuture(actual interface{}) bool {
- session, ok := actual.(*Session)
- if ok {
- return session.ExitCode() == -1
- }
- return true
-}
diff --git a/constraint/vendor/github.com/onsi/gomega/gexec/prefixed_writer.go b/constraint/vendor/github.com/onsi/gomega/gexec/prefixed_writer.go
deleted file mode 100644
index feb6620c5..000000000
--- a/constraint/vendor/github.com/onsi/gomega/gexec/prefixed_writer.go
+++ /dev/null
@@ -1,55 +0,0 @@
-// untested sections: 1
-
-package gexec
-
-import (
- "io"
- "sync"
-)
-
-/*
-PrefixedWriter wraps an io.Writer, emitting the passed in prefix at the beginning of each new line.
-This can be useful when running multiple gexec.Sessions concurrently - you can prefix the log output of each
-session by passing in a PrefixedWriter:
-
-gexec.Start(cmd, NewPrefixedWriter("[my-cmd] ", GinkgoWriter), NewPrefixedWriter("[my-cmd] ", GinkgoWriter))
-*/
-type PrefixedWriter struct {
- prefix []byte
- writer io.Writer
- lock *sync.Mutex
- atStartOfLine bool
-}
-
-func NewPrefixedWriter(prefix string, writer io.Writer) *PrefixedWriter {
- return &PrefixedWriter{
- prefix: []byte(prefix),
- writer: writer,
- lock: &sync.Mutex{},
- atStartOfLine: true,
- }
-}
-
-func (w *PrefixedWriter) Write(b []byte) (int, error) {
- w.lock.Lock()
- defer w.lock.Unlock()
-
- toWrite := []byte{}
-
- for _, c := range b {
- if w.atStartOfLine {
- toWrite = append(toWrite, w.prefix...)
- }
-
- toWrite = append(toWrite, c)
-
- w.atStartOfLine = c == '\n'
- }
-
- _, err := w.writer.Write(toWrite)
- if err != nil {
- return 0, err
- }
-
- return len(b), nil
-}
diff --git a/constraint/vendor/github.com/onsi/gomega/gexec/session.go b/constraint/vendor/github.com/onsi/gomega/gexec/session.go
deleted file mode 100644
index 6a09140fb..000000000
--- a/constraint/vendor/github.com/onsi/gomega/gexec/session.go
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
-Package gexec provides support for testing external processes.
-*/
-
-// untested sections: 1
-
-package gexec
-
-import (
- "io"
- "os"
- "os/exec"
- "sync"
- "syscall"
-
- . "github.com/onsi/gomega"
- "github.com/onsi/gomega/gbytes"
-)
-
-const INVALID_EXIT_CODE = 254
-
-type Session struct {
- //The wrapped command
- Command *exec.Cmd
-
- //A *gbytes.Buffer connected to the command's stdout
- Out *gbytes.Buffer
-
- //A *gbytes.Buffer connected to the command's stderr
- Err *gbytes.Buffer
-
- //A channel that will close when the command exits
- Exited <-chan struct{}
-
- lock *sync.Mutex
- exitCode int
-}
-
-/*
-Start starts the passed-in *exec.Cmd command. It wraps the command in a *gexec.Session.
-
-The session pipes the command's stdout and stderr to two *gbytes.Buffers available as properties on the session: session.Out and session.Err.
-These buffers can be used with the gbytes.Say matcher to match against unread output:
-
- Expect(session.Out).Should(gbytes.Say("foo-out"))
- Expect(session.Err).Should(gbytes.Say("foo-err"))
-
-In addition, Session satisfies the gbytes.BufferProvider interface and provides the stdout *gbytes.Buffer. This allows you to replace the first line, above, with:
-
- Expect(session).Should(gbytes.Say("foo-out"))
-
-When outWriter and/or errWriter are non-nil, the session will pipe stdout and/or stderr output both into the session *gybtes.Buffers and to the passed-in outWriter/errWriter.
-This is useful for capturing the process's output or logging it to screen. In particular, when using Ginkgo it can be convenient to direct output to the GinkgoWriter:
-
- session, err := Start(command, GinkgoWriter, GinkgoWriter)
-
-This will log output when running tests in verbose mode, but - otherwise - will only log output when a test fails.
-
-The session wrapper is responsible for waiting on the *exec.Cmd command. You *should not* call command.Wait() yourself.
-Instead, to assert that the command has exited you can use the gexec.Exit matcher:
-
- Expect(session).Should(gexec.Exit())
-
-When the session exits it closes the stdout and stderr gbytes buffers. This will short circuit any
-Eventuallys waiting for the buffers to Say something.
-*/
-func Start(command *exec.Cmd, outWriter io.Writer, errWriter io.Writer) (*Session, error) {
- exited := make(chan struct{})
-
- session := &Session{
- Command: command,
- Out: gbytes.NewBuffer(),
- Err: gbytes.NewBuffer(),
- Exited: exited,
- lock: &sync.Mutex{},
- exitCode: -1,
- }
-
- var commandOut, commandErr io.Writer
-
- commandOut, commandErr = session.Out, session.Err
-
- if outWriter != nil {
- commandOut = io.MultiWriter(commandOut, outWriter)
- }
-
- if errWriter != nil {
- commandErr = io.MultiWriter(commandErr, errWriter)
- }
-
- command.Stdout = commandOut
- command.Stderr = commandErr
-
- err := command.Start()
- if err == nil {
- go session.monitorForExit(exited)
- trackedSessionsMutex.Lock()
- defer trackedSessionsMutex.Unlock()
- trackedSessions = append(trackedSessions, session)
- }
-
- return session, err
-}
-
-/*
-Buffer implements the gbytes.BufferProvider interface and returns s.Out
-This allows you to make gbytes.Say matcher assertions against stdout without having to reference .Out:
-
- Eventually(session).Should(gbytes.Say("foo"))
-*/
-func (s *Session) Buffer() *gbytes.Buffer {
- return s.Out
-}
-
-/*
-ExitCode returns the wrapped command's exit code. If the command hasn't exited yet, ExitCode returns -1.
-
-To assert that the command has exited it is more convenient to use the Exit matcher:
-
- Eventually(s).Should(gexec.Exit())
-
-When the process exits because it has received a particular signal, the exit code will be 128+signal-value
-(See http://www.tldp.org/LDP/abs/html/exitcodes.html and http://man7.org/linux/man-pages/man7/signal.7.html)
-
-*/
-func (s *Session) ExitCode() int {
- s.lock.Lock()
- defer s.lock.Unlock()
- return s.exitCode
-}
-
-/*
-Wait waits until the wrapped command exits. It can be passed an optional timeout.
-If the command does not exit within the timeout, Wait will trigger a test failure.
-
-Wait returns the session, making it possible to chain:
-
- session.Wait().Out.Contents()
-
-will wait for the command to exit then return the entirety of Out's contents.
-
-Wait uses eventually under the hood and accepts the same timeout/polling intervals that eventually does.
-*/
-func (s *Session) Wait(timeout ...interface{}) *Session {
- EventuallyWithOffset(1, s, timeout...).Should(Exit())
- return s
-}
-
-/*
-Kill sends the running command a SIGKILL signal. It does not wait for the process to exit.
-
-If the command has already exited, Kill returns silently.
-
-The session is returned to enable chaining.
-*/
-func (s *Session) Kill() *Session {
- return s.Signal(syscall.SIGKILL)
-}
-
-/*
-Interrupt sends the running command a SIGINT signal. It does not wait for the process to exit.
-
-If the command has already exited, Interrupt returns silently.
-
-The session is returned to enable chaining.
-*/
-func (s *Session) Interrupt() *Session {
- return s.Signal(syscall.SIGINT)
-}
-
-/*
-Terminate sends the running command a SIGTERM signal. It does not wait for the process to exit.
-
-If the command has already exited, Terminate returns silently.
-
-The session is returned to enable chaining.
-*/
-func (s *Session) Terminate() *Session {
- return s.Signal(syscall.SIGTERM)
-}
-
-/*
-Signal sends the running command the passed in signal. It does not wait for the process to exit.
-
-If the command has already exited, Signal returns silently.
-
-The session is returned to enable chaining.
-*/
-func (s *Session) Signal(signal os.Signal) *Session {
- if s.processIsAlive() {
- s.Command.Process.Signal(signal)
- }
- return s
-}
-
-func (s *Session) monitorForExit(exited chan<- struct{}) {
- err := s.Command.Wait()
- s.lock.Lock()
- s.Out.Close()
- s.Err.Close()
- status := s.Command.ProcessState.Sys().(syscall.WaitStatus)
- if status.Signaled() {
- s.exitCode = 128 + int(status.Signal())
- } else {
- exitStatus := status.ExitStatus()
- if exitStatus == -1 && err != nil {
- s.exitCode = INVALID_EXIT_CODE
- }
- s.exitCode = exitStatus
- }
- s.lock.Unlock()
-
- close(exited)
-}
-
-func (s *Session) processIsAlive() bool {
- return s.ExitCode() == -1 && s.Command.Process != nil
-}
-
-var trackedSessions = []*Session{}
-var trackedSessionsMutex = &sync.Mutex{}
-
-/*
-Kill sends a SIGKILL signal to all the processes started by Run, and waits for them to exit.
-The timeout specified is applied to each process killed.
-
-If any of the processes already exited, KillAndWait returns silently.
-*/
-func KillAndWait(timeout ...interface{}) {
- trackedSessionsMutex.Lock()
- defer trackedSessionsMutex.Unlock()
- for _, session := range trackedSessions {
- session.Kill().Wait(timeout...)
- }
- trackedSessions = []*Session{}
-}
-
-/*
-Kill sends a SIGTERM signal to all the processes started by Run, and waits for them to exit.
-The timeout specified is applied to each process killed.
-
-If any of the processes already exited, TerminateAndWait returns silently.
-*/
-func TerminateAndWait(timeout ...interface{}) {
- trackedSessionsMutex.Lock()
- defer trackedSessionsMutex.Unlock()
- for _, session := range trackedSessions {
- session.Terminate().Wait(timeout...)
- }
-}
-
-/*
-Kill sends a SIGKILL signal to all the processes started by Run.
-It does not wait for the processes to exit.
-
-If any of the processes already exited, Kill returns silently.
-*/
-func Kill() {
- trackedSessionsMutex.Lock()
- defer trackedSessionsMutex.Unlock()
- for _, session := range trackedSessions {
- session.Kill()
- }
-}
-
-/*
-Terminate sends a SIGTERM signal to all the processes started by Run.
-It does not wait for the processes to exit.
-
-If any of the processes already exited, Terminate returns silently.
-*/
-func Terminate() {
- trackedSessionsMutex.Lock()
- defer trackedSessionsMutex.Unlock()
- for _, session := range trackedSessions {
- session.Terminate()
- }
-}
-
-/*
-Signal sends the passed in signal to all the processes started by Run.
-It does not wait for the processes to exit.
-
-If any of the processes already exited, Signal returns silently.
-*/
-func Signal(signal os.Signal) {
- trackedSessionsMutex.Lock()
- defer trackedSessionsMutex.Unlock()
- for _, session := range trackedSessions {
- session.Signal(signal)
- }
-}
-
-/*
-Interrupt sends the SIGINT signal to all the processes started by Run.
-It does not wait for the processes to exit.
-
-If any of the processes already exited, Interrupt returns silently.
-*/
-func Interrupt() {
- trackedSessionsMutex.Lock()
- defer trackedSessionsMutex.Unlock()
- for _, session := range trackedSessions {
- session.Interrupt()
- }
-}
diff --git a/constraint/vendor/github.com/onsi/gomega/go.mod b/constraint/vendor/github.com/onsi/gomega/go.mod
index 6f853a579..f74d9ea10 100644
--- a/constraint/vendor/github.com/onsi/gomega/go.mod
+++ b/constraint/vendor/github.com/onsi/gomega/go.mod
@@ -3,8 +3,8 @@ module github.com/onsi/gomega
go 1.14
require (
- github.com/golang/protobuf v1.4.2
- github.com/onsi/ginkgo v1.12.1
- golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb
- gopkg.in/yaml.v2 v2.3.0
+ github.com/golang/protobuf v1.5.2
+ github.com/onsi/ginkgo v1.16.2
+ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781
+ gopkg.in/yaml.v2 v2.4.0
)
diff --git a/constraint/vendor/github.com/onsi/gomega/go.sum b/constraint/vendor/github.com/onsi/gomega/go.sum
index 54eeacd2b..1ae731a5c 100644
--- a/constraint/vendor/github.com/onsi/gomega/go.sum
+++ b/constraint/vendor/github.com/onsi/gomega/go.sum
@@ -1,66 +1,93 @@
-github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
+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/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
+github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
+github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
+github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
-github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
+github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
+github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
-github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
+github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
+github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.12.1 h1:mFwc4LvZ0xpSvDZ3E+k8Yte0hLOMxXUlP+yXtJqkYfQ=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
+github.com/onsi/ginkgo v1.16.2 h1:HFB2fbVIlhIfCfOW81bZFbiC/RvnpXSdhbF2/DJr134=
+github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/net v0.0.0-20180906233101-161cd47e91fd h1:nTDtHvHSdCn1m6ITfMRqtOd/9+7a3s8RBNOZ3eYZzJA=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb h1:eBmm0M9fYhWpKZLjQUUKka/LtIxf46G4fxeEz5KJr9U=
-golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0=
+golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e h1:N7DeIrjYszNmSW409R3frPPwglRwMkXSBzwVbkOjLLA=
+golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+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/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
+google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
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/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
diff --git a/constraint/vendor/github.com/onsi/gomega/gomega_dsl.go b/constraint/vendor/github.com/onsi/gomega/gomega_dsl.go
index 1bc5288b8..a05b34b27 100644
--- a/constraint/vendor/github.com/onsi/gomega/gomega_dsl.go
+++ b/constraint/vendor/github.com/onsi/gomega/gomega_dsl.go
@@ -24,7 +24,7 @@ import (
"github.com/onsi/gomega/types"
)
-const GOMEGA_VERSION = "1.10.5"
+const GOMEGA_VERSION = "1.13.0"
const nilFailHandlerPanic = `You are trying to make an assertion, but Gomega's fail handler is nil.
If you're using Ginkgo then you probably forgot to put your assertion in an It().
diff --git a/constraint/vendor/github.com/onsi/gomega/internal/defaults/env.go b/constraint/vendor/github.com/onsi/gomega/internal/defaults/env.go
new file mode 100644
index 000000000..bc29c63d5
--- /dev/null
+++ b/constraint/vendor/github.com/onsi/gomega/internal/defaults/env.go
@@ -0,0 +1,22 @@
+package defaults
+
+import (
+ "fmt"
+ "time"
+)
+
+func SetDurationFromEnv(getDurationFromEnv func(string) string, varSetter func(time.Duration), name string) {
+ durationFromEnv := getDurationFromEnv(name)
+
+ if len(durationFromEnv) == 0 {
+ return
+ }
+
+ duration, err := time.ParseDuration(durationFromEnv)
+
+ if err != nil {
+ panic(fmt.Sprintf("Expected a duration when using %s! Parse error %v", name, err))
+ }
+
+ varSetter(duration)
+}
diff --git a/constraint/vendor/github.com/onsi/gomega/matchers.go b/constraint/vendor/github.com/onsi/gomega/matchers.go
index 16218d4c5..667160ade 100644
--- a/constraint/vendor/github.com/onsi/gomega/matchers.go
+++ b/constraint/vendor/github.com/onsi/gomega/matchers.go
@@ -474,3 +474,11 @@ func Not(matcher types.GomegaMatcher) types.GomegaMatcher {
func WithTransform(transform interface{}, matcher types.GomegaMatcher) types.GomegaMatcher {
return matchers.NewWithTransformMatcher(transform, matcher)
}
+
+//Satisfy matches the actual value against the `predicate` function.
+//The given predicate must be a function of one paramter that returns bool.
+// var isEven = func(i int) bool { return i%2 == 0 }
+// Expect(2).To(Satisfy(isEven))
+func Satisfy(predicate interface{}) types.GomegaMatcher {
+ return matchers.NewSatisfyMatcher(predicate)
+}
diff --git a/constraint/vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.go b/constraint/vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.go
index 1f9d7a8e6..9ee75a5d5 100644
--- a/constraint/vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.go
+++ b/constraint/vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.go
@@ -18,23 +18,9 @@ func (matcher *BeElementOfMatcher) Match(actual interface{}) (success bool, err
return false, fmt.Errorf("BeElement matcher expects actual to be typed")
}
- length := len(matcher.Elements)
- valueAt := func(i int) interface{} {
- return matcher.Elements[i]
- }
- // Special handling of a single element of type Array or Slice
- if length == 1 && isArrayOrSlice(valueAt(0)) {
- element := valueAt(0)
- value := reflect.ValueOf(element)
- length = value.Len()
- valueAt = func(i int) interface{} {
- return value.Index(i).Interface()
- }
- }
-
var lastError error
- for i := 0; i < length; i++ {
- matcher := &EqualMatcher{Expected: valueAt(i)}
+ for _, m := range flatten(matcher.Elements) {
+ matcher := &EqualMatcher{Expected: m}
success, err := matcher.Match(actual)
if err != nil {
lastError = err
@@ -49,9 +35,9 @@ func (matcher *BeElementOfMatcher) Match(actual interface{}) (success bool, err
}
func (matcher *BeElementOfMatcher) FailureMessage(actual interface{}) (message string) {
- return format.Message(actual, "to be an element of", matcher.Elements)
+ return format.Message(actual, "to be an element of", presentable(matcher.Elements))
}
func (matcher *BeElementOfMatcher) NegatedFailureMessage(actual interface{}) (message string) {
- return format.Message(actual, "not to be an element of", matcher.Elements)
+ return format.Message(actual, "not to be an element of", presentable(matcher.Elements))
}
diff --git a/constraint/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.go b/constraint/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.go
index f72591a1a..100735de3 100644
--- a/constraint/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.go
+++ b/constraint/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.go
@@ -45,7 +45,7 @@ func (matcher *BeNumericallyMatcher) Match(actual interface{}) (success bool, er
return false, fmt.Errorf("Expected a number. Got:\n%s", format.Object(matcher.CompareTo[0], 1))
}
if len(matcher.CompareTo) == 2 && !isNumber(matcher.CompareTo[1]) {
- return false, fmt.Errorf("Expected a number. Got:\n%s", format.Object(matcher.CompareTo[0], 1))
+ return false, fmt.Errorf("Expected a number. Got:\n%s", format.Object(matcher.CompareTo[1], 1))
}
switch matcher.Comparator {
diff --git a/constraint/vendor/github.com/onsi/gomega/matchers/satisfy_matcher.go b/constraint/vendor/github.com/onsi/gomega/matchers/satisfy_matcher.go
new file mode 100644
index 000000000..ec68fe8b6
--- /dev/null
+++ b/constraint/vendor/github.com/onsi/gomega/matchers/satisfy_matcher.go
@@ -0,0 +1,66 @@
+package matchers
+
+import (
+ "fmt"
+ "reflect"
+
+ "github.com/onsi/gomega/format"
+)
+
+type SatisfyMatcher struct {
+ Predicate interface{}
+
+ // cached type
+ predicateArgType reflect.Type
+}
+
+func NewSatisfyMatcher(predicate interface{}) *SatisfyMatcher {
+ if predicate == nil {
+ panic("predicate cannot be nil")
+ }
+ predicateType := reflect.TypeOf(predicate)
+ if predicateType.Kind() != reflect.Func {
+ panic("predicate must be a function")
+ }
+ if predicateType.NumIn() != 1 {
+ panic("predicate must have 1 argument")
+ }
+ if predicateType.NumOut() != 1 || predicateType.Out(0).Kind() != reflect.Bool {
+ panic("predicate must return bool")
+ }
+
+ return &SatisfyMatcher{
+ Predicate: predicate,
+ predicateArgType: predicateType.In(0),
+ }
+}
+
+func (m *SatisfyMatcher) Match(actual interface{}) (success bool, err error) {
+ // prepare a parameter to pass to the predicate
+ var param reflect.Value
+ if actual != nil && reflect.TypeOf(actual).AssignableTo(m.predicateArgType) {
+ // The dynamic type of actual is compatible with the predicate argument.
+ param = reflect.ValueOf(actual)
+
+ } else if actual == nil && m.predicateArgType.Kind() == reflect.Interface {
+ // The dynamic type of actual is unknown, so there's no way to make its
+ // reflect.Value. Create a nil of the predicate argument, which is known.
+ param = reflect.Zero(m.predicateArgType)
+
+ } else {
+ return false, fmt.Errorf("predicate expects '%s' but we have '%T'", m.predicateArgType, actual)
+ }
+
+ // call the predicate with `actual`
+ fn := reflect.ValueOf(m.Predicate)
+ result := fn.Call([]reflect.Value{param})
+ return result[0].Bool(), nil
+}
+
+func (m *SatisfyMatcher) FailureMessage(actual interface{}) (message string) {
+ return format.Message(actual, "to satisfy predicate", m.Predicate)
+}
+
+func (m *SatisfyMatcher) NegatedFailureMessage(actual interface{}) (message string) {
+ return format.Message(actual, "to not satisfy predicate", m.Predicate)
+}
diff --git a/constraint/vendor/github.com/onsi/gomega/matchers/with_transform.go b/constraint/vendor/github.com/onsi/gomega/matchers/with_transform.go
index 8e58d8a0f..f3dec9101 100644
--- a/constraint/vendor/github.com/onsi/gomega/matchers/with_transform.go
+++ b/constraint/vendor/github.com/onsi/gomega/matchers/with_transform.go
@@ -40,15 +40,24 @@ func NewWithTransformMatcher(transform interface{}, matcher types.GomegaMatcher)
}
func (m *WithTransformMatcher) Match(actual interface{}) (bool, error) {
- // return error if actual's type is incompatible with Transform function's argument type
- actualType := reflect.TypeOf(actual)
- if !actualType.AssignableTo(m.transformArgType) {
- return false, fmt.Errorf("Transform function expects '%s' but we have '%s'", m.transformArgType, actualType)
+ // prepare a parameter to pass to the Transform function
+ var param reflect.Value
+ if actual != nil && reflect.TypeOf(actual).AssignableTo(m.transformArgType) {
+ // The dynamic type of actual is compatible with the transform argument.
+ param = reflect.ValueOf(actual)
+
+ } else if actual == nil && m.transformArgType.Kind() == reflect.Interface {
+ // The dynamic type of actual is unknown, so there's no way to make its
+ // reflect.Value. Create a nil of the transform argument, which is known.
+ param = reflect.Zero(m.transformArgType)
+
+ } else {
+ return false, fmt.Errorf("Transform function expects '%s' but we have '%T'", m.transformArgType, actual)
}
// call the Transform function with `actual`
fn := reflect.ValueOf(m.Transform)
- result := fn.Call([]reflect.Value{reflect.ValueOf(actual)})
+ result := fn.Call([]reflect.Value{param})
m.transformedValue = result[0].Interface() // expect exactly one value
return m.Matcher.Match(m.transformedValue)
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/builtins.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/builtins.go
index 5ddde37ba..f38677811 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/builtins.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/builtins.go
@@ -33,6 +33,10 @@ var DefaultBuiltins = [...]*Builtin{
// Assignment (":=")
Assign,
+ // Membership, infix "in": `x in xs`
+ Member,
+ MemberWithKey,
+
// Comparisons
GreaterThan,
GreaterThanEq,
@@ -126,6 +130,7 @@ var DefaultBuiltins = [...]*Builtin{
// Numbers
NumbersRange,
+ RandIntn,
// Encoding
JSONMarshal,
@@ -189,10 +194,12 @@ var DefaultBuiltins = [...]*Builtin{
// Crypto
CryptoX509ParseCertificates,
+ CryptoX509ParseAndVerifyCertificates,
CryptoMd5,
CryptoSha1,
CryptoSha256,
CryptoX509ParseCertificateRequest,
+ CryptoX509ParseRSAPrivateKey,
// Graphs
WalkBuiltin,
@@ -223,13 +230,14 @@ var DefaultBuiltins = [...]*Builtin{
// Tracing
Trace,
- // CIDR
+ // Networking
NetCIDROverlap,
NetCIDRIntersects,
NetCIDRContains,
NetCIDRContainsMatches,
NetCIDRExpand,
NetCIDRMerge,
+ NetLookupIPAddr,
// Glob
GlobMatch,
@@ -244,6 +252,10 @@ var DefaultBuiltins = [...]*Builtin{
//SemVers
SemVerIsValid,
SemVerCompare,
+
+ // Printing
+ Print,
+ InternalPrint,
}
// BuiltinMap provides a convenient mapping of built-in names to
@@ -257,6 +269,8 @@ var IgnoreDuringPartialEval = []*Builtin{
NowNanos,
HTTPSend,
UUIDRFC4122,
+ RandIntn,
+ NetLookupIPAddr,
}
/**
@@ -287,6 +301,34 @@ var Assign = &Builtin{
),
}
+// Member represents the `in` (infix) operator.
+var Member = &Builtin{
+ Name: "internal.member_2",
+ Infix: "in",
+ Decl: types.NewFunction(
+ types.Args(
+ types.A,
+ types.A,
+ ),
+ types.B,
+ ),
+}
+
+// MemberWithKey represents the `in` (infix) operator when used
+// with two terms on the lhs, i.e., `k, v in obj`.
+var MemberWithKey = &Builtin{
+ Name: "internal.member_3",
+ Infix: "in",
+ Decl: types.NewFunction(
+ types.Args(
+ types.A,
+ types.A,
+ types.A,
+ ),
+ types.B,
+ ),
+}
+
/**
* Comparisons
*/
@@ -1038,6 +1080,18 @@ var Sprintf = &Builtin{
* Numbers
*/
+// RandIntn returns a random number 0 - n
+var RandIntn = &Builtin{
+ Name: "rand.intn",
+ Decl: types.NewFunction(
+ types.Args(
+ types.S,
+ types.N,
+ ),
+ types.N,
+ ),
+}
+
// NumbersRange returns an array of numbers in the given inclusive range.
var NumbersRange = &Builtin{
Name: "numbers.range",
@@ -1755,6 +1809,23 @@ var CryptoX509ParseCertificates = &Builtin{
),
}
+// CryptoX509ParseAndVerifyCertificates returns one or more certificates from the given
+// string containing PEM or base64 encoded DER certificates after verifying the supplied
+// certificates form a complete certificate chain back to a trusted root.
+//
+// The first certificate is treated as the root and the last is treated as the leaf,
+// with all others being treated as intermediates
+var CryptoX509ParseAndVerifyCertificates = &Builtin{
+ Name: "crypto.x509.parse_and_verify_certificates",
+ Decl: types.NewFunction(
+ types.Args(types.S),
+ types.NewArray([]types.Type{
+ types.B,
+ types.NewArray(nil, types.NewObject(nil, types.NewDynamicProperty(types.S, types.A))),
+ }, nil),
+ ),
+}
+
// CryptoX509ParseCertificateRequest returns a PKCS #10 certificate signing
// request from the given PEM-encoded PKCS#10 certificate signing request.
var CryptoX509ParseCertificateRequest = &Builtin{
@@ -1765,6 +1836,16 @@ var CryptoX509ParseCertificateRequest = &Builtin{
),
}
+// CryptoX509ParseRSAPrivateKey returns a JWK for signing a JWT from the given
+// PEM-encoded RSA private key.
+var CryptoX509ParseRSAPrivateKey = &Builtin{
+ Name: "crypto.x509.parse_rsa_private_key",
+ Decl: types.NewFunction(
+ types.Args(types.S),
+ types.NewObject(nil, types.NewDynamicProperty(types.S, types.A)),
+ ),
+}
+
// CryptoMd5 returns a string representing the input string hashed with the md5 function
var CryptoMd5 = &Builtin{
Name: "crypto.md5",
@@ -2065,7 +2146,7 @@ var GlobQuoteMeta = &Builtin{
}
/**
- * Net CIDR
+ * Networking
*/
// NetCIDRIntersects checks if a cidr intersects with another cidr and returns true or false
@@ -2145,6 +2226,17 @@ var netCidrContainsMatchesOperandType = types.NewAny(
)),
)
+// NetLookupIPAddr returns the set of IP addresses (as strings, both v4 and v6)
+// that the passed-in name (string) resolves to using the standard name resolution
+// mechanisms available.
+var NetLookupIPAddr = &Builtin{
+ Name: "net.lookup_ip_addr",
+ Decl: types.NewFunction(
+ types.Args(types.S),
+ types.NewSet(types.S),
+ ),
+}
+
/**
* Semantic Versions
*/
@@ -2175,6 +2267,27 @@ var SemVerCompare = &Builtin{
),
}
+/**
+ * Printing
+ */
+
+// Print is a special built-in function that writes zero or more operands
+// to a message buffer. The caller controls how the buffer is displayed. The
+// operands may be of any type. Furthermore, unlike other built-in functions,
+// undefined operands DO NOT cause the print() function to fail during
+// evaluation.
+var Print = &Builtin{
+ Name: "print",
+ Decl: types.NewVariadicFunction(nil, types.A, nil),
+}
+
+// InternalPrint represents the internal implementation of the print() function.
+// The compiler rewrites print() calls to refer to the internal implementation.
+var InternalPrint = &Builtin{
+ Name: "internal.print",
+ Decl: types.NewFunction([]types.Type{types.NewArray(nil, types.NewSet(types.A))}, nil),
+}
+
/**
* Deprecated built-ins.
*/
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/capabilities.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/capabilities.go
index c7eec63f9..a6b162edf 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/capabilities.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/capabilities.go
@@ -15,8 +15,18 @@ import (
// Capabilities defines a structure containing data that describes the capablilities
// or features supported by a particular version of OPA.
type Capabilities struct {
- Builtins []*Builtin `json:"builtins"` // builtins is a set of built-in functions that are supported.
+ Builtins []*Builtin `json:"builtins"`
+ FutureKeywords []string `json:"future_keywords"`
WasmABIVersions []WasmABIVersion `json:"wasm_abi_versions"`
+
+ // allow_net is an array of hostnames or IP addresses, that an OPA instance is
+ // allowed to connect to.
+ // If omitted, ANY host can be connected to. If empty, NO host can be connected to.
+ // As of now, this only controls fetching remote refs for using JSON Schemas in
+ // the type checker.
+ // TODO(sr): support ports to further restrict connection peers
+ // TODO(sr): support restricting `http.send` using the same mechanism (see https://github.com/open-policy-agent/opa/issues/3665)
+ AllowNet []string `json:"allow_net,omitempty"`
}
// WasmABIVersion captures the Wasm ABI version. Its `Minor` version is indicating
@@ -39,6 +49,11 @@ func CapabilitiesForThisVersion() *Capabilities {
return f.Builtins[i].Name < f.Builtins[j].Name
})
+ for kw := range futureKeywords {
+ f.FutureKeywords = append(f.FutureKeywords, kw)
+ }
+ sort.Strings(f.FutureKeywords)
+
return f
}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/check.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/check.go
index 0a3a22f15..1e0971bc8 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/check.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/check.go
@@ -13,7 +13,7 @@ import (
"github.com/open-policy-agent/opa/util"
)
-type rewriteVars func(x Ref) Ref
+type varRewriter func(Ref) Ref
// exprChecker defines the interface for executing type checking on a single
// expression. The exprChecker must update the provided TypeEnv with inferred
@@ -26,8 +26,9 @@ type exprChecker func(*TypeEnv, *Expr) *Error
type typeChecker struct {
errs Errors
exprCheckers map[string]exprChecker
- varRewriter rewriteVars
+ varRewriter varRewriter
ss *SchemaSet
+ allowNet []string
input types.Type
}
@@ -55,6 +56,7 @@ func (tc *typeChecker) copy() *typeChecker {
return newTypeChecker().
WithVarRewriter(tc.varRewriter).
WithSchemaSet(tc.ss).
+ WithAllowNet(tc.allowNet).
WithInputType(tc.input)
}
@@ -63,7 +65,12 @@ func (tc *typeChecker) WithSchemaSet(ss *SchemaSet) *typeChecker {
return tc
}
-func (tc *typeChecker) WithVarRewriter(f rewriteVars) *typeChecker {
+func (tc *typeChecker) WithAllowNet(hosts []string) *typeChecker {
+ tc.allowNet = hosts
+ return tc
+}
+
+func (tc *typeChecker) WithVarRewriter(f varRewriter) *typeChecker {
tc.varRewriter = f
return tc
}
@@ -180,7 +187,7 @@ func (tc *typeChecker) checkRule(env *TypeEnv, as *annotationSet, rule *Rule) {
if schemaAnnots := getRuleAnnotation(as, rule); schemaAnnots != nil {
for _, schemaAnnot := range schemaAnnots {
- ref, refType, err := processAnnotation(tc.ss, schemaAnnot, rule)
+ ref, refType, err := processAnnotation(tc.ss, schemaAnnot, rule, tc.allowNet)
if err != nil {
tc.err([]*Error{err})
continue
@@ -311,27 +318,27 @@ func (tc *typeChecker) checkExprBuiltin(env *TypeEnv, expr *Expr) *Error {
return NewError(TypeErr, expr.Location, "undefined function %v", name)
}
- maxArgs := len(ftpe.Args())
- expArgs := ftpe.Args()
+ fargs := ftpe.FuncArgs()
if ftpe.Result() != nil {
- maxArgs++
- expArgs = append(expArgs, ftpe.Result())
+ fargs.Args = append(fargs.Args, ftpe.Result())
+ }
+
+ if len(args) > len(fargs.Args) && fargs.Variadic == nil {
+ return newArgError(expr.Location, name, "too many arguments", pre, fargs)
}
- if len(args) > maxArgs {
- return newArgError(expr.Location, name, "too many arguments", pre, expArgs)
- } else if len(args) < len(ftpe.Args()) {
- return newArgError(expr.Location, name, "too few arguments", pre, expArgs)
+ if len(args) < len(ftpe.FuncArgs().Args) {
+ return newArgError(expr.Location, name, "too few arguments", pre, fargs)
}
for i := range args {
- if !unify1(env, args[i], expArgs[i], false) {
+ if !unify1(env, args[i], fargs.Arg(i), false) {
post := make([]types.Type, len(args))
for i := range args {
post[i] = env.Get(args[i])
}
- return newArgError(expr.Location, name, "invalid argument(s)", post, expArgs)
+ return newArgError(expr.Location, name, "invalid argument(s)", post, fargs)
}
}
@@ -341,11 +348,13 @@ func (tc *typeChecker) checkExprBuiltin(env *TypeEnv, expr *Expr) *Error {
func (tc *typeChecker) checkExprEq(env *TypeEnv, expr *Expr) *Error {
pre := getArgTypes(env, expr.Operands())
- exp := Equality.Decl.Args()
+ exp := Equality.Decl.FuncArgs()
- if len(pre) < len(exp) {
+ if len(pre) < len(exp.Args) {
return newArgError(expr.Location, expr.Operator(), "too few arguments", pre, exp)
- } else if len(exp) < len(pre) {
+ }
+
+ if len(exp.Args) < len(pre) {
return newArgError(expr.Location, expr.Operator(), "too many arguments", pre, exp)
}
@@ -561,10 +570,14 @@ func (tc *typeChecker) err(errors []*Error) {
type refChecker struct {
env *TypeEnv
errs Errors
- varRewriter rewriteVars
+ varRewriter varRewriter
}
-func newRefChecker(env *TypeEnv, f rewriteVars) *refChecker {
+func rewriteVarsNop(node Ref) Ref {
+ return node
+}
+
+func newRefChecker(env *TypeEnv, f varRewriter) *refChecker {
if f == nil {
f = rewriteVarsNop
@@ -873,15 +886,15 @@ func causedByNilType(err *Error) bool {
// ArgErrDetail represents a generic argument error.
type ArgErrDetail struct {
- Have []types.Type `json:"have"`
- Want []types.Type `json:"want"`
+ Have []types.Type `json:"have"`
+ Want types.FuncArgs `json:"want"`
}
// Lines returns the string representation of the detail.
func (d *ArgErrDetail) Lines() []string {
lines := make([]string, 2)
- lines[0] = fmt.Sprint("have: ", formatArgs(d.Have))
- lines[1] = fmt.Sprint("want: ", formatArgs(d.Want))
+ lines[0] = "have: " + formatArgs(d.Have)
+ lines[1] = "want: " + fmt.Sprint(d.Want)
return lines
}
@@ -995,7 +1008,7 @@ func newRefError(loc *Location, ref Ref) *Error {
return NewError(TypeErr, loc, "undefined ref: %v", ref)
}
-func newArgError(loc *Location, builtinName Ref, msg string, have []types.Type, want []types.Type) *Error {
+func newArgError(loc *Location, builtinName Ref, msg string, have []types.Type, want types.FuncArgs) *Error {
err := NewError(TypeErr, loc, "%v: %v", builtinName, msg)
err.Details = &ArgErrDetail{
Have: have,
@@ -1024,7 +1037,15 @@ func getOneOfForType(tpe types.Type) (result []Value) {
}
result = append(result, v)
}
+
+ case types.Any:
+ for _, object := range tpe {
+ objRes := getOneOfForType(object)
+ result = append(result, objRes...)
+ }
}
+
+ result = removeDuplicate(result)
sortValueSlice(result)
return result
}
@@ -1035,6 +1056,18 @@ func sortValueSlice(sl []Value) {
})
}
+func removeDuplicate(list []Value) []Value {
+ seen := make(map[Value]bool)
+ var newResult []Value
+ for _, item := range list {
+ if !seen[item] {
+ newResult = append(newResult, item)
+ seen[item] = true
+ }
+ }
+ return newResult
+}
+
func getArgTypes(env *TypeEnv, args []*Term) []types.Type {
pre := make([]types.Type, len(args))
for i := range args {
@@ -1158,7 +1191,7 @@ func getRuleAnnotation(as *annotationSet, rule *Rule) (result []*SchemaAnnotatio
return result
}
-func processAnnotation(ss *SchemaSet, annot *SchemaAnnotation, rule *Rule) (Ref, types.Type, *Error) {
+func processAnnotation(ss *SchemaSet, annot *SchemaAnnotation, rule *Rule, allowNet []string) (Ref, types.Type, *Error) {
var schema interface{}
@@ -1171,7 +1204,7 @@ func processAnnotation(ss *SchemaSet, annot *SchemaAnnotation, rule *Rule) (Ref,
schema = *annot.Definition
}
- tpe, err := loadSchema(schema)
+ tpe, err := loadSchema(schema, allowNet)
if err != nil {
return nil, nil, NewError(TypeErr, rule.Location, err.Error())
}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/compare.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/compare.go
index bdffeb06d..685082da6 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/compare.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/compare.go
@@ -23,17 +23,18 @@ import (
// ArrayComprehension < ObjectComprehension < SetComprehension < Expr < SomeDecl
// < With < Body < Rule < Import < Package < Module.
//
-// Arrays and Refs are equal iff both a and b have the same length and all
-// corresponding elements are equal. If one element is not equal, the return
-// value is the same as for the first differing element. If all elements are
-// equal but a and b have different lengths, the shorter is considered less than
-// the other.
+// Arrays and Refs are equal if and only if both a and b have the same length
+// and all corresponding elements are equal. If one element is not equal, the
+// return value is the same as for the first differing element. If all elements
+// are equal but a and b have different lengths, the shorter is considered less
+// than the other.
//
-// Objects are considered equal iff both a and b have the same sorted (key,
-// value) pairs and are of the same length. Other comparisons are consistent but
-// not defined.
+// Objects are considered equal if and only if both a and b have the same sorted
+// (key, value) pairs and are of the same length. Other comparisons are
+// consistent but not defined.
//
-// Sets are considered equal iff the symmetric difference of a and b is empty.
+// Sets are considered equal if and only if the symmetric difference of a and b
+// is empty.
// Other comparisons are consistent but not defined.
func Compare(a, b interface{}) int {
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/compile.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/compile.go
index 6fbc26a0c..eddfbd21c 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/compile.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/compile.go
@@ -94,20 +94,21 @@ type Compiler struct {
metricName string
f func()
}
- maxErrs int
- sorted []string // list of sorted module names
- pathExists func([]string) (bool, error)
- after map[string][]CompilerStageDefinition
- metrics metrics.Metrics
- capabilities *Capabilities // user-supplied capabilities
- builtins map[string]*Builtin // universe of built-in functions
- customBuiltins map[string]*Builtin // user-supplied custom built-in functions (deprecated: use capabilities)
- unsafeBuiltinsMap map[string]struct{} // user-supplied set of unsafe built-ins functions to block (deprecated: use capabilities)
- comprehensionIndices map[*Term]*ComprehensionIndex // comprehension key index
- initialized bool // indicates if init() has been called
- debug debug.Debug // emits debug information produced during compilation
- schemaSet *SchemaSet // user-supplied schemas for input and data documents
- inputType types.Type // global input type retrieved from schema set
+ maxErrs int
+ sorted []string // list of sorted module names
+ pathExists func([]string) (bool, error)
+ after map[string][]CompilerStageDefinition
+ metrics metrics.Metrics
+ capabilities *Capabilities // user-supplied capabilities
+ builtins map[string]*Builtin // universe of built-in functions
+ customBuiltins map[string]*Builtin // user-supplied custom built-in functions (deprecated: use capabilities)
+ unsafeBuiltinsMap map[string]struct{} // user-supplied set of unsafe built-ins functions to block (deprecated: use capabilities)
+ enablePrintStatements bool // indicates if print statements should be elided (default)
+ comprehensionIndices map[*Term]*ComprehensionIndex // comprehension key index
+ initialized bool // indicates if init() has been called
+ debug debug.Debug // emits debug information produced during compilation
+ schemaSet *SchemaSet // user-supplied schemas for input and data documents
+ inputType types.Type // global input type retrieved from schema set
}
// CompilerStage defines the interface for stages in the compiler.
@@ -120,6 +121,14 @@ type CompilerStageDefinition struct {
Stage CompilerStage
}
+// RulesOptions defines the options for retrieving rules by Ref from the
+// compiler.
+type RulesOptions struct {
+ // IncludeHiddenModules determines if the result contains hidden modules,
+ // currently only the "system" namespace, i.e. "data.system.*".
+ IncludeHiddenModules bool
+}
+
// QueryContext contains contextual information for running an ad-hoc query.
//
// Ad-hoc queries can be run in the context of a package and imports may be
@@ -183,6 +192,10 @@ type QueryCompiler interface {
// to Compile will take the QueryContext into account.
WithContext(qctx *QueryContext) QueryCompiler
+ // WithEnablePrintStatements enables print statements in queries compiled
+ // with the QueryCompiler.
+ WithEnablePrintStatements(yes bool) QueryCompiler
+
// WithUnsafeBuiltins sets the built-in functions to treat as unsafe and not
// allow inside of queries. By default the query compiler inherits the
// compiler's unsafe built-in functions. This function allows callers to
@@ -252,6 +265,8 @@ func NewCompiler() *Compiler {
// stages that need to generate variables.
{"InitLocalVarGen", "compile_stage_init_local_var_gen", c.initLocalVarGen},
{"RewriteLocalVars", "compile_stage_rewrite_local_vars", c.rewriteLocalVars},
+ {"CheckVoidCalls", "compile_stage_check_void_calls", c.checkVoidCalls},
+ {"RewritePrintCalls", "compile_stage_rewrite_print_calls", c.rewritePrintCalls},
{"RewriteExprTerms", "compile_stage_rewrite_expr_terms", c.rewriteExprTerms},
{"SetGraph", "compile_stage_set_graph", c.setGraph},
{"RewriteComprehensionTerms", "compile_stage_rewrite_comprehension_terms", c.rewriteComprehensionTerms},
@@ -280,6 +295,14 @@ func (c *Compiler) SetErrorLimit(limit int) *Compiler {
return c
}
+// WithEnablePrintStatements enables print statements inside of modules compiled
+// by the compiler. If print statements are not enabled, calls to print() are
+// erased at compile-time.
+func (c *Compiler) WithEnablePrintStatements(yes bool) *Compiler {
+ c.enablePrintStatements = yes
+ return c
+}
+
// WithPathConflictsCheck enables base-virtual document conflict
// detection. The compiler will check that rules don't overlap with
// paths that exist as determined by the provided callable.
@@ -539,6 +562,14 @@ func (c *Compiler) GetRules(ref Ref) (rules []*Rule) {
}
// GetRulesDynamic returns a slice of rules that could be referred to by a ref.
+//
+// Deprecated: use GetRulesDynamicWithOpts
+func (c *Compiler) GetRulesDynamic(ref Ref) []*Rule {
+ return c.GetRulesDynamicWithOpts(ref, RulesOptions{})
+}
+
+// GetRulesDynamicWithOpts returns a slice of rules that could be referred to by
+// a ref.
// When parts of the ref are statically known, we use that information to narrow
// down which rules the ref could refer to, but in the most general case this
// will be an over-approximation.
@@ -557,10 +588,25 @@ func (c *Compiler) GetRules(ref Ref) (rules []*Rule) {
//
// The following calls yield the rules on the right.
//
-// GetRulesDynamic("data.a[x].c[y]") => [rule1, rule2]
-// GetRulesDynamic("data.a[x].c.r2") => [rule2]
-// GetRulesDynamic("data.a.b[x][y]") => [rule1]
-func (c *Compiler) GetRulesDynamic(ref Ref) (rules []*Rule) {
+// GetRulesDynamicWithOpts("data.a[x].c[y]", opts) => [rule1, rule2]
+// GetRulesDynamicWithOpts("data.a[x].c.r2", opts) => [rule2]
+// GetRulesDynamicWithOpts("data.a.b[x][y]", opts) => [rule1]
+//
+// Using the RulesOptions parameter, the inclusion of hidden modules can be
+// controlled:
+//
+// With
+//
+// package system.main
+//
+// r3 = 3 # rule3
+//
+// We'd get this result:
+//
+// GetRulesDynamicWithOpts("data[x]", RulesOptions{IncludeHiddenModules: true}) => [rule1, rule2, rule3]
+//
+// Without the options, it would be excluded.
+func (c *Compiler) GetRulesDynamicWithOpts(ref Ref, opts RulesOptions) []*Rule {
node := c.RuleTree
set := map[*Rule]struct{}{}
@@ -571,6 +617,9 @@ func (c *Compiler) GetRulesDynamic(ref Ref) (rules []*Rule) {
// under this "prefix".
node.DepthFirst(func(descendant *TreeNode) bool {
insertRules(set, descendant.Values)
+ if opts.IncludeHiddenModules {
+ return false
+ }
return descendant.Hide
})
} else if i == 0 || IsConstant(ref[i].Value) {
@@ -591,7 +640,7 @@ func (c *Compiler) GetRulesDynamic(ref Ref) (rules []*Rule) {
// This part of the ref is a dynamic term. We can't know what it refers
// to and will just need to try all of the children.
for _, child := range node.Children {
- if child.Hide {
+ if child.Hide && !opts.IncludeHiddenModules {
continue
}
insertRules(set, child.Values)
@@ -601,6 +650,7 @@ func (c *Compiler) GetRulesDynamic(ref Ref) (rules []*Rule) {
}
walk(node, 0)
+ rules := make([]*Rule, 0, len(set))
for rule := range set {
rules = append(rules, rule)
}
@@ -785,13 +835,13 @@ func (c *Compiler) checkRuleConflicts() {
func (c *Compiler) checkUndefinedFuncs() {
for _, name := range c.sorted {
m := c.Modules[name]
- for _, err := range checkUndefinedFuncs(m, c.GetArity) {
+ for _, err := range checkUndefinedFuncs(m, c.GetArity, c.RewrittenVars) {
c.err(err)
}
}
}
-func checkUndefinedFuncs(x interface{}, arity func(Ref) int) Errors {
+func checkUndefinedFuncs(x interface{}, arity func(Ref) int, rwVars map[Var]Var) Errors {
var errs Errors
@@ -803,6 +853,7 @@ func checkUndefinedFuncs(x interface{}, arity func(Ref) int) Errors {
if arity(ref) >= 0 {
return false
}
+ ref = rewriteVarsInRef(rwVars)(ref)
errs = append(errs, NewError(TypeErr, expr.Loc(), "undefined function %v", ref))
return true
})
@@ -827,7 +878,7 @@ func (c *Compiler) checkSafetyRuleBodies() {
func (c *Compiler) checkBodySafety(safe VarSet, b Body) Body {
reordered, unsafe := reorderBodyForSafety(c.builtins, c.GetArity, safe, b)
- if errs := safetyErrorSlice(unsafe); len(errs) > 0 {
+ if errs := safetyErrorSlice(unsafe, c.RewrittenVars); len(errs) > 0 {
for _, err := range errs {
c.err(err)
}
@@ -855,6 +906,9 @@ func (c *Compiler) checkSafetyRuleHeads() {
safe.Update(r.Head.Args.Vars())
unsafe := r.Head.Vars().Diff(safe)
for v := range unsafe {
+ if w, ok := c.RewrittenVars[v]; ok {
+ v = w
+ }
if !v.IsGenerated() {
c.err(NewError(UnsafeVarErr, r.Loc(), "var %v is unsafe", v))
}
@@ -864,7 +918,9 @@ func (c *Compiler) checkSafetyRuleHeads() {
}
}
-func compileSchema(goSchema interface{}) (*gojsonschema.Schema, error) {
+func compileSchema(goSchema interface{}, allowNet []string) (*gojsonschema.Schema, error) {
+ gojsonschema.SetAllowNet(allowNet)
+
var refLoader gojsonschema.JSONLoader
sl := gojsonschema.NewSchemaLoader()
@@ -875,11 +931,52 @@ func compileSchema(goSchema interface{}) (*gojsonschema.Schema, error) {
}
schemasCompiled, err := sl.Compile(refLoader)
if err != nil {
- return nil, fmt.Errorf("unable to compile the schema due to: %w", err)
+ return nil, fmt.Errorf("unable to compile the schema: %w", err)
}
return schemasCompiled, nil
}
+func mergeSchemas(schemas ...*gojsonschema.SubSchema) (*gojsonschema.SubSchema, error) {
+ if len(schemas) == 0 {
+ return nil, nil
+ }
+ var result = schemas[0]
+
+ for i := range schemas {
+ if len(schemas[i].PropertiesChildren) > 0 {
+ if !schemas[i].Types.Contains("object") {
+ if err := schemas[i].Types.Add("object"); err != nil {
+ return nil, fmt.Errorf("unable to set the type in schemas")
+ }
+ }
+ } else if len(schemas[i].ItemsChildren) > 0 {
+ if !schemas[i].Types.Contains("array") {
+ if err := schemas[i].Types.Add("array"); err != nil {
+ return nil, fmt.Errorf("unable to set the type in schemas")
+ }
+ }
+ }
+ }
+
+ for i := 1; i < len(schemas); i++ {
+ if result.Types.String() != schemas[i].Types.String() {
+ return nil, fmt.Errorf("unable to merge these schemas: type mismatch: %v and %v", result.Types.String(), schemas[i].Types.String())
+ } else if result.Types.Contains("object") && len(result.PropertiesChildren) > 0 && schemas[i].Types.Contains("object") && len(schemas[i].PropertiesChildren) > 0 {
+ result.PropertiesChildren = append(result.PropertiesChildren, schemas[i].PropertiesChildren...)
+ } else if result.Types.Contains("array") && len(result.ItemsChildren) > 0 && schemas[i].Types.Contains("array") && len(schemas[i].ItemsChildren) > 0 {
+ for j := 0; j < len(schemas[i].ItemsChildren); j++ {
+ if len(result.ItemsChildren)-1 < j && !(len(schemas[i].ItemsChildren)-1 < j) {
+ result.ItemsChildren = append(result.ItemsChildren, schemas[i].ItemsChildren[j])
+ }
+ if result.ItemsChildren[j].Types.String() != schemas[i].ItemsChildren[j].Types.String() {
+ return nil, fmt.Errorf("unable to merge these schemas")
+ }
+ }
+ }
+ }
+ return result, nil
+}
+
func parseSchema(schema interface{}) (types.Type, error) {
subSchema, ok := schema.(*gojsonschema.SubSchema)
if !ok {
@@ -891,6 +988,61 @@ func parseSchema(schema interface{}) (types.Type, error) {
return parseSchema(subSchema.RefSchema)
}
+ // Handle anyOf
+ if subSchema.AnyOf != nil {
+ var orType types.Type
+
+ // If there is a core schema, find its type first
+ if subSchema.Types.IsTyped() {
+ copySchema := *subSchema
+ copySchemaRef := ©Schema
+ copySchemaRef.AnyOf = nil
+ coreType, err := parseSchema(copySchemaRef)
+ if err != nil {
+ return nil, fmt.Errorf("unexpected schema type %v: %w", subSchema, err)
+ }
+
+ // Only add Object type with static props to orType
+ if objType, ok := coreType.(*types.Object); ok {
+ if objType.StaticProperties() != nil && objType.DynamicProperties() == nil {
+ orType = types.Or(orType, coreType)
+ }
+ }
+ }
+
+ // Iterate through every property of AnyOf and add it to orType
+ for _, pSchema := range subSchema.AnyOf {
+ newtype, err := parseSchema(pSchema)
+ if err != nil {
+ return nil, fmt.Errorf("unexpected schema type %v: %w", pSchema, err)
+ }
+ orType = types.Or(newtype, orType)
+ }
+
+ return orType, nil
+ }
+
+ if subSchema.AllOf != nil {
+ subSchemaArray := subSchema.AllOf
+ allOfResult, err := mergeSchemas(subSchemaArray...)
+ if err != nil {
+ return nil, err
+ }
+
+ if subSchema.Types.IsTyped() {
+ if (subSchema.Types.Contains("object") && allOfResult.Types.Contains("object")) || (subSchema.Types.Contains("array") && allOfResult.Types.Contains("array")) {
+ objectOrArrayResult, err := mergeSchemas(allOfResult, subSchema)
+ if err != nil {
+ return nil, err
+ }
+ return parseSchema(objectOrArrayResult)
+ } else if subSchema.Types.String() != allOfResult.Types.String() {
+ return nil, fmt.Errorf("unable to merge these schemas")
+ }
+ }
+ return parseSchema(allOfResult)
+ }
+
if subSchema.Types.IsTyped() {
if subSchema.Types.Contains("boolean") {
return types.B, nil
@@ -939,6 +1091,18 @@ func parseSchema(schema interface{}) (types.Type, error) {
return types.NewArray(nil, types.A), nil
}
}
+
+ // Assume types if not specified in schema
+ if len(subSchema.PropertiesChildren) > 0 {
+ if err := subSchema.Types.Add("object"); err == nil {
+ return parseSchema(subSchema)
+ }
+ } else if len(subSchema.ItemsChildren) > 0 {
+ if err := subSchema.Types.Add("array"); err == nil {
+ return parseSchema(subSchema)
+ }
+ }
+
return types.A, nil
}
@@ -1028,7 +1192,7 @@ func (c *Compiler) init() {
// Load the global input schema if one was provided.
if c.schemaSet != nil {
if schema := c.schemaSet.Get(SchemaRootRef); schema != nil {
- tpe, err := loadSchema(schema)
+ tpe, err := loadSchema(schema, c.capabilities.AllowNet)
if err != nil {
c.err(NewError(TypeErr, nil, err.Error()))
} else {
@@ -1160,11 +1324,199 @@ func (c *Compiler) rewriteExprTerms() {
}
}
+func (c *Compiler) checkVoidCalls() {
+ for _, name := range c.sorted {
+ mod := c.Modules[name]
+ for _, err := range checkVoidCalls(c.TypeEnv, mod) {
+ c.err(err)
+ }
+ }
+}
+
+func (c *Compiler) rewritePrintCalls() {
+ if !c.enablePrintStatements {
+ for _, name := range c.sorted {
+ erasePrintCalls(c.Modules[name])
+ }
+ return
+ }
+ for _, name := range c.sorted {
+ mod := c.Modules[name]
+ WalkRules(mod, func(r *Rule) bool {
+ safe := r.Head.Args.Vars()
+ safe.Update(ReservedVars)
+ WalkBodies(r, func(b Body) bool {
+ for _, err := range rewritePrintCalls(c.localvargen, c.GetArity, safe, b) {
+ c.err(err)
+ }
+ return false
+ })
+ return false
+ })
+ }
+}
+
+// checkVoidCalls returns errors for any expressions that treat void function
+// calls as values. The only void functions in Rego are specific built-ins like
+// print().
+func checkVoidCalls(env *TypeEnv, x interface{}) Errors {
+ var errs Errors
+ WalkTerms(x, func(x *Term) bool {
+ if call, ok := x.Value.(Call); ok {
+ if tpe, ok := env.Get(call[0]).(*types.Function); ok && tpe.Result() == nil {
+ errs = append(errs, NewError(TypeErr, x.Loc(), "%v used as value", call))
+ }
+ }
+ return false
+ })
+ return errs
+}
+
+// rewritePrintCalls will rewrite the body so that print operands are captured
+// in local variables and their evaluation occurs within a comprehension.
+// Wrapping the terms inside of a comprehension ensures that undefined values do
+// not short-circuit evaluation.
+//
+// For example, given the following print statement:
+//
+// print("the value of x is:", input.x)
+//
+// The expression would be rewritten to:
+//
+// print({__local0__ | __local0__ = "the value of x is:"}, {__local1__ | __local1__ = input.x})
+func rewritePrintCalls(gen *localVarGenerator, getArity func(Ref) int, globals VarSet, body Body) Errors {
+
+ var errs Errors
+
+ // Visit comprehension bodies recursively to ensure print statements inside
+ // those bodies only close over variables that are safe.
+ for i := range body {
+ if ContainsComprehensions(body[i]) {
+ safe := outputVarsForBody(body[:i], getArity, globals)
+ safe.Update(globals)
+ WalkClosures(body[i], func(x interface{}) bool {
+ switch x := x.(type) {
+ case *SetComprehension:
+ errs = rewritePrintCalls(gen, getArity, safe, x.Body)
+ case *ArrayComprehension:
+ errs = rewritePrintCalls(gen, getArity, safe, x.Body)
+ case *ObjectComprehension:
+ errs = rewritePrintCalls(gen, getArity, safe, x.Body)
+ }
+ return true
+ })
+ if len(errs) > 0 {
+ return errs
+ }
+ }
+ }
+
+ for i := range body {
+
+ if !isPrintCall(body[i]) {
+ continue
+ }
+
+ var errs Errors
+ safe := outputVarsForBody(body[:i], getArity, globals)
+ safe.Update(globals)
+ args := body[i].Operands()
+
+ for j := range args {
+ vis := NewVarVisitor().WithParams(SafetyCheckVisitorParams)
+ vis.Walk(args[j])
+ unsafe := vis.Vars().Diff(safe)
+ for _, v := range unsafe.Sorted() {
+ errs = append(errs, NewError(CompileErr, args[j].Loc(), "var %v is undeclared", v))
+ }
+ }
+
+ if len(errs) > 0 {
+ return errs
+ }
+
+ arr := NewArray()
+
+ for j := range args {
+ x := NewTerm(gen.Generate()).SetLocation(args[j].Loc())
+ capture := Equality.Expr(x, args[j]).SetLocation(args[j].Loc())
+ arr = arr.Append(SetComprehensionTerm(x, NewBody(capture)).SetLocation(args[j].Loc()))
+ }
+
+ body.Set(NewExpr([]*Term{
+ NewTerm(InternalPrint.Ref()).SetLocation(body[i].Loc()),
+ NewTerm(arr).SetLocation(body[i].Loc()),
+ }).SetLocation(body[i].Loc()), i)
+ }
+
+ return nil
+}
+
+func erasePrintCalls(node interface{}) {
+ NewGenericVisitor(func(x interface{}) bool {
+ switch x := x.(type) {
+ case *Rule:
+ x.Body = erasePrintCallsInBody(x.Body)
+ case *ArrayComprehension:
+ x.Body = erasePrintCallsInBody(x.Body)
+ case *SetComprehension:
+ x.Body = erasePrintCallsInBody(x.Body)
+ case *ObjectComprehension:
+ x.Body = erasePrintCallsInBody(x.Body)
+ }
+ return false
+ }).Walk(node)
+}
+
+func erasePrintCallsInBody(x Body) Body {
+
+ if !containsPrintCall(x) {
+ return x
+ }
+
+ var cpy Body
+
+ for i := range x {
+
+ // Recursively visit any comprehensions contained in this expression.
+ erasePrintCalls(x[i])
+
+ if !isPrintCall(x[i]) {
+ cpy.Append(x[i])
+ }
+ }
+
+ if len(cpy) == 0 {
+ term := BooleanTerm(true).SetLocation(x.Loc())
+ expr := NewExpr(term).SetLocation(x.Loc())
+ cpy.Append(expr)
+ }
+
+ return cpy
+}
+
+func containsPrintCall(x Body) bool {
+ var found bool
+ WalkExprs(x, func(expr *Expr) bool {
+ if !found {
+ if isPrintCall(expr) {
+ found = true
+ }
+ }
+ return found
+ })
+ return found
+}
+
+func isPrintCall(x *Expr) bool {
+ return x.IsCall() && x.Operator().Equal(Print.Ref())
+}
+
// rewriteTermsInHead will rewrite rules so that the head does not contain any
// terms that require evaluation (e.g., refs or comprehensions). If the key or
-// value contains or more of these terms, the key or value will be moved into
-// the body and assigned to a new variable. The new variable will replace the
-// key or value in the head.
+// value contains one or more of these terms, the key or value will be moved
+// into the body and assigned to a new variable. The new variable will replace
+// the key or value in the head.
//
// For instance, given the following rule:
//
@@ -1453,17 +1805,21 @@ func (c *Compiler) setRuleTree() {
}
func (c *Compiler) setGraph() {
- c.Graph = NewGraph(c.Modules, c.GetRulesDynamic)
+ list := func(r Ref) []*Rule {
+ return c.GetRulesDynamicWithOpts(r, RulesOptions{IncludeHiddenModules: true})
+ }
+ c.Graph = NewGraph(c.Modules, list)
}
type queryCompiler struct {
- compiler *Compiler
- qctx *QueryContext
- typeEnv *TypeEnv
- rewritten map[Var]Var
- after map[string][]QueryCompilerStageDefinition
- unsafeBuiltins map[string]struct{}
- comprehensionIndices map[*Term]*ComprehensionIndex
+ compiler *Compiler
+ qctx *QueryContext
+ typeEnv *TypeEnv
+ rewritten map[Var]Var
+ after map[string][]QueryCompilerStageDefinition
+ unsafeBuiltins map[string]struct{}
+ comprehensionIndices map[*Term]*ComprehensionIndex
+ enablePrintStatements bool
}
func newQueryCompiler(compiler *Compiler) QueryCompiler {
@@ -1476,6 +1832,11 @@ func newQueryCompiler(compiler *Compiler) QueryCompiler {
return qc
}
+func (qc *queryCompiler) WithEnablePrintStatements(yes bool) QueryCompiler {
+ qc.enablePrintStatements = yes
+ return qc
+}
+
func (qc *queryCompiler) WithContext(qctx *QueryContext) QueryCompiler {
qc.qctx = qctx
return qc
@@ -1521,6 +1882,9 @@ func (qc *queryCompiler) runStageAfter(metricName string, query Body, s QueryCom
}
func (qc *queryCompiler) Compile(query Body) (Body, error) {
+ if len(query) == 0 {
+ return nil, Errors{NewError(CompileErr, nil, "empty query cannot be compiled")}
+ }
query = query.Copy()
@@ -1531,6 +1895,8 @@ func (qc *queryCompiler) Compile(query Body) (Body, error) {
}{
{"ResolveRefs", "query_compile_stage_resolve_refs", qc.resolveRefs},
{"RewriteLocalVars", "query_compile_stage_rewrite_local_vars", qc.rewriteLocalVars},
+ {"CheckVoidCalls", "query_compile_stage_check_void_calls", qc.checkVoidCalls},
+ {"RewritePrintCalls", "query_compile_stage_rewrite_print_calls", qc.rewritePrintCalls},
{"RewriteExprTerms", "query_compile_stage_rewrite_expr_terms", qc.rewriteExprTerms},
{"RewriteComprehensionTerms", "query_compile_stage_rewrite_comprehension_terms", qc.rewriteComprehensionTerms},
{"RewriteWithValues", "query_compile_stage_rewrite_with_values", qc.rewriteWithModifiers},
@@ -1640,8 +2006,26 @@ func (qc *queryCompiler) rewriteLocalVars(_ *QueryContext, body Body) (Body, err
return body, nil
}
+func (qc *queryCompiler) rewritePrintCalls(_ *QueryContext, body Body) (Body, error) {
+ if !qc.enablePrintStatements {
+ return erasePrintCallsInBody(body), nil
+ }
+ gen := newLocalVarGenerator("q", body)
+ if errs := rewritePrintCalls(gen, qc.compiler.GetArity, ReservedVars, body); len(errs) > 0 {
+ return nil, errs
+ }
+ return body, nil
+}
+
+func (qc *queryCompiler) checkVoidCalls(_ *QueryContext, body Body) (Body, error) {
+ if errs := checkVoidCalls(qc.compiler.TypeEnv, body); len(errs) > 0 {
+ return nil, errs
+ }
+ return body, nil
+}
+
func (qc *queryCompiler) checkUndefinedFuncs(_ *QueryContext, body Body) (Body, error) {
- if errs := checkUndefinedFuncs(body, qc.compiler.GetArity); len(errs) > 0 {
+ if errs := checkUndefinedFuncs(body, qc.compiler.GetArity, qc.rewritten); len(errs) > 0 {
return nil, errs
}
return body, nil
@@ -1650,7 +2034,7 @@ func (qc *queryCompiler) checkUndefinedFuncs(_ *QueryContext, body Body) (Body,
func (qc *queryCompiler) checkSafety(_ *QueryContext, body Body) (Body, error) {
safe := ReservedVars.Copy()
reordered, unsafe := reorderBodyForSafety(qc.compiler.builtins, qc.compiler.GetArity, safe, body)
- if errs := safetyErrorSlice(unsafe); len(errs) > 0 {
+ if errs := safetyErrorSlice(unsafe, qc.RewrittenVars()); len(errs) > 0 {
return nil, errs
}
return reordered, nil
@@ -1719,8 +2103,8 @@ func (ci *ComprehensionIndex) String() string {
func buildComprehensionIndices(dbg debug.Debug, arity func(Ref) int, candidates VarSet, rwVars map[Var]Var, node interface{}, result map[*Term]*ComprehensionIndex) uint64 {
var n uint64
+ cpy := candidates.Copy()
WalkBodies(node, func(b Body) bool {
- cpy := candidates.Copy()
for _, expr := range b {
index := getComprehensionIndex(dbg, arity, cpy, rwVars, expr)
if index != nil {
@@ -2650,16 +3034,8 @@ func outputVarsForTerms(expr *Expr, safe VarSet) VarSet {
case *SetComprehension, *ArrayComprehension, *ObjectComprehension:
return true
case Ref:
- if v, ok := r[0].Value.(Var); ok {
- if !safe.Contains(v) {
- return true
- }
- } else {
- for k := range r[0].Vars() {
- if !safe.Contains(k) {
- return true
- }
- }
+ if !isRefSafe(r, safe) {
+ return true
}
output.Update(r.OutputVars())
return false
@@ -2865,6 +3241,10 @@ func resolveRefsInExpr(globals map[Var]Ref, ignore *declaredVarStack, expr *Expr
buf[i] = resolveRefsInTerm(globals, ignore, ts[i])
}
cpy.Terms = buf
+ case *SomeDecl:
+ if val, ok := ts.Symbols[0].Value.(Call); ok {
+ cpy.Terms = &SomeDecl{Symbols: []*Term{CallTerm(resolveRefsInTermSlice(globals, ignore, val)...)}}
+ }
}
for _, w := range cpy.With {
w.Target = resolveRefsInTerm(globals, ignore, w.Target)
@@ -2997,7 +3377,23 @@ func declaredVars(x interface{}) VarSet {
})
} else if decl, ok := x.Terms.(*SomeDecl); ok {
for i := range decl.Symbols {
- vars.Add(decl.Symbols[i].Value.(Var))
+ switch val := decl.Symbols[i].Value.(type) {
+ case Var:
+ vars.Add(val)
+ case Call:
+ args := val[1:]
+ if len(args) == 3 { // some x, y in xs
+ WalkVars(args[1], func(v Var) bool {
+ vars.Add(v)
+ return false
+ })
+ }
+ // some x in xs
+ WalkVars(args[0], func(v Var) bool {
+ vars.Add(v)
+ return false
+ })
+ }
}
}
case *ArrayComprehension, *SetComprehension, *ObjectComprehension:
@@ -3508,8 +3904,8 @@ func rewriteDeclaredVarsInBody(g *localVarGenerator, stack *localDeclaredVars, u
var expr *Expr
if body[i].IsAssignment() {
expr, errs = rewriteDeclaredAssignment(g, stack, body[i], errs)
- } else if decl, ok := body[i].Terms.(*SomeDecl); ok {
- errs = rewriteSomeDeclStatement(g, stack, decl, errs)
+ } else if _, ok := body[i].Terms.(*SomeDecl); ok {
+ expr, errs = rewriteSomeDeclStatement(g, stack, body[i], errs)
} else {
expr, errs = rewriteDeclaredVarsInExpr(g, stack, body[i], errs)
}
@@ -3564,14 +3960,48 @@ func checkUnusedDeclaredVars(loc *Location, stack *localDeclaredVars, used VarSe
return errs
}
-func rewriteSomeDeclStatement(g *localVarGenerator, stack *localDeclaredVars, decl *SomeDecl, errs Errors) Errors {
+func rewriteSomeDeclStatement(g *localVarGenerator, stack *localDeclaredVars, expr *Expr, errs Errors) (*Expr, Errors) {
+ e := expr.Copy()
+ decl := e.Terms.(*SomeDecl)
for i := range decl.Symbols {
- v := decl.Symbols[i].Value.(Var)
- if _, err := rewriteDeclaredVar(g, stack, v, declaredVar); err != nil {
- errs = append(errs, NewError(CompileErr, decl.Loc(), err.Error()))
+ switch v := decl.Symbols[i].Value.(type) {
+ case Var:
+ if _, err := rewriteDeclaredVar(g, stack, v, declaredVar); err != nil {
+ return nil, append(errs, NewError(CompileErr, decl.Loc(), err.Error()))
+ }
+ case Call:
+ var key, val, container *Term
+ switch len(v) {
+ case 4: // member3
+ key = v[1]
+ val = v[2]
+ container = v[3]
+ case 3: // member
+ key = NewTerm(g.Generate())
+ val = v[1]
+ container = v[2]
+ }
+
+ var rhs *Term
+ switch c := container.Value.(type) {
+ case Ref:
+ rhs = RefTerm(append(c, key)...)
+ default:
+ rhs = RefTerm(container, key)
+ }
+ e.Terms = []*Term{
+ RefTerm(VarTerm(Equality.Name)), val, rhs,
+ }
+
+ for _, v0 := range outputVarsForExprEq(e, container.Vars()).Sorted() {
+ if _, err := rewriteDeclaredVar(g, stack, v0, declaredVar); err != nil {
+ return nil, append(errs, NewError(CompileErr, decl.Loc(), err.Error()))
+ }
+ }
+ return rewriteDeclaredVarsInExpr(g, stack, e, errs)
}
}
- return errs
+ return nil, errs
}
func rewriteDeclaredVarsInExpr(g *localVarGenerator, stack *localDeclaredVars, expr *Expr, errs Errors) (*Expr, Errors) {
@@ -3867,15 +4297,24 @@ func isVirtual(node *TreeNode, ref Ref) bool {
return true
}
-func safetyErrorSlice(unsafe unsafeVars) (result Errors) {
+func safetyErrorSlice(unsafe unsafeVars, rewritten map[Var]Var) (result Errors) {
if len(unsafe) == 0 {
return
}
for _, pair := range unsafe.Vars() {
- if !pair.Var.IsGenerated() {
- result = append(result, NewError(UnsafeVarErr, pair.Loc, "var %v is unsafe", pair.Var))
+ v := pair.Var
+ if w, ok := rewritten[v]; ok {
+ v = w
+ }
+ if !v.IsGenerated() {
+ if _, ok := futureKeywords[string(v)]; ok {
+ result = append(result, NewError(UnsafeVarErr, pair.Loc,
+ "var %[1]v is unsafe (hint: `import future.keywords.%[1]v` to import a future keyword)", v))
+ continue
+ }
+ result = append(result, NewError(UnsafeVarErr, pair.Loc, "var %v is unsafe", v))
}
}
@@ -3924,7 +4363,7 @@ func checkUnsafeBuiltins(unsafeBuiltinsMap map[string]struct{}, node interface{}
return errs
}
-func rewriteVarsInRef(vars ...map[Var]Var) func(Ref) Ref {
+func rewriteVarsInRef(vars ...map[Var]Var) varRewriter {
return func(node Ref) Ref {
i, _ := TransformVars(node, func(v Var) (Value, error) {
for _, m := range vars {
@@ -3937,7 +4376,3 @@ func rewriteVarsInRef(vars ...map[Var]Var) func(Ref) Ref {
return i.(Ref)
}
}
-
-func rewriteVarsNop(node Ref) Ref {
- return node
-}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/compilehelper.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/compilehelper.go
index 37a81ddc9..ca75dfaba 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/compilehelper.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/compilehelper.go
@@ -7,6 +7,17 @@ package ast
// CompileModules takes a set of Rego modules represented as strings and
// compiles them for evaluation. The keys of the map are used as filenames.
func CompileModules(modules map[string]string) (*Compiler, error) {
+ return CompileModulesWithOpt(modules, CompileOpts{})
+}
+
+// CompileOpts defines a set of options for the compiler.
+type CompileOpts struct {
+ EnablePrintStatements bool
+}
+
+// CompileModulesWithOpt takes a set of Rego modules represented as strings and
+// compiles them for evaluation. The keys of the map are used as filenames.
+func CompileModulesWithOpt(modules map[string]string, opts CompileOpts) (*Compiler, error) {
parsed := make(map[string]*Module, len(modules))
@@ -19,7 +30,7 @@ func CompileModules(modules map[string]string) (*Compiler, error) {
parsed[f] = pm
}
- compiler := NewCompiler()
+ compiler := NewCompiler().WithEnablePrintStatements(opts.EnablePrintStatements)
compiler.Compile(parsed)
if compiler.Failed() {
@@ -32,8 +43,14 @@ func CompileModules(modules map[string]string) (*Compiler, error) {
// MustCompileModules compiles a set of Rego modules represented as strings. If
// the compilation process fails, this function panics.
func MustCompileModules(modules map[string]string) *Compiler {
+ return MustCompileModulesWithOpts(modules, CompileOpts{})
+}
+
+// MustCompileModulesWithOpts compiles a set of Rego modules represented as strings. If
+// the compilation process fails, this function panics.
+func MustCompileModulesWithOpts(modules map[string]string, opts CompileOpts) *Compiler {
- compiler, err := CompileModules(modules)
+ compiler, err := CompileModulesWithOpt(modules, opts)
if err != nil {
panic(err)
}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/index.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/index.go
index a54e378a5..bcbb5c176 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/index.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/index.go
@@ -32,10 +32,11 @@ type RuleIndex interface {
// IndexResult contains the result of an index lookup.
type IndexResult struct {
- Kind DocKind
- Rules []*Rule
- Else map[*Rule][]*Rule
- Default *Rule
+ Kind DocKind
+ Rules []*Rule
+ Else map[*Rule][]*Rule
+ Default *Rule
+ EarlyExit bool
}
// NewIndexResult returns a new IndexResult object.
@@ -52,16 +53,18 @@ func (ir *IndexResult) Empty() bool {
}
type baseDocEqIndex struct {
- isVirtual func(Ref) bool
- root *trieNode
- defaultRule *Rule
- kind DocKind
+ skipIndexing Set
+ isVirtual func(Ref) bool
+ root *trieNode
+ defaultRule *Rule
+ kind DocKind
}
func newBaseDocEqIndex(isVirtual func(Ref) bool) *baseDocEqIndex {
return &baseDocEqIndex{
- isVirtual: isVirtual,
- root: newTrieNodeImpl(),
+ skipIndexing: NewSet(NewTerm(InternalPrint.Ref())),
+ isVirtual: isVirtual,
+ root: newTrieNodeImpl(),
}
}
@@ -80,8 +83,17 @@ func (i *baseDocEqIndex) Build(rules []*Rule) bool {
i.defaultRule = rule
return false
}
+ var skip bool
for _, expr := range rule.Body {
- indices.Update(rule, expr)
+ if op := expr.OperatorTerm(); op != nil && i.skipIndexing.Contains(op) {
+ skip = true
+ break
+ }
+ }
+ if !skip {
+ for _, expr := range rule.Body {
+ indices.Update(rule, expr)
+ }
}
return false
})
@@ -103,13 +115,11 @@ func (i *baseDocEqIndex) Build(rules []*Rule) bool {
// Insert rule into trie with (insertion order, priority order)
// tuple. Retaining the insertion order allows us to return rules
// in the order they were passed to this function.
- node.rules = append(node.rules, &ruleNode{[...]int{idx, prio}, rule})
+ node.append([...]int{idx, prio}, rule)
prio++
return false
})
-
}
-
return true
}
@@ -132,6 +142,7 @@ func (i *baseDocEqIndex) Lookup(resolver ValueResolver) (*IndexResult, error) {
})
nodes := tr.unordered[pos]
root := nodes[0].rule
+
result.Rules = append(result.Rules, root)
if len(nodes) > 1 {
result.Else[root] = make([]*Rule, len(nodes)-1)
@@ -141,6 +152,8 @@ func (i *baseDocEqIndex) Lookup(resolver ValueResolver) (*IndexResult, error) {
}
}
+ result.EarlyExit = tr.values.Len() == 1 && tr.values.Slice()[0].IsGround()
+
return result, nil
}
@@ -170,6 +183,8 @@ func (i *baseDocEqIndex) AllRules(resolver ValueResolver) (*IndexResult, error)
}
}
+ result.EarlyExit = tr.values.Len() == 1 && tr.values.Slice()[0].IsGround()
+
return result, nil
}
@@ -179,9 +194,7 @@ type ruleWalker struct {
func (r *ruleWalker) Do(x interface{}) trieWalker {
tn := x.(*trieNode)
- for _, rn := range tn.rules {
- r.result.Add(rn)
- }
+ r.result.Add(tn)
return r
}
@@ -233,12 +246,15 @@ func (i *refindices) Update(rule *Rule, expr *Expr) {
op := expr.Operator()
- if op.Equal(Equality.Ref()) || op.Equal(Equal.Ref()) {
-
+ if op.Equal(Equality.Ref()) {
+ i.updateEq(rule, expr)
+ } else if op.Equal(Equal.Ref()) && len(expr.Operands()) == 2 {
+ // NOTE(tsandall): if equal() is called with more than two arguments the
+ // output value is being captured in which case the indexer cannot
+ // exclude the rule if the equal() call would return false (because the
+ // false value must still be produced.)
i.updateEq(rule, expr)
-
} else if op.Equal(GlobMatch.Ref()) {
-
i.updateGlobMatch(rule, expr)
}
}
@@ -291,20 +307,19 @@ func (i *refindices) Mapper(rule *Rule, ref Ref) *valueMapper {
func (i *refindices) updateEq(rule *Rule, expr *Expr) {
a, b := expr.Operand(0), expr.Operand(1)
- if ref, value, ok := eqOperandsToRefAndValue(i.isVirtual, a, b); ok {
- i.insert(rule, &refindex{
- Ref: ref,
- Value: value,
- })
- } else if ref, value, ok := eqOperandsToRefAndValue(i.isVirtual, b, a); ok {
- i.insert(rule, &refindex{
- Ref: ref,
- Value: value,
- })
+ args := rule.Head.Args
+ if idx, ok := eqOperandsToRefAndValue(i.isVirtual, args, a, b); ok {
+ i.insert(rule, idx)
+ return
+ }
+ if idx, ok := eqOperandsToRefAndValue(i.isVirtual, args, b, a); ok {
+ i.insert(rule, idx)
+ return
}
}
func (i *refindices) updateGlobMatch(rule *Rule, expr *Expr) {
+ args := rule.Head.Args
delim, ok := globDelimiterToString(expr.Operand(1))
if !ok {
@@ -314,26 +329,37 @@ func (i *refindices) updateGlobMatch(rule *Rule, expr *Expr) {
if arr := globPatternToArray(expr.Operand(0), delim); arr != nil {
// The 3rd operand of glob.match is the value to match. We assume the
// 3rd operand was a reference that has been rewritten and bound to a
- // variable earlier in the query.
+ // variable earlier in the query OR a function argument variable.
match := expr.Operand(2)
if _, ok := match.Value.(Var); ok {
+ var ref Ref
for _, other := range i.rules[rule] {
if _, ok := other.Value.(Var); ok && other.Value.Compare(match.Value) == 0 {
- i.insert(rule, &refindex{
- Ref: other.Ref,
- Value: arr.Value,
- Mapper: &valueMapper{
- Key: delim,
- MapValue: func(v Value) Value {
- if s, ok := v.(String); ok {
- return stringSliceToArray(splitStringEscaped(string(s), delim))
- }
- return v
- },
- },
- })
+ ref = other.Ref
+ }
+ }
+ if ref == nil {
+ for j, arg := range args {
+ if arg.Equal(match) {
+ ref = Ref{FunctionArgRootDocument, IntNumberTerm(j)}
+ }
}
}
+ if ref != nil {
+ i.insert(rule, &refindex{
+ Ref: ref,
+ Value: arr.Value,
+ Mapper: &valueMapper{
+ Key: delim,
+ MapValue: func(v Value) Value {
+ if s, ok := v.(String); ok {
+ return stringSliceToArray(splitStringEscaped(string(s), delim))
+ }
+ return v
+ },
+ },
+ })
+ }
}
}
}
@@ -373,25 +399,33 @@ type trieWalker interface {
type trieTraversalResult struct {
unordered map[int][]*ruleNode
ordering []int
+ values Set
}
func newTrieTraversalResult() *trieTraversalResult {
return &trieTraversalResult{
unordered: map[int][]*ruleNode{},
+ values: NewSet(),
}
}
-func (tr *trieTraversalResult) Add(node *ruleNode) {
- root := node.prio[0]
- nodes, ok := tr.unordered[root]
- if !ok {
- tr.ordering = append(tr.ordering, root)
+func (tr *trieTraversalResult) Add(t *trieNode) {
+ for _, node := range t.rules {
+ root := node.prio[0]
+ nodes, ok := tr.unordered[root]
+ if !ok {
+ tr.ordering = append(tr.ordering, root)
+ }
+ tr.unordered[root] = append(nodes, node)
+ }
+ if t.values != nil {
+ t.values.Foreach(func(v *Term) { tr.values.Add(v) })
}
- tr.unordered[root] = append(nodes, node)
}
type trieNode struct {
ref Ref
+ values Set
mappers []*valueMapper
next *trieNode
any *trieNode
@@ -433,9 +467,25 @@ func (node *trieNode) String() string {
if len(node.mappers) > 0 {
flags = append(flags, fmt.Sprintf("%d mapper(s)", len(node.mappers)))
}
+ if l := node.values.Len(); l > 0 {
+ flags = append(flags, fmt.Sprintf("%d value(s)", l))
+ }
return strings.Join(flags, " ")
}
+func (node *trieNode) append(prio [2]int, rule *Rule) {
+ node.rules = append(node.rules, &ruleNode{prio, rule})
+
+ if node.values != nil {
+ node.values.Add(rule.Head.Value)
+ return
+ }
+
+ if node.values == nil && rule.Head.DocKind() == CompleteDoc {
+ node.values = NewSet(rule.Head.Value)
+ }
+}
+
type ruleNode struct {
prio [2]int
rule *Rule
@@ -489,9 +539,7 @@ func (node *trieNode) Traverse(resolver ValueResolver, tr *trieTraversalResult)
return nil
}
- for i := range node.rules {
- tr.Add(node.rules[i])
- }
+ tr.Add(node)
return node.next.traverse(resolver, tr)
}
@@ -682,28 +730,41 @@ func (node *trieNode) traverseUnknown(resolver ValueResolver, tr *trieTraversalR
return nil
}
-func eqOperandsToRefAndValue(isVirtual func(Ref) bool, a, b *Term) (Ref, Value, bool) {
-
- ref, ok := a.Value.(Ref)
- if !ok {
- return nil, nil, false
- }
-
- if !RootDocumentNames.Contains(ref[0]) {
- return nil, nil, false
- }
-
- if isVirtual(ref) {
- return nil, nil, false
- }
-
- if ref.IsNested() || !ref.IsGround() {
- return nil, nil, false
+// If term `a` is one of the function's operands, we store a Ref: `args[0]`
+// for the argument number. So for `f(x, y) { x = 10; y = 12 }`, we'll
+// bind `args[0]` and `args[1]` to this rule when called for (x=10) and
+// (y=12) respectively.
+func eqOperandsToRefAndValue(isVirtual func(Ref) bool, args []*Term, a, b *Term) (*refindex, bool) {
+ switch v := a.Value.(type) {
+ case Var:
+ for i, arg := range args {
+ if arg.Value.Compare(v) == 0 {
+ if bval, ok := indexValue(b); ok {
+ return &refindex{Ref: Ref{FunctionArgRootDocument, IntNumberTerm(i)}, Value: bval}, true
+ }
+ }
+ }
+ case Ref:
+ if !RootDocumentNames.Contains(v[0]) {
+ return nil, false
+ }
+ if isVirtual(v) {
+ return nil, false
+ }
+ if v.IsNested() || !v.IsGround() {
+ return nil, false
+ }
+ if bval, ok := indexValue(b); ok {
+ return &refindex{Ref: v, Value: bval}, true
+ }
}
+ return nil, false
+}
+func indexValue(b *Term) (Value, bool) {
switch b := b.Value.(type) {
case Null, Boolean, Number, String, Var:
- return ref, b, true
+ return b, true
case *Array:
stop := false
first := true
@@ -721,11 +782,11 @@ func eqOperandsToRefAndValue(isVirtual func(Ref) bool, a, b *Term) (Ref, Value,
})
vis.Walk(b)
if !stop {
- return ref, b, true
+ return b, true
}
}
- return nil, nil, false
+ return nil, false
}
func globDelimiterToString(delim *Term) (string, bool) {
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/internal/scanner/scanner.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/internal/scanner/scanner.go
index cb4bd3a59..9402749e3 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/internal/scanner/scanner.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/internal/scanner/scanner.go
@@ -19,13 +19,14 @@ const bom = 0xFEFF
// Scanner is used to tokenize an input stream of
// Rego source code.
type Scanner struct {
- offset int
- row int
- col int
- bs []byte
- curr rune
- width int
- errors []Error
+ offset int
+ row int
+ col int
+ bs []byte
+ curr rune
+ width int
+ errors []Error
+ keywords map[string]tokens.Token
}
// Error represents a scanner error.
@@ -52,12 +53,13 @@ func New(r io.Reader) (*Scanner, error) {
}
s := &Scanner{
- offset: 0,
- row: 1,
- col: 0,
- bs: bs,
- curr: -1,
- width: 0,
+ offset: 0,
+ row: 1,
+ col: 0,
+ bs: bs,
+ curr: -1,
+ width: 0,
+ keywords: tokens.Keywords(),
}
s.next()
@@ -80,6 +82,36 @@ func (s *Scanner) String() string {
return fmt.Sprintf("", s.curr, s.offset, len(s.bs))
}
+// Keyword will return a token for the passed in
+// literal value. If the value is a Rego keyword
+// then the appropriate token is returned. Everything
+// else is an Ident.
+func (s *Scanner) Keyword(lit string) tokens.Token {
+ if tok, ok := s.keywords[lit]; ok {
+ return tok
+ }
+ return tokens.Ident
+}
+
+// AddKeyword adds a string -> token mapping to this Scanner instance.
+func (s *Scanner) AddKeyword(kw string, tok tokens.Token) {
+ s.keywords[kw] = tok
+}
+
+// WithKeywords returns a new copy of the Scanner struct `s`, with the set
+// of known keywords being that of `s` with `kws` added.
+func (s *Scanner) WithKeywords(kws map[string]tokens.Token) *Scanner {
+ cpy := *s
+ cpy.keywords = make(map[string]tokens.Token, len(s.keywords)+len(kws))
+ for kw, tok := range s.keywords {
+ cpy.AddKeyword(kw, tok)
+ }
+ for k, t := range kws {
+ cpy.AddKeyword(k, t)
+ }
+ return &cpy
+}
+
// Scan will increment the scanners position in the source
// code until the next token is found. The token, starting position
// of the token, string literal, and any errors encountered are
@@ -97,7 +129,7 @@ func (s *Scanner) Scan() (tokens.Token, Position, string, []Error) {
tok = tokens.Whitespace
} else if isLetter(s.curr) {
lit = s.scanIdentifier()
- tok = tokens.Keyword(lit)
+ tok = s.Keyword(lit)
} else if isDecimal(s.curr) {
lit = s.scanNumber()
tok = tokens.Number
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/internal/tokens/tokens.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/internal/tokens/tokens.go
index 29229a5a3..ce053c18a 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/internal/tokens/tokens.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/internal/tokens/tokens.go
@@ -57,6 +57,7 @@ const (
Unify
Equal
Assign
+ In
Neq
Gt
Lt
@@ -103,6 +104,7 @@ var strings = [...]string{
Unify: "eq",
Equal: "equal",
Assign: "assign",
+ In: "in",
Neq: "neq",
Gt: "gt",
Lt: "lt",
@@ -126,13 +128,11 @@ var keywords = map[string]Token{
"false": False,
}
-// Keyword will return a token for the passed in
-// literal value. If the value is a Rego keyword
-// then the appropriate token is returned. Everything
-// else is an Ident.
-func Keyword(lit string) Token {
- if tok, ok := keywords[lit]; ok {
- return tok
+// Keywords returns a copy of the default string -> Token keyword map.
+func Keywords() map[string]Token {
+ cpy := make(map[string]Token, len(keywords))
+ for k, v := range keywords {
+ cpy[k] = v
}
- return Ident
+ return cpy
}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/parser.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/parser.go
index 146a41bd1..0990a6a53 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/parser.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/parser.go
@@ -34,6 +34,7 @@ type state struct {
lit string
loc Location
errors Errors
+ hints []string
comments []*Comment
wildcard int
}
@@ -59,20 +60,52 @@ func (s *state) Text(offset, end int) []byte {
// Parser is used to parse Rego statements.
type Parser struct {
- r io.Reader
- s *state
- po ParserOptions
+ r io.Reader
+ s *state
+ po ParserOptions
+ cache parsedTermCache
+}
+
+type parsedTermCacheItem struct {
+ t *Term
+ post *state // post is the post-state that's restored on a cache-hit
+ offset int
+ next *parsedTermCacheItem
+}
+
+type parsedTermCache struct {
+ m *parsedTermCacheItem
+}
+
+func (c parsedTermCache) String() string {
+ s := strings.Builder{}
+ s.WriteRune('{')
+ var e *parsedTermCacheItem
+ for e = c.m; e != nil; e = e.next {
+ fmt.Fprintf(&s, "%v", e)
+ }
+ s.WriteRune('}')
+ return s.String()
+}
+
+func (e *parsedTermCacheItem) String() string {
+ return fmt.Sprintf("<%d:%v>", e.offset, e.t)
}
// ParserOptions defines the options for parsing Rego statements.
type ParserOptions struct {
+ Capabilities *Capabilities
ProcessAnnotation bool
+ AllFutureKeywords bool
+ FutureKeywords []string
}
// NewParser creates and initializes a Parser.
func NewParser() *Parser {
- p := &Parser{s: &state{},
- po: ParserOptions{}}
+ p := &Parser{
+ s: &state{},
+ po: ParserOptions{},
+ }
return p
}
@@ -97,6 +130,35 @@ func (p *Parser) WithProcessAnnotation(processAnnotation bool) *Parser {
return p
}
+// WithFutureKeywords enables "future" keywords, i.e., keywords that can
+// be imported via
+//
+// import future.keywords.kw
+// import future.keywords.other
+//
+// but in a more direct way. The equivalent of this import would be
+//
+// WithFutureKeywords("kw", "other")
+func (p *Parser) WithFutureKeywords(kws ...string) *Parser {
+ p.po.FutureKeywords = kws
+ return p
+}
+
+// WithAllFutureKeywords enables all "future" keywords, i.e., the
+// ParserOption equivalent of
+//
+// import future.keywords
+func (p *Parser) WithAllFutureKeywords(yes bool) *Parser {
+ p.po.AllFutureKeywords = yes
+ return p
+}
+
+// WithCapabilities sets the capabilities structure on the parser.
+func (p *Parser) WithCapabilities(c *Capabilities) *Parser {
+ p.po.Capabilities = c
+ return p
+}
+
const (
annotationScopePackage = "package"
annotationScopeImport = "import"
@@ -105,11 +167,70 @@ const (
annotationScopeSubpackages = "subpackages"
)
+func (p *Parser) parsedTermCacheLookup() (*Term, *state) {
+ l := p.s.loc.Offset
+ // stop comparing once the cached offsets are lower than l
+ for h := p.cache.m; h != nil && h.offset >= l; h = h.next {
+ if h.offset == l {
+ return h.t, h.post
+ }
+ }
+ return nil, nil
+}
+
+func (p *Parser) parsedTermCachePush(t *Term, s0 *state) {
+ s1 := p.save()
+ o0 := s0.loc.Offset
+ entry := parsedTermCacheItem{t: t, post: s1, offset: o0}
+
+ // find the first one whose offset is smaller than ours
+ var e *parsedTermCacheItem
+ for e = p.cache.m; e != nil; e = e.next {
+ if e.offset < o0 {
+ break
+ }
+ }
+ entry.next = e
+ p.cache.m = &entry
+}
+
+// futureParser returns a shallow copy of `p` with an empty
+// cache, and a scanner that knows all future keywords.
+// It's used to present hints in errors, when statements would
+// only parse successfully if some future keyword is enabled.
+func (p *Parser) futureParser() *Parser {
+ q := *p
+ q.s = p.save()
+ q.s.s = p.s.s.WithKeywords(futureKeywords)
+ q.cache = parsedTermCache{}
+ return &q
+}
+
// Parse will read the Rego source and parse statements and
// comments as they are found. Any errors encountered while
// parsing will be accumulated and returned as a list of Errors.
func (p *Parser) Parse() ([]Statement, []*Comment, Errors) {
+ if p.po.Capabilities == nil {
+ p.po.Capabilities = CapabilitiesForThisVersion()
+ }
+
+ allowedFutureKeywords := map[string]tokens.Token{}
+
+ for _, kw := range p.po.Capabilities.FutureKeywords {
+ var ok bool
+ allowedFutureKeywords[kw], ok = futureKeywords[kw]
+ if !ok {
+ return nil, nil, Errors{
+ &Error{
+ Code: ParseErr,
+ Message: fmt.Sprintf("illegal capabilities: unknown keyword: %v", kw),
+ Location: nil,
+ },
+ }
+ }
+ }
+
var err error
p.s.s, err = scanner.New(p.r)
if err != nil {
@@ -122,6 +243,28 @@ func (p *Parser) Parse() ([]Statement, []*Comment, Errors) {
}
}
+ selected := map[string]tokens.Token{}
+ if p.po.AllFutureKeywords {
+ for kw, tok := range allowedFutureKeywords {
+ selected[kw] = tok
+ }
+ } else {
+ for _, kw := range p.po.FutureKeywords {
+ tok, ok := allowedFutureKeywords[kw]
+ if !ok {
+ return nil, nil, Errors{
+ &Error{
+ Code: ParseErr,
+ Message: fmt.Sprintf("unknown future keyword: %v", kw),
+ Location: nil,
+ },
+ }
+ }
+ selected[kw] = tok
+ }
+ }
+ p.s.s = p.s.s.WithKeywords(selected)
+
// read the first token to initialize the parser
p.scan()
@@ -148,6 +291,9 @@ func (p *Parser) Parse() ([]Statement, []*Comment, Errors) {
s = p.save()
if imp := p.parseImport(); imp != nil {
+ if FutureRootDocument.Equal(imp.Path.Value.(Ref)[0]) {
+ p.futureImport(imp, allowedFutureKeywords)
+ }
stmts = append(stmts, imp)
continue
} else if len(p.s.errors) > 0 {
@@ -167,7 +313,6 @@ func (p *Parser) Parse() ([]Statement, []*Comment, Errors) {
}
p.restore(s)
- p.save() // no need to save return value to s
if body := p.parseQuery(true, tokens.EOF); body != nil {
stmts = append(stmts, body)
@@ -312,8 +457,10 @@ func (p *Parser) parseImport() *Import {
path := imp.Path.Value.(Ref)
- if !RootDocumentNames.Contains(path[0]) {
- p.errorf(imp.Path.Location, "unexpected import path, must begin with one of: %v, got: %v", RootDocumentNames, path[0])
+ if !RootDocumentNames.Contains(path[0]) && !FutureRootDocument.Equal(path[0]) {
+ p.errorf(imp.Path.Location, "unexpected import path, must begin with one of: %v, got: %v",
+ RootDocumentNames.Union(NewSet(FutureRootDocument)),
+ path[0])
return nil
}
@@ -325,14 +472,15 @@ func (p *Parser) parseImport() *Import {
return nil
}
- alias := p.parseTerm()
-
- v, ok := alias.Value.(Var)
- if !ok {
- p.illegal("expected var")
- return nil
+ if alias := p.parseTerm(); alias != nil {
+ v, ok := alias.Value.(Var)
+ if ok {
+ imp.Alias = v
+ return &imp
+ }
}
- imp.Alias = v
+ p.illegal("expected var")
+ return nil
}
return &imp
@@ -449,7 +597,7 @@ func (p *Parser) parseElse(head *Head) *Rule {
rule.Head.Value = BooleanTerm(true)
case tokens.Unify:
p.scan()
- rule.Head.Value = p.parseTermRelation()
+ rule.Head.Value = p.parseTermInfixCall()
if rule.Head.Value == nil {
return nil
}
@@ -491,11 +639,8 @@ func (p *Parser) parseHead(defaultRule bool) *Head {
}()
if term := p.parseVar(); term != nil {
- if v, ok := term.Value.(Var); ok {
- head.Name = v
- }
- }
- if head.Name == "" {
+ head.Name = term.Value.(Var)
+ } else {
p.illegal("expected rule head name")
}
@@ -518,11 +663,14 @@ func (p *Parser) parseHead(defaultRule bool) *Head {
if p.s.tok == tokens.LBrack {
p.scan()
- head.Key = p.parseTermRelation()
+ head.Key = p.parseTermInfixCall()
if head.Key == nil {
p.illegal("expected rule key term (e.g., %s[] { ... })", head.Name)
}
if p.s.tok != tokens.RBrack {
+ if _, ok := futureKeywords[head.Name.String()]; ok {
+ p.hint("`import future.keywords.%[1]s` for '%[1]s' keyword", head.Name.String())
+ }
p.illegal("non-terminated rule key")
}
p.scan()
@@ -530,9 +678,9 @@ func (p *Parser) parseHead(defaultRule bool) *Head {
if p.s.tok == tokens.Unify {
p.scan()
- head.Value = p.parseTermRelation()
+ head.Value = p.parseTermInfixCall()
if head.Value == nil {
- p.illegal("expected rule value term (e.g., %s[] { ... })", head.Name)
+ p.illegal("expected rule value term (e.g., %s[%s] = { ... })", head.Name, head.Key)
}
} else if p.s.tok == tokens.Assign {
@@ -549,7 +697,7 @@ func (p *Parser) parseHead(defaultRule bool) *Head {
p.scan()
head.Assign = true
- head.Value = p.parseTermRelation()
+ head.Value = p.parseTermInfixCall()
if head.Value == nil {
p.illegal("expected rule value term (e.g., %s := { ... })", head.Name)
}
@@ -671,7 +819,7 @@ func (p *Parser) parseWith() []*With {
p.scan()
- if with.Value = p.parseTermRelation(); with.Value == nil {
+ if with.Value = p.parseTermInfixCall(); with.Value == nil {
return nil
}
@@ -692,13 +840,46 @@ func (p *Parser) parseSome() *Expr {
decl := &SomeDecl{}
decl.SetLoc(p.s.Loc())
- for {
+ // Attempt to parse "some x in xs", which will end up in
+ // SomeDecl{Symbols: ["member(x, xs)"]}
+ s := p.save()
+ p.scan()
+ if term := p.parseTermInfixCall(); term != nil {
+ if call, ok := term.Value.(Call); ok {
+ switch call[0].String() {
+ case Member.Name, MemberWithKey.Name: // OK
+ default:
+ p.illegal("expected `x in xs` or `x, y in xs` expression")
+ return nil
+ }
- p.scan()
+ decl.Symbols = []*Term{term}
+ return NewExpr(decl).SetLocation(decl.Location)
+ }
+ }
- switch p.s.tok {
- case tokens.Ident:
+ p.restore(s)
+ s = p.save() // new copy for later
+ var hint bool
+ p.scan()
+ if term := p.futureParser().parseTermInfixCall(); term != nil {
+ if call, ok := term.Value.(Call); ok {
+ switch call[0].String() {
+ case Member.Name, MemberWithKey.Name:
+ hint = true
+ }
}
+ }
+
+ // go on as before, it's `some x[...]` or illegal
+ p.restore(s)
+ if hint {
+ p.hint("`import future.keywords.in` for `some x in xs` expressions")
+ }
+
+ for { // collecting var args
+
+ p.scan()
if p.s.tok != tokens.Ident {
p.illegal("expected var")
@@ -719,14 +900,13 @@ func (p *Parser) parseSome() *Expr {
func (p *Parser) parseExpr() *Expr {
- lhs := p.parseTermRelation()
-
+ lhs := p.parseTermInfixCall()
if lhs == nil {
return nil
}
if op := p.parseTermOp(tokens.Assign, tokens.Unify); op != nil {
- if rhs := p.parseTermRelation(); rhs != nil {
+ if rhs := p.parseTermInfixCall(); rhs != nil {
return NewExpr([]*Term{op, lhs, rhs})
}
return nil
@@ -742,14 +922,63 @@ func (p *Parser) parseExpr() *Expr {
return NewExpr(lhs)
}
-// parseTermRelation consumes the next term from the input and returns it. If a
+// parseTermInfixCall consumes the next term from the input and returns it. If a
// term cannot be parsed the return value is nil and error will be recorded. The
// scanner will be advanced to the next token before returning.
-func (p *Parser) parseTermRelation() *Term {
- return p.parseTermRelationRec(nil, p.s.loc.Offset)
+// By starting out with infix relations (==, !=, <, etc) and further calling the
+// other binary operators (|, &, arithmetics), it constitutes the binding
+// precedence.
+func (p *Parser) parseTermInfixCall() *Term {
+ return p.parseTermIn(nil, true, p.s.loc.Offset)
}
-func (p *Parser) parseTermRelationRec(lhs *Term, offset int) *Term {
+func (p *Parser) parseTermInfixCallInList() *Term {
+ return p.parseTermIn(nil, false, p.s.loc.Offset)
+}
+
+func (p *Parser) parseTermIn(lhs *Term, keyVal bool, offset int) *Term {
+ // NOTE(sr): `in` is a bit special: besides `lhs in rhs`, it also
+ // supports `key, val in rhs`, so it can have an optional second lhs.
+ // `keyVal` triggers if we attempt to parse a second lhs argument (`mhs`).
+ if lhs == nil {
+ lhs = p.parseTermRelation(nil, offset)
+ }
+ if lhs != nil {
+ if keyVal && p.s.tok == tokens.Comma { // second "lhs", or "middle hand side"
+ s := p.save()
+ p.scan()
+ if mhs := p.parseTermRelation(nil, offset); mhs != nil {
+ if op := p.parseTermOpName(MemberWithKey.Ref(), tokens.In); op != nil {
+ if rhs := p.parseTermRelation(nil, p.s.loc.Offset); rhs != nil {
+ call := p.setLoc(CallTerm(op, lhs, mhs, rhs), lhs.Location, offset, p.s.lastEnd)
+ switch p.s.tok {
+ case tokens.In:
+ return p.parseTermIn(call, keyVal, offset)
+ default:
+ return call
+ }
+ }
+ }
+ }
+ p.restore(s)
+ return nil
+ }
+ if op := p.parseTermOpName(Member.Ref(), tokens.In); op != nil {
+ if rhs := p.parseTermRelation(nil, p.s.loc.Offset); rhs != nil {
+ call := p.setLoc(CallTerm(op, lhs, rhs), lhs.Location, offset, p.s.lastEnd)
+ switch p.s.tok {
+ case tokens.In:
+ return p.parseTermIn(call, keyVal, offset)
+ default:
+ return call
+ }
+ }
+ }
+ }
+ return lhs
+}
+
+func (p *Parser) parseTermRelation(lhs *Term, offset int) *Term {
if lhs == nil {
lhs = p.parseTermOr(nil, offset)
}
@@ -759,7 +988,7 @@ func (p *Parser) parseTermRelationRec(lhs *Term, offset int) *Term {
call := p.setLoc(CallTerm(op, lhs, rhs), lhs.Location, offset, p.s.lastEnd)
switch p.s.tok {
case tokens.Equal, tokens.Neq, tokens.Lt, tokens.Gt, tokens.Lte, tokens.Gte:
- return p.parseTermRelationRec(call, offset)
+ return p.parseTermRelation(call, offset)
default:
return call
}
@@ -852,6 +1081,12 @@ func (p *Parser) parseTermFactor(lhs *Term, offset int) *Term {
}
func (p *Parser) parseTerm() *Term {
+ if term, s := p.parsedTermCacheLookup(); s != nil {
+ p.restore(s)
+ return term
+ }
+ s0 := p.save()
+
var term *Term
switch p.s.tok {
case tokens.Null:
@@ -873,7 +1108,7 @@ func (p *Parser) parseTerm() *Term {
case tokens.LParen:
offset := p.s.loc.Offset
p.scan()
- if r := p.parseTermRelation(); r != nil {
+ if r := p.parseTermInfixCall(); r != nil {
if p.s.tok == tokens.RParen {
r.Location.Text = p.s.Text(offset, p.s.tokEnd)
term = r
@@ -883,10 +1118,11 @@ func (p *Parser) parseTerm() *Term {
}
default:
p.illegalToken()
- return nil
}
- return p.parseTermFinish(term)
+ term = p.parseTermFinish(term)
+ p.parsedTermCachePush(term, s0)
+ return term
}
func (p *Parser) parseTermFinish(head *Term) *Term {
@@ -1001,9 +1237,9 @@ func (p *Parser) parseCall(operator *Term, offset int) (term *Term) {
p.setLoc(term, loc, offset, end)
}()
- p.scan()
+ p.scan() // steps over '('
- if p.s.tok == tokens.RParen {
+ if p.s.tok == tokens.RParen { // no args, i.e. set() or any.func()
end = p.s.tokEnd
p.scanWS()
if operator.Equal(setConstructor) {
@@ -1065,7 +1301,7 @@ func (p *Parser) parseRef(head *Term, offset int) (term *Term) {
return term
case tokens.LBrack:
p.scan()
- if term := p.parseTermRelation(); term != nil {
+ if term := p.parseTermInfixCall(); term != nil {
if p.s.tok != tokens.RBrack {
p.illegal("expected %v", tokens.LBrack)
return nil
@@ -1147,18 +1383,17 @@ func (p *Parser) parseArray() (term *Term) {
}
}
// fall back to parsing as a normal array definition
- fallthrough
- default:
- p.restore(s)
- if terms := p.parseTermList(tokens.RBrack, nil); terms != nil {
- return NewTerm(NewArray(terms...))
- }
- return nil
}
+
+ p.restore(s)
+
+ if terms := p.parseTermList(tokens.RBrack, nil); terms != nil {
+ return NewTerm(NewArray(terms...))
+ }
+ return nil
}
func (p *Parser) parseSetOrObject() (term *Term) {
-
loc := p.s.Loc()
offset := p.s.loc.Offset
@@ -1190,7 +1425,6 @@ func (p *Parser) parseSetOrObject() (term *Term) {
//
// Note: We don't know yet if it is a set or object being defined.
head := p.parseTerm()
-
if head == nil {
return nil
}
@@ -1208,7 +1442,8 @@ func (p *Parser) parseSetOrObject() (term *Term) {
p.restore(s)
- if head = p.parseTermRelation(); head == nil {
+ head = p.parseTermInfixCallInList()
+ if head == nil {
return nil
}
@@ -1218,10 +1453,9 @@ func (p *Parser) parseSetOrObject() (term *Term) {
case tokens.Colon:
// It still might be an object comprehension, eg { a+1: b | ... }
return p.parseObject(head, potentialComprehension)
- default:
- p.illegal("non-terminated set")
}
+ p.illegal("non-terminated set")
return nil
}
@@ -1234,7 +1468,6 @@ func (p *Parser) parseSet(s *state, head *Term, potentialComprehension bool) *Te
if terms := p.parseTermList(tokens.RBrace, []*Term{head}); terms != nil {
return SetTerm(terms...)
}
- return nil
case tokens.Or:
if potentialComprehension {
// Try to parse as if it is a set comprehension
@@ -1251,7 +1484,6 @@ func (p *Parser) parseSet(s *state, head *Term, potentialComprehension bool) *Te
if terms := p.parseTermList(tokens.RBrace, nil); terms != nil {
return SetTerm(terms...)
}
- return nil
}
return nil
}
@@ -1260,18 +1492,31 @@ func (p *Parser) parseObject(k *Term, potentialComprehension bool) *Term {
// NOTE(tsandall): Assumption: this function is called after parsing the key
// of the head element and then receiving a colon token from the scanner.
// Advance beyond the colon and attempt to parse an object.
+ if p.s.tok != tokens.Colon {
+ panic("expected colon")
+ }
p.scan()
s := p.save()
- v := p.parseTerm()
+ // NOTE(sr): We first try to parse the value as a term (`v`), and see
+ // if we can parse `{ x: v | ...}` as a comprehension.
+ // However, if we encounter either a Comma or an RBace, it cannot be
+ // parsed as a comprehension -- so we save double work further down
+ // where `parseObjectFinish(k, v, false)` would only exercise the
+ // same code paths once more.
+ v := p.parseTerm()
if v == nil {
return nil
}
- switch p.s.tok {
- case tokens.RBrace, tokens.Comma, tokens.Or:
- if potentialComprehension {
+ potentialRelation := true
+ if potentialComprehension {
+ switch p.s.tok {
+ case tokens.RBrace, tokens.Comma:
+ potentialRelation = false
+ fallthrough
+ case tokens.Or:
if term := p.parseObjectFinish(k, v, true); term != nil {
return term
}
@@ -1280,17 +1525,19 @@ func (p *Parser) parseObject(k *Term, potentialComprehension bool) *Term {
p.restore(s)
- if v = p.parseTermRelation(); v == nil {
- return nil
- }
+ if potentialRelation {
+ v := p.parseTermInfixCallInList()
+ if v == nil {
+ return nil
+ }
- switch p.s.tok {
- case tokens.Comma, tokens.RBrace:
- return p.parseObjectFinish(k, v, false)
- default:
- p.illegal("non-terminated object")
+ switch p.s.tok {
+ case tokens.RBrace, tokens.Comma:
+ return p.parseObjectFinish(k, v, false)
+ }
}
+ p.illegal("non-terminated object")
return nil
}
@@ -1321,7 +1568,7 @@ func (p *Parser) parseTermList(end tokens.Token, r []*Term) []*Term {
return r
}
for {
- term := p.parseTermRelation()
+ term := p.parseTermInfixCallInList()
if term != nil {
r = append(r, term)
switch p.s.tok {
@@ -1347,12 +1594,12 @@ func (p *Parser) parseTermPairList(end tokens.Token, r [][2]*Term) [][2]*Term {
return r
}
for {
- key := p.parseTermRelation()
+ key := p.parseTermInfixCallInList()
if key != nil {
switch p.s.tok {
case tokens.Colon:
p.scan()
- if val := p.parseTermRelation(); val != nil {
+ if val := p.parseTermInfixCallInList(); val != nil {
r = append(r, [2]*Term{key, val})
switch p.s.tok {
case end:
@@ -1388,6 +1635,21 @@ func (p *Parser) parseTermOp(values ...tokens.Token) *Term {
return nil
}
+func (p *Parser) parseTermOpName(ref Ref, values ...tokens.Token) *Term {
+ for i := range values {
+ if p.s.tok == values[i] {
+ for _, r := range ref {
+ r.SetLocation(p.s.Loc())
+ }
+ t := RefTerm(ref...)
+ t.SetLocation(p.s.Loc())
+ p.scan()
+ return t
+ }
+ }
+ return nil
+}
+
func (p *Parser) parseVar() *Term {
s := p.s.lit
@@ -1413,16 +1675,40 @@ func (p *Parser) error(loc *location.Location, reason string) {
}
func (p *Parser) errorf(loc *location.Location, f string, a ...interface{}) {
+ msg := strings.Builder{}
+ fmt.Fprintf(&msg, f, a...)
+
+ switch len(p.s.hints) {
+ case 0: // nothing to do
+ case 1:
+ msg.WriteString(" (hint: ")
+ msg.WriteString(p.s.hints[0])
+ msg.WriteRune(')')
+ default:
+ msg.WriteString(" (hints: ")
+ for i, h := range p.s.hints {
+ if i > 0 {
+ msg.WriteString(", ")
+ }
+ msg.WriteString(h)
+ }
+ msg.WriteRune(')')
+ }
+
p.s.errors = append(p.s.errors, &Error{
Code: ParseErr,
- Message: fmt.Sprintf(f, a...),
+ Message: msg.String(),
Location: loc,
Details: newParserErrorDetail(p.s.s.Bytes(), loc.Offset),
})
+ p.s.hints = nil
}
-func (p *Parser) illegal(note string, a ...interface{}) {
+func (p *Parser) hint(f string, a ...interface{}) {
+ p.s.hints = append(p.s.hints, fmt.Sprintf(f, a...))
+}
+func (p *Parser) illegal(note string, a ...interface{}) {
tok := p.s.tok.String()
if p.s.tok == tokens.Illegal {
@@ -1437,7 +1723,7 @@ func (p *Parser) illegal(note string, a ...interface{}) {
note = fmt.Sprintf(note, a...)
if len(note) > 0 {
- p.errorf(p.s.Loc(), "unexpected %s %s: %v", tok, tokType, note)
+ p.errorf(p.s.Loc(), "unexpected %s %s: %s", tok, tokType, note)
} else {
p.errorf(p.s.Loc(), "unexpected %s %s", tok, tokType)
}
@@ -1703,3 +1989,52 @@ func convertYAMLMapKeyTypes(x interface{}, path []string) (interface{}, error) {
return x, nil
}
}
+
+// futureKeywords is the source of truth for future keywords that will
+// eventually become standard keywords inside of Rego.
+var futureKeywords = map[string]tokens.Token{
+ "in": tokens.In,
+}
+
+func (p *Parser) futureImport(imp *Import, allowedFutureKeywords map[string]tokens.Token) {
+ path := imp.Path.Value.(Ref)
+ if len(path) == 1 {
+ p.errorf(imp.Path.Location, "invalid import, use `import future.keywords` or `import.future.keywords.in`")
+ return
+ }
+
+ if !path[1].Equal(StringTerm("keywords")) {
+ p.errorf(imp.Path.Location, "invalid import, must be `future.keywords`")
+ return
+ }
+
+ if imp.Alias != "" {
+ p.errorf(imp.Path.Location, "future keyword imports cannot be aliased")
+ return
+ }
+
+ kwds := make([]string, 0, len(allowedFutureKeywords))
+ for k := range allowedFutureKeywords {
+ kwds = append(kwds, k)
+ }
+ switch len(path) {
+ case 2: // all keywords imported, nothing to do
+ case 3: // one keyword imported
+ kw, ok := path[2].Value.(String)
+ if !ok {
+ p.errorf(imp.Path.Location, "invalid import, must be `future.keywords.x`, e.g. `import future.keywords.in`")
+ return
+ }
+ keyword := string(kw)
+ _, ok = allowedFutureKeywords[keyword]
+ if !ok {
+ p.errorf(imp.Path.Location, "unexpected keyword, must be one of %v", kwds)
+ return
+ }
+
+ kwds = []string{keyword} // overwrite
+ }
+ for _, kw := range kwds {
+ p.s.s.AddKeyword(kw, allowedFutureKeywords[kw])
+ }
+}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/parser_ext.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/parser_ext.go
index 8d8c2809d..749dbd62e 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/parser_ext.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/parser_ext.go
@@ -435,7 +435,11 @@ func ParseModuleWithOpts(filename, input string, popts ParserOptions) (*Module,
// ParseBody returns exactly one body.
// If multiple bodies are parsed, an error is returned.
func ParseBody(input string) (Body, error) {
- stmts, _, err := ParseStatements("", input)
+ return ParseBodyWithOpts(input, ParserOptions{})
+}
+
+func ParseBodyWithOpts(input string, popts ParserOptions) (Body, error) {
+ stmts, _, err := ParseStatementsWithOpts("", input, popts)
if err != nil {
return nil, err
}
@@ -556,11 +560,14 @@ func ParseStatements(filename, input string) ([]Statement, []*Comment, error) {
// default return value from the parser.
func ParseStatementsWithOpts(filename, input string, popts ParserOptions) ([]Statement, []*Comment, error) {
- parser := NewParser().WithFilename(filename).WithReader(bytes.NewBufferString(input))
+ parser := NewParser().
+ WithFilename(filename).
+ WithReader(bytes.NewBufferString(input)).
+ WithProcessAnnotation(popts.ProcessAnnotation).
+ WithFutureKeywords(popts.FutureKeywords...).
+ WithAllFutureKeywords(popts.AllFutureKeywords).
+ WithCapabilities(popts.Capabilities)
- if popts.ProcessAnnotation {
- parser.WithProcessAnnotation(popts.ProcessAnnotation)
- }
stmts, comments, errs := parser.Parse()
if len(errs) > 0 {
@@ -580,7 +587,7 @@ func parseModule(filename string, stmts []Statement, comments []*Comment) (*Modu
_package, ok := stmts[0].(*Package)
if !ok {
- loc := stmts[0].(Statement).Loc()
+ loc := stmts[0].Loc()
errs = append(errs, NewError(ParseErr, loc, "package expected"))
}
@@ -749,7 +756,11 @@ func newParserErrorDetail(bs []byte, offset int) *ParserErrorDetail {
func (d ParserErrorDetail) Lines() []string {
line := strings.TrimLeft(d.Line, "\t") // remove leading tabs
tabCount := len(d.Line) - len(line)
- return []string{line, strings.Repeat(" ", d.Idx-tabCount) + "^"}
+ indent := d.Idx - tabCount
+ if indent < 0 {
+ indent = 0
+ }
+ return []string{line, strings.Repeat(" ", indent) + "^"}
}
func isNewLineChar(b byte) bool {
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/policy.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/policy.go
index d175594e7..26b6d78e0 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/policy.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/policy.go
@@ -33,6 +33,15 @@ var InputRootDocument = VarTerm("input")
// SchemaRootDocument names the document containing external data schemas.
var SchemaRootDocument = VarTerm("schema")
+// FunctionArgRootDocument names the document containing function arguments.
+// It's only for internal usage, for referencing function arguments between
+// the index and topdown.
+var FunctionArgRootDocument = VarTerm("args")
+
+// FutureRootDocument names the document containing new, to-become-default,
+// features.
+var FutureRootDocument = VarTerm("future")
+
// RootDocumentNames contains the names of top-level documents that can be
// referred to in modules and queries.
//
@@ -406,6 +415,11 @@ func (mod *Module) Copy() *Module {
cpy.Annotations[i] = mod.Annotations[i].Copy(nodes[mod.Annotations[i].node])
}
+ cpy.Comments = make([]*Comment, len(mod.Comments))
+ for i := range mod.Comments {
+ cpy.Comments[i] = mod.Comments[i].Copy()
+ }
+
return &cpy
}
@@ -782,10 +796,10 @@ const (
CompleteDoc = iota
// PartialSetDoc represents a set document that is partially defined by the rule.
- PartialSetDoc = iota
+ PartialSetDoc
// PartialObjectDoc represents an object document that is partially defined by the rule.
- PartialObjectDoc = iota
+ PartialObjectDoc
)
// DocKind returns the type of document produced by this rule.
@@ -1220,12 +1234,12 @@ func (expr *Expr) NoWith() *Expr {
// IsEquality returns true if this is an equality expression.
func (expr *Expr) IsEquality() bool {
- return isglobalbuiltin(expr, Var(Equality.Name))
+ return isGlobalBuiltin(expr, Var(Equality.Name))
}
// IsAssignment returns true if this an assignment expression.
func (expr *Expr) IsAssignment() bool {
- return isglobalbuiltin(expr, Var(Assign.Name))
+ return isGlobalBuiltin(expr, Var(Assign.Name))
}
// IsCall returns true if this expression calls a function.
@@ -1237,11 +1251,21 @@ func (expr *Expr) IsCall() bool {
// Operator returns the name of the function or built-in this expression refers
// to. If this expression is not a function call, returns nil.
func (expr *Expr) Operator() Ref {
+ op := expr.OperatorTerm()
+ if op == nil {
+ return nil
+ }
+ return op.Value.(Ref)
+}
+
+// OperatorTerm returns the name of the function or built-in this expression
+// refers to. If this expression is not a function call, returns nil.
+func (expr *Expr) OperatorTerm() *Term {
terms, ok := expr.Terms.([]*Term)
if !ok || len(terms) == 0 {
return nil
}
- return terms[0].Value.(Ref)
+ return terms[0]
}
// Operand returns the term at the zero-based pos. If the expr does not include
@@ -1357,6 +1381,12 @@ func NewBuiltinExpr(terms ...*Term) *Expr {
}
func (d *SomeDecl) String() string {
+ if call, ok := d.Symbols[0].Value.(Call); ok {
+ if len(call) == 4 {
+ return "some " + call[1].String() + ", " + call[2].String() + " in " + call[3].String()
+ }
+ return "some " + call[1].String() + " in " + call[2].String()
+ }
buf := make([]string, len(d.Symbols))
for i := range buf {
buf[i] = d.Symbols[i].String()
@@ -1573,7 +1603,7 @@ func validEqAssignArgCount(expr *Expr) bool {
// this function checks if the expr refers to a non-namespaced (global) built-in
// function like eq, gt, plus, etc.
-func isglobalbuiltin(expr *Expr, name Var) bool {
+func isGlobalBuiltin(expr *Expr, name Var) bool {
terms, ok := expr.Terms.([]*Term)
if !ok {
return false
@@ -1584,9 +1614,9 @@ func isglobalbuiltin(expr *Expr, name Var) bool {
ref, ok := terms[0].Value.(Ref)
if !ok || len(ref) != 1 {
return false
- } else if head, ok := ref[0].Value.(Var); !ok {
- return false
- } else {
+ }
+ if head, ok := ref[0].Value.(Var); ok {
return head.Equal(name)
}
+ return false
}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/schema.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/schema.go
index 1feea3570..76bd47567 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/schema.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/schema.go
@@ -47,16 +47,16 @@ func (ss *SchemaSet) Get(path Ref) interface{} {
return x
}
-func loadSchema(raw interface{}) (types.Type, error) {
+func loadSchema(raw interface{}, allowNet []string) (types.Type, error) {
- jsonSchema, err := compileSchema(raw)
+ jsonSchema, err := compileSchema(raw, allowNet)
if err != nil {
- return nil, fmt.Errorf("compile failed: %s", err.Error())
+ return nil, err
}
tpe, err := parseSchema(jsonSchema.RootSchema)
if err != nil {
- return nil, fmt.Errorf("error when type checking %v", err)
+ return nil, fmt.Errorf("type checking: %w", err)
}
return tpe, nil
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/term.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/term.go
index a97a24cff..1dc5bd1bb 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/term.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/term.go
@@ -10,6 +10,7 @@ import (
"encoding/json"
"fmt"
"io"
+ "math"
"math/big"
"net/url"
"regexp"
@@ -108,7 +109,11 @@ func InterfaceToValue(x interface{}) (Value, error) {
}
return r, nil
default:
- return nil, fmt.Errorf("ast: illegal value: %T", x)
+ ptr := util.Reference(x)
+ if err := util.RoundTrip(ptr); err != nil {
+ return nil, fmt.Errorf("ast: interface conversion: %w", err)
+ }
+ return InterfaceToValue(*ptr)
}
}
@@ -128,12 +133,12 @@ func As(v Value, x interface{}) error {
// Resolver defines the interface for resolving references to native Go values.
type Resolver interface {
- Resolve(ref Ref) (value interface{}, err error)
+ Resolve(ref Ref) (interface{}, error)
}
// ValueResolver defines the interface for resolving references to AST values.
type ValueResolver interface {
- Resolve(ref Ref) (value Value, err error)
+ Resolve(ref Ref) (Value, error)
}
// UnknownValueErr indicates a ValueResolver was unable to resolve a reference
@@ -390,12 +395,13 @@ func (term *Term) Get(name *Term) *Term {
return nil
}
-// Hash returns the hash code of the Term's value.
+// Hash returns the hash code of the Term's Value. Its Location
+// is ignored.
func (term *Term) Hash() int {
return term.Value.Hash()
}
-// IsGround returns true if this terms' Value is ground.
+// IsGround returns true if this term's Value is ground.
func (term *Term) IsGround() bool {
return term.Value.IsGround()
}
@@ -466,7 +472,7 @@ func IsComprehension(x Value) bool {
// ContainsRefs returns true if the Value v contains refs.
func ContainsRefs(v interface{}) bool {
found := false
- WalkRefs(v, func(r Ref) bool {
+ WalkRefs(v, func(Ref) bool {
found = true
return found
})
@@ -540,7 +546,7 @@ func (null Null) Hash() int {
}
// IsGround always returns true.
-func (null Null) IsGround() bool {
+func (Null) IsGround() bool {
return true
}
@@ -589,7 +595,7 @@ func (bol Boolean) Hash() int {
}
// IsGround always returns true.
-func (bol Boolean) IsGround() bool {
+func (Boolean) IsGround() bool {
return true
}
@@ -681,7 +687,7 @@ func (num Number) Float64() (float64, bool) {
}
// IsGround always returns true.
-func (num Number) IsGround() bool {
+func (Number) IsGround() bool {
return true
}
@@ -743,7 +749,7 @@ func (str String) Find(path Ref) (Value, error) {
}
// IsGround always returns true.
-func (str String) IsGround() bool {
+func (String) IsGround() bool {
return true
}
@@ -797,7 +803,7 @@ func (v Var) Hash() int {
}
// IsGround always returns false.
-func (v Var) IsGround() bool {
+func (Var) IsGround() bool {
return false
}
@@ -838,7 +844,10 @@ func PtrRef(head *Term, s string) (Ref, error) {
return Ref{head}, nil
}
parts := strings.Split(s, "/")
- ref := make(Ref, len(parts)+1)
+ if max := math.MaxInt32; len(parts) >= max {
+ return nil, fmt.Errorf("path too long: %s, %d > %d (max)", s, len(parts), max)
+ }
+ ref := make(Ref, uint(len(parts))+1)
ref[0] = head
for i := 0; i < len(parts); i++ {
var err error
@@ -945,7 +954,7 @@ func (ref Ref) Compare(other Value) int {
return Compare(ref, other)
}
-// Find returns the current value or a not found error.
+// Find returns the current value or a "not found" error.
func (ref Ref) Find(path Ref) (Value, error) {
if len(path) == 0 {
return ref, nil
@@ -1173,11 +1182,16 @@ func (arr *Array) MarshalJSON() ([]byte, error) {
}
func (arr *Array) String() string {
- var buf []string
- for _, e := range arr.elems {
- buf = append(buf, e.String())
+ var b strings.Builder
+ b.WriteRune('[')
+ for i, e := range arr.elems {
+ if i > 0 {
+ b.WriteString(", ")
+ }
+ b.WriteString(e.String())
}
- return "[" + strings.Join(buf, ", ") + "]"
+ b.WriteRune(']')
+ return b.String()
}
// Len returns the number of elements in the array.
@@ -1332,12 +1346,16 @@ func (s *set) String() string {
if s.Len() == 0 {
return "set()"
}
- buf := []string{}
- sorted := s.Sorted()
- sorted.Foreach(func(x *Term) {
- buf = append(buf, fmt.Sprint(x))
- })
- return "{" + strings.Join(buf, ", ") + "}"
+ var b strings.Builder
+ b.WriteRune('{')
+ for i := range s.keys {
+ if i > 0 {
+ b.WriteString(", ")
+ }
+ b.WriteString(s.keys[i].Value.String())
+ }
+ b.WriteRune('}')
+ return b.String()
}
// Compare compares s to other, return <0, 0, or >0 if it is less than, equal to,
@@ -1351,8 +1369,6 @@ func (s *set) Compare(other Value) int {
return 1
}
t := other.(*set)
- sort.Sort(termSlice(s.keys))
- sort.Sort(termSlice(t.keys))
return termSliceCompare(s.keys, t.keys)
}
@@ -1602,7 +1618,16 @@ func (s *set) insert(x *Term) {
}
s.elems[hash] = x
- s.keys = append(s.keys, x)
+ i := sort.Search(len(s.keys), func(i int) bool { return Compare(x, s.keys[i]) < 0 })
+ if i < len(s.keys) {
+ // insert at position `i`:
+ s.keys = append(s.keys, nil) // add some space
+ copy(s.keys[i+1:], s.keys[i:]) // move things over
+ s.keys[i] = x // drop it in position
+ } else {
+ s.keys = append(s.keys, x)
+ }
+
s.hash = 0
s.ground = s.ground && x.IsGround()
}
@@ -1784,9 +1809,6 @@ func (obj *object) Compare(other Value) int {
}
a := obj
b := other.(*object)
- // TODO: Ideally Compare would be immutable; the following sorts happen in place.
- sort.Sort(a.keys)
- sort.Sort(b.keys)
minLen := len(a.keys)
if len(b.keys) < len(a.keys) {
minLen = len(b.keys)
@@ -2036,12 +2058,19 @@ func (obj object) Len() int {
}
func (obj object) String() string {
- var buf []string
- sorted := objectElemSliceSorted(obj.keys)
- for _, elem := range sorted {
- buf = append(buf, fmt.Sprintf("%s: %s", elem.key, elem.value))
+ var b strings.Builder
+ b.WriteRune('{')
+
+ for i, elem := range obj.keys {
+ if i > 0 {
+ b.WriteString(", ")
+ }
+ b.WriteString(elem.key.String())
+ b.WriteString(": ")
+ b.WriteString(elem.value.String())
}
- return "{" + strings.Join(buf, ", ") + "}"
+ b.WriteRune('}')
+ return b.String()
}
func (obj *object) get(k *Term) *objectElem {
@@ -2236,7 +2265,15 @@ func (obj *object) insert(k, v *Term) {
next: head,
}
obj.elems[hash] = elem
- obj.keys = append(obj.keys, elem)
+ i := sort.Search(len(obj.keys), func(i int) bool { return Compare(elem.key, obj.keys[i].key) < 0 })
+ if i < len(obj.keys) {
+ // insert at position `i`:
+ obj.keys = append(obj.keys, nil) // add some space
+ copy(obj.keys[i+1:], obj.keys[i:]) // move things over
+ obj.keys[i] = elem // drop it in position
+ } else {
+ obj.keys = append(obj.keys, elem)
+ }
obj.hash = 0
if k.IsGround() {
@@ -2535,15 +2572,6 @@ func (c Call) String() string {
return fmt.Sprintf("%v(%v)", c[0], strings.Join(args, ", "))
}
-func objectElemSliceSorted(a objectElemSlice) objectElemSlice {
- b := make(objectElemSlice, len(a))
- for i := range b {
- b[i] = a[i]
- }
- sort.Sort(b)
- return b
-}
-
func termSliceCopy(a []*Term) []*Term {
cpy := make([]*Term, len(a))
for i := range a {
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/transform.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/transform.go
index 0a23a4b20..c7fa4c8f1 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/transform.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/transform.go
@@ -4,7 +4,9 @@
package ast
-import "fmt"
+import (
+ "fmt"
+)
// Transformer defines the interface for transforming AST elements. If the
// transformer returns nil and does not indicate an error, the AST element will
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/ast/unify.go b/constraint/vendor/github.com/open-policy-agent/opa/ast/unify.go
index b05845409..80e8ae31d 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/ast/unify.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/ast/unify.go
@@ -4,6 +4,25 @@
package ast
+func isRefSafe(ref Ref, safe VarSet) bool {
+ switch head := ref[0].Value.(type) {
+ case Var:
+ return safe.Contains(head)
+ case Call:
+ vis := NewVarVisitor().WithParams(SafetyCheckVisitorParams)
+ vis.Walk(head)
+ unsafe := vis.Vars().Diff(safe)
+ return len(unsafe) == 0
+ default:
+ for v := range ref[0].Vars() {
+ if !safe.Contains(v) {
+ return false
+ }
+ }
+ return true
+ }
+}
+
// Unify returns a set of variables that will be unified when the equality expression defined by
// terms a and b is evaluated. The unifier assumes that variables in the VarSet safe are already
// unified.
@@ -27,18 +46,6 @@ func (u *unifier) isSafe(x Var) bool {
return u.safe.Contains(x) || u.unified.Contains(x)
}
-func (u *unifier) isHeadSafe(r Ref) bool {
- if v, ok := r[0].Value.(Var); ok {
- return u.isSafe(v)
- }
- for v := range r[0].Vars() {
- if !u.isSafe(v) {
- return false
- }
- }
- return true
-}
-
func (u *unifier) unify(a *Term, b *Term) {
switch a := a.Value.(type) {
@@ -57,7 +64,7 @@ func (u *unifier) unify(a *Term, b *Term) {
case *Array, Object:
u.unifyAll(a, b)
case Ref:
- if u.isHeadSafe(b) {
+ if isRefSafe(b, u.safe) {
u.markSafe(a)
}
default:
@@ -65,7 +72,7 @@ func (u *unifier) unify(a *Term, b *Term) {
}
case Ref:
- if u.isHeadSafe(a) {
+ if isRefSafe(a, u.safe) {
switch b := b.Value.(type) {
case Var:
u.markSafe(b)
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/bundle/bundle.go b/constraint/vendor/github.com/open-policy-agent/opa/bundle/bundle.go
index 3dbafa6e0..13ec7fe56 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/bundle/bundle.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/bundle/bundle.go
@@ -139,6 +139,10 @@ func (m Manifest) Equal(other Manifest) bool {
}
}
+ if !reflect.DeepEqual(m.Metadata, other.Metadata) {
+ return false
+ }
+
return m.rootSet().Equal(other.rootSet())
}
@@ -153,6 +157,15 @@ func (m Manifest) Copy() Manifest {
copy(wasmModules, m.WasmResolvers)
m.WasmResolvers = wasmModules
+ metadata := m.Metadata
+
+ if metadata != nil {
+ m.Metadata = make(map[string]interface{})
+ for k, v := range metadata {
+ m.Metadata[k] = v
+ }
+ }
+
return m
}
@@ -684,6 +697,10 @@ func (w *Writer) writeWasm(tw *tar.Writer, bundle Bundle) error {
func writeManifest(tw *tar.Writer, bundle Bundle) error {
+ if bundle.Manifest.Equal(Manifest{}) {
+ return nil
+ }
+
var buf bytes.Buffer
if err := json.NewEncoder(&buf).Encode(bundle.Manifest); err != nil {
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/bundle/file.go b/constraint/vendor/github.com/open-policy-agent/opa/bundle/file.go
index db8beb119..040c0af3f 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/bundle/file.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/bundle/file.go
@@ -24,6 +24,42 @@ type Descriptor struct {
closeOnce *sync.Once
}
+// lazyFile defers reading the file until the first call of Read
+type lazyFile struct {
+ path string
+ file *os.File
+}
+
+// newLazyFile creates a new instance of lazyFile
+func newLazyFile(path string) *lazyFile {
+ return &lazyFile{path: path}
+}
+
+// Read implements io.Reader. It will check if the file has been opened
+// and open it if it has not before attempting to read using the file's
+// read method
+func (f *lazyFile) Read(b []byte) (int, error) {
+ var err error
+
+ if f.file == nil {
+ if f.file, err = os.Open(f.path); err != nil {
+ return 0, errors.Wrapf(err, "failed to open file %s", f.path)
+ }
+ }
+
+ return f.file.Read(b)
+}
+
+// Close closes the lazy file if it has been opened using the file's
+// close method
+func (f *lazyFile) Close() error {
+ if f.file != nil {
+ return f.file.Close()
+ }
+
+ return nil
+}
+
func newDescriptor(url, path string, reader io.Reader) *Descriptor {
return &Descriptor{
url: url,
@@ -130,10 +166,7 @@ func (d *dirLoader) NextFile() (*Descriptor, error) {
fileName := d.files[d.idx]
d.idx++
- fh, err := os.Open(fileName)
- if err != nil {
- return nil, errors.Wrapf(err, "failed to open file %s", fileName)
- }
+ fh := newLazyFile(fileName)
// Trim off the root directory and return path as if chrooted
cleanedPath := strings.TrimPrefix(fileName, d.root)
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/bundle/keys.go b/constraint/vendor/github.com/open-policy-agent/opa/bundle/keys.go
index 60e50e3c1..1f45ba80a 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/bundle/keys.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/bundle/keys.go
@@ -6,6 +6,7 @@
package bundle
import (
+ "encoding/pem"
"fmt"
"io/ioutil"
"os"
@@ -106,6 +107,12 @@ func (s *SigningConfig) WithPlugin(plugin string) *SigningConfig {
// GetPrivateKey returns the private key or secret from the signing config
func (s *SigningConfig) GetPrivateKey() (interface{}, error) {
+
+ block, _ := pem.Decode([]byte(s.Key))
+ if block != nil {
+ return sign.GetSigningKey(s.Key, jwa.SignatureAlgorithm(s.Algorithm))
+ }
+
var priv string
if _, err := os.Stat(s.Key); err == nil {
bs, err := ioutil.ReadFile(s.Key)
@@ -118,6 +125,7 @@ func (s *SigningConfig) GetPrivateKey() (interface{}, error) {
} else {
return nil, err
}
+
return sign.GetSigningKey(priv, jwa.SignatureAlgorithm(s.Algorithm))
}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/bundle/sign.go b/constraint/vendor/github.com/open-policy-agent/opa/bundle/sign.go
index 13d6667f5..cf9a3e183 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/bundle/sign.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/bundle/sign.go
@@ -6,6 +6,7 @@
package bundle
import (
+ "crypto/rand"
"encoding/json"
"fmt"
@@ -76,7 +77,11 @@ func (*DefaultSigner) GenerateSignedToken(files []FileInfo, sc *SigningConfig, k
return "", err
}
- token, err := jws.SignLiteral(payload, jwa.SignatureAlgorithm(sc.Algorithm), privateKey, hdr)
+ token, err := jws.SignLiteral(payload,
+ jwa.SignatureAlgorithm(sc.Algorithm),
+ privateKey,
+ hdr,
+ rand.Reader)
if err != nil {
return "", err
}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/bundle/store.go b/constraint/vendor/github.com/open-policy-agent/opa/bundle/store.go
index 1753ffa3e..0dc779645 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/bundle/store.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/bundle/store.go
@@ -9,7 +9,6 @@ import (
"encoding/base64"
"encoding/json"
"fmt"
- "strings"
"github.com/open-policy-agent/opa/ast"
"github.com/open-policy-agent/opa/metrics"
@@ -447,7 +446,7 @@ func erasePolicies(ctx context.Context, store storage.Store, txn storage.Transac
}
deleted := false
for root := range roots {
- if strings.HasPrefix(path, root) {
+ if RootPathsContain([]string{root}, path) {
if err := store.DeletePolicy(ctx, txn, id); err != nil {
return nil, err
}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/format/format.go b/constraint/vendor/github.com/open-policy-agent/opa/format/format.go
index be1ff2739..48d231832 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/format/format.go
+++ b/constraint/vendor/github.com/open-policy-agent/opa/format/format.go
@@ -42,10 +42,10 @@ func MustAst(x interface{}) []byte {
// Ast formats a Rego AST element. If the passed value is not a valid AST
// element, Ast returns nil and an error. If AST nodes are missing locations
// an arbitrary location will be used.
-func Ast(x interface{}) (formatted []byte, err error) {
+func Ast(x interface{}) ([]byte, error) {
// The node has to be deep copied because it may be mutated below. Alternatively,
- // we could avoid the copy by checking if mtuation will occur first. For now,
+ // we could avoid the copy by checking if mutation will occur first. For now,
// since format is not latency sensitive, just deep copy in all cases.
x = ast.Copy(x)
@@ -68,7 +68,10 @@ func Ast(x interface{}) (formatted []byte, err error) {
return false
})
- w := &writer{indent: "\t"}
+ w := &writer{
+ indent: "\t",
+ }
+
switch x := x.(type) {
case *ast.Module:
w.writeModule(x)
@@ -438,20 +441,24 @@ func (w *writer) writeSomeDecl(decl *ast.SomeDecl, comments []*ast.Comment) []*a
row := decl.Location.Row
for i, term := range decl.Symbols {
+ switch val := term.Value.(type) {
+ case ast.Var:
+ if term.Location.Row > row {
+ w.endLine()
+ w.startLine()
+ w.write(w.indent)
+ row = term.Location.Row
+ } else if i > 0 {
+ w.write(" ")
+ }
- if term.Location.Row > row {
- w.endLine()
- w.startLine()
- w.write(w.indent)
- row = term.Location.Row
- } else if i > 0 {
- w.write(" ")
- }
-
- comments = w.writeTerm(term, comments)
+ comments = w.writeTerm(term, comments)
- if i < len(decl.Symbols)-1 {
- w.write(",")
+ if i < len(decl.Symbols)-1 {
+ w.write(",")
+ }
+ case ast.Call:
+ comments = w.writeInOperator(false, val[1:], comments)
}
}
@@ -461,8 +468,14 @@ func (w *writer) writeSomeDecl(decl *ast.SomeDecl, comments []*ast.Comment) []*a
func (w *writer) writeFunctionCall(expr *ast.Expr, comments []*ast.Comment) []*ast.Comment {
terms := expr.Terms.([]*ast.Term)
+ operator := terms[0].Value.String()
- bi, ok := ast.BuiltinMap[terms[0].Value.String()]
+ switch operator {
+ case ast.Member.Name, ast.MemberWithKey.Name:
+ return w.writeInOperator(false, terms[1:], comments)
+ }
+
+ bi, ok := ast.BuiltinMap[operator]
if !ok || bi.Infix == "" {
return w.writeFunctionCallPlain(terms, comments)
}
@@ -470,13 +483,13 @@ func (w *writer) writeFunctionCall(expr *ast.Expr, comments []*ast.Comment) []*a
numDeclArgs := len(bi.Decl.Args())
numCallArgs := len(terms) - 1
- if numCallArgs == numDeclArgs {
- // Print infix where result is unassigned (e.g., x != y)
+ switch numCallArgs {
+ case numDeclArgs: // Print infix where result is unassigned (e.g., x != y)
comments = w.writeTerm(terms[1], comments)
w.write(" " + bi.Infix + " ")
return w.writeTerm(terms[2], comments)
- } else if numCallArgs == numDeclArgs+1 {
- // Print infix where result is assigned (e.g., z = x + y)
+
+ case numDeclArgs + 1: // Print infix where result is assigned (e.g., z = x + y)
comments = w.writeTerm(terms[3], comments)
w.write(" " + ast.Equality.Infix + " ")
comments = w.writeTerm(terms[1], comments)
@@ -484,21 +497,18 @@ func (w *writer) writeFunctionCall(expr *ast.Expr, comments []*ast.Comment) []*a
comments = w.writeTerm(terms[2], comments)
return comments
}
-
return w.writeFunctionCallPlain(terms, comments)
}
func (w *writer) writeFunctionCallPlain(terms []*ast.Term, comments []*ast.Comment) []*ast.Comment {
w.write(terms[0].String() + "(")
- if len(terms) > 1 {
- for _, v := range terms[1 : len(terms)-1] {
- comments = w.writeTerm(v, comments)
- w.write(", ")
- }
- comments = w.writeTerm(terms[len(terms)-1], comments)
+ defer w.write(")")
+ args := make([]interface{}, len(terms)-1)
+ for i, t := range terms[1:] {
+ args[i] = t
}
- w.write(")")
- return comments
+ loc := terms[0].Location
+ return w.writeIterable(args, loc, closingLoc(0, 0, '(', ')', loc), comments, w.listWriter())
}
func (w *writer) writeWith(with *ast.With, comments []*ast.Comment) []*ast.Comment {
@@ -596,12 +606,17 @@ func (w *writer) formatVar(v ast.Var) string {
}
func (w *writer) writeCall(parens bool, x ast.Call, comments []*ast.Comment) []*ast.Comment {
-
bi, ok := ast.BuiltinMap[x[0].String()]
if !ok || bi.Infix == "" {
return w.writeFunctionCallPlain(x, comments)
}
+ if bi.Infix == "in" {
+ // NOTE(sr): `in` requires special handling, mirroring what happens in the parser,
+ // since there can be one or two lhs arguments.
+ return w.writeInOperator(true, x[1:], comments)
+ }
+
// TODO(tsandall): improve to consider precedence?
if parens {
w.write("(")
@@ -616,6 +631,31 @@ func (w *writer) writeCall(parens bool, x ast.Call, comments []*ast.Comment) []*
return comments
}
+func (w *writer) writeInOperator(parens bool, operands []*ast.Term, comments []*ast.Comment) []*ast.Comment {
+ kw := "in"
+ switch len(operands) {
+ case 2:
+ comments = w.writeTermParens(true, operands[0], comments)
+ w.write(" ")
+ w.write(kw)
+ w.write(" ")
+ comments = w.writeTermParens(true, operands[1], comments)
+ case 3:
+ if parens {
+ w.write("(")
+ defer w.write(")")
+ }
+ comments = w.writeTermParens(true, operands[0], comments)
+ w.write(", ")
+ comments = w.writeTermParens(true, operands[1], comments)
+ w.write(" ")
+ w.write(kw)
+ w.write(" ")
+ comments = w.writeTermParens(true, operands[2], comments)
+ }
+ return comments
+}
+
func (w *writer) writeObject(obj ast.Object, loc *ast.Location, comments []*ast.Comment) []*ast.Comment {
w.write("{")
defer w.write("}")
@@ -810,10 +850,31 @@ func (w *writer) listWriter() entryWriter {
}
}
-func groupIterable(elements []interface{}, last *ast.Location) (lines [][]interface{}) {
+// groupIterable will group the `elements` slice into slices according to their
+// location: anything on the same line will be put into a slice.
+func groupIterable(elements []interface{}, last *ast.Location) [][]interface{} {
+ // Generated vars occur in the AST when we're rendering the result of
+ // partial evaluation in a bundle build with optimization. For those vars,
+ // there is no location, and the grouping based on source location will
+ // yield a bad result. So if there's a generated variable among elements,
+ // we'll render the elements all in one line.
+ vis := ast.NewVarVisitor()
+ for _, elem := range elements {
+ vis.Walk(elem)
+ }
+ for v := range vis.Vars() {
+ if v.IsGenerated() {
+ return [][]interface{}{elements}
+ }
+ }
+ sort.Slice(elements, func(i, j int) bool {
+ return locLess(elements[i], elements[j])
+ })
+ var lines [][]interface{}
var cur []interface{}
for i, t := range elements {
- loc := getLoc(t)
+ elem := t
+ loc := getLoc(elem)
lineDiff := loc.Row - last.Row
if lineDiff > 0 && i > 0 {
lines = append(lines, cur)
@@ -821,7 +882,7 @@ func groupIterable(elements []interface{}, last *ast.Location) (lines [][]interf
}
last = loc
- cur = append(cur, t)
+ cur = append(cur, elem)
}
return append(lines, cur)
}
diff --git a/constraint/vendor/github.com/open-policy-agent/opa/internal/compiler/wasm/opa/callgraph.csv b/constraint/vendor/github.com/open-policy-agent/opa/internal/compiler/wasm/opa/callgraph.csv
index a9631aa42..0a92d7fda 100644
--- a/constraint/vendor/github.com/open-policy-agent/opa/internal/compiler/wasm/opa/callgraph.csv
+++ b/constraint/vendor/github.com/open-policy-agent/opa/internal/compiler/wasm/opa/callgraph.csv
@@ -1,6 +1,5 @@
opa_agg_count,opa_value_type
-opa_agg_count,opa_unicode_decode_utf8
-opa_agg_count,opa_abort
+opa_agg_count,chartorune
opa_agg_count,opa_number_int
opa_agg_sum,opa_value_type
opa_agg_sum,mpd_qnew
@@ -34,6 +33,14 @@ opa_agg_all,opa_boolean
opa_agg_any,opa_value_type
opa_agg_any,opa_boolean
opa_agg_any,opa_set_get
+builtin_member,opa_value_iter
+builtin_member,opa_value_get
+builtin_member,opa_value_compare
+builtin_member,opa_boolean
+builtin_member3,opa_value_type
+builtin_member3,opa_value_get
+builtin_member3,opa_value_compare
+builtin_member3,opa_boolean
opa_arith_abs,opa_number_to_bf
opa_arith_abs,mpd_qnew
opa_arith_abs,mpd_max_ctx
@@ -139,9 +146,9 @@ opa_bits_negate,qabs
opa_bits_negate,opa_bf_to_bf_bits
opa_bits_negate,opa_bf_bits_to_bf
opa_bits_negate,qsub_one
-opa_bits_negate,opa_bf_to_number
opa_bits_negate,qadd_one
opa_bits_negate,qneg
+opa_bits_negate,opa_bf_to_number
opa_bits_xor,opa_number_to_bf
opa_bits_xor,mpd_isinteger
opa_bits_xor,opa_mpd_del
@@ -201,6 +208,12 @@ opa_cmp_lt,opa_boolean
opa_cmp_lte,opa_value_compare
opa_cmp_lte,opa_boolean
opa_eval_ctx_new,opa_malloc
+opa_eval,opa_abort
+opa_eval,opa_heap_ptr_set
+opa_eval,opa_value_parse
+opa_eval,eval
+opa_eval,opa_value_dump
+opa_eval,opa_json_dump
__force_import_opa_builtins,opa_builtin0
__force_import_opa_builtins,opa_builtin1
__force_import_opa_builtins,opa_builtin2
@@ -324,6 +337,7 @@ opa_json_writer_write,opa_json_writer_emit_value
opa_json_writer_write,opa_free
opa_json_dump,opa_json_writer_write
opa_value_dump,opa_json_writer_write
+opa_malloc,opa_abort
opa_realloc,opa_malloc
opa_realloc,memcpy
opa_realloc,opa_free
@@ -547,7 +561,7 @@ opa_set_union,opa_set
opa_set_union,opa_set_add
opa_sets_union,opa_value_type
opa_sets_union,opa_set
-opa_sets_union,opa_set_union
+opa_sets_union,opa_set_add
opa_sets_union,opa_value_free
opa_strings_concat,opa_value_type
opa_strings_concat,opa_malloc
@@ -597,8 +611,8 @@ opa_strings_split,opa_array_append
opa_strings_split,opa_unicode_decode_utf8
opa_strings_split,opa_abort
opa_strings_startswith,opa_value_type
-opa_strings_startswith,opa_boolean
opa_strings_startswith,opa_strncmp
+opa_strings_startswith,opa_boolean
opa_strings_substring,opa_value_type
opa_strings_substring,opa_number_try_int
opa_strings_substring,opa_string_terminated
@@ -685,8 +699,8 @@ opa_types_name,opa_string
opa_value_hash,opa_value_hash
opa_value_hash,opa_number_hash
opa_value_compare,opa_value_compare_number
-opa_value_compare,opa_strncmp
-opa_value_compare,opa_value_compare
+opa_value_compare,opa_value_compare_string
+opa_value_compare,opa_value_compare_array
opa_value_compare,opa_value_compare_object
opa_value_compare,opa_value_compare_set
opa_value_compare,opa_abort
@@ -696,8 +710,8 @@ opa_set_get,opa_value_hash
opa_set_get,opa_value_compare
opa_number_try_int,opa_atoi64
opa_number_try_int,opa_abort
-opa_value_get,opa_atoi64
opa_value_get,opa_abort
+opa_value_get,opa_atoi64
opa_value_get,opa_value_hash
opa_value_get,opa_value_compare
opa_value_compare_number,opa_atoi64
@@ -705,14 +719,25 @@ opa_value_compare_number,opa_abort
opa_value_compare_number,opa_number_to_bf
opa_value_compare_number,mpd_qcmp
opa_value_compare_number,mpd_del
+opa_value_compare_string,opa_strncmp
+opa_value_compare_array,opa_value_compare
opa_value_compare_object,opa_object_keys
opa_value_compare_object,opa_value_compare
opa_value_compare_object,opa_value_hash
+opa_value_compare_object,opa_value_compare_number
+opa_value_compare_object,opa_strncmp
+opa_value_compare_object,opa_value_compare_object
+opa_value_compare_object,opa_value_compare_set
+opa_value_compare_object,opa_abort
opa_value_compare_object,opa_free
opa_value_compare_set,opa_malloc
opa_value_compare_set,opa_free
-opa_value_compare_set,opa_array_append
opa_value_compare_set,opa_value_compare
+opa_value_compare_set,opa_value_compare_number
+opa_value_compare_set,opa_strncmp
+opa_value_compare_set,opa_value_compare_object
+opa_value_compare_set,opa_value_compare_set
+opa_value_compare_set,opa_abort
opa_number_hash,opa_atof64
opa_number_hash,opa_abort
opa_value_iter,opa_abort
@@ -721,22 +746,37 @@ opa_value_iter,opa_value_hash
opa_value_iter,opa_value_compare
opa_object_keys,opa_malloc
opa_object_keys,opa_free
-opa_object_keys,opa_array_append
opa_object_keys,opa_value_compare
-opa_array_append,opa_malloc
-opa_array_append,opa_free
+opa_object_keys,opa_value_compare_number
+opa_object_keys,opa_strncmp
+opa_object_keys,opa_value_compare_object
+opa_object_keys,opa_abort
+opa_object_keys,opa_value_compare_set
opa_value_free,opa_free
opa_value_merge,opa_malloc
opa_value_merge,opa_value_get
opa_value_merge,opa_object_insert
opa_value_merge,opa_value_merge
+opa_value_merge,opa_abort
+opa_value_merge,opa_atoi64
+opa_value_merge,opa_value_hash
+opa_value_merge,opa_value_compare_number
+opa_value_merge,opa_strncmp
+opa_value_merge,opa_value_compare
+opa_value_merge,opa_value_compare_object
+opa_value_merge,opa_value_compare_set
opa_object_insert,opa_value_hash
opa_object_insert,opa_value_compare
opa_object_insert,__opa_object_grow
opa_object_insert,opa_malloc
__opa_object_grow,opa_malloc
__opa_object_grow,opa_value_hash
+__opa_object_grow,opa_value_compare_number
+__opa_object_grow,opa_strncmp
__opa_object_grow,opa_value_compare
+__opa_object_grow,opa_value_compare_object
+__opa_object_grow,opa_value_compare_set
+__opa_object_grow,opa_abort
__opa_object_grow,opa_free
opa_boolean,opa_malloc
opa_number_ref,opa_malloc
@@ -755,7 +795,12 @@ opa_set_add,__opa_set_grow
opa_set_add,opa_malloc
__opa_set_grow,opa_malloc
__opa_set_grow,opa_value_hash
+__opa_set_grow,opa_value_compare_number
+__opa_set_grow,opa_strncmp
__opa_set_grow,opa_value_compare
+__opa_set_grow,opa_value_compare_object
+__opa_set_grow,opa_value_compare_set
+__opa_set_grow,opa_abort
__opa_set_grow,opa_free
opa_value_shallow_copy,opa_malloc
opa_value_shallow_copy,opa_value_shallow_copy_object
@@ -769,6 +814,8 @@ __opa_value_transitive_closure,opa_array_append
__opa_value_transitive_closure,opa_value_iter
__opa_value_transitive_closure,opa_value_get
__opa_value_transitive_closure,__opa_value_transitive_closure
+opa_array_append,opa_malloc
+opa_array_append,opa_free
opa_null,opa_malloc
opa_number_size,opa_malloc
opa_number_ref_allocated,opa_malloc
@@ -804,7 +851,7 @@ node::re2\28std::__1::basic_string\2c\20st
node::re2\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29,escape\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29
node::re2\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29,operator\20new\28unsigned\20long\29
node::re2\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29,memcpy
-node::re2\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29,std::__1::__basic_string_common::__throw_length_error\28\29\20const
+node::re2\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29,abort
escape\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29,std::__1::basic_string\2c\20std::__1::allocator\20>::push_back\28char\29
glob_translate\28char\20const*\2c\20unsigned\20long\2c\20std::__1::vector\2c\20std::__1::allocator\20>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>\20const&\2c\20std::__1::basic_string\2c\20std::__1::allocator\20>*\29,operator\20new\28unsigned\20long\29
glob_translate\28char\20const*\2c\20unsigned\20long\2c\20std::__1::vector\2c\20std::__1::allocator\20>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>\20const&\2c\20std::__1::basic_string\2c\20std::__1::allocator\20>*\29,lexer::lexer\28char\20const*\2c\20unsigned\20long\29
@@ -825,41 +872,33 @@ lexer::next\28token*\29,operator\20new\28unsigned\20long\29
lexer::next\28token*\29,memcpy
lexer::next\28token*\29,operator\20delete\28void*\29
lexer::next\28token*\29,std::__1::basic_string\2c\20std::__1::allocator\20>::operator=\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29
+lexer::next\28token*\29,abort
lexer::next\28token*\29,lexer::fetch_item\28\29
-lexer::next\28token*\29,lexer::next\28token*\29
-lexer::next\28token*\29,std::__1::__basic_string_common::__throw_length_error\28\29\20const
lexer::fetch_item\28\29,opa_unicode_decode_utf8
lexer::fetch_item\28\29,operator\20new\28unsigned\20long\29
lexer::fetch_item\28\29,memcpy
lexer::fetch_item\28\29,operator\20delete\28void*\29
lexer::fetch_item\28\29,lexer::fetch_range\28\29
lexer::fetch_item\28\29,lexer::fetch_text\28int\20const*\29
-lexer::fetch_item\28\29,std::__1::__basic_string_common::__throw_length_error\28\29\20const
-lexer::fetch_item\28\29,std::__1::__vector_base_common::__throw_length_error\28\29\20const
lexer::fetch_item\28\29,abort
lexer::fetch_range\28\29,opa_unicode_decode_utf8
lexer::fetch_range\28\29,operator\20new\28unsigned\20long\29
lexer::fetch_range\28\29,memcpy
lexer::fetch_range\28\29,operator\20delete\28void*\29
lexer::fetch_range\28\29,lexer::fetch_text\28int\20const*\29
-lexer::fetch_range\28\29,std::__1::__basic_string_common::__throw_length_error\28\29\20const
-lexer::fetch_range\28\29,std::__1::__vector_base_common::__throw_length_error\28\29\20const
lexer::fetch_range\28\29,abort
lexer::fetch_text\28int\20const*\29,opa_unicode_decode_utf8
lexer::fetch_text\28int\20const*\29,operator\20new\28unsigned\20long\29
lexer::fetch_text\28int\20const*\29,memcpy
lexer::fetch_text\28int\20const*\29,operator\20delete\28void*\29
-lexer::fetch_text\28int\20const*\29,std::__1::__vector_base_common::__throw_length_error\28\29\20const
lexer::fetch_text\28int\20const*\29,opa_malloc
lexer::fetch_text\28int\20const*\29,opa_free
lexer::fetch_text\28int\20const*\29,abort
-lexer::fetch_text\28int\20const*\29,std::__1::__basic_string_common::__throw_length_error\28\29\20const
node::~node\28\29,node::~node\28\29
node::~node\28\29,operator\20delete\28void*\29
node::insert\28node*\29,operator\20new\28unsigned\20long\29
node::insert\28node*\29,memcpy
node::insert\28node*\29,operator\20delete\28void*\29
-node::insert\28node*\29,std::__1::__vector_base_common::__throw_length_error\28\29\20const
node::insert\28node*\29,abort
glob_parse\28lexer*\2c\20node**\29,operator\20new\28unsigned\20long\29
glob_parse\28lexer*\2c\20node**\29,std::__1::basic_string\2c\20std::__1::allocator\20>::compare\28unsigned\20long\2c\20unsigned\20long\2c\20char\20const*\2c\20unsigned\20long\29\20const
@@ -888,7 +927,6 @@ opa_glob_match,opa_value_iter
opa_glob_match,opa_value_get
opa_glob_match,operator\20new\28unsigned\20long\29
opa_glob_match,memcpy
-opa_glob_match,void\20std::__1::vector\2c\20std::__1::allocator\20>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>::__push_back_slow_path\2c\20std::__1::allocator\20>\20>\28std::__1::basic_string\2c\20std::__1::allocator\20>&&\29
opa_glob_match,operator\20delete\28void*\29
opa_glob_match,opa_builtin_cache_get
opa_glob_match,opa_builtin_cache_set
@@ -896,31 +934,31 @@ opa_glob_match,std::__1::basic_string\2c\2
opa_glob_match,std::__1::__hash_iterator\2c\20std::__1::allocator\20>\20>\2c\20void*>*>\20std::__1::__hash_table\2c\20std::__1::allocator\20>\20>\2c\20std::__1::__unordered_map_hasher\2c\20std::__1::allocator\20>\20>\2c\20std::__1::hash\2c\20std::__1::equal_to\2c\20true>\2c\20std::__1::__unordered_map_equal\2c\20std::__1::allocator\20>\20>\2c\20std::__1::equal_to\2c\20std::__1::hash\2c\20true>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>\20>::find\28cache_key\20const&\29
opa_glob_match,std::__1::basic_string\2c\20std::__1::allocator\20>::operator=\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29
opa_glob_match,glob_translate\28char\20const*\2c\20unsigned\20long\2c\20std::__1::vector\2c\20std::__1::allocator\20>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>\20const&\2c\20std::__1::basic_string\2c\20std::__1::allocator\20>*\29
+opa_glob_match,cache\28\29
opa_glob_match,std::__1::pair\2c\20std::__1::allocator\20>\20>::pair\2c\20std::__1::allocator\20>&\2c\20false>\28cache_key&\2c\20std::__1::basic_string\2c\20std::__1::allocator\20>&\29
opa_glob_match,std::__1::pair\2c\20std::__1::allocator\20>\20>\2c\20void*>*>\2c\20bool>\20std::__1::__hash_table\2c\20std::__1::allocator\20>\20>\2c\20std::__1::__unordered_map_hasher\2c\20std::__1::allocator\20>\20>\2c\20std::__1::hash\2c\20std::__1::equal_to\2c\20true>\2c\20std::__1::__unordered_map_equal\2c\20std::__1::allocator\20>\20>\2c\20std::__1::equal_to\2c\20std::__1::hash\2c\20true>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>\20>::__emplace_unique_key_args\2c\20std::__1::allocator\20>\20>\20>\28cache_key\20const&\2c\20std::__1::pair\2c\20std::__1::allocator\20>\20>&&\29
+opa_glob_match,std::__1::pair\2c\20std::__1::allocator\20>\20>::~pair\28\29
opa_glob_match,opa_string
opa_glob_match,opa_regex_match
-opa_glob_match,std::__1::__basic_string_common::__throw_length_error\28\29\20const
-opa_glob_match,std::__1::__vector_base_common::__throw_length_error\28\29\20const
-void\20std::__1::vector\2c\20std::__1::allocator\20>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>::__push_back_slow_path\2c\20std::__1::allocator\20>\20>\28std::__1::basic_string\2c\20std::__1::allocator\20>&&\29,operator\20new\28unsigned\20long\29
-void\20std::__1::vector\2c\20std::__1::allocator\20>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>::__push_back_slow_path\2c\20std::__1::allocator\20>\20>\28std::__1::basic_string\2c\20std::__1::allocator\20>&&\29,operator\20delete\28void*\29
-void\20std::__1::vector\2c\20std::__1::allocator\20>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>::__push_back_slow_path\2c\20std::__1::allocator\20>\20>\28std::__1::basic_string\2c\20std::__1::allocator\20>&&\29,std::__1::__vector_base_common::__throw_length_error\28\29\20const
-void\20std::__1::vector\2c\20std::__1::allocator\20>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>::__push_back_slow_path\2c\20std::__1::allocator\20>\20>\28std::__1::basic_string\2c\20std::__1::allocator\20>&&\29,abort
+opa_glob_match,abort
std::__1::__hash_iterator\2c\20std::__1::allocator\20>\20>\2c\20void*>*>\20std::__1::__hash_table\2c\20std::__1::allocator\20>\20>\2c\20std::__1::__unordered_map_hasher\2c\20std::__1::allocator\20>\20>\2c\20std::__1::hash\2c\20std::__1::equal_to\2c\20true>\2c\20std::__1::__unordered_map_equal\2c\20std::__1::allocator\20>\20>\2c\20std::__1::equal_to\2c\20std::__1::hash\2c\20true>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>\20>::find\28cache_key\20const&\29,std::__1::__unordered_map_hasher\2c\20std::__1::allocator\20>\20>\2c\20std::__1::hash\2c\20std::__1::equal_to\2c\20true>::operator\28\29\28cache_key\20const&\29\20const
std::__1::__hash_iterator\2c\20std::__1::allocator\20>\20>\2c\20void*>*>\20std::__1::__hash_table\2c\20std::__1::allocator\20>\20>\2c\20std::__1::__unordered_map_hasher\2c\20std::__1::allocator\20>\20>\2c\20std::__1::hash\2c\20std::__1::equal_to\2c\20true>\2c\20std::__1::__unordered_map_equal\2c\20std::__1::allocator\20>\20>\2c\20std::__1::equal_to\2c\20std::__1::hash\2c\20true>\2c\20std::__1::allocator\2c\20std::__1::allocator\20>\20>\20>\20>::find\28cache_key\20const&\29,std::__1::equal_to::operator\28\29\28cache_key\20const&\2c\20cache_key\20const&\29\20const
+cache\28\29,opa_builtin_cache_get
+cache\28\29,operator\20new\28unsigned\20long\29
+cache\28\29,opa_builtin_cache_set
std::__1::pair\2c\20std::__1::allocator\20>\20>::pair\2c\20std::__1::allocator\20>&\2c\20false>\28cache_key&\2c\20std::__1::basic_string\2c\20std::__1::allocator\20>&\29,std::__1::basic_string\2c\20std::__1::allocator\20>::basic_string\28std::__1::basic_string\2c\20std::__1::allocator\20>\20const&\29
std::__1::pair\2c\20std::__1::allocator\20>\20>::pair\2c\20std::__1::allocator\20>&\2c\20false>\28cache_key&\2c\20std::__1::basic_string\2c\20std::__1::allocator\20>&\29,operator\20new\28unsigned\20long\29
-std::__1::pair\2c\20std::__1::allocator\20>\20>::pair\2c\20std::__1::allocator\20>&\2c\20false>\28cache_key&\2c\20std::__1::basic_string\2c\20std::__1::allocator\20>&\29,std::__1::__vector_base_common::__throw_length_error\28\29\20const
+std::__1::pair\2c\20std::__1::allocator\20>\20>::pair\2c\20std::__1::allocator\20>&\2c\20false>\28cache_key&\2c\20std::__1::basic_string