diff options
author | Wim <wim@42.be> | 2020-05-24 00:06:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-24 00:06:21 +0200 |
commit | 393f9e998b1b40aa59d3fb8794c3a73da38c3fb7 (patch) | |
tree | 2bc9b6e6abdbdc6d811b155997597bdae62bc7db /vendor/github.com | |
parent | ba0bfe70a8f07164e1341f4b094841acdad5c3a2 (diff) | |
download | matterbridge-msglm-393f9e998b1b40aa59d3fb8794c3a73da38c3fb7.tar.gz matterbridge-msglm-393f9e998b1b40aa59d3fb8794c3a73da38c3fb7.tar.bz2 matterbridge-msglm-393f9e998b1b40aa59d3fb8794c3a73da38c3fb7.zip |
Update dependencies / vendor (#1146)
Diffstat (limited to 'vendor/github.com')
273 files changed, 7090 insertions, 1668 deletions
diff --git a/vendor/github.com/d5/tengo/v2/Makefile b/vendor/github.com/d5/tengo/v2/Makefile index 793bc129..d461b661 100644 --- a/vendor/github.com/d5/tengo/v2/Makefile +++ b/vendor/github.com/d5/tengo/v2/Makefile @@ -6,6 +6,7 @@ lint: test: generate lint go test -race -cover ./... + go run ./cmd/tengo -resolve ./testdata/cli/test.tengo fmt: go fmt ./... diff --git a/vendor/github.com/d5/tengo/v2/README.md b/vendor/github.com/d5/tengo/v2/README.md index f170be24..bee19599 100644 --- a/vendor/github.com/d5/tengo/v2/README.md +++ b/vendor/github.com/d5/tengo/v2/README.md @@ -5,8 +5,8 @@ # The Tengo Language [![GoDoc](https://godoc.org/github.com/d5/tengo?status.svg)](https://godoc.org/github.com/d5/tengo) +![test](https://github.com/d5/tengo/workflows/test/badge.svg) [![Go Report Card](https://goreportcard.com/badge/github.com/d5/tengo)](https://goreportcard.com/report/github.com/d5/tengo) -[![CircleCI](https://circleci.com/gh/d5/tengo.svg?style=svg)](https://circleci.com/gh/d5/tengo) **Tengo is a small, dynamic, fast, secure script language for Go.** @@ -51,19 +51,21 @@ fmt.println(sum("", [1, 2, 3])) // "123" ## Benchmark -| | fib(35) | fibt(35) | Type | +| | fib(35) | fibt(35) | Language (Type) | | :--- | ---: | ---: | :---: | -| Go | `48ms` | `3ms` | Go (native) | -| [**Tengo**](https://github.com/d5/tengo) | `2,349ms` | `5ms` | VM on Go | -| Lua | `1,416ms` | `3ms` | Lua (native) | -| [go-lua](https://github.com/Shopify/go-lua) | `4,402ms` | `5ms` | Lua VM on Go | -| [GopherLua](https://github.com/yuin/gopher-lua) | `4,023ms` | `5ms` | Lua VM on Go | -| Python | `2,588ms` | `26ms` | Python (native) | -| [starlark-go](https://github.com/google/starlark-go) | `11,126ms` | `6ms` | Python-like Interpreter on Go | -| [gpython](https://github.com/go-python/gpython) | `15,035ms` | `4ms` | Python Interpreter on Go | -| [goja](https://github.com/dop251/goja) | `5,089ms` | `5ms` | JS VM on Go | -| [otto](https://github.com/robertkrimen/otto) | `68,377ms` | `11ms` | JS Interpreter on Go | -| [Anko](https://github.com/mattn/anko) | `92,579ms` | `18ms` | Interpreter on Go | +| [**Tengo**](https://github.com/d5/tengo) | `2,931ms` | `4ms` | Tengo (VM) | +| [go-lua](https://github.com/Shopify/go-lua) | `4,824ms` | `4ms` | Lua (VM) | +| [GopherLua](https://github.com/yuin/gopher-lua) | `5,365ms` | `4ms` | Lua (VM) | +| [goja](https://github.com/dop251/goja) | `5,533ms` | `5ms` | JavaScript (VM) | +| [starlark-go](https://github.com/google/starlark-go) | `11,495ms` | `5ms` | Starlark (Interpreter) | +| [Yaegi](https://github.com/containous/yaegi) | `15,645ms` | `12ms` | Yaegi (Interpreter) | +| [gpython](https://github.com/go-python/gpython) | `16,322ms` | `5ms` | Python (Interpreter) | +| [otto](https://github.com/robertkrimen/otto) | `73,093ms` | `10ms` | JavaScript (Interpreter) | +| [Anko](https://github.com/mattn/anko) | `79,809ms` | `8ms` | Anko (Interpreter) | +| - | - | - | - | +| Go | `53ms` | `3ms` | Go (Native) | +| Lua | `1,612ms` | `3ms` | Lua (Native) | +| Python | `2,632ms` | `23ms` | Python 2 (Native) | _* [fib(35)](https://github.com/d5/tengobench/blob/master/code/fib.tengo): Fibonacci(35)_ @@ -136,3 +138,10 @@ each([a, b, c, d], func(x) { - [Interoperability](https://github.com/d5/tengo/blob/master/docs/interoperability.md) - [Tengo CLI](https://github.com/d5/tengo/blob/master/docs/tengo-cli.md) - [Standard Library](https://github.com/d5/tengo/blob/master/docs/stdlib.md) +- Syntax Highlighters: [VSCode](https://github.com/lissein/vscode-tengo), [Atom](https://github.com/d5/tengo-atom) +- **Why the name Tengo?** It's from [1Q84](https://en.wikipedia.org/wiki/1Q84). + +## + +:hearts: Like writing Go code? Come work at Skool. [We're hiring!](https://jobs.lever.co/skool) + diff --git a/vendor/github.com/d5/tengo/v2/bytecode.go b/vendor/github.com/d5/tengo/v2/bytecode.go index cfd0d0b5..f3049cee 100644 --- a/vendor/github.com/d5/tengo/v2/bytecode.go +++ b/vendor/github.com/d5/tengo/v2/bytecode.go @@ -97,6 +97,7 @@ func (b *Bytecode) RemoveDuplicates() { var deduped []Object indexMap := make(map[int]int) // mapping from old constant index to new index + fns := make(map[*CompiledFunction]int) ints := make(map[int64]int) strings := make(map[string]int) floats := make(map[float64]int) @@ -106,9 +107,14 @@ func (b *Bytecode) RemoveDuplicates() { for curIdx, c := range b.Constants { switch c := c.(type) { case *CompiledFunction: - // add to deduped list - indexMap[curIdx] = len(deduped) - deduped = append(deduped, c) + if newIdx, ok := fns[c]; ok { + indexMap[curIdx] = newIdx + } else { + newIdx = len(deduped) + fns[c] = newIdx + indexMap[curIdx] = newIdx + deduped = append(deduped, c) + } case *ImmutableMap: modName := inferModuleName(c) newIdx, ok := immutableMaps[modName] diff --git a/vendor/github.com/d5/tengo/v2/compiler.go b/vendor/github.com/d5/tengo/v2/compiler.go index eb686ed6..cb1c8f30 100644 --- a/vendor/github.com/d5/tengo/v2/compiler.go +++ b/vendor/github.com/d5/tengo/v2/compiler.go @@ -44,6 +44,7 @@ type Compiler struct { file *parser.SourceFile parent *Compiler modulePath string + importDir string constants []Object symbolTable *SymbolTable scopes []compilationScope @@ -520,7 +521,7 @@ func (c *Compiler) Compile(node parser.Node) error { switch v := v.(type) { case []byte: // module written in Tengo compiled, err := c.compileModule(node, - node.ModuleName, node.ModuleName, v) + node.ModuleName, v, false) if err != nil { return err } @@ -537,24 +538,20 @@ func (c *Compiler) Compile(node parser.Node) error { moduleName += ".tengo" } - modulePath, err := filepath.Abs(moduleName) + modulePath, err := filepath.Abs( + filepath.Join(c.importDir, moduleName)) if err != nil { return c.errorf(node, "module file path error: %s", err.Error()) } - if err := c.checkCyclicImports(node, modulePath); err != nil { - return err - } - - moduleSrc, err := ioutil.ReadFile(moduleName) + moduleSrc, err := ioutil.ReadFile(modulePath) if err != nil { return c.errorf(node, "module file read error: %s", err.Error()) } - compiled, err := c.compileModule(node, - moduleName, modulePath, moduleSrc) + compiled, err := c.compileModule(node, modulePath, moduleSrc, true) if err != nil { return err } @@ -634,6 +631,11 @@ func (c *Compiler) EnableFileImport(enable bool) { c.allowFileImport = enable } +// SetImportDir sets the initial import directory path for file imports. +func (c *Compiler) SetImportDir(dir string) { + c.importDir = dir +} + func (c *Compiler) compileAssign( node parser.Node, lhs, rhs []parser.Expr, @@ -847,8 +849,8 @@ func (c *Compiler) compileForInStmt(stmt *parser.ForInStmt) error { // ... body ... // } // - // ":it" is a local variable but will be conflict with other user variables - // because character ":" is not allowed. + // ":it" is a local variable but it will not conflict with other user variables + // because character ":" is not allowed in the variable names. // init // :it = iterator(iterable) @@ -893,6 +895,7 @@ func (c *Compiler) compileForInStmt(stmt *parser.ForInStmt) error { if keySymbol.Scope == ScopeGlobal { c.emit(stmt, parser.OpSetGlobal, keySymbol.Index) } else { + keySymbol.LocalAssigned = true c.emit(stmt, parser.OpDefineLocal, keySymbol.Index) } } @@ -909,6 +912,7 @@ func (c *Compiler) compileForInStmt(stmt *parser.ForInStmt) error { if valueSymbol.Scope == ScopeGlobal { c.emit(stmt, parser.OpSetGlobal, valueSymbol.Index) } else { + valueSymbol.LocalAssigned = true c.emit(stmt, parser.OpDefineLocal, valueSymbol.Index) } } @@ -955,8 +959,9 @@ func (c *Compiler) checkCyclicImports( func (c *Compiler) compileModule( node parser.Node, - moduleName, modulePath string, + modulePath string, src []byte, + isFile bool, ) (*CompiledFunction, error) { if err := c.checkCyclicImports(node, modulePath); err != nil { return nil, err @@ -967,7 +972,7 @@ func (c *Compiler) compileModule( return compiledModule, nil } - modFile := c.file.Set().AddFile(moduleName, -1, len(src)) + modFile := c.file.Set().AddFile(modulePath, -1, len(src)) p := parser.NewParser(modFile, src, nil) file, err := p.ParseFile() if err != nil { @@ -984,7 +989,7 @@ func (c *Compiler) compileModule( symbolTable = symbolTable.Fork(false) // compile module - moduleCompiler := c.fork(modFile, modulePath, symbolTable) + moduleCompiler := c.fork(modFile, modulePath, symbolTable, isFile) if err := moduleCompiler.Compile(file); err != nil { return nil, err } @@ -1082,10 +1087,16 @@ func (c *Compiler) fork( file *parser.SourceFile, modulePath string, symbolTable *SymbolTable, + isFile bool, ) *Compiler { child := NewCompiler(file, symbolTable, nil, c.modules, c.trace) child.modulePath = modulePath // module file path child.parent = c // parent to set to current compiler + child.allowFileImport = c.allowFileImport + child.importDir = c.importDir + if isFile && c.importDir != "" { + child.importDir = filepath.Dir(modulePath) + } return child } @@ -1192,6 +1203,7 @@ func (c *Compiler) optimizeFunc(node parser.Node) { var lastOp parser.Opcode var appendReturn bool endPos := len(c.scopes[c.scopeIndex].Instructions) + newEndPost := len(newInsts) iterateInstructions(newInsts, func(pos int, opcode parser.Opcode, operands []int) bool { switch opcode { @@ -1204,6 +1216,8 @@ func (c *Compiler) optimizeFunc(node parser.Node) { } else if endPos == operands[0] { // there's a jump instruction that jumps to the end of // function compiler should append "return". + copy(newInsts[pos:], + MakeInstruction(opcode, newEndPost)) appendReturn = true } else { panic(fmt.Errorf("invalid jump position: %d", newDst)) diff --git a/vendor/github.com/d5/tengo/v2/script.go b/vendor/github.com/d5/tengo/v2/script.go index 906771d9..4f9608c1 100644 --- a/vendor/github.com/d5/tengo/v2/script.go +++ b/vendor/github.com/d5/tengo/v2/script.go @@ -3,6 +3,7 @@ package tengo import ( "context" "fmt" + "path/filepath" "sync" "github.com/d5/tengo/v2/parser" @@ -16,6 +17,7 @@ type Script struct { maxAllocs int64 maxConstObjects int enableFileImport bool + importDir string } // NewScript creates a Script instance with an input script. @@ -56,6 +58,16 @@ func (s *Script) SetImports(modules *ModuleMap) { s.modules = modules } +// SetImportDir sets the initial import directory for script files. +func (s *Script) SetImportDir(dir string) error { + dir, err := filepath.Abs(dir) + if err != nil { + return err + } + s.importDir = dir + return nil +} + // SetMaxAllocs sets the maximum number of objects allocations during the run // time. Compiled script will return ErrObjectAllocLimit error if it // exceeds this limit. @@ -93,6 +105,7 @@ func (s *Script) Compile() (*Compiled, error) { c := NewCompiler(srcFile, symbolTable, nil, s.modules, nil) c.EnableFileImport(s.enableFileImport) + c.SetImportDir(s.importDir) if err := c.Compile(file); err != nil { return nil, err } diff --git a/vendor/github.com/d5/tengo/v2/stdlib/json/encode.go b/vendor/github.com/d5/tengo/v2/stdlib/json/encode.go index ab7ca6ff..10805b01 100644 --- a/vendor/github.com/d5/tengo/v2/stdlib/json/encode.go +++ b/vendor/github.com/d5/tengo/v2/stdlib/json/encode.go @@ -1,20 +1,129 @@ // A modified version of Go's JSON implementation. -// Copyright 2010 The Go Authors. All rights reserved. +// Copyright 2010, 2020 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package json import ( + "bytes" "encoding/base64" "errors" "math" "strconv" + "unicode/utf8" "github.com/d5/tengo/v2" ) +// safeSet holds the value true if the ASCII character with the given array +// position can be represented inside a JSON string without any further +// escaping. +// +// All values are true except for the ASCII control characters (0-31), the +// double quote ("), and the backslash character ("\"). +var safeSet = [utf8.RuneSelf]bool{ + ' ': true, + '!': true, + '"': false, + '#': true, + '$': true, + '%': true, + '&': true, + '\'': true, + '(': true, + ')': true, + '*': true, + '+': true, + ',': true, + '-': true, + '.': true, + '/': true, + '0': true, + '1': true, + '2': true, + '3': true, + '4': true, + '5': true, + '6': true, + '7': true, + '8': true, + '9': true, + ':': true, + ';': true, + '<': true, + '=': true, + '>': true, + '?': true, + '@': true, + 'A': true, + 'B': true, + 'C': true, + 'D': true, + 'E': true, + 'F': true, + 'G': true, + 'H': true, + 'I': true, + 'J': true, + 'K': true, + 'L': true, + 'M': true, + 'N': true, + 'O': true, + 'P': true, + 'Q': true, + 'R': true, + 'S': true, + 'T': true, + 'U': true, + 'V': true, + 'W': true, + 'X': true, + 'Y': true, + 'Z': true, + '[': true, + '\\': false, + ']': true, + '^': true, + '_': true, + '`': true, + 'a': true, + 'b': true, + 'c': true, + 'd': true, + 'e': true, + 'f': true, + 'g': true, + 'h': true, + 'i': true, + 'j': true, + 'k': true, + 'l': true, + 'm': true, + 'n': true, + 'o': true, + 'p': true, + 'q': true, + 'r': true, + 's': true, + 't': true, + 'u': true, + 'v': true, + 'w': true, + 'x': true, + 'y': true, + 'z': true, + '{': true, + '|': true, + '}': true, + '~': true, + '\u007f': true, +} + +var hex = "0123456789abcdef" + // Encode returns the JSON encoding of the object. func Encode(o tengo.Object) ([]byte, error) { var b []byte @@ -53,7 +162,7 @@ func Encode(o tengo.Object) ([]byte, error) { len1 := len(o.Value) - 1 idx := 0 for key, value := range o.Value { - b = strconv.AppendQuote(b, key) + b = encodeString(b, key) b = append(b, ':') eb, err := Encode(value) if err != nil { @@ -71,7 +180,7 @@ func Encode(o tengo.Object) ([]byte, error) { len1 := len(o.Value) - 1 idx := 0 for key, value := range o.Value { - b = strconv.AppendQuote(b, key) + b = encodeString(b, key) b = append(b, ':') eb, err := Encode(value) if err != nil { @@ -130,7 +239,9 @@ func Encode(o tengo.Object) ([]byte, error) { case *tengo.Int: b = strconv.AppendInt(b, o.Value, 10) case *tengo.String: - b = strconv.AppendQuote(b, o.Value) + // string encoding bug is fixed with newly introduced function + // encodeString(). See: https://github.com/d5/tengo/issues/268 + b = encodeString(b, o.Value) case *tengo.Time: y, err := o.Value.MarshalJSON() if err != nil { @@ -144,3 +255,79 @@ func Encode(o tengo.Object) ([]byte, error) { } return b, nil } + +// encodeString encodes given string as JSON string according to +// https://www.json.org/img/string.png +// Implementation is inspired by https://github.com/json-iterator/go +// See encodeStringSlowPath() for more information. +func encodeString(b []byte, val string) []byte { + valLen := len(val) + buf := bytes.NewBuffer(b) + buf.WriteByte('"') + + // write string, the fast path, without utf8 and escape support + i := 0 + for ; i < valLen; i++ { + c := val[i] + if c > 31 && c != '"' && c != '\\' { + buf.WriteByte(c) + } else { + break + } + } + if i == valLen { + buf.WriteByte('"') + return buf.Bytes() + } + encodeStringSlowPath(buf, i, val, valLen) + buf.WriteByte('"') + return buf.Bytes() +} + +// encodeStringSlowPath is ported from Go 1.14.2 encoding/json package. +// U+2028 U+2029 JSONP security holes can be fixed with addition call to +// json.html_escape() thus it is removed from the implementation below. +// Note: Invalid runes are not checked as they are checked in original +// implementation. +func encodeStringSlowPath(buf *bytes.Buffer, i int, val string, valLen int) { + start := i + for i < valLen { + if b := val[i]; b < utf8.RuneSelf { + if safeSet[b] { + i++ + continue + } + if start < i { + buf.WriteString(val[start:i]) + } + buf.WriteByte('\\') + switch b { + case '\\', '"': + buf.WriteByte(b) + case '\n': + buf.WriteByte('n') + case '\r': + buf.WriteByte('r') + case '\t': + buf.WriteByte('t') + default: + // This encodes bytes < 0x20 except for \t, \n and \r. + // If escapeHTML is set, it also escapes <, >, and & + // because they can lead to security holes when + // user-controlled strings are rendered into JSON + // and served to some browsers. + buf.WriteString(`u00`) + buf.WriteByte(hex[b>>4]) + buf.WriteByte(hex[b&0xF]) + } + i++ + start = i + continue + } + i++ + continue + } + if start < valLen { + buf.WriteString(val[start:]) + } +} diff --git a/vendor/github.com/fsnotify/fsnotify/.editorconfig b/vendor/github.com/fsnotify/fsnotify/.editorconfig index ba49e3c2..fad89585 100644 --- a/vendor/github.com/fsnotify/fsnotify/.editorconfig +++ b/vendor/github.com/fsnotify/fsnotify/.editorconfig @@ -1,5 +1,12 @@ root = true -[*] +[*.go] indent_style = tab indent_size = 4 +insert_final_newline = true + +[*.{yml,yaml}] +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/vendor/github.com/fsnotify/fsnotify/.gitattributes b/vendor/github.com/fsnotify/fsnotify/.gitattributes new file mode 100644 index 00000000..32f1001b --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/.gitattributes @@ -0,0 +1 @@ +go.sum linguist-generated diff --git a/vendor/github.com/fsnotify/fsnotify/.travis.yml b/vendor/github.com/fsnotify/fsnotify/.travis.yml index 981d1bb8..a9c30165 100644 --- a/vendor/github.com/fsnotify/fsnotify/.travis.yml +++ b/vendor/github.com/fsnotify/fsnotify/.travis.yml @@ -2,29 +2,35 @@ sudo: false language: go go: - - 1.8.x - - 1.9.x - - tip + - "stable" + - "1.11.x" + - "1.10.x" + - "1.9.x" matrix: + include: + - go: "stable" + env: GOLINT=true allow_failures: - go: tip fast_finish: true -before_script: - - go get -u github.com/golang/lint/golint + +before_install: + - if [ ! -z "${GOLINT}" ]; then go get -u golang.org/x/lint/golint; fi script: - - go test -v --race ./... + - go test --race ./... after_script: - test -z "$(gofmt -s -l -w . | tee /dev/stderr)" - - test -z "$(golint ./... | tee /dev/stderr)" + - if [ ! -z "${GOLINT}" ]; then echo running golint; golint --set_exit_status ./...; else echo skipping golint; fi - go vet ./... os: - linux - osx + - windows notifications: email: false diff --git a/vendor/github.com/fsnotify/fsnotify/LICENSE b/vendor/github.com/fsnotify/fsnotify/LICENSE index f21e5408..e180c8fb 100644 --- a/vendor/github.com/fsnotify/fsnotify/LICENSE +++ b/vendor/github.com/fsnotify/fsnotify/LICENSE @@ -1,5 +1,5 @@ Copyright (c) 2012 The Go Authors. All rights reserved. -Copyright (c) 2012 fsnotify Authors. All rights reserved. +Copyright (c) 2012-2019 fsnotify Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are diff --git a/vendor/github.com/fsnotify/fsnotify/README.md b/vendor/github.com/fsnotify/fsnotify/README.md index 39932074..b2629e52 100644 --- a/vendor/github.com/fsnotify/fsnotify/README.md +++ b/vendor/github.com/fsnotify/fsnotify/README.md @@ -10,16 +10,16 @@ go get -u golang.org/x/sys/... Cross platform: Windows, Linux, BSD and macOS. -|Adapter |OS |Status | -|----------|----------|----------| -|inotify |Linux 2.6.27 or later, Android\*|Supported [![Build Status](https://travis-ci.org/fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/fsnotify/fsnotify)| -|kqueue |BSD, macOS, iOS\*|Supported [![Build Status](https://travis-ci.org/fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/fsnotify/fsnotify)| -|ReadDirectoryChangesW|Windows|Supported [![Build status](https://ci.appveyor.com/api/projects/status/ivwjubaih4r0udeh/branch/master?svg=true)](https://ci.appveyor.com/project/NathanYoungman/fsnotify/branch/master)| -|FSEvents |macOS |[Planned](https://github.com/fsnotify/fsnotify/issues/11)| -|FEN |Solaris 11 |[In Progress](https://github.com/fsnotify/fsnotify/issues/12)| -|fanotify |Linux 2.6.37+ | | -|USN Journals |Windows |[Maybe](https://github.com/fsnotify/fsnotify/issues/53)| -|Polling |*All* |[Maybe](https://github.com/fsnotify/fsnotify/issues/9)| +| Adapter | OS | Status | +| --------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| inotify | Linux 2.6.27 or later, Android\* | Supported [![Build Status](https://travis-ci.org/fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/fsnotify/fsnotify) | +| kqueue | BSD, macOS, iOS\* | Supported [![Build Status](https://travis-ci.org/fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/fsnotify/fsnotify) | +| ReadDirectoryChangesW | Windows | Supported [![Build Status](https://travis-ci.org/fsnotify/fsnotify.svg?branch=master)](https://travis-ci.org/fsnotify/fsnotify) | +| FSEvents | macOS | [Planned](https://github.com/fsnotify/fsnotify/issues/11) | +| FEN | Solaris 11 | [In Progress](https://github.com/fsnotify/fsnotify/issues/12) | +| fanotify | Linux 2.6.37+ | [Planned](https://github.com/fsnotify/fsnotify/issues/114) | +| USN Journals | Windows | [Maybe](https://github.com/fsnotify/fsnotify/issues/53) | +| Polling | *All* | [Maybe](https://github.com/fsnotify/fsnotify/issues/9) | \* Android and iOS are untested. @@ -33,6 +33,53 @@ All [releases](https://github.com/fsnotify/fsnotify/releases) are tagged based o Go 1.6 supports dependencies located in the `vendor/` folder. Unless you are creating a library, it is recommended that you copy fsnotify into `vendor/github.com/fsnotify/fsnotify` within your project, and likewise for `golang.org/x/sys`. +## Usage + +```go +package main + +import ( + "log" + + "github.com/fsnotify/fsnotify" +) + +func main() { + watcher, err := fsnotify.NewWatcher() + if err != nil { + log.Fatal(err) + } + defer watcher.Close() + + done := make(chan bool) + go func() { + for { + select { + case event, ok := <-watcher.Events: + if !ok { + return + } + log.Println("event:", event) + if event.Op&fsnotify.Write == fsnotify.Write { + log.Println("modified file:", event.Name) + } + case err, ok := <-watcher.Errors: + if !ok { + return + } + log.Println("error:", err) + } + } + }() + + err = watcher.Add("/tmp/foo") + if err != nil { + log.Fatal(err) + } + <-done +} +``` + ## Contributing Please refer to [CONTRIBUTING][] before opening an issue or pull request. @@ -65,6 +112,10 @@ There are OS-specific limits as to how many watches can be created: * Linux: /proc/sys/fs/inotify/max_user_watches contains the limit, reaching this limit results in a "no space left on device" error. * BSD / OSX: sysctl variables "kern.maxfiles" and "kern.maxfilesperproc", reaching these limits results in a "too many open files" error. +**Why don't notifications work with NFS filesystems or filesystem in userspace (FUSE)?** + +fsnotify requires support from underlying OS to work. The current NFS protocol does not provide network level support for file notifications. + [#62]: https://github.com/howeyc/fsnotify/issues/62 [#18]: https://github.com/fsnotify/fsnotify/issues/18 [#11]: https://github.com/fsnotify/fsnotify/issues/11 diff --git a/vendor/github.com/fsnotify/fsnotify/fsnotify.go b/vendor/github.com/fsnotify/fsnotify/fsnotify.go index 190bf0de..89cab046 100644 --- a/vendor/github.com/fsnotify/fsnotify/fsnotify.go +++ b/vendor/github.com/fsnotify/fsnotify/fsnotify.go @@ -63,4 +63,6 @@ func (e Event) String() string { } // Common errors that can be reported by a watcher -var ErrEventOverflow = errors.New("fsnotify queue overflow") +var ( + ErrEventOverflow = errors.New("fsnotify queue overflow") +) diff --git a/vendor/github.com/fsnotify/fsnotify/go.mod b/vendor/github.com/fsnotify/fsnotify/go.mod new file mode 100644 index 00000000..ff11e13f --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/go.mod @@ -0,0 +1,5 @@ +module github.com/fsnotify/fsnotify + +go 1.13 + +require golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 diff --git a/vendor/github.com/fsnotify/fsnotify/go.sum b/vendor/github.com/fsnotify/fsnotify/go.sum new file mode 100644 index 00000000..f60af985 --- /dev/null +++ b/vendor/github.com/fsnotify/fsnotify/go.sum @@ -0,0 +1,2 @@ +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 h1:L2auWcuQIvxz9xSEqzESnV/QN/gNRXNApHi3fYwl2w0= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/vendor/github.com/fsnotify/fsnotify/inotify_poller.go b/vendor/github.com/fsnotify/fsnotify/inotify_poller.go index cc7db4b2..b33f2b4d 100644 --- a/vendor/github.com/fsnotify/fsnotify/inotify_poller.go +++ b/vendor/github.com/fsnotify/fsnotify/inotify_poller.go @@ -40,12 +40,12 @@ func newFdPoller(fd int) (*fdPoller, error) { poller.fd = fd // Create epoll fd - poller.epfd, errno = unix.EpollCreate1(0) + poller.epfd, errno = unix.EpollCreate1(unix.EPOLL_CLOEXEC) if poller.epfd == -1 { return nil, errno } // Create pipe; pipe[0] is the read end, pipe[1] the write end. - errno = unix.Pipe2(poller.pipe[:], unix.O_NONBLOCK) + errno = unix.Pipe2(poller.pipe[:], unix.O_NONBLOCK|unix.O_CLOEXEC) if errno != nil { return nil, errno } diff --git a/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go b/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go index 7d8de145..2306c462 100644 --- a/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go +++ b/vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go @@ -8,4 +8,4 @@ package fsnotify import "golang.org/x/sys/unix" -const openMode = unix.O_NONBLOCK | unix.O_RDONLY +const openMode = unix.O_NONBLOCK | unix.O_RDONLY | unix.O_CLOEXEC diff --git a/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go b/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go index 9139e171..870c4d6d 100644 --- a/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go +++ b/vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go @@ -9,4 +9,4 @@ package fsnotify import "golang.org/x/sys/unix" // note: this constant is not defined on BSD -const openMode = unix.O_EVTONLY +const openMode = unix.O_EVTONLY | unix.O_CLOEXEC diff --git a/vendor/github.com/golang/protobuf/proto/properties.go b/vendor/github.com/golang/protobuf/proto/properties.go index 79668ff5..a4b8c0cd 100644 --- a/vendor/github.com/golang/protobuf/proto/properties.go +++ b/vendor/github.com/golang/protobuf/proto/properties.go @@ -38,7 +38,6 @@ package proto import ( "fmt" "log" - "os" "reflect" "sort" "strconv" @@ -194,7 +193,7 @@ func (p *Properties) Parse(s string) { // "bytes,49,opt,name=foo,def=hello!" fields := strings.Split(s, ",") // breaks def=, but handled below. if len(fields) < 2 { - fmt.Fprintf(os.Stderr, "proto: tag has too few fields: %q\n", s) + log.Printf("proto: tag has too few fields: %q", s) return } @@ -214,7 +213,7 @@ func (p *Properties) Parse(s string) { p.WireType = WireBytes // no numeric converter for non-numeric types default: - fmt.Fprintf(os.Stderr, "proto: tag has unknown wire type: %q\n", s) + log.Printf("proto: tag has unknown wire type: %q", s) return } diff --git a/vendor/github.com/gorilla/websocket/README.md b/vendor/github.com/gorilla/websocket/README.md index 0827d059..19aa2e75 100644 --- a/vendor/github.com/gorilla/websocket/README.md +++ b/vendor/github.com/gorilla/websocket/README.md @@ -8,7 +8,7 @@ Gorilla WebSocket is a [Go](http://golang.org/) implementation of the ### Documentation -* [API Reference](http://godoc.org/github.com/gorilla/websocket) +* [API Reference](https://pkg.go.dev/github.com/gorilla/websocket?tab=doc) * [Chat example](https://github.com/gorilla/websocket/tree/master/examples/chat) * [Command example](https://github.com/gorilla/websocket/tree/master/examples/command) * [Client and server example](https://github.com/gorilla/websocket/tree/master/examples/echo) diff --git a/vendor/github.com/gorilla/websocket/conn.go b/vendor/github.com/gorilla/websocket/conn.go index 6f17cd29..ca46d2f7 100644 --- a/vendor/github.com/gorilla/websocket/conn.go +++ b/vendor/github.com/gorilla/websocket/conn.go @@ -244,8 +244,8 @@ type Conn struct { subprotocol string // Write fields - mu chan bool // used as mutex to protect write to conn - writeBuf []byte // frame is constructed in this buffer. + mu chan struct{} // used as mutex to protect write to conn + writeBuf []byte // frame is constructed in this buffer. writePool BufferPool writeBufSize int writeDeadline time.Time @@ -302,8 +302,8 @@ func newConn(conn net.Conn, isServer bool, readBufferSize, writeBufferSize int, writeBuf = make([]byte, writeBufferSize) } - mu := make(chan bool, 1) - mu <- true + mu := make(chan struct{}, 1) + mu <- struct{}{} c := &Conn{ isServer: isServer, br: br, @@ -377,7 +377,7 @@ func (c *Conn) read(n int) ([]byte, error) { func (c *Conn) write(frameType int, deadline time.Time, buf0, buf1 []byte) error { <-c.mu - defer func() { c.mu <- true }() + defer func() { c.mu <- struct{}{} }() c.writeErrMu.Lock() err := c.writeErr @@ -429,7 +429,7 @@ func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) er maskBytes(key, 0, buf[6:]) } - d := time.Hour * 1000 + d := 1000 * time.Hour if !deadline.IsZero() { d = deadline.Sub(time.Now()) if d < 0 { @@ -444,7 +444,7 @@ func (c *Conn) WriteControl(messageType int, data []byte, deadline time.Time) er case <-timer.C: return errWriteTimeout } - defer func() { c.mu <- true }() + defer func() { c.mu <- struct{}{} }() c.writeErrMu.Lock() err := c.writeErr diff --git a/vendor/github.com/gorilla/websocket/doc.go b/vendor/github.com/gorilla/websocket/doc.go index c6f4df89..8db0cef9 100644 --- a/vendor/github.com/gorilla/websocket/doc.go +++ b/vendor/github.com/gorilla/websocket/doc.go @@ -187,9 +187,9 @@ // than the largest message do not provide any benefit. // // Depending on the distribution of message sizes, setting the buffer size to -// to a value less than the maximum expected message size can greatly reduce -// memory use with a small impact on performance. Here's an example: If 99% of -// the messages are smaller than 256 bytes and the maximum message size is 512 +// a value less than the maximum expected message size can greatly reduce memory +// use with a small impact on performance. Here's an example: If 99% of the +// messages are smaller than 256 bytes and the maximum message size is 512 // bytes, then a buffer size of 256 bytes will result in 1.01 more system calls // than a buffer size of 512 bytes. The memory savings is 50%. // diff --git a/vendor/github.com/gorilla/websocket/go.sum b/vendor/github.com/gorilla/websocket/go.sum index cf4fbbaa..e69de29b 100644 --- a/vendor/github.com/gorilla/websocket/go.sum +++ b/vendor/github.com/gorilla/websocket/go.sum @@ -1,2 +0,0 @@ -github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= diff --git a/vendor/github.com/gorilla/websocket/prepared.go b/vendor/github.com/gorilla/websocket/prepared.go index 74ec565d..c854225e 100644 --- a/vendor/github.com/gorilla/websocket/prepared.go +++ b/vendor/github.com/gorilla/websocket/prepared.go @@ -73,8 +73,8 @@ func (pm *PreparedMessage) frame(key prepareKey) (int, []byte, error) { // Prepare a frame using a 'fake' connection. // TODO: Refactor code in conn.go to allow more direct construction of // the frame. - mu := make(chan bool, 1) - mu <- true + mu := make(chan struct{}, 1) + mu <- struct{}{} var nc prepareConn c := &Conn{ conn: &nc, diff --git a/vendor/github.com/hashicorp/golang-lru/lru.go b/vendor/github.com/hashicorp/golang-lru/lru.go index 052a38b4..4e5e9d8f 100644 --- a/vendor/github.com/hashicorp/golang-lru/lru.go +++ b/vendor/github.com/hashicorp/golang-lru/lru.go @@ -37,7 +37,7 @@ func (c *Cache) Purge() { c.lock.Unlock() } -// Add adds a value to the cache. Returns true if an eviction occurred. +// Add adds a value to the cache. Returns true if an eviction occurred. func (c *Cache) Add(key, value interface{}) (evicted bool) { c.lock.Lock() evicted = c.lru.Add(key, value) @@ -71,8 +71,8 @@ func (c *Cache) Peek(key interface{}) (value interface{}, ok bool) { return value, ok } -// ContainsOrAdd checks if a key is in the cache without updating the -// recent-ness or deleting it for being stale, and if not, adds the value. +// ContainsOrAdd checks if a key is in the cache without updating the +// recent-ness or deleting it for being stale, and if not, adds the value. // Returns whether found and whether an eviction occurred. func (c *Cache) ContainsOrAdd(key, value interface{}) (ok, evicted bool) { c.lock.Lock() @@ -85,6 +85,22 @@ func (c *Cache) ContainsOrAdd(key, value interface{}) (ok, evicted bool) { return false, evicted } +// PeekOrAdd checks if a key is in the cache without updating the +// recent-ness or deleting it for being stale, and if not, adds the value. +// Returns whether found and whether an eviction occurred. +func (c *Cache) PeekOrAdd(key, value interface{}) (previous interface{}, ok, evicted bool) { + c.lock.Lock() + defer c.lock.Unlock() + + previous, ok = c.lru.Peek(key) + if ok { + return previous, true, false + } + + evicted = c.lru.Add(key, value) + return nil, false, evicted +} + // Remove removes the provided key from the cache. func (c *Cache) Remove(key interface{}) (present bool) { c.lock.Lock() diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/chat.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/chat.go index 3eca02cd..1ca7d431 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/chat.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/chat.go @@ -70,7 +70,11 @@ func (a *API) GetConversations(unreadOnly bool) ([]chat1.ConvSummary, error) { } func (a *API) GetConversation(convID chat1.ConvIDStr) (res chat1.ConvSummary, err error) { - apiInput := fmt.Sprintf(`{"method":"list", "params": { "options": { "conversation_id": "%s"}}}`, convID) + convIDEscaped, err := json.Marshal(convID) + if err != nil { + return res, err + } + apiInput := fmt.Sprintf(`{"method":"list", "params": { "options": { "conversation_id": %s}}}`, convIDEscaped) output, err := a.doFetch(apiInput) if err != nil { return res, err @@ -94,7 +98,7 @@ func (a *API) GetTextMessages(channel chat1.ChatChannel, unreadOnly bool) ([]cha if err != nil { return nil, err } - apiInput := fmt.Sprintf(`{"method": "read", "params": {"options": {"channel": %s}}}`, string(channelBytes)) + apiInput := fmt.Sprintf(`{"method": "read", "params": {"options": {"channel": %s}}}`, channelBytes) output, err := a.doFetch(apiInput) if err != nil { return nil, err @@ -324,7 +328,11 @@ type LeaveChannel struct { } func (a *API) ListChannels(teamName string) ([]string, error) { - apiInput := fmt.Sprintf(`{"method": "listconvsonname", "params": {"options": {"topic_type": "CHAT", "members_type": "team", "name": "%s"}}}`, teamName) + teamNameEscaped, err := json.Marshal(teamName) + if err != nil { + return nil, err + } + apiInput := fmt.Sprintf(`{"method": "listconvsonname", "params": {"options": {"topic_type": "CHAT", "members_type": "team", "name": %s}}}`, teamNameEscaped) output, err := a.doFetch(apiInput) if err != nil { return nil, err @@ -347,7 +355,16 @@ func (a *API) ListChannels(teamName string) ([]string, error) { func (a *API) JoinChannel(teamName string, channelName string) (chat1.EmptyRes, error) { empty := chat1.EmptyRes{} - apiInput := fmt.Sprintf(`{"method": "join", "params": {"options": {"channel": {"name": "%s", "members_type": "team", "topic_name": "%s"}}}}`, teamName, channelName) + teamNameEscaped, err := json.Marshal(teamName) + if err != nil { + return empty, err + } + channelNameEscaped, err := json.Marshal(channelName) + if err != nil { + return empty, err + } + apiInput := fmt.Sprintf(`{"method": "join", "params": {"options": {"channel": {"name": %s, "members_type": "team", "topic_name": %s}}}}`, + teamNameEscaped, channelNameEscaped) output, err := a.doFetch(apiInput) if err != nil { return empty, err @@ -367,7 +384,16 @@ func (a *API) JoinChannel(teamName string, channelName string) (chat1.EmptyRes, func (a *API) LeaveChannel(teamName string, channelName string) (chat1.EmptyRes, error) { empty := chat1.EmptyRes{} - apiInput := fmt.Sprintf(`{"method": "leave", "params": {"options": {"channel": {"name": "%s", "members_type": "team", "topic_name": "%s"}}}}`, teamName, channelName) + teamNameEscaped, err := json.Marshal(teamName) + if err != nil { + return empty, err + } + channelNameEscaped, err := json.Marshal(channelName) + if err != nil { + return empty, err + } + apiInput := fmt.Sprintf(`{"method": "leave", "params": {"options": {"channel": {"name": %s, "members_type": "team", "topic_name": %s}}}}`, + teamNameEscaped, channelNameEscaped) output, err := a.doFetch(apiInput) if err != nil { return empty, err @@ -461,13 +487,28 @@ func (a *API) AdvertiseCommands(ad Advertisement) (SendResponse, error) { return a.doSend(newAdvertiseCmdsMsgArg(ad)) } -func (a *API) ClearCommands() error { - arg := struct { - Method string - }{ +type clearCmdsOptions struct { + Filter *chat1.ClearCommandAPIParam `json:"filter"` +} + +type clearCmdsParams struct { + Options clearCmdsOptions `json:"options"` +} + +type clearCmdsArg struct { + Method string `json:"method"` + Params clearCmdsParams `json:"params,omitempty"` +} + +func (a *API) ClearCommands(filter *chat1.ClearCommandAPIParam) error { + _, err := a.doSend(clearCmdsArg{ Method: "clearcommands", - } - _, err := a.doSend(arg) + Params: clearCmdsParams{ + Options: clearCmdsOptions{ + Filter: filter, + }, + }, + }) return err } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/errors.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/errors.go index 2b8e929d..1d1e6315 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/errors.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/errors.go @@ -1,9 +1,14 @@ package kbchat -import "fmt" +import ( + "errors" + "fmt" +) type ErrorCode int +var errAPIDisconnected = errors.New("chat API disconnected") + const ( RevisionErrorCode ErrorCode = 2760 DeleteNonExistentErrorCode ErrorCode = 2762 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/kbchat.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/kbchat.go index de76e75a..68c8ca70 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/kbchat.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/kbchat.go @@ -7,7 +7,6 @@ import ( "fmt" "io" "io/ioutil" - "log" "os" "os/exec" "sync" @@ -18,63 +17,110 @@ import ( "github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1" ) -// API is the main object used for communicating with the Keybase JSON API -type API struct { +// SubscriptionMessage contains a message and conversation object +type SubscriptionMessage struct { + Message chat1.MsgSummary + Conversation chat1.ConvSummary +} + +type SubscriptionConversation struct { + Conversation chat1.ConvSummary +} + +type SubscriptionWalletEvent struct { + Payment stellar1.PaymentDetailsLocal +} + +// Subscription has methods to control the background message fetcher loop +type Subscription struct { + *DebugOutput sync.Mutex - apiInput io.Writer - apiOutput *bufio.Reader - apiCmd *exec.Cmd - username string - runOpts RunOptions - subscriptions []*NewSubscription + + newMsgsCh chan SubscriptionMessage + newConvsCh chan SubscriptionConversation + newWalletCh chan SubscriptionWalletEvent + errorCh chan error + running bool + shutdownCh chan struct{} } -func getUsername(runOpts RunOptions) (username string, err error) { - p := runOpts.Command("whoami", "-json") - output, err := p.StdoutPipe() - if err != nil { - return "", err +func NewSubscription() *Subscription { + newMsgsCh := make(chan SubscriptionMessage, 100) + newConvsCh := make(chan SubscriptionConversation, 100) + newWalletCh := make(chan SubscriptionWalletEvent, 100) + errorCh := make(chan error, 100) + shutdownCh := make(chan struct{}) + return &Subscription{ + DebugOutput: NewDebugOutput("Subscription"), + newMsgsCh: newMsgsCh, + newConvsCh: newConvsCh, + newWalletCh: newWalletCh, + shutdownCh: shutdownCh, + errorCh: errorCh, + running: true, } - p.ExtraFiles = []*os.File{output.(*os.File)} - if err = p.Start(); err != nil { - return "", err +} + +// Read blocks until a new message arrives +func (m *Subscription) Read() (msg SubscriptionMessage, err error) { + defer m.Trace(&err, "Read")() + select { + case msg = <-m.newMsgsCh: + return msg, nil + case err = <-m.errorCh: + return SubscriptionMessage{}, err + case <-m.shutdownCh: + return SubscriptionMessage{}, errors.New("Subscription shutdown") } +} - doneCh := make(chan error) - go func() { - defer func() { close(doneCh) }() - statusJSON, err := ioutil.ReadAll(output) - if err != nil { - doneCh <- fmt.Errorf("error reading whoami output: %v", err) - return - } - var status keybase1.CurrentStatus - if err := json.Unmarshal(statusJSON, &status); err != nil { - doneCh <- fmt.Errorf("invalid whoami JSON %q: %v", statusJSON, err) - return - } - if status.LoggedIn && status.User != nil { - username = status.User.Username - doneCh <- nil - } else { - doneCh <- fmt.Errorf("unable to authenticate to keybase service: logged in: %v user: %+v", status.LoggedIn, status.User) - } - // Cleanup the command - if err := p.Wait(); err != nil { - log.Printf("unable to wait for cmd: %v", err) - } - }() +func (m *Subscription) ReadNewConvs() (conv SubscriptionConversation, err error) { + defer m.Trace(&err, "ReadNewConvs")() + select { + case conv = <-m.newConvsCh: + return conv, nil + case err = <-m.errorCh: + return SubscriptionConversation{}, err + case <-m.shutdownCh: + return SubscriptionConversation{}, errors.New("Subscription shutdown") + } +} +// Read blocks until a new message arrives +func (m *Subscription) ReadWallet() (msg SubscriptionWalletEvent, err error) { + defer m.Trace(&err, "ReadWallet")() select { - case err = <-doneCh: - if err != nil { - return "", err - } - case <-time.After(5 * time.Second): - return "", errors.New("unable to run Keybase command") + case msg = <-m.newWalletCh: + return msg, nil + case err = <-m.errorCh: + return SubscriptionWalletEvent{}, err + case <-m.shutdownCh: + return SubscriptionWalletEvent{}, errors.New("Subscription shutdown") } +} - return username, nil +// Shutdown terminates the background process +func (m *Subscription) Shutdown() { + defer m.Trace(nil, "Shutdown")() + m.Lock() + defer m.Unlock() + if m.running { + close(m.shutdownCh) + m.running = false + } +} + +type ListenOptions struct { + Wallet bool + Convs bool +} + +type PaymentHolder struct { + Payment stellar1.PaymentDetailsLocal `json:"notification"` +} + +type TypeHolder struct { + Type string `json:"type"` } type OneshotOptions struct { @@ -110,22 +156,101 @@ func (r RunOptions) Command(args ...string) *exec.Cmd { } // Start fires up the Keybase JSON API in stdin/stdout mode -func Start(runOpts RunOptions) (*API, error) { - api := &API{ - runOpts: runOpts, - } +func Start(runOpts RunOptions, opts ...func(*API)) (*API, error) { + api := NewAPI(runOpts, opts...) if err := api.startPipes(); err != nil { return nil, err } return api, nil } +// API is the main object used for communicating with the Keybase JSON API +type API struct { + sync.Mutex + *DebugOutput + apiInput io.Writer + apiOutput *bufio.Reader + apiCmd *exec.Cmd + username string + runOpts RunOptions + subscriptions []*Subscription + Timeout time.Duration + LogSendBytes int +} + +func CustomTimeout(timeout time.Duration) func(*API) { + return func(a *API) { + a.Timeout = timeout + } +} + +func NewAPI(runOpts RunOptions, opts ...func(*API)) *API { + api := &API{ + DebugOutput: NewDebugOutput("API"), + runOpts: runOpts, + Timeout: 5 * time.Second, + LogSendBytes: 1024 * 1024 * 5, // request 5MB so we don't get killed + } + for _, opt := range opts { + opt(api) + } + return api +} + func (a *API) Command(args ...string) *exec.Cmd { return a.runOpts.Command(args...) } +func (a *API) getUsername(runOpts RunOptions) (username string, err error) { + p := runOpts.Command("whoami", "-json") + output, err := p.StdoutPipe() + if err != nil { + return "", err + } + p.ExtraFiles = []*os.File{output.(*os.File)} + if err = p.Start(); err != nil { + return "", err + } + + doneCh := make(chan error) + go func() { + defer func() { close(doneCh) }() + statusJSON, err := ioutil.ReadAll(output) + if err != nil { + doneCh <- fmt.Errorf("error reading whoami output: %v", err) + return + } + var status keybase1.CurrentStatus + if err := json.Unmarshal(statusJSON, &status); err != nil { + doneCh <- fmt.Errorf("invalid whoami JSON %q: %v", statusJSON, err) + return + } + if status.LoggedIn && status.User != nil { + username = status.User.Username + doneCh <- nil + } else { + doneCh <- fmt.Errorf("unable to authenticate to keybase service: logged in: %v user: %+v", status.LoggedIn, status.User) + } + // Cleanup the command + if err := p.Wait(); err != nil { + a.Debug("unable to wait for cmd: %v", err) + } + }() + + select { + case err = <-doneCh: + if err != nil { + return "", err + } + case <-time.After(a.Timeout): + return "", errors.New("unable to run Keybase command") + } + + return username, nil +} + func (a *API) auth() (string, error) { - username, err := getUsername(a.runOpts) + username, err := a.getUsername(a.runOpts) if err == nil { return username, nil } @@ -194,8 +319,6 @@ func (a *API) startPipes() (err error) { return nil } -var errAPIDisconnected = errors.New("chat API disconnected") - func (a *API) getAPIPipesLocked() (io.Writer, *bufio.Reader, error) { // this should only be called inside a lock if a.apiCmd == nil { @@ -214,7 +337,7 @@ func (a *API) doSend(arg interface{}) (resp SendResponse, err error) { bArg, err := json.Marshal(arg) if err != nil { - return SendResponse{}, err + return SendResponse{}, fmt.Errorf("unable to send arg: %+v: %v", arg, err) } input, output, err := a.getAPIPipesLocked() if err != nil { @@ -228,7 +351,7 @@ func (a *API) doSend(arg interface{}) (resp SendResponse, err error) { return SendResponse{}, err } if err := json.Unmarshal(responseRaw, &resp); err != nil { - return resp, fmt.Errorf("failed to decode API response: %s", err) + return resp, fmt.Errorf("failed to decode API response: %v %v", responseRaw, err) } else if resp.Error != nil { return resp, errors.New(resp.Error.Message) } @@ -254,97 +377,13 @@ func (a *API) doFetch(apiInput string) ([]byte, error) { return byteOutput, nil } -// SubscriptionMessage contains a message and conversation object -type SubscriptionMessage struct { - Message chat1.MsgSummary - Conversation chat1.ConvSummary -} - -type SubscriptionConversation struct { - Conversation chat1.ConvSummary -} - -type SubscriptionWalletEvent struct { - Payment stellar1.PaymentDetailsLocal -} - -// NewSubscription has methods to control the background message fetcher loop -type NewSubscription struct { - sync.Mutex - - newMsgsCh <-chan SubscriptionMessage - newConvsCh <-chan SubscriptionConversation - newWalletCh <-chan SubscriptionWalletEvent - errorCh <-chan error - running bool - shutdownCh chan struct{} -} - -// Read blocks until a new message arrives -func (m *NewSubscription) Read() (SubscriptionMessage, error) { - select { - case msg := <-m.newMsgsCh: - return msg, nil - case err := <-m.errorCh: - return SubscriptionMessage{}, err - case <-m.shutdownCh: - return SubscriptionMessage{}, errors.New("Subscription shutdown") - } -} - -func (m *NewSubscription) ReadNewConvs() (SubscriptionConversation, error) { - select { - case conv := <-m.newConvsCh: - return conv, nil - case err := <-m.errorCh: - return SubscriptionConversation{}, err - case <-m.shutdownCh: - return SubscriptionConversation{}, errors.New("Subscription shutdown") - } -} - -// Read blocks until a new message arrives -func (m *NewSubscription) ReadWallet() (SubscriptionWalletEvent, error) { - select { - case msg := <-m.newWalletCh: - return msg, nil - case err := <-m.errorCh: - return SubscriptionWalletEvent{}, err - case <-m.shutdownCh: - return SubscriptionWalletEvent{}, errors.New("Subscription shutdown") - } -} - -// Shutdown terminates the background process -func (m *NewSubscription) Shutdown() { - m.Lock() - defer m.Unlock() - if m.running { - close(m.shutdownCh) - m.running = false - } -} - -type ListenOptions struct { - Wallet bool - Convs bool -} - -type PaymentHolder struct { - Payment stellar1.PaymentDetailsLocal `json:"notification"` -} - -type TypeHolder struct { - Type string `json:"type"` -} - // ListenForNewTextMessages proxies to Listen without wallet events -func (a *API) ListenForNewTextMessages() (*NewSubscription, error) { +func (a *API) ListenForNewTextMessages() (*Subscription, error) { opts := ListenOptions{Wallet: false} return a.Listen(opts) } -func (a *API) registerSubscription(sub *NewSubscription) { +func (a *API) registerSubscription(sub *Subscription) { a.Lock() defer a.Unlock() a.subscriptions = append(a.subscriptions, sub) @@ -352,30 +391,17 @@ func (a *API) registerSubscription(sub *NewSubscription) { // Listen fires of a background loop and puts chat messages and wallet // events into channels -func (a *API) Listen(opts ListenOptions) (*NewSubscription, error) { - newMsgsCh := make(chan SubscriptionMessage, 100) - newConvsCh := make(chan SubscriptionConversation, 100) - newWalletCh := make(chan SubscriptionWalletEvent, 100) - errorCh := make(chan error, 100) - shutdownCh := make(chan struct{}) +func (a *API) Listen(opts ListenOptions) (*Subscription, error) { done := make(chan struct{}) - - sub := &NewSubscription{ - newMsgsCh: newMsgsCh, - newConvsCh: newConvsCh, - newWalletCh: newWalletCh, - shutdownCh: shutdownCh, - errorCh: errorCh, - running: true, - } + sub := NewSubscription() a.registerSubscription(sub) pause := 2 * time.Second readScanner := func(boutput *bufio.Scanner) { defer func() { done <- struct{}{} }() for { select { - case <-shutdownCh: - log.Printf("readScanner: received shutdown") + case <-sub.shutdownCh: + a.Debug("readScanner: received shutdown") return default: } @@ -383,18 +409,18 @@ func (a *API) Listen(opts ListenOptions) (*NewSubscription, error) { t := boutput.Text() var typeHolder TypeHolder if err := json.Unmarshal([]byte(t), &typeHolder); err != nil { - errorCh <- err + sub.errorCh <- fmt.Errorf("err: %v, data: %v", err, t) break } switch typeHolder.Type { case "chat": var notification chat1.MsgNotification if err := json.Unmarshal([]byte(t), ¬ification); err != nil { - errorCh <- err + sub.errorCh <- fmt.Errorf("err: %v, data: %v", err, t) break } if notification.Error != nil { - log.Printf("error message received: %s", *notification.Error) + a.Debug("error message received: %s", *notification.Error) } else if notification.Msg != nil { subscriptionMessage := SubscriptionMessage{ Message: *notification.Msg, @@ -403,30 +429,30 @@ func (a *API) Listen(opts ListenOptions) (*NewSubscription, error) { Channel: notification.Msg.Channel, }, } - newMsgsCh <- subscriptionMessage + sub.newMsgsCh <- subscriptionMessage } case "chat_conv": var notification chat1.ConvNotification if err := json.Unmarshal([]byte(t), ¬ification); err != nil { - errorCh <- err + sub.errorCh <- fmt.Errorf("err: %v, data: %v", err, t) break } if notification.Error != nil { - log.Printf("error message received: %s", *notification.Error) + a.Debug("error message received: %s", *notification.Error) } else if notification.Conv != nil { subscriptionConv := SubscriptionConversation{ Conversation: *notification.Conv, } - newConvsCh <- subscriptionConv + sub.newConvsCh <- subscriptionConv } case "wallet": var holder PaymentHolder if err := json.Unmarshal([]byte(t), &holder); err != nil { - errorCh <- err + sub.errorCh <- fmt.Errorf("err: %v, data: %v", err, t) break } subscriptionPayment := SubscriptionWalletEvent(holder) - newWalletCh <- subscriptionPayment + sub.newWalletCh <- subscriptionPayment default: continue } @@ -434,31 +460,31 @@ func (a *API) Listen(opts ListenOptions) (*NewSubscription, error) { } attempts := 0 - maxAttempts := 1800 + maxAttempts := 30 go func() { defer func() { - close(newMsgsCh) - close(newConvsCh) - close(newWalletCh) - close(errorCh) + close(sub.newMsgsCh) + close(sub.newConvsCh) + close(sub.newWalletCh) + close(sub.errorCh) }() for { select { - case <-shutdownCh: - log.Printf("Listen: received shutdown") + case <-sub.shutdownCh: + a.Debug("Listen: received shutdown") return default: } if attempts >= maxAttempts { if err := a.LogSend("Listen: failed to auth, giving up"); err != nil { - log.Printf("Listen: logsend failed to send: %v", err) + a.Debug("Listen: logsend failed to send: %v", err) } panic("Listen: failed to auth, giving up") } attempts++ if _, err := a.auth(); err != nil { - log.Printf("Listen: failed to auth: %s", err) + a.Debug("Listen: failed to auth: %s", err) time.Sleep(pause) continue } @@ -472,13 +498,13 @@ func (a *API) Listen(opts ListenOptions) (*NewSubscription, error) { p := a.runOpts.Command(cmdElements...) output, err := p.StdoutPipe() if err != nil { - log.Printf("Listen: failed to listen: %s", err) + a.Debug("Listen: failed to listen: %s", err) time.Sleep(pause) continue } stderr, err := p.StderrPipe() if err != nil { - log.Printf("Listen: failed to listen to stderr: %s", err) + a.Debug("Listen: failed to listen to stderr: %s", err) time.Sleep(pause) continue } @@ -486,19 +512,27 @@ func (a *API) Listen(opts ListenOptions) (*NewSubscription, error) { boutput := bufio.NewScanner(output) if err := p.Start(); err != nil { - log.Printf("Listen: failed to make listen scanner: %s", err) + a.Debug("Listen: failed to make listen scanner: %s", err) time.Sleep(pause) continue } attempts = 0 go readScanner(boutput) - <-done + select { + case <-sub.shutdownCh: + a.Debug("Listen: received shutdown") + return + case <-done: + } if err := p.Wait(); err != nil { stderrBytes, rerr := ioutil.ReadAll(stderr) if rerr != nil { - stderrBytes = []byte("failed to get stderr") + stderrBytes = []byte(fmt.Sprintf("failed to get stderr: %v", rerr)) + } + a.Debug("Listen: failed to Wait for command, restarting pipes: %s (```%s```)", err, stderrBytes) + if err := a.startPipes(); err != nil { + a.Debug("Listen: failed to restart pipes: %v", err) } - log.Printf("Listen: failed to Wait for command: %s (```%s```)", err, stderrBytes) } time.Sleep(pause) } @@ -515,31 +549,27 @@ func (a *API) LogSend(feedback string) error { "log", "send", "--no-confirm", "--feedback", feedback, + "-n", fmt.Sprintf("%d", a.LogSendBytes), } - - // We're determining whether the service is already running by running status - // with autofork disabled. - if err := a.runOpts.Command("--no-auto-fork", "status"); err != nil { - // Assume that there's no service running, so log send as standalone - args = append([]string{"--standalone"}, args...) - } - return a.runOpts.Command(args...).Run() } -func (a *API) Shutdown() error { +func (a *API) Shutdown() (err error) { + defer a.Trace(&err, "Shutdown")() a.Lock() defer a.Unlock() for _, sub := range a.subscriptions { sub.Shutdown() } if a.apiCmd != nil { + a.Debug("waiting for API command") if err := a.apiCmd.Wait(); err != nil { return err } } if a.runOpts.Oneshot != nil { + a.Debug("logging out") err := a.runOpts.Command("logout", "--force").Run() if err != nil { return err @@ -547,6 +577,7 @@ func (a *API) Shutdown() error { } if a.runOpts.StartService { + a.Debug("stopping service") err := a.runOpts.Command("ctl", "stop", "--shutdown").Run() if err != nil { return err diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/team.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/team.go index 71ec37d3..d3fa57ea 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/team.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/team.go @@ -26,7 +26,11 @@ type ListUserMemberships struct { } func (a *API) ListMembersOfTeam(teamName string) (res keybase1.TeamMembersDetails, err error) { - apiInput := fmt.Sprintf(`{"method": "list-team-memberships", "params": {"options": {"team": "%s"}}}`, teamName) + teamNameEscaped, err := json.Marshal(teamName) + if err != nil { + return res, err + } + apiInput := fmt.Sprintf(`{"method": "list-team-memberships", "params": {"options": {"team": %s}}}`, teamNameEscaped) cmd := a.runOpts.Command("team", "api") cmd.Stdin = strings.NewReader(apiInput) var stderr bytes.Buffer @@ -51,7 +55,11 @@ func (a *API) ListMembersOfTeam(teamName string) (res keybase1.TeamMembersDetail } func (a *API) ListUserMemberships(username string) ([]keybase1.AnnotatedMemberInfo, error) { - apiInput := fmt.Sprintf(`{"method": "list-user-memberships", "params": {"options": {"username": "%s"}}}`, username) + usernameEscaped, err := json.Marshal(username) + if err != nil { + return nil, err + } + apiInput := fmt.Sprintf(`{"method": "list-user-memberships", "params": {"options": {"username": %s}}}`, usernameEscaped) cmd := a.runOpts.Command("team", "api") cmd.Stdin = strings.NewReader(apiInput) var stderr bytes.Buffer diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/api.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/api.go index 678d2ab3..d6c13496 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/api.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/api.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/api.avdl package chat1 @@ -139,9 +139,119 @@ func (o MsgFlipContent) DeepCopy() MsgFlipContent { } } +type EmojiContent struct { + Alias string `codec:"alias" json:"alias"` + IsCrossTeam bool `codec:"isCrossTeam" json:"isCrossTeam"` + ConvID *ConvIDStr `codec:"convID,omitempty" json:"convID,omitempty"` + MessageID *MessageID `codec:"messageID,omitempty" json:"messageID,omitempty"` +} + +func (o EmojiContent) DeepCopy() EmojiContent { + return EmojiContent{ + Alias: o.Alias, + IsCrossTeam: o.IsCrossTeam, + ConvID: (func(x *ConvIDStr) *ConvIDStr { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.ConvID), + MessageID: (func(x *MessageID) *MessageID { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.MessageID), + } +} + +type MsgTextContent struct { + Body string `codec:"body" json:"body"` + Payments []TextPayment `codec:"payments" json:"payments"` + ReplyTo *MessageID `codec:"replyTo,omitempty" json:"replyTo,omitempty"` + ReplyToUID *string `codec:"replyToUID,omitempty" json:"replyToUID,omitempty"` + UserMentions []KnownUserMention `codec:"userMentions" json:"userMentions"` + TeamMentions []KnownTeamMention `codec:"teamMentions" json:"teamMentions"` + LiveLocation *LiveLocation `codec:"liveLocation,omitempty" json:"liveLocation,omitempty"` + Emojis []EmojiContent `codec:"emojis" json:"emojis"` +} + +func (o MsgTextContent) DeepCopy() MsgTextContent { + return MsgTextContent{ + Body: o.Body, + Payments: (func(x []TextPayment) []TextPayment { + if x == nil { + return nil + } + ret := make([]TextPayment, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Payments), + ReplyTo: (func(x *MessageID) *MessageID { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.ReplyTo), + ReplyToUID: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.ReplyToUID), + UserMentions: (func(x []KnownUserMention) []KnownUserMention { + if x == nil { + return nil + } + ret := make([]KnownUserMention, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.UserMentions), + TeamMentions: (func(x []KnownTeamMention) []KnownTeamMention { + if x == nil { + return nil + } + ret := make([]KnownTeamMention, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.TeamMentions), + LiveLocation: (func(x *LiveLocation) *LiveLocation { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.LiveLocation), + Emojis: (func(x []EmojiContent) []EmojiContent { + if x == nil { + return nil + } + ret := make([]EmojiContent, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Emojis), + } +} + type MsgContent struct { TypeName string `codec:"typeName" json:"type"` - Text *MessageText `codec:"text,omitempty" json:"text,omitempty"` + Text *MsgTextContent `codec:"text,omitempty" json:"text,omitempty"` Attachment *MessageAttachment `codec:"attachment,omitempty" json:"attachment,omitempty"` Edit *MessageEdit `codec:"edit,omitempty" json:"edit,omitempty"` Reaction *MessageReaction `codec:"reaction,omitempty" json:"reaction,omitempty"` @@ -159,7 +269,7 @@ type MsgContent struct { func (o MsgContent) DeepCopy() MsgContent { return MsgContent{ TypeName: o.TypeName, - Text: (func(x *MessageText) *MessageText { + Text: (func(x *MsgTextContent) *MsgTextContent { if x == nil { return nil } @@ -269,7 +379,7 @@ type MsgSummary struct { IsEphemeral bool `codec:"isEphemeral,omitempty" json:"is_ephemeral,omitempty"` IsEphemeralExpired bool `codec:"isEphemeralExpired,omitempty" json:"is_ephemeral_expired,omitempty"` ETime gregor1.Time `codec:"eTime,omitempty" json:"e_time,omitempty"` - Reactions *ReactionMap `codec:"reactions,omitempty" json:"reactions,omitempty"` + Reactions *UIReactionMap `codec:"reactions,omitempty" json:"reactions,omitempty"` HasPairwiseMacs bool `codec:"hasPairwiseMacs,omitempty" json:"has_pairwise_macs,omitempty"` AtMentionUsernames []string `codec:"atMentionUsernames,omitempty" json:"at_mention_usernames,omitempty"` ChannelMention string `codec:"channelMention,omitempty" json:"channel_mention,omitempty"` @@ -304,7 +414,7 @@ func (o MsgSummary) DeepCopy() MsgSummary { IsEphemeral: o.IsEphemeral, IsEphemeralExpired: o.IsEphemeralExpired, ETime: o.ETime.DeepCopy(), - Reactions: (func(x *ReactionMap) *ReactionMap { + Reactions: (func(x *UIReactionMap) *UIReactionMap { if x == nil { return nil } @@ -832,6 +942,7 @@ type AdvertiseCommandAPIParam struct { Typ string `codec:"typ" json:"type"` Commands []UserBotCommandInput `codec:"commands" json:"commands"` TeamName string `codec:"teamName,omitempty" json:"team_name,omitempty"` + ConvID ConvIDStr `codec:"convID,omitempty" json:"conv_id,omitempty"` } func (o AdvertiseCommandAPIParam) DeepCopy() AdvertiseCommandAPIParam { @@ -849,6 +960,21 @@ func (o AdvertiseCommandAPIParam) DeepCopy() AdvertiseCommandAPIParam { return ret })(o.Commands), TeamName: o.TeamName, + ConvID: o.ConvID.DeepCopy(), + } +} + +type ClearCommandAPIParam struct { + Typ string `codec:"typ" json:"type"` + TeamName string `codec:"teamName,omitempty" json:"team_name,omitempty"` + ConvID ConvIDStr `codec:"convID,omitempty" json:"conv_id,omitempty"` +} + +func (o ClearCommandAPIParam) DeepCopy() ClearCommandAPIParam { + return ClearCommandAPIParam{ + Typ: o.Typ, + TeamName: o.TeamName, + ConvID: o.ConvID.DeepCopy(), } } @@ -897,17 +1023,17 @@ func (o GetResetConvMembersRes) DeepCopy() GetResetConvMembersRes { } type DeviceInfo struct { - DeviceID keybase1.DeviceID `codec:"deviceID" json:"id"` - DeviceDescription string `codec:"deviceDescription" json:"description"` - DeviceType string `codec:"deviceType" json:"type"` - DeviceCtime int64 `codec:"deviceCtime" json:"ctime"` + DeviceID keybase1.DeviceID `codec:"deviceID" json:"id"` + DeviceDescription string `codec:"deviceDescription" json:"description"` + DeviceType keybase1.DeviceTypeV2 `codec:"deviceType" json:"type"` + DeviceCtime int64 `codec:"deviceCtime" json:"ctime"` } func (o DeviceInfo) DeepCopy() DeviceInfo { return DeviceInfo{ DeviceID: o.DeviceID.DeepCopy(), DeviceDescription: o.DeviceDescription, - DeviceType: o.DeviceType, + DeviceType: o.DeviceType.DeepCopy(), DeviceCtime: o.DeviceCtime, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/blocking.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/blocking.go index 37c5c78a..bc6da3eb 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/blocking.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/blocking.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/blocking.avdl package chat1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/chat_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/chat_ui.go index 1a908099..40ce655e 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/chat_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/chat_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/chat_ui.avdl package chat1 @@ -537,6 +537,7 @@ type InboxUIItem struct { IsDefaultConv bool `codec:"isDefaultConv" json:"isDefaultConv"` Name string `codec:"name" json:"name"` Snippet string `codec:"snippet" json:"snippet"` + SnippetDecorated string `codec:"snippetDecorated" json:"snippetDecorated"` SnippetDecoration SnippetDecoration `codec:"snippetDecoration" json:"snippetDecoration"` Channel string `codec:"channel" json:"channel"` Headline string `codec:"headline" json:"headline"` @@ -579,6 +580,7 @@ func (o InboxUIItem) DeepCopy() InboxUIItem { IsDefaultConv: o.IsDefaultConv, Name: o.Name, Snippet: o.Snippet, + SnippetDecorated: o.SnippetDecorated, SnippetDecoration: o.SnippetDecoration.DeepCopy(), Channel: o.Channel, Headline: o.Headline, @@ -889,6 +891,50 @@ func (o UIMessageUnfurlInfo) DeepCopy() UIMessageUnfurlInfo { } } +type UIReactionDesc struct { + Decorated string `codec:"decorated" json:"decorated"` + Users map[string]Reaction `codec:"users" json:"users"` +} + +func (o UIReactionDesc) DeepCopy() UIReactionDesc { + return UIReactionDesc{ + Decorated: o.Decorated, + Users: (func(x map[string]Reaction) map[string]Reaction { + if x == nil { + return nil + } + ret := make(map[string]Reaction, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Users), + } +} + +type UIReactionMap struct { + Reactions map[string]UIReactionDesc `codec:"reactions" json:"reactions"` +} + +func (o UIReactionMap) DeepCopy() UIReactionMap { + return UIReactionMap{ + Reactions: (func(x map[string]UIReactionDesc) map[string]UIReactionDesc { + if x == nil { + return nil + } + ret := make(map[string]UIReactionDesc, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Reactions), + } +} + type UIMessageValid struct { MessageID MessageID `codec:"messageID" json:"messageID"` Ctime gregor1.Time `codec:"ctime" json:"ctime"` @@ -898,7 +944,7 @@ type UIMessageValid struct { BodySummary string `codec:"bodySummary" json:"bodySummary"` SenderUsername string `codec:"senderUsername" json:"senderUsername"` SenderDeviceName string `codec:"senderDeviceName" json:"senderDeviceName"` - SenderDeviceType string `codec:"senderDeviceType" json:"senderDeviceType"` + SenderDeviceType keybase1.DeviceTypeV2 `codec:"senderDeviceType" json:"senderDeviceType"` SenderUID gregor1.UID `codec:"senderUID" json:"senderUID"` SenderDeviceID gregor1.DeviceID `codec:"senderDeviceID" json:"senderDeviceID"` Superseded bool `codec:"superseded" json:"superseded"` @@ -911,7 +957,7 @@ type UIMessageValid struct { IsEphemeralExpired bool `codec:"isEphemeralExpired" json:"isEphemeralExpired"` ExplodedBy *string `codec:"explodedBy,omitempty" json:"explodedBy,omitempty"` Etime gregor1.Time `codec:"etime" json:"etime"` - Reactions ReactionMap `codec:"reactions" json:"reactions"` + Reactions UIReactionMap `codec:"reactions" json:"reactions"` HasPairwiseMacs bool `codec:"hasPairwiseMacs" json:"hasPairwiseMacs"` PaymentInfos []UIPaymentInfo `codec:"paymentInfos" json:"paymentInfos"` RequestInfo *UIRequestInfo `codec:"requestInfo,omitempty" json:"requestInfo,omitempty"` @@ -947,7 +993,7 @@ func (o UIMessageValid) DeepCopy() UIMessageValid { BodySummary: o.BodySummary, SenderUsername: o.SenderUsername, SenderDeviceName: o.SenderDeviceName, - SenderDeviceType: o.SenderDeviceType, + SenderDeviceType: o.SenderDeviceType.DeepCopy(), SenderUID: o.SenderUID.DeepCopy(), SenderDeviceID: o.SenderDeviceID.DeepCopy(), Superseded: o.Superseded, @@ -1068,6 +1114,7 @@ type UIMessageOutbox struct { IsEphemeral bool `codec:"isEphemeral" json:"isEphemeral"` FlipGameID *FlipGameIDStr `codec:"flipGameID,omitempty" json:"flipGameID,omitempty"` ReplyTo *UIMessage `codec:"replyTo,omitempty" json:"replyTo,omitempty"` + Supersedes MessageID `codec:"supersedes" json:"supersedes"` Filename string `codec:"filename" json:"filename"` Title string `codec:"title" json:"title"` Preview *MakePreviewRes `codec:"preview,omitempty" json:"preview,omitempty"` @@ -1103,8 +1150,9 @@ func (o UIMessageOutbox) DeepCopy() UIMessageOutbox { tmp := (*x).DeepCopy() return &tmp })(o.ReplyTo), - Filename: o.Filename, - Title: o.Title, + Supersedes: o.Supersedes.DeepCopy(), + Filename: o.Filename, + Title: o.Title, Preview: (func(x *MakePreviewRes) *MakePreviewRes { if x == nil { return nil @@ -1418,6 +1466,7 @@ const ( UITextDecorationTyp_LINK UITextDecorationTyp = 4 UITextDecorationTyp_MAILTO UITextDecorationTyp = 5 UITextDecorationTyp_KBFSPATH UITextDecorationTyp = 6 + UITextDecorationTyp_EMOJI UITextDecorationTyp = 7 ) func (o UITextDecorationTyp) DeepCopy() UITextDecorationTyp { return o } @@ -1430,6 +1479,7 @@ var UITextDecorationTypMap = map[string]UITextDecorationTyp{ "LINK": 4, "MAILTO": 5, "KBFSPATH": 6, + "EMOJI": 7, } var UITextDecorationTypRevMap = map[UITextDecorationTyp]string{ @@ -1440,6 +1490,7 @@ var UITextDecorationTypRevMap = map[UITextDecorationTyp]string{ 4: "LINK", 5: "MAILTO", 6: "KBFSPATH", + 7: "EMOJI", } func (e UITextDecorationTyp) String() string { @@ -1566,6 +1617,7 @@ type UITextDecoration struct { Link__ *UILinkDecoration `codec:"link,omitempty" json:"link,omitempty"` Mailto__ *UILinkDecoration `codec:"mailto,omitempty" json:"mailto,omitempty"` Kbfspath__ *KBFSPath `codec:"kbfspath,omitempty" json:"kbfspath,omitempty"` + Emoji__ *Emoji `codec:"emoji,omitempty" json:"emoji,omitempty"` } func (o *UITextDecoration) Typ() (ret UITextDecorationTyp, err error) { @@ -1605,6 +1657,11 @@ func (o *UITextDecoration) Typ() (ret UITextDecorationTyp, err error) { err = errors.New("unexpected nil value for Kbfspath__") return ret, err } + case UITextDecorationTyp_EMOJI: + if o.Emoji__ == nil { + err = errors.New("unexpected nil value for Emoji__") + return ret, err + } } return o.Typ__, nil } @@ -1679,6 +1736,16 @@ func (o UITextDecoration) Kbfspath() (res KBFSPath) { return *o.Kbfspath__ } +func (o UITextDecoration) Emoji() (res Emoji) { + if o.Typ__ != UITextDecorationTyp_EMOJI { + panic("wrong case accessed") + } + if o.Emoji__ == nil { + return + } + return *o.Emoji__ +} + func NewUITextDecorationWithPayment(v TextPayment) UITextDecoration { return UITextDecoration{ Typ__: UITextDecorationTyp_PAYMENT, @@ -1728,6 +1795,13 @@ func NewUITextDecorationWithKbfspath(v KBFSPath) UITextDecoration { } } +func NewUITextDecorationWithEmoji(v Emoji) UITextDecoration { + return UITextDecoration{ + Typ__: UITextDecorationTyp_EMOJI, + Emoji__: &v, + } +} + func (o UITextDecoration) DeepCopy() UITextDecoration { return UITextDecoration{ Typ__: o.Typ__.DeepCopy(), @@ -1780,6 +1854,13 @@ func (o UITextDecoration) DeepCopy() UITextDecoration { tmp := (*x).DeepCopy() return &tmp })(o.Kbfspath__), + Emoji__: (func(x *Emoji) *Emoji { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Emoji__), } } @@ -1917,6 +1998,50 @@ func (o UIChatSearchConvHits) DeepCopy() UIChatSearchConvHits { } } +type UIChatSearchTeamHits struct { + Hits []keybase1.TeamSearchItem `codec:"hits" json:"hits"` + SuggestedMatches bool `codec:"suggestedMatches" json:"suggestedMatches"` +} + +func (o UIChatSearchTeamHits) DeepCopy() UIChatSearchTeamHits { + return UIChatSearchTeamHits{ + Hits: (func(x []keybase1.TeamSearchItem) []keybase1.TeamSearchItem { + if x == nil { + return nil + } + ret := make([]keybase1.TeamSearchItem, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Hits), + SuggestedMatches: o.SuggestedMatches, + } +} + +type UIChatSearchBotHits struct { + Hits []keybase1.FeaturedBot `codec:"hits" json:"hits"` + SuggestedMatches bool `codec:"suggestedMatches" json:"suggestedMatches"` +} + +func (o UIChatSearchBotHits) DeepCopy() UIChatSearchBotHits { + return UIChatSearchBotHits{ + Hits: (func(x []keybase1.FeaturedBot) []keybase1.FeaturedBot { + if x == nil { + return nil + } + ret := make([]keybase1.FeaturedBot, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Hits), + SuggestedMatches: o.SuggestedMatches, + } +} + type UIChatPayment struct { Username string `codec:"username" json:"username"` FullName string `codec:"fullName" json:"fullName"` diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/commands.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/commands.go index f6d4d556..6a28d100 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/commands.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/commands.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/commands.avdl package chat1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/common.go index 60eff96d..530c49c1 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/common.avdl package chat1 @@ -9,6 +9,7 @@ import ( gregor1 "github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1" keybase1 "github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1" + stellar1 "github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1" ) type ThreadID []byte @@ -311,6 +312,8 @@ const ( TopicType_CHAT TopicType = 1 TopicType_DEV TopicType = 2 TopicType_KBFSFILEEDIT TopicType = 3 + TopicType_EMOJI TopicType = 4 + TopicType_EMOJICROSS TopicType = 5 ) func (o TopicType) DeepCopy() TopicType { return o } @@ -320,6 +323,8 @@ var TopicTypeMap = map[string]TopicType{ "CHAT": 1, "DEV": 2, "KBFSFILEEDIT": 3, + "EMOJI": 4, + "EMOJICROSS": 5, } var TopicTypeRevMap = map[TopicType]string{ @@ -327,6 +332,8 @@ var TopicTypeRevMap = map[TopicType]string{ 1: "CHAT", 2: "DEV", 3: "KBFSFILEEDIT", + 4: "EMOJI", + 5: "EMOJICROSS", } type TeamType int @@ -627,6 +634,32 @@ func (o RateLimit) DeepCopy() RateLimit { } } +type InboxParticipantsMode int + +const ( + InboxParticipantsMode_ALL InboxParticipantsMode = 0 + InboxParticipantsMode_SKIP_TEAMS InboxParticipantsMode = 1 +) + +func (o InboxParticipantsMode) DeepCopy() InboxParticipantsMode { return o } + +var InboxParticipantsModeMap = map[string]InboxParticipantsMode{ + "ALL": 0, + "SKIP_TEAMS": 1, +} + +var InboxParticipantsModeRevMap = map[InboxParticipantsMode]string{ + 0: "ALL", + 1: "SKIP_TEAMS", +} + +func (e InboxParticipantsMode) String() string { + if v, ok := InboxParticipantsModeRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + type GetInboxQuery struct { ConvID *ConversationID `codec:"convID,omitempty" json:"convID,omitempty"` TopicType *TopicType `codec:"topicType,omitempty" json:"topicType,omitempty"` @@ -645,6 +678,7 @@ type GetInboxQuery struct { ReadOnly bool `codec:"readOnly" json:"readOnly"` ComputeActiveList bool `codec:"computeActiveList" json:"computeActiveList"` SummarizeMaxMsgs bool `codec:"summarizeMaxMsgs" json:"summarizeMaxMsgs"` + ParticipantsMode InboxParticipantsMode `codec:"participantsMode" json:"participantsMode"` SkipBgLoads bool `codec:"skipBgLoads" json:"skipBgLoads"` AllowUnseenQuery bool `codec:"allowUnseenQuery" json:"allowUnseenQuery"` } @@ -766,6 +800,7 @@ func (o GetInboxQuery) DeepCopy() GetInboxQuery { ReadOnly: o.ReadOnly, ComputeActiveList: o.ComputeActiveList, SummarizeMaxMsgs: o.SummarizeMaxMsgs, + ParticipantsMode: o.ParticipantsMode.DeepCopy(), SkipBgLoads: o.SkipBgLoads, AllowUnseenQuery: o.AllowUnseenQuery, } @@ -959,6 +994,7 @@ type ConversationReaderInfo struct { MaxMsgid MessageID `codec:"maxMsgid" json:"maxMsgid"` Status ConversationMemberStatus `codec:"status" json:"status"` UntrustedTeamRole keybase1.TeamRole `codec:"untrustedTeamRole" json:"untrustedTeamRole"` + LastSendTime gregor1.Time `codec:"l" json:"l"` Journeycard *ConversationJourneycardInfo `codec:"jc,omitempty" json:"jc,omitempty"` } @@ -969,6 +1005,7 @@ func (o ConversationReaderInfo) DeepCopy() ConversationReaderInfo { MaxMsgid: o.MaxMsgid.DeepCopy(), Status: o.Status.DeepCopy(), UntrustedTeamRole: o.UntrustedTeamRole.DeepCopy(), + LastSendTime: o.LastSendTime.DeepCopy(), Journeycard: (func(x *ConversationJourneycardInfo) *ConversationJourneycardInfo { if x == nil { return nil @@ -1333,6 +1370,7 @@ type MessageClientHeader struct { EphemeralMetadata *MsgEphemeralMetadata `codec:"em,omitempty" json:"em,omitempty"` PairwiseMacs map[keybase1.KID][]byte `codec:"pm" json:"pm"` BotUID *gregor1.UID `codec:"b,omitempty" json:"b,omitempty"` + TxID *stellar1.TransactionID `codec:"t,omitempty" json:"t,omitempty"` } func (o MessageClientHeader) DeepCopy() MessageClientHeader { @@ -1432,6 +1470,13 @@ func (o MessageClientHeader) DeepCopy() MessageClientHeader { tmp := (*x).DeepCopy() return &tmp })(o.BotUID), + TxID: (func(x *stellar1.TransactionID) *stellar1.TransactionID { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.TxID), } } @@ -1959,6 +2004,7 @@ const ( GetThreadReason_KBFSFILEACTIVITY GetThreadReason = 8 GetThreadReason_COINFLIP GetThreadReason = 9 GetThreadReason_BOTCOMMANDS GetThreadReason = 10 + GetThreadReason_EMOJISOURCE GetThreadReason = 11 ) func (o GetThreadReason) DeepCopy() GetThreadReason { return o } @@ -1975,6 +2021,7 @@ var GetThreadReasonMap = map[string]GetThreadReason{ "KBFSFILEACTIVITY": 8, "COINFLIP": 9, "BOTCOMMANDS": 10, + "EMOJISOURCE": 11, } var GetThreadReasonRevMap = map[GetThreadReason]string{ @@ -1989,6 +2036,7 @@ var GetThreadReasonRevMap = map[GetThreadReason]string{ 8: "KBFSFILEACTIVITY", 9: "COINFLIP", 10: "BOTCOMMANDS", + 11: "EMOJISOURCE", } func (e GetThreadReason) String() string { @@ -2044,6 +2092,9 @@ type SearchOpts struct { MaxConvsHit int `codec:"maxConvsHit" json:"maxConvsHit"` ConvID *ConversationID `codec:"convID,omitempty" json:"convID,omitempty"` MaxNameConvs int `codec:"maxNameConvs" json:"maxNameConvs"` + MaxTeams int `codec:"maxTeams" json:"maxTeams"` + MaxBots int `codec:"maxBots" json:"maxBots"` + SkipBotCache bool `codec:"skipBotCache" json:"skipBotCache"` } func (o SearchOpts) DeepCopy() SearchOpts { @@ -2076,6 +2127,9 @@ func (o SearchOpts) DeepCopy() SearchOpts { return &tmp })(o.ConvID), MaxNameConvs: o.MaxNameConvs, + MaxTeams: o.MaxTeams, + MaxBots: o.MaxBots, + SkipBotCache: o.SkipBotCache, } } @@ -2387,6 +2441,7 @@ type Asset struct { Size int64 `codec:"size" json:"size"` MimeType string `codec:"mimeType" json:"mimeType"` EncHash Hash `codec:"encHash" json:"encHash"` + PtHash Hash `codec:"ptHash" json:"ptHash"` Key []byte `codec:"key" json:"key"` VerifyKey []byte `codec:"verifyKey" json:"verifyKey"` Title string `codec:"title" json:"title"` @@ -2405,6 +2460,7 @@ func (o Asset) DeepCopy() Asset { Size: o.Size, MimeType: o.MimeType, EncHash: o.EncHash.DeepCopy(), + PtHash: o.PtHash.DeepCopy(), Key: (func(x []byte) []byte { if x == nil { return nil @@ -2435,6 +2491,7 @@ const ( BotCommandsAdvertisementTyp_PUBLIC BotCommandsAdvertisementTyp = 0 BotCommandsAdvertisementTyp_TLFID_MEMBERS BotCommandsAdvertisementTyp = 1 BotCommandsAdvertisementTyp_TLFID_CONVS BotCommandsAdvertisementTyp = 2 + BotCommandsAdvertisementTyp_CONV BotCommandsAdvertisementTyp = 3 ) func (o BotCommandsAdvertisementTyp) DeepCopy() BotCommandsAdvertisementTyp { return o } @@ -2443,12 +2500,14 @@ var BotCommandsAdvertisementTypMap = map[string]BotCommandsAdvertisementTyp{ "PUBLIC": 0, "TLFID_MEMBERS": 1, "TLFID_CONVS": 2, + "CONV": 3, } var BotCommandsAdvertisementTypRevMap = map[BotCommandsAdvertisementTyp]string{ 0: "PUBLIC", 1: "TLFID_MEMBERS", 2: "TLFID_CONVS", + 3: "CONV", } func (e BotCommandsAdvertisementTyp) String() string { @@ -2471,3 +2530,126 @@ func (o TeamMember) DeepCopy() TeamMember { Status: o.Status.DeepCopy(), } } + +type LastActiveStatus int + +const ( + LastActiveStatus_NONE LastActiveStatus = 0 + LastActiveStatus_ACTIVE LastActiveStatus = 1 + LastActiveStatus_RECENTLY_ACTIVE LastActiveStatus = 2 +) + +func (o LastActiveStatus) DeepCopy() LastActiveStatus { return o } + +var LastActiveStatusMap = map[string]LastActiveStatus{ + "NONE": 0, + "ACTIVE": 1, + "RECENTLY_ACTIVE": 2, +} + +var LastActiveStatusRevMap = map[LastActiveStatus]string{ + 0: "NONE", + 1: "ACTIVE", + 2: "RECENTLY_ACTIVE", +} + +func (e LastActiveStatus) String() string { + if v, ok := LastActiveStatusRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type ChatMemberDetails struct { + Uid keybase1.UID `codec:"uid" json:"uid"` + Username string `codec:"username" json:"username"` + FullName keybase1.FullName `codec:"fullName" json:"fullName"` +} + +func (o ChatMemberDetails) DeepCopy() ChatMemberDetails { + return ChatMemberDetails{ + Uid: o.Uid.DeepCopy(), + Username: o.Username, + FullName: o.FullName.DeepCopy(), + } +} + +type ChatMembersDetails struct { + Owners []ChatMemberDetails `codec:"owners" json:"owners"` + Admins []ChatMemberDetails `codec:"admins" json:"admins"` + Writers []ChatMemberDetails `codec:"writers" json:"writers"` + Readers []ChatMemberDetails `codec:"readers" json:"readers"` + Bots []ChatMemberDetails `codec:"bots" json:"bots"` + RestrictedBots []ChatMemberDetails `codec:"restrictedBots" json:"restrictedBots"` +} + +func (o ChatMembersDetails) DeepCopy() ChatMembersDetails { + return ChatMembersDetails{ + Owners: (func(x []ChatMemberDetails) []ChatMemberDetails { + if x == nil { + return nil + } + ret := make([]ChatMemberDetails, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Owners), + Admins: (func(x []ChatMemberDetails) []ChatMemberDetails { + if x == nil { + return nil + } + ret := make([]ChatMemberDetails, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Admins), + Writers: (func(x []ChatMemberDetails) []ChatMemberDetails { + if x == nil { + return nil + } + ret := make([]ChatMemberDetails, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Writers), + Readers: (func(x []ChatMemberDetails) []ChatMemberDetails { + if x == nil { + return nil + } + ret := make([]ChatMemberDetails, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Readers), + Bots: (func(x []ChatMemberDetails) []ChatMemberDetails { + if x == nil { + return nil + } + ret := make([]ChatMemberDetails, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Bots), + RestrictedBots: (func(x []ChatMemberDetails) []ChatMemberDetails { + if x == nil { + return nil + } + ret := make([]ChatMemberDetails, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.RestrictedBots), + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/emoji.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/emoji.go new file mode 100644 index 00000000..6e756924 --- /dev/null +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/emoji.go @@ -0,0 +1,374 @@ +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) +// Input file: ../client/protocol/avdl/chat1/emoji.avdl + +package chat1 + +import ( + "errors" + "fmt" + + gregor1 "github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1" +) + +type EmojiLoadSourceTyp int + +const ( + EmojiLoadSourceTyp_HTTPSRV EmojiLoadSourceTyp = 0 + EmojiLoadSourceTyp_STR EmojiLoadSourceTyp = 1 +) + +func (o EmojiLoadSourceTyp) DeepCopy() EmojiLoadSourceTyp { return o } + +var EmojiLoadSourceTypMap = map[string]EmojiLoadSourceTyp{ + "HTTPSRV": 0, + "STR": 1, +} + +var EmojiLoadSourceTypRevMap = map[EmojiLoadSourceTyp]string{ + 0: "HTTPSRV", + 1: "STR", +} + +func (e EmojiLoadSourceTyp) String() string { + if v, ok := EmojiLoadSourceTypRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type EmojiLoadSource struct { + Typ__ EmojiLoadSourceTyp `codec:"typ" json:"typ"` + Httpsrv__ *string `codec:"httpsrv,omitempty" json:"httpsrv,omitempty"` + Str__ *string `codec:"str,omitempty" json:"str,omitempty"` +} + +func (o *EmojiLoadSource) Typ() (ret EmojiLoadSourceTyp, err error) { + switch o.Typ__ { + case EmojiLoadSourceTyp_HTTPSRV: + if o.Httpsrv__ == nil { + err = errors.New("unexpected nil value for Httpsrv__") + return ret, err + } + case EmojiLoadSourceTyp_STR: + if o.Str__ == nil { + err = errors.New("unexpected nil value for Str__") + return ret, err + } + } + return o.Typ__, nil +} + +func (o EmojiLoadSource) Httpsrv() (res string) { + if o.Typ__ != EmojiLoadSourceTyp_HTTPSRV { + panic("wrong case accessed") + } + if o.Httpsrv__ == nil { + return + } + return *o.Httpsrv__ +} + +func (o EmojiLoadSource) Str() (res string) { + if o.Typ__ != EmojiLoadSourceTyp_STR { + panic("wrong case accessed") + } + if o.Str__ == nil { + return + } + return *o.Str__ +} + +func NewEmojiLoadSourceWithHttpsrv(v string) EmojiLoadSource { + return EmojiLoadSource{ + Typ__: EmojiLoadSourceTyp_HTTPSRV, + Httpsrv__: &v, + } +} + +func NewEmojiLoadSourceWithStr(v string) EmojiLoadSource { + return EmojiLoadSource{ + Typ__: EmojiLoadSourceTyp_STR, + Str__: &v, + } +} + +func (o EmojiLoadSource) DeepCopy() EmojiLoadSource { + return EmojiLoadSource{ + Typ__: o.Typ__.DeepCopy(), + Httpsrv__: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.Httpsrv__), + Str__: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.Str__), + } +} + +type EmojiRemoteSourceTyp int + +const ( + EmojiRemoteSourceTyp_MESSAGE EmojiRemoteSourceTyp = 0 + EmojiRemoteSourceTyp_STOCKALIAS EmojiRemoteSourceTyp = 1 +) + +func (o EmojiRemoteSourceTyp) DeepCopy() EmojiRemoteSourceTyp { return o } + +var EmojiRemoteSourceTypMap = map[string]EmojiRemoteSourceTyp{ + "MESSAGE": 0, + "STOCKALIAS": 1, +} + +var EmojiRemoteSourceTypRevMap = map[EmojiRemoteSourceTyp]string{ + 0: "MESSAGE", + 1: "STOCKALIAS", +} + +func (e EmojiRemoteSourceTyp) String() string { + if v, ok := EmojiRemoteSourceTypRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type EmojiMessage struct { + ConvID ConversationID `codec:"convID" json:"convID"` + MsgID MessageID `codec:"msgID" json:"msgID"` + IsAlias bool `codec:"isAlias" json:"isAlias"` +} + +func (o EmojiMessage) DeepCopy() EmojiMessage { + return EmojiMessage{ + ConvID: o.ConvID.DeepCopy(), + MsgID: o.MsgID.DeepCopy(), + IsAlias: o.IsAlias, + } +} + +type EmojiStockAlias struct { + Text string `codec:"text" json:"text"` + Username string `codec:"username" json:"username"` + Time gregor1.Time `codec:"time" json:"time"` +} + +func (o EmojiStockAlias) DeepCopy() EmojiStockAlias { + return EmojiStockAlias{ + Text: o.Text, + Username: o.Username, + Time: o.Time.DeepCopy(), + } +} + +type EmojiRemoteSource struct { + Typ__ EmojiRemoteSourceTyp `codec:"typ" json:"typ"` + Message__ *EmojiMessage `codec:"message,omitempty" json:"message,omitempty"` + Stockalias__ *EmojiStockAlias `codec:"stockalias,omitempty" json:"stockalias,omitempty"` +} + +func (o *EmojiRemoteSource) Typ() (ret EmojiRemoteSourceTyp, err error) { + switch o.Typ__ { + case EmojiRemoteSourceTyp_MESSAGE: + if o.Message__ == nil { + err = errors.New("unexpected nil value for Message__") + return ret, err + } + case EmojiRemoteSourceTyp_STOCKALIAS: + if o.Stockalias__ == nil { + err = errors.New("unexpected nil value for Stockalias__") + return ret, err + } + } + return o.Typ__, nil +} + +func (o EmojiRemoteSource) Message() (res EmojiMessage) { + if o.Typ__ != EmojiRemoteSourceTyp_MESSAGE { + panic("wrong case accessed") + } + if o.Message__ == nil { + return + } + return *o.Message__ +} + +func (o EmojiRemoteSource) Stockalias() (res EmojiStockAlias) { + if o.Typ__ != EmojiRemoteSourceTyp_STOCKALIAS { + panic("wrong case accessed") + } + if o.Stockalias__ == nil { + return + } + return *o.Stockalias__ +} + +func NewEmojiRemoteSourceWithMessage(v EmojiMessage) EmojiRemoteSource { + return EmojiRemoteSource{ + Typ__: EmojiRemoteSourceTyp_MESSAGE, + Message__: &v, + } +} + +func NewEmojiRemoteSourceWithStockalias(v EmojiStockAlias) EmojiRemoteSource { + return EmojiRemoteSource{ + Typ__: EmojiRemoteSourceTyp_STOCKALIAS, + Stockalias__: &v, + } +} + +func (o EmojiRemoteSource) DeepCopy() EmojiRemoteSource { + return EmojiRemoteSource{ + Typ__: o.Typ__.DeepCopy(), + Message__: (func(x *EmojiMessage) *EmojiMessage { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Message__), + Stockalias__: (func(x *EmojiStockAlias) *EmojiStockAlias { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Stockalias__), + } +} + +type HarvestedEmoji struct { + Alias string `codec:"alias" json:"alias"` + IsBig bool `codec:"isBig" json:"isBig"` + IsCrossTeam bool `codec:"isCrossTeam" json:"isCrossTeam"` + Source EmojiRemoteSource `codec:"source" json:"source"` +} + +func (o HarvestedEmoji) DeepCopy() HarvestedEmoji { + return HarvestedEmoji{ + Alias: o.Alias, + IsBig: o.IsBig, + IsCrossTeam: o.IsCrossTeam, + Source: o.Source.DeepCopy(), + } +} + +type EmojiCreationInfo struct { + Username string `codec:"username" json:"username"` + Time gregor1.Time `codec:"time" json:"time"` +} + +func (o EmojiCreationInfo) DeepCopy() EmojiCreationInfo { + return EmojiCreationInfo{ + Username: o.Username, + Time: o.Time.DeepCopy(), + } +} + +type Emoji struct { + Alias string `codec:"alias" json:"alias"` + IsBig bool `codec:"isBig" json:"isBig"` + IsReacji bool `codec:"isReacji" json:"isReacji"` + IsCrossTeam bool `codec:"isCrossTeam" json:"isCrossTeam"` + IsAlias bool `codec:"isAlias" json:"isAlias"` + Source EmojiLoadSource `codec:"source" json:"source"` + NoAnimSource EmojiLoadSource `codec:"noAnimSource" json:"noAnimSource"` + RemoteSource EmojiRemoteSource `codec:"remoteSource" json:"remoteSource"` + CreationInfo *EmojiCreationInfo `codec:"creationInfo,omitempty" json:"creationInfo,omitempty"` + Teamname *string `codec:"teamname,omitempty" json:"teamname,omitempty"` +} + +func (o Emoji) DeepCopy() Emoji { + return Emoji{ + Alias: o.Alias, + IsBig: o.IsBig, + IsReacji: o.IsReacji, + IsCrossTeam: o.IsCrossTeam, + IsAlias: o.IsAlias, + Source: o.Source.DeepCopy(), + NoAnimSource: o.NoAnimSource.DeepCopy(), + RemoteSource: o.RemoteSource.DeepCopy(), + CreationInfo: (func(x *EmojiCreationInfo) *EmojiCreationInfo { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.CreationInfo), + Teamname: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.Teamname), + } +} + +type EmojiGroup struct { + Name string `codec:"name" json:"name"` + Emojis []Emoji `codec:"emojis" json:"emojis"` +} + +func (o EmojiGroup) DeepCopy() EmojiGroup { + return EmojiGroup{ + Name: o.Name, + Emojis: (func(x []Emoji) []Emoji { + if x == nil { + return nil + } + ret := make([]Emoji, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Emojis), + } +} + +type UserEmojis struct { + Emojis []EmojiGroup `codec:"emojis" json:"emojis"` +} + +func (o UserEmojis) DeepCopy() UserEmojis { + return UserEmojis{ + Emojis: (func(x []EmojiGroup) []EmojiGroup { + if x == nil { + return nil + } + ret := make([]EmojiGroup, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Emojis), + } +} + +type EmojiStorage struct { + Mapping map[string]EmojiRemoteSource `codec:"mapping" json:"mapping"` +} + +func (o EmojiStorage) DeepCopy() EmojiStorage { + return EmojiStorage{ + Mapping: (func(x map[string]EmojiRemoteSource) map[string]EmojiRemoteSource { + if x == nil { + return nil + } + ret := make(map[string]EmojiRemoteSource, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Mapping), + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/gregor.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/gregor.go index 30e78484..01210c46 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/gregor.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/gregor.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/gregor.avdl package chat1 @@ -453,16 +453,6 @@ func (o UpdateConversations) DeepCopy() UpdateConversations { } } -type TeamChannelUpdate struct { - TeamID TLFID `codec:"teamID" json:"teamID"` -} - -func (o TeamChannelUpdate) DeepCopy() TeamChannelUpdate { - return TeamChannelUpdate{ - TeamID: o.TeamID.DeepCopy(), - } -} - type SetConvRetentionUpdate struct { InboxVers InboxVers `codec:"inboxVers" json:"inboxVers"` ConvID ConversationID `codec:"convID" json:"convID"` diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/local.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/local.go index d9ae8815..2f85c106 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/local.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/local.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/local.avdl package chat1 @@ -195,13 +195,14 @@ func (o LiveLocation) DeepCopy() LiveLocation { } type MessageText struct { - Body string `codec:"body" json:"body"` - Payments []TextPayment `codec:"payments" json:"payments"` - ReplyTo *MessageID `codec:"replyTo,omitempty" json:"replyTo,omitempty"` - ReplyToUID *gregor1.UID `codec:"replyToUID,omitempty" json:"replyToUID,omitempty"` - UserMentions []KnownUserMention `codec:"userMentions" json:"userMentions"` - TeamMentions []KnownTeamMention `codec:"teamMentions" json:"teamMentions"` - LiveLocation *LiveLocation `codec:"liveLocation,omitempty" json:"liveLocation,omitempty"` + Body string `codec:"body" json:"body"` + Payments []TextPayment `codec:"payments" json:"payments"` + ReplyTo *MessageID `codec:"replyTo,omitempty" json:"replyTo,omitempty"` + ReplyToUID *gregor1.UID `codec:"replyToUID,omitempty" json:"replyToUID,omitempty"` + UserMentions []KnownUserMention `codec:"userMentions" json:"userMentions"` + TeamMentions []KnownTeamMention `codec:"teamMentions" json:"teamMentions"` + LiveLocation *LiveLocation `codec:"liveLocation,omitempty" json:"liveLocation,omitempty"` + Emojis map[string]HarvestedEmoji `codec:"emojis" json:"emojis"` } func (o MessageText) DeepCopy() MessageText { @@ -261,6 +262,18 @@ func (o MessageText) DeepCopy() MessageText { tmp := (*x).DeepCopy() return &tmp })(o.LiveLocation), + Emojis: (func(x map[string]HarvestedEmoji) map[string]HarvestedEmoji { + if x == nil { + return nil + } + ret := make(map[string]HarvestedEmoji, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Emojis), } } @@ -275,10 +288,11 @@ func (o MessageConversationMetadata) DeepCopy() MessageConversationMetadata { } type MessageEdit struct { - MessageID MessageID `codec:"messageID" json:"messageID"` - Body string `codec:"body" json:"body"` - UserMentions []KnownUserMention `codec:"userMentions" json:"userMentions"` - TeamMentions []KnownTeamMention `codec:"teamMentions" json:"teamMentions"` + MessageID MessageID `codec:"messageID" json:"messageID"` + Body string `codec:"body" json:"body"` + UserMentions []KnownUserMention `codec:"userMentions" json:"userMentions"` + TeamMentions []KnownTeamMention `codec:"teamMentions" json:"teamMentions"` + Emojis map[string]HarvestedEmoji `codec:"emojis" json:"emojis"` } func (o MessageEdit) DeepCopy() MessageEdit { @@ -307,6 +321,18 @@ func (o MessageEdit) DeepCopy() MessageEdit { } return ret })(o.TeamMentions), + Emojis: (func(x map[string]HarvestedEmoji) map[string]HarvestedEmoji { + if x == nil { + return nil + } + ret := make(map[string]HarvestedEmoji, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Emojis), } } @@ -331,12 +357,25 @@ func (o MessageDelete) DeepCopy() MessageDelete { } type MessageHeadline struct { - Headline string `codec:"headline" json:"headline"` + Headline string `codec:"headline" json:"headline"` + Emojis map[string]HarvestedEmoji `codec:"emojis" json:"emojis"` } func (o MessageHeadline) DeepCopy() MessageHeadline { return MessageHeadline{ Headline: o.Headline, + Emojis: (func(x map[string]HarvestedEmoji) map[string]HarvestedEmoji { + if x == nil { + return nil + } + ret := make(map[string]HarvestedEmoji, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Emojis), } } @@ -400,6 +439,7 @@ const ( MessageSystemType_CHANGERETENTION MessageSystemType = 6 MessageSystemType_BULKADDTOCONV MessageSystemType = 7 MessageSystemType_SBSRESOLVE MessageSystemType = 8 + MessageSystemType_NEWCHANNEL MessageSystemType = 9 ) func (o MessageSystemType) DeepCopy() MessageSystemType { return o } @@ -414,6 +454,7 @@ var MessageSystemTypeMap = map[string]MessageSystemType{ "CHANGERETENTION": 6, "BULKADDTOCONV": 7, "SBSRESOLVE": 8, + "NEWCHANNEL": 9, } var MessageSystemTypeRevMap = map[MessageSystemType]string{ @@ -426,6 +467,7 @@ var MessageSystemTypeRevMap = map[MessageSystemType]string{ 6: "CHANGERETENTION", 7: "BULKADDTOCONV", 8: "SBSRESOLVE", + 9: "NEWCHANNEL", } func (e MessageSystemType) String() string { @@ -436,17 +478,11 @@ func (e MessageSystemType) String() string { } type MessageSystemAddedToTeam struct { - Team string `codec:"team" json:"team"` - Adder string `codec:"adder" json:"adder"` - Addee string `codec:"addee" json:"addee"` - Role keybase1.TeamRole `codec:"role" json:"role"` - BulkAdds []string `codec:"bulkAdds" json:"bulkAdds"` - Owners []string `codec:"owners" json:"owners"` - Admins []string `codec:"admins" json:"admins"` - Writers []string `codec:"writers" json:"writers"` - Readers []string `codec:"readers" json:"readers"` - Bots []string `codec:"bots" json:"bots"` - RestrictedBots []string `codec:"restrictedBots" json:"restrictedBots"` + Team string `codec:"team" json:"team"` + Adder string `codec:"adder" json:"adder"` + Addee string `codec:"addee" json:"addee"` + Role keybase1.TeamRole `codec:"role" json:"role"` + BulkAdds []string `codec:"bulkAdds" json:"bulkAdds"` } func (o MessageSystemAddedToTeam) DeepCopy() MessageSystemAddedToTeam { @@ -466,72 +502,6 @@ func (o MessageSystemAddedToTeam) DeepCopy() MessageSystemAddedToTeam { } return ret })(o.BulkAdds), - Owners: (func(x []string) []string { - if x == nil { - return nil - } - ret := make([]string, len(x)) - for i, v := range x { - vCopy := v - ret[i] = vCopy - } - return ret - })(o.Owners), - Admins: (func(x []string) []string { - if x == nil { - return nil - } - ret := make([]string, len(x)) - for i, v := range x { - vCopy := v - ret[i] = vCopy - } - return ret - })(o.Admins), - Writers: (func(x []string) []string { - if x == nil { - return nil - } - ret := make([]string, len(x)) - for i, v := range x { - vCopy := v - ret[i] = vCopy - } - return ret - })(o.Writers), - Readers: (func(x []string) []string { - if x == nil { - return nil - } - ret := make([]string, len(x)) - for i, v := range x { - vCopy := v - ret[i] = vCopy - } - return ret - })(o.Readers), - Bots: (func(x []string) []string { - if x == nil { - return nil - } - ret := make([]string, len(x)) - for i, v := range x { - vCopy := v - ret[i] = vCopy - } - return ret - })(o.Bots), - RestrictedBots: (func(x []string) []string { - if x == nil { - return nil - } - ret := make([]string, len(x)) - for i, v := range x { - vCopy := v - ret[i] = vCopy - } - return ret - })(o.RestrictedBots), } } @@ -673,6 +643,32 @@ func (o MessageSystemSbsResolve) DeepCopy() MessageSystemSbsResolve { } } +type MessageSystemNewChannel struct { + Creator string `codec:"creator" json:"creator"` + NameAtCreation string `codec:"nameAtCreation" json:"nameAtCreation"` + ConvID ConversationID `codec:"convID" json:"convID"` + ConvIDs []ConversationID `codec:"convIDs" json:"convIDs"` +} + +func (o MessageSystemNewChannel) DeepCopy() MessageSystemNewChannel { + return MessageSystemNewChannel{ + Creator: o.Creator, + NameAtCreation: o.NameAtCreation, + ConvID: o.ConvID.DeepCopy(), + ConvIDs: (func(x []ConversationID) []ConversationID { + if x == nil { + return nil + } + ret := make([]ConversationID, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.ConvIDs), + } +} + type MessageSystem struct { SystemType__ MessageSystemType `codec:"systemType" json:"systemType"` Addedtoteam__ *MessageSystemAddedToTeam `codec:"addedtoteam,omitempty" json:"addedtoteam,omitempty"` @@ -684,6 +680,7 @@ type MessageSystem struct { Changeretention__ *MessageSystemChangeRetention `codec:"changeretention,omitempty" json:"changeretention,omitempty"` Bulkaddtoconv__ *MessageSystemBulkAddToConv `codec:"bulkaddtoconv,omitempty" json:"bulkaddtoconv,omitempty"` Sbsresolve__ *MessageSystemSbsResolve `codec:"sbsresolve,omitempty" json:"sbsresolve,omitempty"` + Newchannel__ *MessageSystemNewChannel `codec:"newchannel,omitempty" json:"newchannel,omitempty"` } func (o *MessageSystem) SystemType() (ret MessageSystemType, err error) { @@ -733,6 +730,11 @@ func (o *MessageSystem) SystemType() (ret MessageSystemType, err error) { err = errors.New("unexpected nil value for Sbsresolve__") return ret, err } + case MessageSystemType_NEWCHANNEL: + if o.Newchannel__ == nil { + err = errors.New("unexpected nil value for Newchannel__") + return ret, err + } } return o.SystemType__, nil } @@ -827,6 +829,16 @@ func (o MessageSystem) Sbsresolve() (res MessageSystemSbsResolve) { return *o.Sbsresolve__ } +func (o MessageSystem) Newchannel() (res MessageSystemNewChannel) { + if o.SystemType__ != MessageSystemType_NEWCHANNEL { + panic("wrong case accessed") + } + if o.Newchannel__ == nil { + return + } + return *o.Newchannel__ +} + func NewMessageSystemWithAddedtoteam(v MessageSystemAddedToTeam) MessageSystem { return MessageSystem{ SystemType__: MessageSystemType_ADDEDTOTEAM, @@ -890,6 +902,13 @@ func NewMessageSystemWithSbsresolve(v MessageSystemSbsResolve) MessageSystem { } } +func NewMessageSystemWithNewchannel(v MessageSystemNewChannel) MessageSystem { + return MessageSystem{ + SystemType__: MessageSystemType_NEWCHANNEL, + Newchannel__: &v, + } +} + func (o MessageSystem) DeepCopy() MessageSystem { return MessageSystem{ SystemType__: o.SystemType__.DeepCopy(), @@ -956,6 +975,13 @@ func (o MessageSystem) DeepCopy() MessageSystem { tmp := (*x).DeepCopy() return &tmp })(o.Sbsresolve__), + Newchannel__: (func(x *MessageSystemNewChannel) *MessageSystemNewChannel { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Newchannel__), } } @@ -970,11 +996,14 @@ func (o MessageDeleteHistory) DeepCopy() MessageDeleteHistory { } type MessageAttachment struct { - Object Asset `codec:"object" json:"object"` - Preview *Asset `codec:"preview,omitempty" json:"preview,omitempty"` - Previews []Asset `codec:"previews" json:"previews"` - Metadata []byte `codec:"metadata" json:"metadata"` - Uploaded bool `codec:"uploaded" json:"uploaded"` + Object Asset `codec:"object" json:"object"` + Preview *Asset `codec:"preview,omitempty" json:"preview,omitempty"` + Previews []Asset `codec:"previews" json:"previews"` + Metadata []byte `codec:"metadata" json:"metadata"` + Uploaded bool `codec:"uploaded" json:"uploaded"` + UserMentions []KnownUserMention `codec:"userMentions" json:"userMentions"` + TeamMentions []KnownTeamMention `codec:"teamMentions" json:"teamMentions"` + Emojis map[string]HarvestedEmoji `codec:"emojis" json:"emojis"` } func (o MessageAttachment) DeepCopy() MessageAttachment { @@ -1005,6 +1034,40 @@ func (o MessageAttachment) DeepCopy() MessageAttachment { return append([]byte{}, x...) })(o.Metadata), Uploaded: o.Uploaded, + UserMentions: (func(x []KnownUserMention) []KnownUserMention { + if x == nil { + return nil + } + ret := make([]KnownUserMention, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.UserMentions), + TeamMentions: (func(x []KnownTeamMention) []KnownTeamMention { + if x == nil { + return nil + } + ret := make([]KnownTeamMention, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.TeamMentions), + Emojis: (func(x map[string]HarvestedEmoji) map[string]HarvestedEmoji { + if x == nil { + return nil + } + ret := make(map[string]HarvestedEmoji, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Emojis), } } @@ -1079,14 +1142,35 @@ func (o MessageLeave) DeepCopy() MessageLeave { } type MessageReaction struct { - MessageID MessageID `codec:"m" json:"m"` - Body string `codec:"b" json:"b"` + MessageID MessageID `codec:"m" json:"m"` + Body string `codec:"b" json:"b"` + TargetUID *gregor1.UID `codec:"t,omitempty" json:"t,omitempty"` + Emojis map[string]HarvestedEmoji `codec:"e" json:"e"` } func (o MessageReaction) DeepCopy() MessageReaction { return MessageReaction{ MessageID: o.MessageID.DeepCopy(), Body: o.Body, + TargetUID: (func(x *gregor1.UID) *gregor1.UID { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.TargetUID), + Emojis: (func(x map[string]HarvestedEmoji) map[string]HarvestedEmoji { + if x == nil { + return nil + } + ret := make(map[string]HarvestedEmoji, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Emojis), } } @@ -2793,6 +2877,7 @@ type MessagePlaintext struct { ClientHeader MessageClientHeader `codec:"clientHeader" json:"clientHeader"` MessageBody MessageBody `codec:"messageBody" json:"messageBody"` SupersedesOutboxID *OutboxID `codec:"supersedesOutboxID,omitempty" json:"supersedesOutboxID,omitempty"` + Emojis []HarvestedEmoji `codec:"emojis" json:"emojis"` } func (o MessagePlaintext) DeepCopy() MessagePlaintext { @@ -2806,6 +2891,17 @@ func (o MessagePlaintext) DeepCopy() MessagePlaintext { tmp := (*x).DeepCopy() return &tmp })(o.SupersedesOutboxID), + Emojis: (func(x []HarvestedEmoji) []HarvestedEmoji { + if x == nil { + return nil + } + ret := make([]HarvestedEmoji, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Emojis), } } @@ -2815,7 +2911,7 @@ type MessageUnboxedValid struct { MessageBody MessageBody `codec:"messageBody" json:"messageBody"` SenderUsername string `codec:"senderUsername" json:"senderUsername"` SenderDeviceName string `codec:"senderDeviceName" json:"senderDeviceName"` - SenderDeviceType string `codec:"senderDeviceType" json:"senderDeviceType"` + SenderDeviceType keybase1.DeviceTypeV2 `codec:"senderDeviceType" json:"senderDeviceType"` BodyHash Hash `codec:"bodyHash" json:"bodyHash"` HeaderHash Hash `codec:"headerHash" json:"headerHash"` HeaderSignature *SignatureInfo `codec:"headerSignature,omitempty" json:"headerSignature,omitempty"` @@ -2828,6 +2924,7 @@ type MessageUnboxedValid struct { ChannelNameMentions []ChannelNameMention `codec:"channelNameMentions" json:"channelNameMentions"` Reactions ReactionMap `codec:"reactions" json:"reactions"` Unfurls map[MessageID]UnfurlResult `codec:"unfurls" json:"unfurls"` + Emojis []HarvestedEmoji `codec:"emojis" json:"emojis"` ReplyTo *MessageUnboxed `codec:"replyTo,omitempty" json:"replyTo,omitempty"` BotUsername string `codec:"botUsername" json:"botUsername"` } @@ -2839,7 +2936,7 @@ func (o MessageUnboxedValid) DeepCopy() MessageUnboxedValid { MessageBody: o.MessageBody.DeepCopy(), SenderUsername: o.SenderUsername, SenderDeviceName: o.SenderDeviceName, - SenderDeviceType: o.SenderDeviceType, + SenderDeviceType: o.SenderDeviceType.DeepCopy(), BodyHash: o.BodyHash.DeepCopy(), HeaderHash: o.HeaderHash.DeepCopy(), HeaderSignature: (func(x *SignatureInfo) *SignatureInfo { @@ -2926,6 +3023,17 @@ func (o MessageUnboxedValid) DeepCopy() MessageUnboxedValid { } return ret })(o.Unfurls), + Emojis: (func(x []HarvestedEmoji) []HarvestedEmoji { + if x == nil { + return nil + } + ret := make([]HarvestedEmoji, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Emojis), ReplyTo: (func(x *MessageUnboxed) *MessageUnboxed { if x == nil { return nil @@ -2984,7 +3092,7 @@ type MessageUnboxedError struct { IsCritical bool `codec:"isCritical" json:"isCritical"` SenderUsername string `codec:"senderUsername" json:"senderUsername"` SenderDeviceName string `codec:"senderDeviceName" json:"senderDeviceName"` - SenderDeviceType string `codec:"senderDeviceType" json:"senderDeviceType"` + SenderDeviceType keybase1.DeviceTypeV2 `codec:"senderDeviceType" json:"senderDeviceType"` MessageID MessageID `codec:"messageID" json:"messageID"` MessageType MessageType `codec:"messageType" json:"messageType"` Ctime gregor1.Time `codec:"ctime" json:"ctime"` @@ -3004,7 +3112,7 @@ func (o MessageUnboxedError) DeepCopy() MessageUnboxedError { IsCritical: o.IsCritical, SenderUsername: o.SenderUsername, SenderDeviceName: o.SenderDeviceName, - SenderDeviceType: o.SenderDeviceType, + SenderDeviceType: o.SenderDeviceType.DeepCopy(), MessageID: o.MessageID.DeepCopy(), MessageType: o.MessageType.DeepCopy(), Ctime: o.Ctime.DeepCopy(), @@ -3316,26 +3424,27 @@ func (o ConversationPinnedMessage) DeepCopy() ConversationPinnedMessage { } type ConversationInfoLocal struct { - Id ConversationID `codec:"id" json:"id"` - Triple ConversationIDTriple `codec:"triple" json:"triple"` - TlfName string `codec:"tlfName" json:"tlfName"` - TopicName string `codec:"topicName" json:"topicName"` - Headline string `codec:"headline" json:"headline"` - SnippetMsg *MessageUnboxed `codec:"snippetMsg,omitempty" json:"snippetMsg,omitempty"` - PinnedMsg *ConversationPinnedMessage `codec:"pinnedMsg,omitempty" json:"pinnedMsg,omitempty"` - Draft *string `codec:"draft,omitempty" json:"draft,omitempty"` - Visibility keybase1.TLFVisibility `codec:"visibility" json:"visibility"` - IsDefaultConv bool `codec:"isDefaultConv" json:"isDefaultConv"` - Status ConversationStatus `codec:"status" json:"status"` - MembersType ConversationMembersType `codec:"membersType" json:"membersType"` - MemberStatus ConversationMemberStatus `codec:"memberStatus" json:"memberStatus"` - TeamType TeamType `codec:"teamType" json:"teamType"` - Existence ConversationExistence `codec:"existence" json:"existence"` - Version ConversationVers `codec:"version" json:"version"` - LocalVersion LocalConversationVers `codec:"localVersion" json:"localVersion"` - Participants []ConversationLocalParticipant `codec:"participants" json:"participants"` - FinalizeInfo *ConversationFinalizeInfo `codec:"finalizeInfo,omitempty" json:"finalizeInfo,omitempty"` - ResetNames []string `codec:"resetNames" json:"resetNames"` + Id ConversationID `codec:"id" json:"id"` + Triple ConversationIDTriple `codec:"triple" json:"triple"` + TlfName string `codec:"tlfName" json:"tlfName"` + TopicName string `codec:"topicName" json:"topicName"` + Headline string `codec:"headline" json:"headline"` + HeadlineEmojis []HarvestedEmoji `codec:"headlineEmojis" json:"headlineEmojis"` + SnippetMsg *MessageUnboxed `codec:"snippetMsg,omitempty" json:"snippetMsg,omitempty"` + PinnedMsg *ConversationPinnedMessage `codec:"pinnedMsg,omitempty" json:"pinnedMsg,omitempty"` + Draft *string `codec:"draft,omitempty" json:"draft,omitempty"` + Visibility keybase1.TLFVisibility `codec:"visibility" json:"visibility"` + IsDefaultConv bool `codec:"isDefaultConv" json:"isDefaultConv"` + Status ConversationStatus `codec:"status" json:"status"` + MembersType ConversationMembersType `codec:"membersType" json:"membersType"` + MemberStatus ConversationMemberStatus `codec:"memberStatus" json:"memberStatus"` + TeamType TeamType `codec:"teamType" json:"teamType"` + Existence ConversationExistence `codec:"existence" json:"existence"` + Version ConversationVers `codec:"version" json:"version"` + LocalVersion LocalConversationVers `codec:"localVersion" json:"localVersion"` + Participants []ConversationLocalParticipant `codec:"participants" json:"participants"` + FinalizeInfo *ConversationFinalizeInfo `codec:"finalizeInfo,omitempty" json:"finalizeInfo,omitempty"` + ResetNames []string `codec:"resetNames" json:"resetNames"` } func (o ConversationInfoLocal) DeepCopy() ConversationInfoLocal { @@ -3345,6 +3454,17 @@ func (o ConversationInfoLocal) DeepCopy() ConversationInfoLocal { TlfName: o.TlfName, TopicName: o.TopicName, Headline: o.Headline, + HeadlineEmojis: (func(x []HarvestedEmoji) []HarvestedEmoji { + if x == nil { + return nil + } + ret := make([]HarvestedEmoji, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.HeadlineEmojis), SnippetMsg: (func(x *MessageUnboxed) *MessageUnboxed { if x == nil { return nil @@ -4343,6 +4463,98 @@ func (o SetConversationStatusLocalRes) DeepCopy() SetConversationStatusLocalRes } } +type NewConversationsLocalRes struct { + Results []NewConversationsLocalResult `codec:"results" json:"results"` + RateLimits []RateLimit `codec:"rateLimits" json:"rateLimits"` + IdentifyFailures []keybase1.TLFIdentifyFailure `codec:"identifyFailures" json:"identifyFailures"` +} + +func (o NewConversationsLocalRes) DeepCopy() NewConversationsLocalRes { + return NewConversationsLocalRes{ + Results: (func(x []NewConversationsLocalResult) []NewConversationsLocalResult { + if x == nil { + return nil + } + ret := make([]NewConversationsLocalResult, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Results), + RateLimits: (func(x []RateLimit) []RateLimit { + if x == nil { + return nil + } + ret := make([]RateLimit, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.RateLimits), + IdentifyFailures: (func(x []keybase1.TLFIdentifyFailure) []keybase1.TLFIdentifyFailure { + if x == nil { + return nil + } + ret := make([]keybase1.TLFIdentifyFailure, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.IdentifyFailures), + } +} + +type NewConversationsLocalResult struct { + Result *NewConversationLocalRes `codec:"result,omitempty" json:"result,omitempty"` + Err *string `codec:"err,omitempty" json:"err,omitempty"` +} + +func (o NewConversationsLocalResult) DeepCopy() NewConversationsLocalResult { + return NewConversationsLocalResult{ + Result: (func(x *NewConversationLocalRes) *NewConversationLocalRes { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Result), + Err: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.Err), + } +} + +type NewConversationLocalArgument struct { + TlfName string `codec:"tlfName" json:"tlfName"` + TopicType TopicType `codec:"topicType" json:"topicType"` + TlfVisibility keybase1.TLFVisibility `codec:"tlfVisibility" json:"tlfVisibility"` + TopicName *string `codec:"topicName,omitempty" json:"topicName,omitempty"` + MembersType ConversationMembersType `codec:"membersType" json:"membersType"` +} + +func (o NewConversationLocalArgument) DeepCopy() NewConversationLocalArgument { + return NewConversationLocalArgument{ + TlfName: o.TlfName, + TopicType: o.TopicType.DeepCopy(), + TlfVisibility: o.TlfVisibility.DeepCopy(), + TopicName: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.TopicName), + MembersType: o.MembersType.DeepCopy(), + } +} + type NewConversationLocalRes struct { Conv ConversationLocal `codec:"conv" json:"conv"` UiConv InboxUIItem `codec:"uiConv" json:"uiConv"` @@ -5098,6 +5310,74 @@ func (o GetTLFConversationsLocalRes) DeepCopy() GetTLFConversationsLocalRes { } } +type GetChannelMembershipsLocalRes struct { + Channels []ChannelNameMention `codec:"channels" json:"channels"` + Offline bool `codec:"offline" json:"offline"` + RateLimits []RateLimit `codec:"rateLimits" json:"rateLimits"` +} + +func (o GetChannelMembershipsLocalRes) DeepCopy() GetChannelMembershipsLocalRes { + return GetChannelMembershipsLocalRes{ + Channels: (func(x []ChannelNameMention) []ChannelNameMention { + if x == nil { + return nil + } + ret := make([]ChannelNameMention, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Channels), + Offline: o.Offline, + RateLimits: (func(x []RateLimit) []RateLimit { + if x == nil { + return nil + } + ret := make([]RateLimit, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.RateLimits), + } +} + +type GetMutualTeamsLocalRes struct { + TeamIDs []keybase1.TeamID `codec:"teamIDs" json:"teamIDs"` + Offline bool `codec:"offline" json:"offline"` + RateLimits []RateLimit `codec:"rateLimits" json:"rateLimits"` +} + +func (o GetMutualTeamsLocalRes) DeepCopy() GetMutualTeamsLocalRes { + return GetMutualTeamsLocalRes{ + TeamIDs: (func(x []keybase1.TeamID) []keybase1.TeamID { + if x == nil { + return nil + } + ret := make([]keybase1.TeamID, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.TeamIDs), + Offline: o.Offline, + RateLimits: (func(x []RateLimit) []RateLimit { + if x == nil { + return nil + } + ret := make([]RateLimit, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.RateLimits), + } +} + type SetAppNotificationSettingsLocalRes struct { Offline bool `codec:"offline" json:"offline"` RateLimits []RateLimit `codec:"rateLimits" json:"rateLimits"` @@ -5268,6 +5548,34 @@ func (o SearchInboxRes) DeepCopy() SearchInboxRes { } } +type SimpleSearchInboxConvNamesHit struct { + Name string `codec:"name" json:"name"` + ConvID ConversationID `codec:"convID" json:"convID"` + IsTeam bool `codec:"isTeam" json:"isTeam"` + Parts []string `codec:"parts" json:"parts"` + TlfName string `codec:"tlfName" json:"tlfName"` +} + +func (o SimpleSearchInboxConvNamesHit) DeepCopy() SimpleSearchInboxConvNamesHit { + return SimpleSearchInboxConvNamesHit{ + Name: o.Name, + ConvID: o.ConvID.DeepCopy(), + IsTeam: o.IsTeam, + Parts: (func(x []string) []string { + if x == nil { + return nil + } + ret := make([]string, len(x)) + for i, v := range x { + vCopy := v + ret[i] = vCopy + } + return ret + })(o.Parts), + TlfName: o.TlfName, + } +} + type ProfileSearchConvStats struct { Err string `codec:"err" json:"err"` ConvName string `codec:"convName" json:"convName"` @@ -5652,6 +5960,7 @@ type AdvertiseCommandsParam struct { Typ BotCommandsAdvertisementTyp `codec:"typ" json:"typ"` Commands []UserBotCommandInput `codec:"commands" json:"commands"` TeamName *string `codec:"teamName,omitempty" json:"teamName,omitempty"` + ConvID *ConversationID `codec:"convID,omitempty" json:"convID,omitempty"` } func (o AdvertiseCommandsParam) DeepCopy() AdvertiseCommandsParam { @@ -5675,6 +5984,13 @@ func (o AdvertiseCommandsParam) DeepCopy() AdvertiseCommandsParam { tmp := (*x) return &tmp })(o.TeamName), + ConvID: (func(x *ConversationID) *ConversationID { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.ConvID), } } @@ -5730,6 +6046,32 @@ func (o ListBotCommandsLocalRes) DeepCopy() ListBotCommandsLocalRes { } } +type ClearBotCommandsFilter struct { + Typ BotCommandsAdvertisementTyp `codec:"typ" json:"typ"` + TeamName *string `codec:"teamName,omitempty" json:"teamName,omitempty"` + ConvID *ConversationID `codec:"convID,omitempty" json:"convID,omitempty"` +} + +func (o ClearBotCommandsFilter) DeepCopy() ClearBotCommandsFilter { + return ClearBotCommandsFilter{ + Typ: o.Typ.DeepCopy(), + TeamName: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.TeamName), + ConvID: (func(x *ConversationID) *ConversationID { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.ConvID), + } +} + type ClearBotCommandsLocalRes struct { RateLimits []RateLimit `codec:"rateLimits" json:"rateLimits"` } @@ -5863,3 +6205,290 @@ func (e SnippetDecoration) String() string { } return fmt.Sprintf("%v", int(e)) } + +type WelcomeMessageDisplay struct { + Set bool `codec:"set" json:"set"` + Display string `codec:"display" json:"display"` + Raw string `codec:"raw" json:"raw"` +} + +func (o WelcomeMessageDisplay) DeepCopy() WelcomeMessageDisplay { + return WelcomeMessageDisplay{ + Set: o.Set, + Display: o.Display, + Raw: o.Raw, + } +} + +type WelcomeMessage struct { + Set bool `codec:"set" json:"set"` + Raw string `codec:"raw" json:"raw"` +} + +func (o WelcomeMessage) DeepCopy() WelcomeMessage { + return WelcomeMessage{ + Set: o.Set, + Raw: o.Raw, + } +} + +type GetDefaultTeamChannelsLocalRes struct { + Convs []InboxUIItem `codec:"convs" json:"convs"` + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o GetDefaultTeamChannelsLocalRes) DeepCopy() GetDefaultTeamChannelsLocalRes { + return GetDefaultTeamChannelsLocalRes{ + Convs: (func(x []InboxUIItem) []InboxUIItem { + if x == nil { + return nil + } + ret := make([]InboxUIItem, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Convs), + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} + +type SetDefaultTeamChannelsLocalRes struct { + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o SetDefaultTeamChannelsLocalRes) DeepCopy() SetDefaultTeamChannelsLocalRes { + return SetDefaultTeamChannelsLocalRes{ + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} + +type LastActiveTimeAll struct { + Teams map[TLFIDStr]gregor1.Time `codec:"teams" json:"teams"` + Channels map[ConvIDStr]gregor1.Time `codec:"channels" json:"channels"` +} + +func (o LastActiveTimeAll) DeepCopy() LastActiveTimeAll { + return LastActiveTimeAll{ + Teams: (func(x map[TLFIDStr]gregor1.Time) map[TLFIDStr]gregor1.Time { + if x == nil { + return nil + } + ret := make(map[TLFIDStr]gregor1.Time, len(x)) + for k, v := range x { + kCopy := k.DeepCopy() + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Teams), + Channels: (func(x map[ConvIDStr]gregor1.Time) map[ConvIDStr]gregor1.Time { + if x == nil { + return nil + } + ret := make(map[ConvIDStr]gregor1.Time, len(x)) + for k, v := range x { + kCopy := k.DeepCopy() + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Channels), + } +} + +type LastActiveStatusAll struct { + Teams map[TLFIDStr]LastActiveStatus `codec:"teams" json:"teams"` + Channels map[ConvIDStr]LastActiveStatus `codec:"channels" json:"channels"` +} + +func (o LastActiveStatusAll) DeepCopy() LastActiveStatusAll { + return LastActiveStatusAll{ + Teams: (func(x map[TLFIDStr]LastActiveStatus) map[TLFIDStr]LastActiveStatus { + if x == nil { + return nil + } + ret := make(map[TLFIDStr]LastActiveStatus, len(x)) + for k, v := range x { + kCopy := k.DeepCopy() + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Teams), + Channels: (func(x map[ConvIDStr]LastActiveStatus) map[ConvIDStr]LastActiveStatus { + if x == nil { + return nil + } + ret := make(map[ConvIDStr]LastActiveStatus, len(x)) + for k, v := range x { + kCopy := k.DeepCopy() + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Channels), + } +} + +type EmojiError struct { + Clidisplay string `codec:"clidisplay" json:"clidisplay"` + Uidisplay string `codec:"uidisplay" json:"uidisplay"` +} + +func (o EmojiError) DeepCopy() EmojiError { + return EmojiError{ + Clidisplay: o.Clidisplay, + Uidisplay: o.Uidisplay, + } +} + +type AddEmojiRes struct { + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` + Error *EmojiError `codec:"error,omitempty" json:"error,omitempty"` +} + +func (o AddEmojiRes) DeepCopy() AddEmojiRes { + return AddEmojiRes{ + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + Error: (func(x *EmojiError) *EmojiError { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Error), + } +} + +type AddEmojisRes struct { + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` + SuccessFilenames []string `codec:"successFilenames" json:"successFilenames"` + FailedFilenames map[string]EmojiError `codec:"failedFilenames" json:"failedFilenames"` +} + +func (o AddEmojisRes) DeepCopy() AddEmojisRes { + return AddEmojisRes{ + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + SuccessFilenames: (func(x []string) []string { + if x == nil { + return nil + } + ret := make([]string, len(x)) + for i, v := range x { + vCopy := v + ret[i] = vCopy + } + return ret + })(o.SuccessFilenames), + FailedFilenames: (func(x map[string]EmojiError) map[string]EmojiError { + if x == nil { + return nil + } + ret := make(map[string]EmojiError, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.FailedFilenames), + } +} + +type AddEmojiAliasRes struct { + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` + Error *EmojiError `codec:"error,omitempty" json:"error,omitempty"` +} + +func (o AddEmojiAliasRes) DeepCopy() AddEmojiAliasRes { + return AddEmojiAliasRes{ + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + Error: (func(x *EmojiError) *EmojiError { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Error), + } +} + +type RemoveEmojiRes struct { + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o RemoveEmojiRes) DeepCopy() RemoveEmojiRes { + return RemoveEmojiRes{ + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} + +type UserEmojiRes struct { + Emojis UserEmojis `codec:"emojis" json:"emojis"` + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o UserEmojiRes) DeepCopy() UserEmojiRes { + return UserEmojiRes{ + Emojis: o.Emojis.DeepCopy(), + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} + +type EmojiFetchOpts struct { + GetCreationInfo bool `codec:"getCreationInfo" json:"getCreationInfo"` + GetAliases bool `codec:"getAliases" json:"getAliases"` + OnlyInTeam bool `codec:"onlyInTeam" json:"onlyInTeam"` +} + +func (o EmojiFetchOpts) DeepCopy() EmojiFetchOpts { + return EmojiFetchOpts{ + GetCreationInfo: o.GetCreationInfo, + GetAliases: o.GetAliases, + OnlyInTeam: o.OnlyInTeam, + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/notify.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/notify.go index ebc5c2a2..7d4ba74e 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/notify.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/notify.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/notify.avdl package chat1 @@ -115,7 +115,7 @@ func (o IncomingMessage) DeepCopy() IncomingMessage { tmp := (*x).DeepCopy() return &tmp })(o.ModifiedMessage), - ConvID: o.ConvID.DeepCopy(), + ConvID: o.ConvID.DeepCopy(), DisplayDesktopNotification: o.DisplayDesktopNotification, DesktopNotificationSnippet: o.DesktopNotificationSnippet, Conv: (func(x *InboxUIItem) *InboxUIItem { @@ -324,8 +324,8 @@ func (o EphemeralPurgeNotifInfo) DeepCopy() EphemeralPurgeNotifInfo { } type ReactionUpdate struct { - Reactions ReactionMap `codec:"reactions" json:"reactions"` - TargetMsgID MessageID `codec:"targetMsgID" json:"targetMsgID"` + Reactions UIReactionMap `codec:"reactions" json:"reactions"` + TargetMsgID MessageID `codec:"targetMsgID" json:"targetMsgID"` } func (o ReactionUpdate) DeepCopy() ReactionUpdate { @@ -758,20 +758,16 @@ func (o ChatActivity) DeepCopy() ChatActivity { } type TyperInfo struct { - Uid keybase1.UID `codec:"uid" json:"uid"` - Username string `codec:"username" json:"username"` - DeviceID keybase1.DeviceID `codec:"deviceID" json:"deviceID"` - DeviceName string `codec:"deviceName" json:"deviceName"` - DeviceType string `codec:"deviceType" json:"deviceType"` + Uid keybase1.UID `codec:"uid" json:"uid"` + Username string `codec:"username" json:"username"` + DeviceID keybase1.DeviceID `codec:"deviceID" json:"deviceID"` } func (o TyperInfo) DeepCopy() TyperInfo { return TyperInfo{ - Uid: o.Uid.DeepCopy(), - Username: o.Username, - DeviceID: o.DeviceID.DeepCopy(), - DeviceName: o.DeviceName, - DeviceType: o.DeviceType, + Uid: o.Uid.DeepCopy(), + Username: o.Username, + DeviceID: o.DeviceID.DeepCopy(), } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/remote.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/remote.go index bc4c3020..231af30e 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/remote.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/remote.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/remote.avdl package chat1 @@ -232,8 +232,10 @@ func (o NewConversationRemoteRes) DeepCopy() NewConversationRemoteRes { } type GetMessagesRemoteRes struct { - Msgs []MessageBoxed `codec:"msgs" json:"msgs"` - RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` + Msgs []MessageBoxed `codec:"msgs" json:"msgs"` + MembersType ConversationMembersType `codec:"membersType" json:"membersType"` + Visibility keybase1.TLFVisibility `codec:"visibility" json:"visibility"` + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` } func (o GetMessagesRemoteRes) DeepCopy() GetMessagesRemoteRes { @@ -249,6 +251,8 @@ func (o GetMessagesRemoteRes) DeepCopy() GetMessagesRemoteRes { } return ret })(o.Msgs), + MembersType: o.MembersType.DeepCopy(), + Visibility: o.Visibility.DeepCopy(), RateLimit: (func(x *RateLimit) *RateLimit { if x == nil { return nil @@ -962,11 +966,24 @@ func (o RemoteBotCommandsAdvertisementTLFID) DeepCopy() RemoteBotCommandsAdverti } } +type RemoteBotCommandsAdvertisementConv struct { + ConvID ConversationID `codec:"convID" json:"convID"` + AdvertiseConvID ConversationID `codec:"advertiseConvID" json:"advertiseConvID"` +} + +func (o RemoteBotCommandsAdvertisementConv) DeepCopy() RemoteBotCommandsAdvertisementConv { + return RemoteBotCommandsAdvertisementConv{ + ConvID: o.ConvID.DeepCopy(), + AdvertiseConvID: o.AdvertiseConvID.DeepCopy(), + } +} + type RemoteBotCommandsAdvertisement struct { Typ__ BotCommandsAdvertisementTyp `codec:"typ" json:"typ"` Public__ *RemoteBotCommandsAdvertisementPublic `codec:"public,omitempty" json:"public,omitempty"` TlfidMembers__ *RemoteBotCommandsAdvertisementTLFID `codec:"tlfidMembers,omitempty" json:"tlfidMembers,omitempty"` TlfidConvs__ *RemoteBotCommandsAdvertisementTLFID `codec:"tlfidConvs,omitempty" json:"tlfidConvs,omitempty"` + Conv__ *RemoteBotCommandsAdvertisementConv `codec:"conv,omitempty" json:"conv,omitempty"` } func (o *RemoteBotCommandsAdvertisement) Typ() (ret BotCommandsAdvertisementTyp, err error) { @@ -986,6 +1003,11 @@ func (o *RemoteBotCommandsAdvertisement) Typ() (ret BotCommandsAdvertisementTyp, err = errors.New("unexpected nil value for TlfidConvs__") return ret, err } + case BotCommandsAdvertisementTyp_CONV: + if o.Conv__ == nil { + err = errors.New("unexpected nil value for Conv__") + return ret, err + } } return o.Typ__, nil } @@ -1020,6 +1042,16 @@ func (o RemoteBotCommandsAdvertisement) TlfidConvs() (res RemoteBotCommandsAdver return *o.TlfidConvs__ } +func (o RemoteBotCommandsAdvertisement) Conv() (res RemoteBotCommandsAdvertisementConv) { + if o.Typ__ != BotCommandsAdvertisementTyp_CONV { + panic("wrong case accessed") + } + if o.Conv__ == nil { + return + } + return *o.Conv__ +} + func NewRemoteBotCommandsAdvertisementWithPublic(v RemoteBotCommandsAdvertisementPublic) RemoteBotCommandsAdvertisement { return RemoteBotCommandsAdvertisement{ Typ__: BotCommandsAdvertisementTyp_PUBLIC, @@ -1041,6 +1073,13 @@ func NewRemoteBotCommandsAdvertisementWithTlfidConvs(v RemoteBotCommandsAdvertis } } +func NewRemoteBotCommandsAdvertisementWithConv(v RemoteBotCommandsAdvertisementConv) RemoteBotCommandsAdvertisement { + return RemoteBotCommandsAdvertisement{ + Typ__: BotCommandsAdvertisementTyp_CONV, + Conv__: &v, + } +} + func (o RemoteBotCommandsAdvertisement) DeepCopy() RemoteBotCommandsAdvertisement { return RemoteBotCommandsAdvertisement{ Typ__: o.Typ__.DeepCopy(), @@ -1065,6 +1104,13 @@ func (o RemoteBotCommandsAdvertisement) DeepCopy() RemoteBotCommandsAdvertisemen tmp := (*x).DeepCopy() return &tmp })(o.TlfidConvs__), + Conv__: (func(x *RemoteBotCommandsAdvertisementConv) *RemoteBotCommandsAdvertisementConv { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Conv__), } } @@ -1126,6 +1172,169 @@ func (o AdvertiseBotCommandsRes) DeepCopy() AdvertiseBotCommandsRes { } } +type RemoteClearBotCommandsFilterPublic struct { +} + +func (o RemoteClearBotCommandsFilterPublic) DeepCopy() RemoteClearBotCommandsFilterPublic { + return RemoteClearBotCommandsFilterPublic{} +} + +type RemoteClearBotCommandsFilterTLFID struct { + TlfID TLFID `codec:"tlfID" json:"tlfID"` +} + +func (o RemoteClearBotCommandsFilterTLFID) DeepCopy() RemoteClearBotCommandsFilterTLFID { + return RemoteClearBotCommandsFilterTLFID{ + TlfID: o.TlfID.DeepCopy(), + } +} + +type RemoteClearBotCommandsFilterConv struct { + ConvID ConversationID `codec:"convID" json:"convID"` +} + +func (o RemoteClearBotCommandsFilterConv) DeepCopy() RemoteClearBotCommandsFilterConv { + return RemoteClearBotCommandsFilterConv{ + ConvID: o.ConvID.DeepCopy(), + } +} + +type RemoteClearBotCommandsFilter struct { + Typ__ BotCommandsAdvertisementTyp `codec:"typ" json:"typ"` + Public__ *RemoteClearBotCommandsFilterPublic `codec:"public,omitempty" json:"public,omitempty"` + TlfidMembers__ *RemoteClearBotCommandsFilterTLFID `codec:"tlfidMembers,omitempty" json:"tlfidMembers,omitempty"` + TlfidConvs__ *RemoteClearBotCommandsFilterTLFID `codec:"tlfidConvs,omitempty" json:"tlfidConvs,omitempty"` + Conv__ *RemoteClearBotCommandsFilterConv `codec:"conv,omitempty" json:"conv,omitempty"` +} + +func (o *RemoteClearBotCommandsFilter) Typ() (ret BotCommandsAdvertisementTyp, err error) { + switch o.Typ__ { + case BotCommandsAdvertisementTyp_PUBLIC: + if o.Public__ == nil { + err = errors.New("unexpected nil value for Public__") + return ret, err + } + case BotCommandsAdvertisementTyp_TLFID_MEMBERS: + if o.TlfidMembers__ == nil { + err = errors.New("unexpected nil value for TlfidMembers__") + return ret, err + } + case BotCommandsAdvertisementTyp_TLFID_CONVS: + if o.TlfidConvs__ == nil { + err = errors.New("unexpected nil value for TlfidConvs__") + return ret, err + } + case BotCommandsAdvertisementTyp_CONV: + if o.Conv__ == nil { + err = errors.New("unexpected nil value for Conv__") + return ret, err + } + } + return o.Typ__, nil +} + +func (o RemoteClearBotCommandsFilter) Public() (res RemoteClearBotCommandsFilterPublic) { + if o.Typ__ != BotCommandsAdvertisementTyp_PUBLIC { + panic("wrong case accessed") + } + if o.Public__ == nil { + return + } + return *o.Public__ +} + +func (o RemoteClearBotCommandsFilter) TlfidMembers() (res RemoteClearBotCommandsFilterTLFID) { + if o.Typ__ != BotCommandsAdvertisementTyp_TLFID_MEMBERS { + panic("wrong case accessed") + } + if o.TlfidMembers__ == nil { + return + } + return *o.TlfidMembers__ +} + +func (o RemoteClearBotCommandsFilter) TlfidConvs() (res RemoteClearBotCommandsFilterTLFID) { + if o.Typ__ != BotCommandsAdvertisementTyp_TLFID_CONVS { + panic("wrong case accessed") + } + if o.TlfidConvs__ == nil { + return + } + return *o.TlfidConvs__ +} + +func (o RemoteClearBotCommandsFilter) Conv() (res RemoteClearBotCommandsFilterConv) { + if o.Typ__ != BotCommandsAdvertisementTyp_CONV { + panic("wrong case accessed") + } + if o.Conv__ == nil { + return + } + return *o.Conv__ +} + +func NewRemoteClearBotCommandsFilterWithPublic(v RemoteClearBotCommandsFilterPublic) RemoteClearBotCommandsFilter { + return RemoteClearBotCommandsFilter{ + Typ__: BotCommandsAdvertisementTyp_PUBLIC, + Public__: &v, + } +} + +func NewRemoteClearBotCommandsFilterWithTlfidMembers(v RemoteClearBotCommandsFilterTLFID) RemoteClearBotCommandsFilter { + return RemoteClearBotCommandsFilter{ + Typ__: BotCommandsAdvertisementTyp_TLFID_MEMBERS, + TlfidMembers__: &v, + } +} + +func NewRemoteClearBotCommandsFilterWithTlfidConvs(v RemoteClearBotCommandsFilterTLFID) RemoteClearBotCommandsFilter { + return RemoteClearBotCommandsFilter{ + Typ__: BotCommandsAdvertisementTyp_TLFID_CONVS, + TlfidConvs__: &v, + } +} + +func NewRemoteClearBotCommandsFilterWithConv(v RemoteClearBotCommandsFilterConv) RemoteClearBotCommandsFilter { + return RemoteClearBotCommandsFilter{ + Typ__: BotCommandsAdvertisementTyp_CONV, + Conv__: &v, + } +} + +func (o RemoteClearBotCommandsFilter) DeepCopy() RemoteClearBotCommandsFilter { + return RemoteClearBotCommandsFilter{ + Typ__: o.Typ__.DeepCopy(), + Public__: (func(x *RemoteClearBotCommandsFilterPublic) *RemoteClearBotCommandsFilterPublic { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Public__), + TlfidMembers__: (func(x *RemoteClearBotCommandsFilterTLFID) *RemoteClearBotCommandsFilterTLFID { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.TlfidMembers__), + TlfidConvs__: (func(x *RemoteClearBotCommandsFilterTLFID) *RemoteClearBotCommandsFilterTLFID { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.TlfidConvs__), + Conv__: (func(x *RemoteClearBotCommandsFilterConv) *RemoteClearBotCommandsFilterConv { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Conv__), + } +} + type ClearBotCommandsRes struct { RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` } @@ -1248,3 +1457,155 @@ func (o BotInfoHash) DeepCopy() BotInfoHash { return append([]byte{}, x...) })(o) } + +type GetDefaultTeamChannelsRes struct { + Convs []ConversationID `codec:"convs" json:"convs"` + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o GetDefaultTeamChannelsRes) DeepCopy() GetDefaultTeamChannelsRes { + return GetDefaultTeamChannelsRes{ + Convs: (func(x []ConversationID) []ConversationID { + if x == nil { + return nil + } + ret := make([]ConversationID, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Convs), + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} + +type SetDefaultTeamChannelsRes struct { + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o SetDefaultTeamChannelsRes) DeepCopy() SetDefaultTeamChannelsRes { + return SetDefaultTeamChannelsRes{ + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} + +type GetRecentJoinsRes struct { + NumJoins int `codec:"numJoins" json:"numJoins"` + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o GetRecentJoinsRes) DeepCopy() GetRecentJoinsRes { + return GetRecentJoinsRes{ + NumJoins: o.NumJoins, + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} + +type RefreshParticipantsRemoteRes struct { + HashMatch bool `codec:"hashMatch" json:"hashMatch"` + Uids []gregor1.UID `codec:"uids" json:"uids"` + Hash string `codec:"hash" json:"hash"` + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o RefreshParticipantsRemoteRes) DeepCopy() RefreshParticipantsRemoteRes { + return RefreshParticipantsRemoteRes{ + HashMatch: o.HashMatch, + Uids: (func(x []gregor1.UID) []gregor1.UID { + if x == nil { + return nil + } + ret := make([]gregor1.UID, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Uids), + Hash: o.Hash, + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} + +type GetLastActiveAtRes struct { + LastActiveAt gregor1.Time `codec:"lastActiveAt" json:"lastActiveAt"` + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o GetLastActiveAtRes) DeepCopy() GetLastActiveAtRes { + return GetLastActiveAtRes{ + LastActiveAt: o.LastActiveAt.DeepCopy(), + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} + +type ResetConversationMember struct { + ConvID ConversationID `codec:"convID" json:"convID"` + Uid gregor1.UID `codec:"uid" json:"uid"` +} + +func (o ResetConversationMember) DeepCopy() ResetConversationMember { + return ResetConversationMember{ + ConvID: o.ConvID.DeepCopy(), + Uid: o.Uid.DeepCopy(), + } +} + +type GetResetConversationsRes struct { + ResetConvs []ResetConversationMember `codec:"resetConvs" json:"resetConvs"` + RateLimit *RateLimit `codec:"rateLimit,omitempty" json:"rateLimit,omitempty"` +} + +func (o GetResetConversationsRes) DeepCopy() GetResetConversationsRes { + return GetResetConversationsRes{ + ResetConvs: (func(x []ResetConversationMember) []ResetConversationMember { + if x == nil { + return nil + } + ret := make([]ResetConversationMember, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.ResetConvs), + RateLimit: (func(x *RateLimit) *RateLimit { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.RateLimit), + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/unfurl.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/unfurl.go index 7b99d35d..6c3cc248 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/unfurl.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/unfurl.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/chat1/unfurl.avdl package chat1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth.go index 3da25001..9d046db8 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/gregor1/auth.avdl package gregor1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_internal.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_internal.go index 3a0376cb..f6538cef 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_internal.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_internal.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/gregor1/auth_internal.avdl package gregor1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_update.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_update.go index 74fce37f..5a46086a 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_update.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_update.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/gregor1/auth_update.avdl package gregor1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/common.go index 27ba51d1..f842ea5b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/gregor1/common.avdl package gregor1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/incoming.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/incoming.go index 153cc160..c6b72805 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/incoming.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/incoming.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/gregor1/incoming.avdl package gregor1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/outgoing.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/outgoing.go index 685ece41..48b4415f 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/outgoing.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/outgoing.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/gregor1/outgoing.avdl package gregor1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/remind.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/remind.go index b949c545..48c904b1 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/remind.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/remind.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/gregor1/remind.avdl package gregor1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/account.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/account.go index f26f967d..ad02226e 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/account.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/account.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/account.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/airdrop.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/airdrop.go index ec00de3a..1208a83a 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/airdrop.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/airdrop.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/airdrop.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/apiserver.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/apiserver.go index 8e773533..dfae6490 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/apiserver.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/apiserver.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/apiserver.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/appstate.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/appstate.go index 52478e31..5dcb87e0 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/appstate.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/appstate.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/appstate.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/audit.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/audit.go index 1a4c7223..052408a7 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/audit.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/audit.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/audit.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/avatars.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/avatars.go index 9e78e2f8..16834344 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/avatars.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/avatars.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/avatars.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/backend_common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/backend_common.go index ed83acf3..8de73b78 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/backend_common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/backend_common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/backend_common.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/badger.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/badger.go index b2604354..c56bcda5 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/badger.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/badger.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/badger.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/block.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/block.go index cb1b2c37..7e89bedc 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/block.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/block.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/block.avdl package keybase1 @@ -57,6 +57,38 @@ func (o GetBlockRes) DeepCopy() GetBlockRes { } } +type GetBlockSizesRes struct { + Sizes []int `codec:"sizes" json:"sizes"` + Statuses []BlockStatus `codec:"statuses" json:"statuses"` +} + +func (o GetBlockSizesRes) DeepCopy() GetBlockSizesRes { + return GetBlockSizesRes{ + Sizes: (func(x []int) []int { + if x == nil { + return nil + } + ret := make([]int, len(x)) + for i, v := range x { + vCopy := v + ret[i] = vCopy + } + return ret + })(o.Sizes), + Statuses: (func(x []BlockStatus) []BlockStatus { + if x == nil { + return nil + } + ret := make([]BlockStatus, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Statuses), + } +} + type BlockRefNonce [8]byte func (o BlockRefNonce) DeepCopy() BlockRefNonce { @@ -151,3 +183,75 @@ type BlockPingResponse struct { func (o BlockPingResponse) DeepCopy() BlockPingResponse { return BlockPingResponse{} } + +type UsageStatRecord struct { + Write int64 `codec:"write" json:"write"` + Archive int64 `codec:"archive" json:"archive"` + Read int64 `codec:"read" json:"read"` + MdWrite int64 `codec:"mdWrite" json:"mdWrite"` + GitWrite int64 `codec:"gitWrite" json:"gitWrite"` + GitArchive int64 `codec:"gitArchive" json:"gitArchive"` +} + +func (o UsageStatRecord) DeepCopy() UsageStatRecord { + return UsageStatRecord{ + Write: o.Write, + Archive: o.Archive, + Read: o.Read, + MdWrite: o.MdWrite, + GitWrite: o.GitWrite, + GitArchive: o.GitArchive, + } +} + +type UsageStat struct { + Bytes UsageStatRecord `codec:"bytes" json:"bytes"` + Blocks UsageStatRecord `codec:"blocks" json:"blocks"` + Mtime Time `codec:"mtime" json:"mtime"` +} + +func (o UsageStat) DeepCopy() UsageStat { + return UsageStat{ + Bytes: o.Bytes.DeepCopy(), + Blocks: o.Blocks.DeepCopy(), + Mtime: o.Mtime.DeepCopy(), + } +} + +type FolderUsageStat struct { + FolderID string `codec:"folderID" json:"folderID"` + Stats UsageStat `codec:"stats" json:"stats"` +} + +func (o FolderUsageStat) DeepCopy() FolderUsageStat { + return FolderUsageStat{ + FolderID: o.FolderID, + Stats: o.Stats.DeepCopy(), + } +} + +type BlockQuotaInfo struct { + Folders []FolderUsageStat `codec:"folders" json:"folders"` + Total UsageStat `codec:"total" json:"total"` + Limit int64 `codec:"limit" json:"limit"` + GitLimit int64 `codec:"gitLimit" json:"gitLimit"` +} + +func (o BlockQuotaInfo) DeepCopy() BlockQuotaInfo { + return BlockQuotaInfo{ + Folders: (func(x []FolderUsageStat) []FolderUsageStat { + if x == nil { + return nil + } + ret := make([]FolderUsageStat, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Folders), + Total: o.Total.DeepCopy(), + Limit: o.Limit, + GitLimit: o.GitLimit, + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/bot.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/bot.go index 8b9306f4..7520d839 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/bot.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/bot.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/bot.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/btc.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/btc.go index f54533b8..1cd8ca41 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/btc.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/btc.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/btc.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/common.go index 128329f7..4b4ae791 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/common.avdl package keybase1 @@ -26,6 +26,12 @@ func (o DurationSec) DeepCopy() DurationSec { return o } +type DurationMsec float64 + +func (o DurationMsec) DeepCopy() DurationMsec { + return o +} + type StringKVPair struct { Key string `codec:"key" json:"key"` Value string `codec:"value" json:"value"` @@ -432,7 +438,7 @@ type PublicKey struct { ParentID string `codec:"parentID" json:"parentID"` DeviceID DeviceID `codec:"deviceID" json:"deviceID"` DeviceDescription string `codec:"deviceDescription" json:"deviceDescription"` - DeviceType string `codec:"deviceType" json:"deviceType"` + DeviceType DeviceTypeV2 `codec:"deviceType" json:"deviceType"` CTime Time `codec:"cTime" json:"cTime"` ETime Time `codec:"eTime" json:"eTime"` IsRevoked bool `codec:"isRevoked" json:"isRevoked"` @@ -458,7 +464,7 @@ func (o PublicKey) DeepCopy() PublicKey { ParentID: o.ParentID, DeviceID: o.DeviceID.DeepCopy(), DeviceDescription: o.DeviceDescription, - DeviceType: o.DeviceType, + DeviceType: o.DeviceType.DeepCopy(), CTime: o.CTime.DeepCopy(), ETime: o.ETime.DeepCopy(), IsRevoked: o.IsRevoked, @@ -504,21 +510,21 @@ func (o User) DeepCopy() User { } type Device struct { - Type string `codec:"type" json:"type"` - Name string `codec:"name" json:"name"` - DeviceID DeviceID `codec:"deviceID" json:"deviceID"` - DeviceNumberOfType int `codec:"deviceNumberOfType" json:"deviceNumberOfType"` - CTime Time `codec:"cTime" json:"cTime"` - MTime Time `codec:"mTime" json:"mTime"` - LastUsedTime Time `codec:"lastUsedTime" json:"lastUsedTime"` - EncryptKey KID `codec:"encryptKey" json:"encryptKey"` - VerifyKey KID `codec:"verifyKey" json:"verifyKey"` - Status int `codec:"status" json:"status"` + Type DeviceTypeV2 `codec:"type" json:"type"` + Name string `codec:"name" json:"name"` + DeviceID DeviceID `codec:"deviceID" json:"deviceID"` + DeviceNumberOfType int `codec:"deviceNumberOfType" json:"deviceNumberOfType"` + CTime Time `codec:"cTime" json:"cTime"` + MTime Time `codec:"mTime" json:"mTime"` + LastUsedTime Time `codec:"lastUsedTime" json:"lastUsedTime"` + EncryptKey KID `codec:"encryptKey" json:"encryptKey"` + VerifyKey KID `codec:"verifyKey" json:"verifyKey"` + Status int `codec:"status" json:"status"` } func (o Device) DeepCopy() Device { return Device{ - Type: o.Type, + Type: o.Type.DeepCopy(), Name: o.Name, DeviceID: o.DeviceID.DeepCopy(), DeviceNumberOfType: o.DeviceNumberOfType, @@ -557,6 +563,12 @@ func (e DeviceType) String() string { return fmt.Sprintf("%v", int(e)) } +type DeviceTypeV2 string + +func (o DeviceTypeV2) DeepCopy() DeviceTypeV2 { + return o +} + type Stream struct { Fd int `codec:"fd" json:"fd"` } @@ -1061,26 +1073,84 @@ func (e OfflineAvailability) String() string { return fmt.Sprintf("%v", int(e)) } +type UserReacji struct { + Name string `codec:"name" json:"name"` + CustomAddr *string `codec:"customAddr,omitempty" json:"customAddr,omitempty"` + CustomAddrNoAnim *string `codec:"customAddrNoAnim,omitempty" json:"customAddrNoAnim,omitempty"` +} + +func (o UserReacji) DeepCopy() UserReacji { + return UserReacji{ + Name: o.Name, + CustomAddr: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.CustomAddr), + CustomAddrNoAnim: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.CustomAddrNoAnim), + } +} + type ReacjiSkinTone int -func (o ReacjiSkinTone) DeepCopy() ReacjiSkinTone { - return o +const ( + ReacjiSkinTone_NONE ReacjiSkinTone = 0 + ReacjiSkinTone_SKINTONE1 ReacjiSkinTone = 1 + ReacjiSkinTone_SKINTONE2 ReacjiSkinTone = 2 + ReacjiSkinTone_SKINTONE3 ReacjiSkinTone = 3 + ReacjiSkinTone_SKINTONE4 ReacjiSkinTone = 4 + ReacjiSkinTone_SKINTONE5 ReacjiSkinTone = 5 +) + +func (o ReacjiSkinTone) DeepCopy() ReacjiSkinTone { return o } + +var ReacjiSkinToneMap = map[string]ReacjiSkinTone{ + "NONE": 0, + "SKINTONE1": 1, + "SKINTONE2": 2, + "SKINTONE3": 3, + "SKINTONE4": 4, + "SKINTONE5": 5, +} + +var ReacjiSkinToneRevMap = map[ReacjiSkinTone]string{ + 0: "NONE", + 1: "SKINTONE1", + 2: "SKINTONE2", + 3: "SKINTONE3", + 4: "SKINTONE4", + 5: "SKINTONE5", +} + +func (e ReacjiSkinTone) String() string { + if v, ok := ReacjiSkinToneRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) } type UserReacjis struct { - TopReacjis []string `codec:"topReacjis" json:"topReacjis"` + TopReacjis []UserReacji `codec:"topReacjis" json:"topReacjis"` SkinTone ReacjiSkinTone `codec:"skinTone" json:"skinTone"` } func (o UserReacjis) DeepCopy() UserReacjis { return UserReacjis{ - TopReacjis: (func(x []string) []string { + TopReacjis: (func(x []UserReacji) []UserReacji { if x == nil { return nil } - ret := make([]string, len(x)) + ret := make([]UserReacji, len(x)) for i, v := range x { - vCopy := v + vCopy := v.DeepCopy() ret[i] = vCopy } return ret @@ -1088,3 +1158,38 @@ func (o UserReacjis) DeepCopy() UserReacjis { SkinTone: o.SkinTone.DeepCopy(), } } + +type WotStatusType int + +const ( + WotStatusType_NONE WotStatusType = 0 + WotStatusType_PROPOSED WotStatusType = 1 + WotStatusType_ACCEPTED WotStatusType = 2 + WotStatusType_REJECTED WotStatusType = 3 + WotStatusType_REVOKED WotStatusType = 4 +) + +func (o WotStatusType) DeepCopy() WotStatusType { return o } + +var WotStatusTypeMap = map[string]WotStatusType{ + "NONE": 0, + "PROPOSED": 1, + "ACCEPTED": 2, + "REJECTED": 3, + "REVOKED": 4, +} + +var WotStatusTypeRevMap = map[WotStatusType]string{ + 0: "NONE", + 1: "PROPOSED", + 2: "ACCEPTED", + 3: "REJECTED", + 4: "REVOKED", +} + +func (e WotStatusType) String() string { + if v, ok := WotStatusTypeRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/config.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/config.go index 3700dcad..49debf40 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/config.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/config.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/config.avdl package keybase1 @@ -9,11 +9,12 @@ import ( ) type CurrentStatus struct { - Configured bool `codec:"configured" json:"configured"` - Registered bool `codec:"registered" json:"registered"` - LoggedIn bool `codec:"loggedIn" json:"loggedIn"` - SessionIsValid bool `codec:"sessionIsValid" json:"sessionIsValid"` - User *User `codec:"user,omitempty" json:"user,omitempty"` + Configured bool `codec:"configured" json:"configured"` + Registered bool `codec:"registered" json:"registered"` + LoggedIn bool `codec:"loggedIn" json:"loggedIn"` + SessionIsValid bool `codec:"sessionIsValid" json:"sessionIsValid"` + User *User `codec:"user,omitempty" json:"user,omitempty"` + DeviceName string `codec:"deviceName" json:"deviceName"` } func (o CurrentStatus) DeepCopy() CurrentStatus { @@ -29,6 +30,7 @@ func (o CurrentStatus) DeepCopy() CurrentStatus { tmp := (*x).DeepCopy() return &tmp })(o.User), + DeviceName: o.DeviceName, } } @@ -331,6 +333,7 @@ type KbServiceStatus struct { Pid string `codec:"pid" json:"pid"` Log string `codec:"log" json:"log"` EkLog string `codec:"ekLog" json:"ekLog"` + PerfLog string `codec:"perfLog" json:"perfLog"` } func (o KbServiceStatus) DeepCopy() KbServiceStatus { @@ -340,6 +343,7 @@ func (o KbServiceStatus) DeepCopy() KbServiceStatus { Pid: o.Pid, Log: o.Log, EkLog: o.EkLog, + PerfLog: o.PerfLog, } } @@ -349,6 +353,7 @@ type KBFSStatus struct { Running bool `codec:"running" json:"running"` Pid string `codec:"pid" json:"pid"` Log string `codec:"log" json:"log"` + PerfLog string `codec:"perfLog" json:"perfLog"` Mount string `codec:"mount" json:"mount"` } @@ -359,6 +364,7 @@ func (o KBFSStatus) DeepCopy() KBFSStatus { Running: o.Running, Pid: o.Pid, Log: o.Log, + PerfLog: o.PerfLog, Mount: o.Mount, } } @@ -398,12 +404,14 @@ func (o StartStatus) DeepCopy() StartStatus { } type GitStatus struct { - Log string `codec:"log" json:"log"` + Log string `codec:"log" json:"log"` + PerfLog string `codec:"perfLog" json:"perfLog"` } func (o GitStatus) DeepCopy() GitStatus { return GitStatus{ - Log: o.Log, + Log: o.Log, + PerfLog: o.PerfLog, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/constants.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/constants.go index c9d45956..75242f83 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/constants.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/constants.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/constants.avdl package keybase1 @@ -12,6 +12,7 @@ type StatusCode int const ( StatusCode_SCOk StatusCode = 0 StatusCode_SCInputError StatusCode = 100 + StatusCode_SCAssertionParseError StatusCode = 101 StatusCode_SCLoginRequired StatusCode = 201 StatusCode_SCBadSession StatusCode = 202 StatusCode_SCBadLoginUserNotFound StatusCode = 203 @@ -34,11 +35,13 @@ const ( StatusCode_SCWrongCryptoFormat StatusCode = 279 StatusCode_SCDecryptionError StatusCode = 280 StatusCode_SCInvalidAddress StatusCode = 281 + StatusCode_SCWrongCryptoMsgType StatusCode = 282 StatusCode_SCNoSession StatusCode = 283 StatusCode_SCAccountReset StatusCode = 290 StatusCode_SCIdentifiesFailed StatusCode = 295 StatusCode_SCNoSpaceOnDevice StatusCode = 297 StatusCode_SCMerkleClientError StatusCode = 299 + StatusCode_SCMerkleUpdateRoot StatusCode = 300 StatusCode_SCBadEmail StatusCode = 472 StatusCode_SCRateLimit StatusCode = 602 StatusCode_SCBadSignupUsernameTaken StatusCode = 701 @@ -69,6 +72,7 @@ const ( StatusCode_SCKeyDuplicateUpdate StatusCode = 921 StatusCode_SCSibkeyAlreadyExists StatusCode = 922 StatusCode_SCDecryptionKeyNotFound StatusCode = 924 + StatusCode_SCVerificationKeyNotFound StatusCode = 925 StatusCode_SCKeyNoPGPEncryption StatusCode = 927 StatusCode_SCKeyNoNaClEncryption StatusCode = 928 StatusCode_SCKeySyncedPGPNotFound StatusCode = 929 @@ -102,6 +106,7 @@ const ( StatusCode_SCGenericAPIError StatusCode = 1600 StatusCode_SCAPINetworkError StatusCode = 1601 StatusCode_SCTimeout StatusCode = 1602 + StatusCode_SCKBFSClientTimeout StatusCode = 1603 StatusCode_SCProofError StatusCode = 1701 StatusCode_SCIdentificationExpired StatusCode = 1702 StatusCode_SCSelfNotFound StatusCode = 1703 @@ -142,6 +147,8 @@ const ( StatusCode_SCChatNotInTeam StatusCode = 2517 StatusCode_SCChatStalePreviousState StatusCode = 2518 StatusCode_SCChatEphemeralRetentionPolicyViolatedError StatusCode = 2519 + StatusCode_SCChatUsersAlreadyInConversationError StatusCode = 2520 + StatusCode_SCChatBadConversationError StatusCode = 2521 StatusCode_SCTeamBadMembership StatusCode = 2604 StatusCode_SCTeamSelfNotOwner StatusCode = 2607 StatusCode_SCTeamNotFound StatusCode = 2614 @@ -152,6 +159,8 @@ const ( StatusCode_SCNoOp StatusCode = 2638 StatusCode_SCTeamInviteBadCancel StatusCode = 2645 StatusCode_SCTeamInviteBadToken StatusCode = 2646 + StatusCode_SCTeamInviteCompletionMissing StatusCode = 2648 + StatusCode_SCTeamBadNameReservedDB StatusCode = 2650 StatusCode_SCTeamTarDuplicate StatusCode = 2663 StatusCode_SCTeamTarNotFound StatusCode = 2664 StatusCode_SCTeamMemberExists StatusCode = 2665 @@ -188,6 +197,7 @@ const ( StatusCode_SCTeamStorageBadGeneration StatusCode = 2761 StatusCode_SCTeamStorageNotFound StatusCode = 2762 StatusCode_SCTeamContactSettingsBlock StatusCode = 2763 + StatusCode_SCTeamSeitanInviteNeedPUK StatusCode = 2770 StatusCode_SCEphemeralKeyBadGeneration StatusCode = 2900 StatusCode_SCEphemeralKeyUnexpectedBox StatusCode = 2901 StatusCode_SCEphemeralKeyMissingBox StatusCode = 2902 @@ -242,143 +252,154 @@ const ( StatusCode_SCTeambotKeyOldBoxedGeneration StatusCode = 3801 StatusCode_SCTeambotKeyBadGeneration StatusCode = 3802 StatusCode_SCAirdropRegisterFailedMisc StatusCode = 4207 + StatusCode_SCSimpleFSNameExists StatusCode = 5101 + StatusCode_SCSimpleFSDirNotEmpty StatusCode = 5102 + StatusCode_SCSimpleFSNotExist StatusCode = 5103 + StatusCode_SCSimpleFSNoAccess StatusCode = 5104 ) func (o StatusCode) DeepCopy() StatusCode { return o } var StatusCodeMap = map[string]StatusCode{ - "SCOk": 0, - "SCInputError": 100, - "SCLoginRequired": 201, - "SCBadSession": 202, - "SCBadLoginUserNotFound": 203, - "SCBadLoginPassword": 204, - "SCNotFound": 205, - "SCThrottleControl": 210, - "SCDeleted": 216, - "SCGeneric": 218, - "SCAlreadyLoggedIn": 235, - "SCExists": 230, - "SCCanceled": 237, - "SCInputCanceled": 239, - "SCBadUsername": 243, - "SCOffline": 267, - "SCReloginRequired": 274, - "SCResolutionFailed": 275, - "SCProfileNotPublic": 276, - "SCIdentifyFailed": 277, - "SCTrackingBroke": 278, - "SCWrongCryptoFormat": 279, - "SCDecryptionError": 280, - "SCInvalidAddress": 281, - "SCNoSession": 283, - "SCAccountReset": 290, - "SCIdentifiesFailed": 295, - "SCNoSpaceOnDevice": 297, - "SCMerkleClientError": 299, - "SCBadEmail": 472, - "SCRateLimit": 602, - "SCBadSignupUsernameTaken": 701, - "SCDuplicate": 706, - "SCBadInvitationCode": 707, - "SCBadSignupUsernameReserved": 710, - "SCBadSignupTeamName": 711, - "SCFeatureFlag": 712, - "SCEmailTaken": 713, - "SCEmailAlreadyAdded": 714, - "SCEmailLimitExceeded": 715, - "SCEmailCannotDeletePrimary": 716, - "SCEmailUnknown": 717, - "SCBotSignupTokenNotFound": 719, - "SCNoUpdate": 723, - "SCMissingResult": 801, - "SCKeyNotFound": 901, - "SCKeyCorrupted": 905, - "SCKeyInUse": 907, - "SCKeyBadGen": 913, - "SCKeyNoSecret": 914, - "SCKeyBadUIDs": 915, - "SCKeyNoActive": 916, - "SCKeyNoSig": 917, - "SCKeyBadSig": 918, - "SCKeyBadEldest": 919, - "SCKeyNoEldest": 920, - "SCKeyDuplicateUpdate": 921, - "SCSibkeyAlreadyExists": 922, - "SCDecryptionKeyNotFound": 924, - "SCKeyNoPGPEncryption": 927, - "SCKeyNoNaClEncryption": 928, - "SCKeySyncedPGPNotFound": 929, - "SCKeyNoMatchingGPG": 930, - "SCKeyRevoked": 931, - "SCSigCannotVerify": 1002, - "SCSigWrongKey": 1008, - "SCSigOldSeqno": 1010, - "SCSigCreationDisallowed": 1016, - "SCSigMissingRatchet": 1021, - "SCSigBadTotalOrder": 1022, - "SCBadTrackSession": 1301, - "SCDeviceBadName": 1404, - "SCDeviceBadStatus": 1405, - "SCDeviceNameInUse": 1408, - "SCDeviceNotFound": 1409, - "SCDeviceMismatch": 1410, - "SCDeviceRequired": 1411, - "SCDevicePrevProvisioned": 1413, - "SCDeviceNoProvision": 1414, - "SCDeviceProvisionViaDevice": 1415, - "SCRevokeCurrentDevice": 1416, - "SCRevokeLastDevice": 1417, - "SCDeviceProvisionOffline": 1418, - "SCRevokeLastDevicePGP": 1419, - "SCStreamExists": 1501, - "SCStreamNotFound": 1502, - "SCStreamWrongKind": 1503, - "SCStreamEOF": 1504, - "SCStreamUnknown": 1505, - "SCGenericAPIError": 1600, - "SCAPINetworkError": 1601, - "SCTimeout": 1602, - "SCProofError": 1701, - "SCIdentificationExpired": 1702, - "SCSelfNotFound": 1703, - "SCBadKexPhrase": 1704, - "SCNoUIDelegation": 1705, - "SCNoUI": 1706, - "SCGPGUnavailable": 1707, - "SCInvalidVersionError": 1800, - "SCOldVersionError": 1801, - "SCInvalidLocationError": 1802, - "SCServiceStatusError": 1803, - "SCInstallError": 1804, - "SCLoadKextError": 1810, - "SCLoadKextPermError": 1811, - "SCGitInternal": 2300, - "SCGitRepoAlreadyExists": 2301, - "SCGitInvalidRepoName": 2302, - "SCGitCannotDelete": 2303, - "SCGitRepoDoesntExist": 2304, - "SCLoginStateTimeout": 2400, - "SCChatInternal": 2500, - "SCChatRateLimit": 2501, - "SCChatConvExists": 2502, - "SCChatUnknownTLFID": 2503, - "SCChatNotInConv": 2504, - "SCChatBadMsg": 2505, - "SCChatBroadcast": 2506, - "SCChatAlreadySuperseded": 2507, - "SCChatAlreadyDeleted": 2508, - "SCChatTLFFinalized": 2509, - "SCChatCollision": 2510, - "SCIdentifySummaryError": 2511, - "SCNeedSelfRekey": 2512, - "SCNeedOtherRekey": 2513, - "SCChatMessageCollision": 2514, - "SCChatDuplicateMessage": 2515, - "SCChatClientError": 2516, - "SCChatNotInTeam": 2517, - "SCChatStalePreviousState": 2518, + "SCOk": 0, + "SCInputError": 100, + "SCAssertionParseError": 101, + "SCLoginRequired": 201, + "SCBadSession": 202, + "SCBadLoginUserNotFound": 203, + "SCBadLoginPassword": 204, + "SCNotFound": 205, + "SCThrottleControl": 210, + "SCDeleted": 216, + "SCGeneric": 218, + "SCAlreadyLoggedIn": 235, + "SCExists": 230, + "SCCanceled": 237, + "SCInputCanceled": 239, + "SCBadUsername": 243, + "SCOffline": 267, + "SCReloginRequired": 274, + "SCResolutionFailed": 275, + "SCProfileNotPublic": 276, + "SCIdentifyFailed": 277, + "SCTrackingBroke": 278, + "SCWrongCryptoFormat": 279, + "SCDecryptionError": 280, + "SCInvalidAddress": 281, + "SCWrongCryptoMsgType": 282, + "SCNoSession": 283, + "SCAccountReset": 290, + "SCIdentifiesFailed": 295, + "SCNoSpaceOnDevice": 297, + "SCMerkleClientError": 299, + "SCMerkleUpdateRoot": 300, + "SCBadEmail": 472, + "SCRateLimit": 602, + "SCBadSignupUsernameTaken": 701, + "SCDuplicate": 706, + "SCBadInvitationCode": 707, + "SCBadSignupUsernameReserved": 710, + "SCBadSignupTeamName": 711, + "SCFeatureFlag": 712, + "SCEmailTaken": 713, + "SCEmailAlreadyAdded": 714, + "SCEmailLimitExceeded": 715, + "SCEmailCannotDeletePrimary": 716, + "SCEmailUnknown": 717, + "SCBotSignupTokenNotFound": 719, + "SCNoUpdate": 723, + "SCMissingResult": 801, + "SCKeyNotFound": 901, + "SCKeyCorrupted": 905, + "SCKeyInUse": 907, + "SCKeyBadGen": 913, + "SCKeyNoSecret": 914, + "SCKeyBadUIDs": 915, + "SCKeyNoActive": 916, + "SCKeyNoSig": 917, + "SCKeyBadSig": 918, + "SCKeyBadEldest": 919, + "SCKeyNoEldest": 920, + "SCKeyDuplicateUpdate": 921, + "SCSibkeyAlreadyExists": 922, + "SCDecryptionKeyNotFound": 924, + "SCVerificationKeyNotFound": 925, + "SCKeyNoPGPEncryption": 927, + "SCKeyNoNaClEncryption": 928, + "SCKeySyncedPGPNotFound": 929, + "SCKeyNoMatchingGPG": 930, + "SCKeyRevoked": 931, + "SCSigCannotVerify": 1002, + "SCSigWrongKey": 1008, + "SCSigOldSeqno": 1010, + "SCSigCreationDisallowed": 1016, + "SCSigMissingRatchet": 1021, + "SCSigBadTotalOrder": 1022, + "SCBadTrackSession": 1301, + "SCDeviceBadName": 1404, + "SCDeviceBadStatus": 1405, + "SCDeviceNameInUse": 1408, + "SCDeviceNotFound": 1409, + "SCDeviceMismatch": 1410, + "SCDeviceRequired": 1411, + "SCDevicePrevProvisioned": 1413, + "SCDeviceNoProvision": 1414, + "SCDeviceProvisionViaDevice": 1415, + "SCRevokeCurrentDevice": 1416, + "SCRevokeLastDevice": 1417, + "SCDeviceProvisionOffline": 1418, + "SCRevokeLastDevicePGP": 1419, + "SCStreamExists": 1501, + "SCStreamNotFound": 1502, + "SCStreamWrongKind": 1503, + "SCStreamEOF": 1504, + "SCStreamUnknown": 1505, + "SCGenericAPIError": 1600, + "SCAPINetworkError": 1601, + "SCTimeout": 1602, + "SCKBFSClientTimeout": 1603, + "SCProofError": 1701, + "SCIdentificationExpired": 1702, + "SCSelfNotFound": 1703, + "SCBadKexPhrase": 1704, + "SCNoUIDelegation": 1705, + "SCNoUI": 1706, + "SCGPGUnavailable": 1707, + "SCInvalidVersionError": 1800, + "SCOldVersionError": 1801, + "SCInvalidLocationError": 1802, + "SCServiceStatusError": 1803, + "SCInstallError": 1804, + "SCLoadKextError": 1810, + "SCLoadKextPermError": 1811, + "SCGitInternal": 2300, + "SCGitRepoAlreadyExists": 2301, + "SCGitInvalidRepoName": 2302, + "SCGitCannotDelete": 2303, + "SCGitRepoDoesntExist": 2304, + "SCLoginStateTimeout": 2400, + "SCChatInternal": 2500, + "SCChatRateLimit": 2501, + "SCChatConvExists": 2502, + "SCChatUnknownTLFID": 2503, + "SCChatNotInConv": 2504, + "SCChatBadMsg": 2505, + "SCChatBroadcast": 2506, + "SCChatAlreadySuperseded": 2507, + "SCChatAlreadyDeleted": 2508, + "SCChatTLFFinalized": 2509, + "SCChatCollision": 2510, + "SCIdentifySummaryError": 2511, + "SCNeedSelfRekey": 2512, + "SCNeedOtherRekey": 2513, + "SCChatMessageCollision": 2514, + "SCChatDuplicateMessage": 2515, + "SCChatClientError": 2516, + "SCChatNotInTeam": 2517, + "SCChatStalePreviousState": 2518, "SCChatEphemeralRetentionPolicyViolatedError": 2519, + "SCChatUsersAlreadyInConversationError": 2520, + "SCChatBadConversationError": 2521, "SCTeamBadMembership": 2604, "SCTeamSelfNotOwner": 2607, "SCTeamNotFound": 2614, @@ -389,6 +410,8 @@ var StatusCodeMap = map[string]StatusCode{ "SCNoOp": 2638, "SCTeamInviteBadCancel": 2645, "SCTeamInviteBadToken": 2646, + "SCTeamInviteCompletionMissing": 2648, + "SCTeamBadNameReservedDB": 2650, "SCTeamTarDuplicate": 2663, "SCTeamTarNotFound": 2664, "SCTeamMemberExists": 2665, @@ -425,6 +448,7 @@ var StatusCodeMap = map[string]StatusCode{ "SCTeamStorageBadGeneration": 2761, "SCTeamStorageNotFound": 2762, "SCTeamContactSettingsBlock": 2763, + "SCTeamSeitanInviteNeedPUK": 2770, "SCEphemeralKeyBadGeneration": 2900, "SCEphemeralKeyUnexpectedBox": 2901, "SCEphemeralKeyMissingBox": 2902, @@ -479,11 +503,16 @@ var StatusCodeMap = map[string]StatusCode{ "SCTeambotKeyOldBoxedGeneration": 3801, "SCTeambotKeyBadGeneration": 3802, "SCAirdropRegisterFailedMisc": 4207, + "SCSimpleFSNameExists": 5101, + "SCSimpleFSDirNotEmpty": 5102, + "SCSimpleFSNotExist": 5103, + "SCSimpleFSNoAccess": 5104, } var StatusCodeRevMap = map[StatusCode]string{ 0: "SCOk", 100: "SCInputError", + 101: "SCAssertionParseError", 201: "SCLoginRequired", 202: "SCBadSession", 203: "SCBadLoginUserNotFound", @@ -506,11 +535,13 @@ var StatusCodeRevMap = map[StatusCode]string{ 279: "SCWrongCryptoFormat", 280: "SCDecryptionError", 281: "SCInvalidAddress", + 282: "SCWrongCryptoMsgType", 283: "SCNoSession", 290: "SCAccountReset", 295: "SCIdentifiesFailed", 297: "SCNoSpaceOnDevice", 299: "SCMerkleClientError", + 300: "SCMerkleUpdateRoot", 472: "SCBadEmail", 602: "SCRateLimit", 701: "SCBadSignupUsernameTaken", @@ -541,6 +572,7 @@ var StatusCodeRevMap = map[StatusCode]string{ 921: "SCKeyDuplicateUpdate", 922: "SCSibkeyAlreadyExists", 924: "SCDecryptionKeyNotFound", + 925: "SCVerificationKeyNotFound", 927: "SCKeyNoPGPEncryption", 928: "SCKeyNoNaClEncryption", 929: "SCKeySyncedPGPNotFound", @@ -574,6 +606,7 @@ var StatusCodeRevMap = map[StatusCode]string{ 1600: "SCGenericAPIError", 1601: "SCAPINetworkError", 1602: "SCTimeout", + 1603: "SCKBFSClientTimeout", 1701: "SCProofError", 1702: "SCIdentificationExpired", 1703: "SCSelfNotFound", @@ -614,6 +647,8 @@ var StatusCodeRevMap = map[StatusCode]string{ 2517: "SCChatNotInTeam", 2518: "SCChatStalePreviousState", 2519: "SCChatEphemeralRetentionPolicyViolatedError", + 2520: "SCChatUsersAlreadyInConversationError", + 2521: "SCChatBadConversationError", 2604: "SCTeamBadMembership", 2607: "SCTeamSelfNotOwner", 2614: "SCTeamNotFound", @@ -624,6 +659,8 @@ var StatusCodeRevMap = map[StatusCode]string{ 2638: "SCNoOp", 2645: "SCTeamInviteBadCancel", 2646: "SCTeamInviteBadToken", + 2648: "SCTeamInviteCompletionMissing", + 2650: "SCTeamBadNameReservedDB", 2663: "SCTeamTarDuplicate", 2664: "SCTeamTarNotFound", 2665: "SCTeamMemberExists", @@ -660,6 +697,7 @@ var StatusCodeRevMap = map[StatusCode]string{ 2761: "SCTeamStorageBadGeneration", 2762: "SCTeamStorageNotFound", 2763: "SCTeamContactSettingsBlock", + 2770: "SCTeamSeitanInviteNeedPUK", 2900: "SCEphemeralKeyBadGeneration", 2901: "SCEphemeralKeyUnexpectedBox", 2902: "SCEphemeralKeyMissingBox", @@ -714,6 +752,10 @@ var StatusCodeRevMap = map[StatusCode]string{ 3801: "SCTeambotKeyOldBoxedGeneration", 3802: "SCTeambotKeyBadGeneration", 4207: "SCAirdropRegisterFailedMisc", + 5101: "SCSimpleFSNameExists", + 5102: "SCSimpleFSDirNotEmpty", + 5103: "SCSimpleFSNotExist", + 5104: "SCSimpleFSNoAccess", } func (e StatusCode) String() string { diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/contacts.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/contacts.go index 6853945c..995f81bf 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/contacts.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/contacts.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/contacts.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/crypto.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/crypto.go index 3a492fa0..885a1b0e 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/crypto.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/crypto.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/crypto.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/cryptocurrency.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/cryptocurrency.go index 477357e7..d77d1dbd 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/cryptocurrency.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/cryptocurrency.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/cryptocurrency.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ctl.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ctl.go index 1621930d..6a2c89e7 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ctl.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ctl.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/ctl.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/debugging.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/debugging.go index 220cd124..15b0c95b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/debugging.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/debugging.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/debugging.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/delegate_ui_ctl.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/delegate_ui_ctl.go index 527d6fbf..ae1b1476 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/delegate_ui_ctl.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/delegate_ui_ctl.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/delegate_ui_ctl.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/device.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/device.go index ada7469f..fe4ab9a7 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/device.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/device.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/device.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/emails.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/emails.go index 4fddd5de..54b776c3 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/emails.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/emails.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/emails.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ephemeral.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ephemeral.go index def4172c..4080bfb2 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ephemeral.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ephemeral.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/ephemeral.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/favorite.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/favorite.go index 6f74e8d9..e869ab5d 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/favorite.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/favorite.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/favorite.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/featured_bot.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/featured_bot.go index d526f935..b0ba65ef 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/featured_bot.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/featured_bot.go @@ -1,25 +1,27 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/featured_bot.avdl package keybase1 type FeaturedBot struct { - BotAlias string `codec:"botAlias" json:"botAlias"` - Description string `codec:"description" json:"description"` - ExtendedDescription string `codec:"extendedDescription" json:"extendedDescription"` - BotUsername string `codec:"botUsername" json:"botUsername"` - OwnerTeam *string `codec:"ownerTeam,omitempty" json:"ownerTeam,omitempty"` - OwnerUser *string `codec:"ownerUser,omitempty" json:"ownerUser,omitempty"` - Rank int `codec:"rank" json:"rank"` - IsPromoted bool `codec:"isPromoted" json:"isPromoted"` + BotAlias string `codec:"botAlias" json:"botAlias"` + Description string `codec:"description" json:"description"` + ExtendedDescription string `codec:"extendedDescription" json:"extendedDescription"` + ExtendedDescriptionRaw string `codec:"extendedDescriptionRaw" json:"extendedDescriptionRaw"` + BotUsername string `codec:"botUsername" json:"botUsername"` + OwnerTeam *string `codec:"ownerTeam,omitempty" json:"ownerTeam,omitempty"` + OwnerUser *string `codec:"ownerUser,omitempty" json:"ownerUser,omitempty"` + Rank int `codec:"rank" json:"rank"` + IsPromoted bool `codec:"isPromoted" json:"isPromoted"` } func (o FeaturedBot) DeepCopy() FeaturedBot { return FeaturedBot{ - BotAlias: o.BotAlias, - Description: o.Description, - ExtendedDescription: o.ExtendedDescription, - BotUsername: o.BotUsername, + BotAlias: o.BotAlias, + Description: o.Description, + ExtendedDescription: o.ExtendedDescription, + ExtendedDescriptionRaw: o.ExtendedDescriptionRaw, + BotUsername: o.BotUsername, OwnerTeam: (func(x *string) *string { if x == nil { return nil diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/fs.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/fs.go index ee2bdc11..4e98fd66 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/fs.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/fs.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/fs.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/git.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/git.go index f2283550..dc50a0f0 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/git.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/git.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/git.avdl package keybase1 @@ -223,8 +223,8 @@ type GitServerMetadata struct { func (o GitServerMetadata) DeepCopy() GitServerMetadata { return GitServerMetadata{ - Ctime: o.Ctime.DeepCopy(), - Mtime: o.Mtime.DeepCopy(), + Ctime: o.Ctime.DeepCopy(), + Mtime: o.Mtime.DeepCopy(), LastModifyingUsername: o.LastModifyingUsername, LastModifyingDeviceID: o.LastModifyingDeviceID.DeepCopy(), LastModifyingDeviceName: o.LastModifyingDeviceName, diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_common.go index d351b2b3..19cfbec7 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/gpg_common.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_ui.go index ca7b6b54..30313260 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/gpg_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor.go index c1a15270..efc1bd8e 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/gregor.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor_ui.go index 5d9ce81e..b9824f86 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/gregor_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home.go index ad9ddf89..a5e84955 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/home.avdl package keybase1 @@ -298,19 +298,19 @@ const ( HomeScreenTodoType_PROOF HomeScreenTodoType = 2 HomeScreenTodoType_DEVICE HomeScreenTodoType = 3 HomeScreenTodoType_FOLLOW HomeScreenTodoType = 4 - HomeScreenTodoType_CHAT HomeScreenTodoType = 5 HomeScreenTodoType_PAPERKEY HomeScreenTodoType = 6 HomeScreenTodoType_TEAM HomeScreenTodoType = 7 HomeScreenTodoType_FOLDER HomeScreenTodoType = 8 HomeScreenTodoType_GIT_REPO HomeScreenTodoType = 9 HomeScreenTodoType_TEAM_SHOWCASE HomeScreenTodoType = 10 - HomeScreenTodoType_AVATAR_USER HomeScreenTodoType = 11 HomeScreenTodoType_AVATAR_TEAM HomeScreenTodoType = 12 HomeScreenTodoType_ADD_PHONE_NUMBER HomeScreenTodoType = 18 HomeScreenTodoType_VERIFY_ALL_PHONE_NUMBER HomeScreenTodoType = 19 HomeScreenTodoType_VERIFY_ALL_EMAIL HomeScreenTodoType = 20 HomeScreenTodoType_LEGACY_EMAIL_VISIBILITY HomeScreenTodoType = 21 HomeScreenTodoType_ADD_EMAIL HomeScreenTodoType = 22 + HomeScreenTodoType_AVATAR_USER HomeScreenTodoType = 23 + HomeScreenTodoType_CHAT HomeScreenTodoType = 24 HomeScreenTodoType_ANNONCEMENT_PLACEHOLDER HomeScreenTodoType = 10000 ) @@ -322,19 +322,19 @@ var HomeScreenTodoTypeMap = map[string]HomeScreenTodoType{ "PROOF": 2, "DEVICE": 3, "FOLLOW": 4, - "CHAT": 5, "PAPERKEY": 6, "TEAM": 7, "FOLDER": 8, "GIT_REPO": 9, "TEAM_SHOWCASE": 10, - "AVATAR_USER": 11, "AVATAR_TEAM": 12, "ADD_PHONE_NUMBER": 18, "VERIFY_ALL_PHONE_NUMBER": 19, "VERIFY_ALL_EMAIL": 20, "LEGACY_EMAIL_VISIBILITY": 21, "ADD_EMAIL": 22, + "AVATAR_USER": 23, + "CHAT": 24, "ANNONCEMENT_PLACEHOLDER": 10000, } @@ -344,19 +344,19 @@ var HomeScreenTodoTypeRevMap = map[HomeScreenTodoType]string{ 2: "PROOF", 3: "DEVICE", 4: "FOLLOW", - 5: "CHAT", 6: "PAPERKEY", 7: "TEAM", 8: "FOLDER", 9: "GIT_REPO", 10: "TEAM_SHOWCASE", - 11: "AVATAR_USER", 12: "AVATAR_TEAM", 18: "ADD_PHONE_NUMBER", 19: "VERIFY_ALL_PHONE_NUMBER", 20: "VERIFY_ALL_EMAIL", 21: "LEGACY_EMAIL_VISIBILITY", 22: "ADD_EMAIL", + 23: "AVATAR_USER", + 24: "CHAT", 10000: "ANNONCEMENT_PLACEHOLDER", } @@ -435,7 +435,7 @@ func (o HomeScreenTodo) LegacyEmailVisibility() (res EmailAddress) { func NewHomeScreenTodoWithVerifyAllPhoneNumber(v PhoneNumber) HomeScreenTodo { return HomeScreenTodo{ - T__: HomeScreenTodoType_VERIFY_ALL_PHONE_NUMBER, + T__: HomeScreenTodoType_VERIFY_ALL_PHONE_NUMBER, VerifyAllPhoneNumber__: &v, } } @@ -449,7 +449,7 @@ func NewHomeScreenTodoWithVerifyAllEmail(v EmailAddress) HomeScreenTodo { func NewHomeScreenTodoWithLegacyEmailVisibility(v EmailAddress) HomeScreenTodo { return HomeScreenTodo{ - T__: HomeScreenTodoType_LEGACY_EMAIL_VISIBILITY, + T__: HomeScreenTodoType_LEGACY_EMAIL_VISIBILITY, LegacyEmailVisibility__: &v, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home_ui.go index a7671a41..2039e02f 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/home_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify.go index 3a810197..9ba6fe33 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/identify.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3.go index af462f3c..02a4e62e 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/identify3.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_common.go index 78b5377f..e6062ead 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/identify3_common.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_ui.go index 1b3f34a2..a39ab91d 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/identify3_ui.avdl package keybase1 @@ -128,21 +128,23 @@ func (o Identify3RowMeta) DeepCopy() Identify3RowMeta { } type Identify3Row struct { - GuiID Identify3GUIID `codec:"guiID" json:"guiID"` - Key string `codec:"key" json:"key"` - Value string `codec:"value" json:"value"` - Priority int `codec:"priority" json:"priority"` - SiteURL string `codec:"siteURL" json:"siteURL"` - SiteIcon []SizedImage `codec:"siteIcon" json:"siteIcon"` - SiteIconFull []SizedImage `codec:"siteIconFull" json:"siteIconFull"` - SiteIconWhite []SizedImage `codec:"siteIconWhite" json:"siteIconWhite"` - ProofURL string `codec:"proofURL" json:"proofURL"` - SigID SigID `codec:"sigID" json:"sigID"` - Ctime Time `codec:"ctime" json:"ctime"` - State Identify3RowState `codec:"state" json:"state"` - Metas []Identify3RowMeta `codec:"metas" json:"metas"` - Color Identify3RowColor `codec:"color" json:"color"` - Kid *KID `codec:"kid,omitempty" json:"kid,omitempty"` + GuiID Identify3GUIID `codec:"guiID" json:"guiID"` + Key string `codec:"key" json:"key"` + Value string `codec:"value" json:"value"` + Priority int `codec:"priority" json:"priority"` + SiteURL string `codec:"siteURL" json:"siteURL"` + SiteIcon []SizedImage `codec:"siteIcon" json:"siteIcon"` + SiteIconDarkmode []SizedImage `codec:"siteIconDarkmode" json:"siteIconDarkmode"` + SiteIconFull []SizedImage `codec:"siteIconFull" json:"siteIconFull"` + SiteIconFullDarkmode []SizedImage `codec:"siteIconFullDarkmode" json:"siteIconFullDarkmode"` + ProofURL string `codec:"proofURL" json:"proofURL"` + SigID SigID `codec:"sigID" json:"sigID"` + Ctime Time `codec:"ctime" json:"ctime"` + State Identify3RowState `codec:"state" json:"state"` + Metas []Identify3RowMeta `codec:"metas" json:"metas"` + Color Identify3RowColor `codec:"color" json:"color"` + Kid *KID `codec:"kid,omitempty" json:"kid,omitempty"` + WotProof *WotProof `codec:"wotProof,omitempty" json:"wotProof,omitempty"` } func (o Identify3Row) DeepCopy() Identify3Row { @@ -163,6 +165,17 @@ func (o Identify3Row) DeepCopy() Identify3Row { } return ret })(o.SiteIcon), + SiteIconDarkmode: (func(x []SizedImage) []SizedImage { + if x == nil { + return nil + } + ret := make([]SizedImage, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.SiteIconDarkmode), SiteIconFull: (func(x []SizedImage) []SizedImage { if x == nil { return nil @@ -174,7 +187,7 @@ func (o Identify3Row) DeepCopy() Identify3Row { } return ret })(o.SiteIconFull), - SiteIconWhite: (func(x []SizedImage) []SizedImage { + SiteIconFullDarkmode: (func(x []SizedImage) []SizedImage { if x == nil { return nil } @@ -184,7 +197,7 @@ func (o Identify3Row) DeepCopy() Identify3Row { ret[i] = vCopy } return ret - })(o.SiteIconWhite), + })(o.SiteIconFullDarkmode), ProofURL: o.ProofURL, SigID: o.SigID.DeepCopy(), Ctime: o.Ctime.DeepCopy(), @@ -208,5 +221,24 @@ func (o Identify3Row) DeepCopy() Identify3Row { tmp := (*x).DeepCopy() return &tmp })(o.Kid), + WotProof: (func(x *WotProof) *WotProof { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.WotProof), + } +} + +type Identify3Summary struct { + GuiID Identify3GUIID `codec:"guiID" json:"guiID"` + NumProofsToCheck int `codec:"numProofsToCheck" json:"numProofsToCheck"` +} + +func (o Identify3Summary) DeepCopy() Identify3Summary { + return Identify3Summary{ + GuiID: o.GuiID.DeepCopy(), + NumProofsToCheck: o.NumProofsToCheck, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_common.go index bd1ff200..73822337 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/identify_common.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_ui.go index e8118f9f..7ddb4f2b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/identify_ui.avdl package keybase1 @@ -337,37 +337,33 @@ func (o UserTeamShowcase) DeepCopy() UserTeamShowcase { } type UserCard struct { - Following int `codec:"following" json:"following"` - Followers int `codec:"followers" json:"followers"` - Uid UID `codec:"uid" json:"uid"` - FullName string `codec:"fullName" json:"fullName"` - Location string `codec:"location" json:"location"` - Bio string `codec:"bio" json:"bio"` - BioDecorated string `codec:"bioDecorated" json:"bioDecorated"` - Website string `codec:"website" json:"website"` - Twitter string `codec:"twitter" json:"twitter"` - YouFollowThem bool `codec:"youFollowThem" json:"youFollowThem"` - TheyFollowYou bool `codec:"theyFollowYou" json:"theyFollowYou"` - TeamShowcase []UserTeamShowcase `codec:"teamShowcase" json:"teamShowcase"` - RegisteredForAirdrop bool `codec:"registeredForAirdrop" json:"registeredForAirdrop"` - StellarHidden bool `codec:"stellarHidden" json:"stellarHidden"` - Blocked bool `codec:"blocked" json:"blocked"` - HidFromFollowers bool `codec:"hidFromFollowers" json:"hidFromFollowers"` + UnverifiedNumFollowing int `codec:"unverifiedNumFollowing" json:"unverifiedNumFollowing"` + UnverifiedNumFollowers int `codec:"unverifiedNumFollowers" json:"unverifiedNumFollowers"` + Uid UID `codec:"uid" json:"uid"` + FullName string `codec:"fullName" json:"fullName"` + Location string `codec:"location" json:"location"` + Bio string `codec:"bio" json:"bio"` + BioDecorated string `codec:"bioDecorated" json:"bioDecorated"` + Website string `codec:"website" json:"website"` + Twitter string `codec:"twitter" json:"twitter"` + TeamShowcase []UserTeamShowcase `codec:"teamShowcase" json:"teamShowcase"` + RegisteredForAirdrop bool `codec:"registeredForAirdrop" json:"registeredForAirdrop"` + StellarHidden bool `codec:"stellarHidden" json:"stellarHidden"` + Blocked bool `codec:"blocked" json:"blocked"` + HidFromFollowers bool `codec:"hidFromFollowers" json:"hidFromFollowers"` } func (o UserCard) DeepCopy() UserCard { return UserCard{ - Following: o.Following, - Followers: o.Followers, - Uid: o.Uid.DeepCopy(), - FullName: o.FullName, - Location: o.Location, - Bio: o.Bio, - BioDecorated: o.BioDecorated, - Website: o.Website, - Twitter: o.Twitter, - YouFollowThem: o.YouFollowThem, - TheyFollowYou: o.TheyFollowYou, + UnverifiedNumFollowing: o.UnverifiedNumFollowing, + UnverifiedNumFollowers: o.UnverifiedNumFollowers, + Uid: o.Uid.DeepCopy(), + FullName: o.FullName, + Location: o.Location, + Bio: o.Bio, + BioDecorated: o.BioDecorated, + Website: o.Website, + Twitter: o.Twitter, TeamShowcase: (func(x []UserTeamShowcase) []UserTeamShowcase { if x == nil { return nil diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/implicit_team_migration.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/implicit_team_migration.go index 703ac01d..d2d8ac04 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/implicit_team_migration.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/implicit_team_migration.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/implicit_team_migration.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/incoming-share.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/incoming-share.go new file mode 100644 index 00000000..3e60c1f8 --- /dev/null +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/incoming-share.go @@ -0,0 +1,98 @@ +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) +// Input file: ../client/protocol/avdl/keybase1/incoming-share.avdl + +package keybase1 + +import ( + "fmt" +) + +type IncomingShareType int + +const ( + IncomingShareType_FILE IncomingShareType = 0 + IncomingShareType_TEXT IncomingShareType = 1 + IncomingShareType_IMAGE IncomingShareType = 2 + IncomingShareType_VIDEO IncomingShareType = 3 +) + +func (o IncomingShareType) DeepCopy() IncomingShareType { return o } + +var IncomingShareTypeMap = map[string]IncomingShareType{ + "FILE": 0, + "TEXT": 1, + "IMAGE": 2, + "VIDEO": 3, +} + +var IncomingShareTypeRevMap = map[IncomingShareType]string{ + 0: "FILE", + 1: "TEXT", + 2: "IMAGE", + 3: "VIDEO", +} + +func (e IncomingShareType) String() string { + if v, ok := IncomingShareTypeRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type IncomingShareItem struct { + Type IncomingShareType `codec:"type" json:"type"` + OriginalPath *string `codec:"originalPath,omitempty" json:"originalPath,omitempty"` + OriginalSize *int `codec:"originalSize,omitempty" json:"originalSize,omitempty"` + ScaledPath *string `codec:"scaledPath,omitempty" json:"scaledPath,omitempty"` + ScaledSize *int `codec:"scaledSize,omitempty" json:"scaledSize,omitempty"` + ThumbnailPath *string `codec:"thumbnailPath,omitempty" json:"thumbnailPath,omitempty"` + Content *string `codec:"content,omitempty" json:"content,omitempty"` +} + +func (o IncomingShareItem) DeepCopy() IncomingShareItem { + return IncomingShareItem{ + Type: o.Type.DeepCopy(), + OriginalPath: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.OriginalPath), + OriginalSize: (func(x *int) *int { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.OriginalSize), + ScaledPath: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.ScaledPath), + ScaledSize: (func(x *int) *int { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.ScaledSize), + ThumbnailPath: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.ThumbnailPath), + Content: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.Content), + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/install.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/install.go index 2b31fd3e..dee3b51b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/install.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/install.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/install.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/invite_friends.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/invite_friends.go new file mode 100644 index 00000000..91daf4f3 --- /dev/null +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/invite_friends.go @@ -0,0 +1,56 @@ +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) +// Input file: ../client/protocol/avdl/keybase1/invite_friends.avdl + +package keybase1 + +type InviteCounts struct { + InviteCount int `codec:"inviteCount" json:"inviteCount"` + PercentageChange float64 `codec:"percentageChange" json:"percentageChange"` + ShowNumInvites bool `codec:"showNumInvites" json:"showNumInvites"` + ShowFire bool `codec:"showFire" json:"showFire"` + TooltipMarkdown string `codec:"tooltipMarkdown" json:"tooltipMarkdown"` +} + +func (o InviteCounts) DeepCopy() InviteCounts { + return InviteCounts{ + InviteCount: o.InviteCount, + PercentageChange: o.PercentageChange, + ShowNumInvites: o.ShowNumInvites, + ShowFire: o.ShowFire, + TooltipMarkdown: o.TooltipMarkdown, + } +} + +type EmailInvites struct { + CommaSeparatedEmailsFromUser *string `codec:"commaSeparatedEmailsFromUser,omitempty" json:"commaSeparatedEmailsFromUser,omitempty"` + EmailsFromContacts *[]EmailAddress `codec:"emailsFromContacts,omitempty" json:"emailsFromContacts,omitempty"` +} + +func (o EmailInvites) DeepCopy() EmailInvites { + return EmailInvites{ + CommaSeparatedEmailsFromUser: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.CommaSeparatedEmailsFromUser), + EmailsFromContacts: (func(x *[]EmailAddress) *[]EmailAddress { + if x == nil { + return nil + } + tmp := (func(x []EmailAddress) []EmailAddress { + if x == nil { + return nil + } + ret := make([]EmailAddress, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })((*x)) + return &tmp + })(o.EmailsFromContacts), + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs.go index b32228aa..1826ca04 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/kbfs.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_common.go index 682044fa..cfd05c43 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/kbfs_common.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_git.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_git.go index a9e81d83..a24b13a6 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_git.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_git.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/kbfs_git.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfsmount.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfsmount.go index d9d727f1..05604a49 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfsmount.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfsmount.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/kbfsmount.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee.go index 1dc8010c..c2d4ff21 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/kex2provisionee.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee2.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee2.go index 148c8fad..02692579 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee2.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee2.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/kex2provisionee2.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisioner.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisioner.go index e24d4e88..a29589c4 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisioner.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisioner.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/kex2provisioner.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kvstore.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kvstore.go index cbb8d945..c2d04b54 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kvstore.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kvstore.go @@ -1,23 +1,29 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/kvstore.avdl package keybase1 type KVGetResult struct { - TeamName string `codec:"teamName" json:"teamName"` - Namespace string `codec:"namespace" json:"namespace"` - EntryKey string `codec:"entryKey" json:"entryKey"` - EntryValue string `codec:"entryValue" json:"entryValue"` - Revision int `codec:"revision" json:"revision"` + TeamName string `codec:"teamName" json:"teamName"` + Namespace string `codec:"namespace" json:"namespace"` + EntryKey string `codec:"entryKey" json:"entryKey"` + EntryValue *string `codec:"entryValue" json:"entryValue"` + Revision int `codec:"revision" json:"revision"` } func (o KVGetResult) DeepCopy() KVGetResult { return KVGetResult{ - TeamName: o.TeamName, - Namespace: o.Namespace, - EntryKey: o.EntryKey, - EntryValue: o.EntryValue, - Revision: o.Revision, + TeamName: o.TeamName, + Namespace: o.Namespace, + EntryKey: o.EntryKey, + EntryValue: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.EntryValue), + Revision: o.Revision, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log.go index 2874c1ef..44f91aad 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/log.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log_ui.go index 39bd218c..dff2d7b5 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/log_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login.go index 86e383e8..fdbf13dc 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/login.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login_ui.go index 124ff2b3..abfd087b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/login_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/logsend.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/logsend.go index 55df5fb9..36694758 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/logsend.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/logsend.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/logsend.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle.go index f8c4320a..33d20f25 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/merkle.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle_store.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle_store.go index a8ea0091..87f71e4c 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle_store.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle_store.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/merkle_store.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata.go index 1dc761f0..3505b2da 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/metadata.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata_update.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata_update.go index 85d49c81..2e1e3309 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata_update.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata_update.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/metadata_update.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/network_stats.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/network_stats.go new file mode 100644 index 00000000..d5927026 --- /dev/null +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/network_stats.go @@ -0,0 +1,66 @@ +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) +// Input file: ../client/protocol/avdl/keybase1/network_stats.avdl + +package keybase1 + +import ( + "fmt" +) + +type NetworkSource int + +const ( + NetworkSource_LOCAL NetworkSource = 0 + NetworkSource_REMOTE NetworkSource = 1 +) + +func (o NetworkSource) DeepCopy() NetworkSource { return o } + +var NetworkSourceMap = map[string]NetworkSource{ + "LOCAL": 0, + "REMOTE": 1, +} + +var NetworkSourceRevMap = map[NetworkSource]string{ + 0: "LOCAL", + 1: "REMOTE", +} + +func (e NetworkSource) String() string { + if v, ok := NetworkSourceRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type InstrumentationStat struct { + Tag string `codec:"t" json:"tag"` + NumCalls int `codec:"n" json:"numCalls"` + Ctime Time `codec:"c" json:"ctime"` + Mtime Time `codec:"m" json:"mtime"` + AvgDur DurationMsec `codec:"ad" json:"avgDur"` + MaxDur DurationMsec `codec:"xd" json:"maxDur"` + MinDur DurationMsec `codec:"nd" json:"minDur"` + TotalDur DurationMsec `codec:"td" json:"totalDur"` + AvgSize int64 `codec:"as" json:"avgSize"` + MaxSize int64 `codec:"xs" json:"maxSize"` + MinSize int64 `codec:"ns" json:"minSize"` + TotalSize int64 `codec:"ts" json:"totalSize"` +} + +func (o InstrumentationStat) DeepCopy() InstrumentationStat { + return InstrumentationStat{ + Tag: o.Tag, + NumCalls: o.NumCalls, + Ctime: o.Ctime.DeepCopy(), + Mtime: o.Mtime.DeepCopy(), + AvgDur: o.AvgDur.DeepCopy(), + MaxDur: o.MaxDur.DeepCopy(), + MinDur: o.MinDur.DeepCopy(), + TotalDur: o.TotalDur.DeepCopy(), + AvgSize: o.AvgSize, + MaxSize: o.MaxSize, + MinSize: o.MinSize, + TotalSize: o.TotalSize, + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_app.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_app.go index 64f76c79..10f23060 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_app.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_app.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_app.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_audit.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_audit.go index 8a39a98e..73f81f34 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_audit.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_audit.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_audit.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_badges.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_badges.go index b3541b99..ef8ddfb1 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_badges.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_badges.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_badges.avdl package keybase1 @@ -74,6 +74,20 @@ func (o ResetState) DeepCopy() ResetState { } } +type WotUpdate struct { + Voucher string `codec:"voucher" json:"voucher"` + Vouchee string `codec:"vouchee" json:"vouchee"` + Status WotStatusType `codec:"status" json:"status"` +} + +func (o WotUpdate) DeepCopy() WotUpdate { + return WotUpdate{ + Voucher: o.Voucher, + Vouchee: o.Vouchee, + Status: o.Status.DeepCopy(), + } +} + type BadgeState struct { NewTlfs int `codec:"newTlfs" json:"newTlfs"` RekeysNeeded int `codec:"rekeysNeeded" json:"rekeysNeeded"` @@ -82,27 +96,33 @@ type BadgeState struct { HomeTodoItems int `codec:"homeTodoItems" json:"homeTodoItems"` UnverifiedEmails int `codec:"unverifiedEmails" json:"unverifiedEmails"` UnverifiedPhones int `codec:"unverifiedPhones" json:"unverifiedPhones"` + SmallTeamBadgeCount int `codec:"smallTeamBadgeCount" json:"smallTeamBadgeCount"` + BigTeamBadgeCount int `codec:"bigTeamBadgeCount" json:"bigTeamBadgeCount"` + NewTeamAccessRequestCount int `codec:"newTeamAccessRequestCount" json:"newTeamAccessRequestCount"` NewDevices []DeviceID `codec:"newDevices" json:"newDevices"` RevokedDevices []DeviceID `codec:"revokedDevices" json:"revokedDevices"` Conversations []BadgeConversationInfo `codec:"conversations" json:"conversations"` NewGitRepoGlobalUniqueIDs []string `codec:"newGitRepoGlobalUniqueIDs" json:"newGitRepoGlobalUniqueIDs"` NewTeams []TeamID `codec:"newTeams" json:"newTeams"` DeletedTeams []DeletedTeamInfo `codec:"deletedTeams" json:"deletedTeams"` - NewTeamAccessRequests []TeamID `codec:"newTeamAccessRequests" json:"newTeamAccessRequests"` TeamsWithResetUsers []TeamMemberOutReset `codec:"teamsWithResetUsers" json:"teamsWithResetUsers"` UnreadWalletAccounts []WalletAccountInfo `codec:"unreadWalletAccounts" json:"unreadWalletAccounts"` + WotUpdates map[string]WotUpdate `codec:"wotUpdates" json:"wotUpdates"` ResetState ResetState `codec:"resetState" json:"resetState"` } func (o BadgeState) DeepCopy() BadgeState { return BadgeState{ - NewTlfs: o.NewTlfs, - RekeysNeeded: o.RekeysNeeded, - NewFollowers: o.NewFollowers, - InboxVers: o.InboxVers, - HomeTodoItems: o.HomeTodoItems, - UnverifiedEmails: o.UnverifiedEmails, - UnverifiedPhones: o.UnverifiedPhones, + NewTlfs: o.NewTlfs, + RekeysNeeded: o.RekeysNeeded, + NewFollowers: o.NewFollowers, + InboxVers: o.InboxVers, + HomeTodoItems: o.HomeTodoItems, + UnverifiedEmails: o.UnverifiedEmails, + UnverifiedPhones: o.UnverifiedPhones, + SmallTeamBadgeCount: o.SmallTeamBadgeCount, + BigTeamBadgeCount: o.BigTeamBadgeCount, + NewTeamAccessRequestCount: o.NewTeamAccessRequestCount, NewDevices: (func(x []DeviceID) []DeviceID { if x == nil { return nil @@ -169,17 +189,6 @@ func (o BadgeState) DeepCopy() BadgeState { } return ret })(o.DeletedTeams), - NewTeamAccessRequests: (func(x []TeamID) []TeamID { - if x == nil { - return nil - } - ret := make([]TeamID, len(x)) - for i, v := range x { - vCopy := v.DeepCopy() - ret[i] = vCopy - } - return ret - })(o.NewTeamAccessRequests), TeamsWithResetUsers: (func(x []TeamMemberOutReset) []TeamMemberOutReset { if x == nil { return nil @@ -202,31 +211,32 @@ func (o BadgeState) DeepCopy() BadgeState { } return ret })(o.UnreadWalletAccounts), + WotUpdates: (func(x map[string]WotUpdate) map[string]WotUpdate { + if x == nil { + return nil + } + ret := make(map[string]WotUpdate, len(x)) + for k, v := range x { + kCopy := k + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.WotUpdates), ResetState: o.ResetState.DeepCopy(), } } type BadgeConversationInfo struct { ConvID ChatConversationID `codec:"convID" json:"convID"` - BadgeCounts map[DeviceType]int `codec:"badgeCounts" json:"badgeCounts"` + BadgeCount int `codec:"badgeCount" json:"badgeCount"` UnreadMessages int `codec:"unreadMessages" json:"unreadMessages"` } func (o BadgeConversationInfo) DeepCopy() BadgeConversationInfo { return BadgeConversationInfo{ - ConvID: o.ConvID.DeepCopy(), - BadgeCounts: (func(x map[DeviceType]int) map[DeviceType]int { - if x == nil { - return nil - } - ret := make(map[DeviceType]int, len(x)) - for k, v := range x { - kCopy := k.DeepCopy() - vCopy := v - ret[kCopy] = vCopy - } - return ret - })(o.BadgeCounts), + ConvID: o.ConvID.DeepCopy(), + BadgeCount: o.BadgeCount, UnreadMessages: o.UnreadMessages, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_can_user_perform.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_can_user_perform.go index 92be0aa3..84bca814 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_can_user_perform.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_can_user_perform.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_can_user_perform.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ctl.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ctl.go index a937a7d6..93a2901f 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ctl.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ctl.go @@ -1,70 +1,76 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_ctl.avdl package keybase1 type NotificationChannels struct { - Session bool `codec:"session" json:"session"` - Users bool `codec:"users" json:"users"` - Kbfs bool `codec:"kbfs" json:"kbfs"` - Kbfsdesktop bool `codec:"kbfsdesktop" json:"kbfsdesktop"` - Kbfslegacy bool `codec:"kbfslegacy" json:"kbfslegacy"` - Kbfssubscription bool `codec:"kbfssubscription" json:"kbfssubscription"` - Tracking bool `codec:"tracking" json:"tracking"` - Favorites bool `codec:"favorites" json:"favorites"` - Paperkeys bool `codec:"paperkeys" json:"paperkeys"` - Keyfamily bool `codec:"keyfamily" json:"keyfamily"` - Service bool `codec:"service" json:"service"` - App bool `codec:"app" json:"app"` - Chat bool `codec:"chat" json:"chat"` - PGP bool `codec:"pgp" json:"pgp"` - Kbfsrequest bool `codec:"kbfsrequest" json:"kbfsrequest"` - Badges bool `codec:"badges" json:"badges"` - Reachability bool `codec:"reachability" json:"reachability"` - Team bool `codec:"team" json:"team"` - Ephemeral bool `codec:"ephemeral" json:"ephemeral"` - Teambot bool `codec:"teambot" json:"teambot"` - Chatkbfsedits bool `codec:"chatkbfsedits" json:"chatkbfsedits"` - Chatdev bool `codec:"chatdev" json:"chatdev"` - Deviceclone bool `codec:"deviceclone" json:"deviceclone"` - Chatattachments bool `codec:"chatattachments" json:"chatattachments"` - Wallet bool `codec:"wallet" json:"wallet"` - Audit bool `codec:"audit" json:"audit"` - Runtimestats bool `codec:"runtimestats" json:"runtimestats"` - FeaturedBots bool `codec:"featuredBots" json:"featuredBots"` - Saltpack bool `codec:"saltpack" json:"saltpack"` + Session bool `codec:"session" json:"session"` + Users bool `codec:"users" json:"users"` + Kbfs bool `codec:"kbfs" json:"kbfs"` + Kbfsdesktop bool `codec:"kbfsdesktop" json:"kbfsdesktop"` + Kbfslegacy bool `codec:"kbfslegacy" json:"kbfslegacy"` + Kbfssubscription bool `codec:"kbfssubscription" json:"kbfssubscription"` + Tracking bool `codec:"tracking" json:"tracking"` + Favorites bool `codec:"favorites" json:"favorites"` + Paperkeys bool `codec:"paperkeys" json:"paperkeys"` + Keyfamily bool `codec:"keyfamily" json:"keyfamily"` + Service bool `codec:"service" json:"service"` + App bool `codec:"app" json:"app"` + Chat bool `codec:"chat" json:"chat"` + PGP bool `codec:"pgp" json:"pgp"` + Kbfsrequest bool `codec:"kbfsrequest" json:"kbfsrequest"` + Badges bool `codec:"badges" json:"badges"` + Reachability bool `codec:"reachability" json:"reachability"` + Team bool `codec:"team" json:"team"` + Ephemeral bool `codec:"ephemeral" json:"ephemeral"` + Teambot bool `codec:"teambot" json:"teambot"` + Chatkbfsedits bool `codec:"chatkbfsedits" json:"chatkbfsedits"` + Chatdev bool `codec:"chatdev" json:"chatdev"` + Chatemoji bool `codec:"chatemoji" json:"chatemoji"` + Chatemojicross bool `codec:"chatemojicross" json:"chatemojicross"` + Deviceclone bool `codec:"deviceclone" json:"deviceclone"` + Chatattachments bool `codec:"chatattachments" json:"chatattachments"` + Wallet bool `codec:"wallet" json:"wallet"` + Audit bool `codec:"audit" json:"audit"` + Runtimestats bool `codec:"runtimestats" json:"runtimestats"` + FeaturedBots bool `codec:"featuredBots" json:"featuredBots"` + Saltpack bool `codec:"saltpack" json:"saltpack"` + AllowChatNotifySkips bool `codec:"allowChatNotifySkips" json:"allowChatNotifySkips"` } func (o NotificationChannels) DeepCopy() NotificationChannels { return NotificationChannels{ - Session: o.Session, - Users: o.Users, - Kbfs: o.Kbfs, - Kbfsdesktop: o.Kbfsdesktop, - Kbfslegacy: o.Kbfslegacy, - Kbfssubscription: o.Kbfssubscription, - Tracking: o.Tracking, - Favorites: o.Favorites, - Paperkeys: o.Paperkeys, - Keyfamily: o.Keyfamily, - Service: o.Service, - App: o.App, - Chat: o.Chat, - PGP: o.PGP, - Kbfsrequest: o.Kbfsrequest, - Badges: o.Badges, - Reachability: o.Reachability, - Team: o.Team, - Ephemeral: o.Ephemeral, - Teambot: o.Teambot, - Chatkbfsedits: o.Chatkbfsedits, - Chatdev: o.Chatdev, - Deviceclone: o.Deviceclone, - Chatattachments: o.Chatattachments, - Wallet: o.Wallet, - Audit: o.Audit, - Runtimestats: o.Runtimestats, - FeaturedBots: o.FeaturedBots, - Saltpack: o.Saltpack, + Session: o.Session, + Users: o.Users, + Kbfs: o.Kbfs, + Kbfsdesktop: o.Kbfsdesktop, + Kbfslegacy: o.Kbfslegacy, + Kbfssubscription: o.Kbfssubscription, + Tracking: o.Tracking, + Favorites: o.Favorites, + Paperkeys: o.Paperkeys, + Keyfamily: o.Keyfamily, + Service: o.Service, + App: o.App, + Chat: o.Chat, + PGP: o.PGP, + Kbfsrequest: o.Kbfsrequest, + Badges: o.Badges, + Reachability: o.Reachability, + Team: o.Team, + Ephemeral: o.Ephemeral, + Teambot: o.Teambot, + Chatkbfsedits: o.Chatkbfsedits, + Chatdev: o.Chatdev, + Chatemoji: o.Chatemoji, + Chatemojicross: o.Chatemojicross, + Deviceclone: o.Deviceclone, + Chatattachments: o.Chatattachments, + Wallet: o.Wallet, + Audit: o.Audit, + Runtimestats: o.Runtimestats, + FeaturedBots: o.FeaturedBots, + Saltpack: o.Saltpack, + AllowChatNotifySkips: o.AllowChatNotifySkips, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_device_clone.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_device_clone.go index 61bfa51c..ad626031 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_device_clone.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_device_clone.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_device_clone.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_email.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_email.go index 297afae3..377f114d 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_email.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_email.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_email.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ephemeral.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ephemeral.go index f23a9fa0..fc3800f7 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ephemeral.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ephemeral.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_ephemeral.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_favorites.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_favorites.go index 5a30b97f..5b485a2a 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_favorites.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_favorites.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_favorites.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_featuredbots.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_featuredbots.go index ac43c6bf..017b841a 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_featuredbots.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_featuredbots.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_featuredbots.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs.go index aadffd81..5c5e10c3 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_fs.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs_request.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs_request.go index a5d9259f..886c1a18 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs_request.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs_request.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_fs_request.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_invite_friends.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_invite_friends.go new file mode 100644 index 00000000..60914212 --- /dev/null +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_invite_friends.go @@ -0,0 +1,4 @@ +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) +// Input file: ../client/protocol/avdl/keybase1/notify_invite_friends.avdl + +package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_keyfamily.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_keyfamily.go index 36fa67b3..b6784294 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_keyfamily.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_keyfamily.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_keyfamily.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_paperkey.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_paperkey.go index 4ea5435c..038eb907 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_paperkey.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_paperkey.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_paperkey.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_pgp.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_pgp.go index 7f8a6070..ad418b0a 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_pgp.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_pgp.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_pgp.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_phone.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_phone.go index 42c5e0f9..c42b49a3 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_phone.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_phone.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_phone.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_runtimestats.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_runtimestats.go index 99906ffa..d01dd4cd 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_runtimestats.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_runtimestats.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_runtimestats.avdl package keybase1 @@ -104,9 +104,68 @@ func (o ProcessRuntimeStats) DeepCopy() ProcessRuntimeStats { } } +type PerfEventType int + +const ( + PerfEventType_NETWORK PerfEventType = 0 + PerfEventType_TEAMBOXAUDIT PerfEventType = 1 + PerfEventType_TEAMAUDIT PerfEventType = 2 + PerfEventType_USERCHAIN PerfEventType = 3 + PerfEventType_TEAMCHAIN PerfEventType = 4 + PerfEventType_CLEARCONV PerfEventType = 5 + PerfEventType_CLEARINBOX PerfEventType = 6 + PerfEventType_TEAMTREELOAD PerfEventType = 7 +) + +func (o PerfEventType) DeepCopy() PerfEventType { return o } + +var PerfEventTypeMap = map[string]PerfEventType{ + "NETWORK": 0, + "TEAMBOXAUDIT": 1, + "TEAMAUDIT": 2, + "USERCHAIN": 3, + "TEAMCHAIN": 4, + "CLEARCONV": 5, + "CLEARINBOX": 6, + "TEAMTREELOAD": 7, +} + +var PerfEventTypeRevMap = map[PerfEventType]string{ + 0: "NETWORK", + 1: "TEAMBOXAUDIT", + 2: "TEAMAUDIT", + 3: "USERCHAIN", + 4: "TEAMCHAIN", + 5: "CLEARCONV", + 6: "CLEARINBOX", + 7: "TEAMTREELOAD", +} + +func (e PerfEventType) String() string { + if v, ok := PerfEventTypeRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type PerfEvent struct { + Message string `codec:"message" json:"message"` + Ctime Time `codec:"ctime" json:"ctime"` + EventType PerfEventType `codec:"eventType" json:"eventType"` +} + +func (o PerfEvent) DeepCopy() PerfEvent { + return PerfEvent{ + Message: o.Message, + Ctime: o.Ctime.DeepCopy(), + EventType: o.EventType.DeepCopy(), + } +} + type RuntimeStats struct { ProcessStats []ProcessRuntimeStats `codec:"processStats" json:"processStats"` DbStats []DbStats `codec:"dbStats" json:"dbStats"` + PerfEvents []PerfEvent `codec:"perfEvents" json:"perfEvents"` ConvLoaderActive bool `codec:"convLoaderActive" json:"convLoaderActive"` SelectiveSyncActive bool `codec:"selectiveSyncActive" json:"selectiveSyncActive"` } @@ -135,6 +194,17 @@ func (o RuntimeStats) DeepCopy() RuntimeStats { } return ret })(o.DbStats), + PerfEvents: (func(x []PerfEvent) []PerfEvent { + if x == nil { + return nil + } + ret := make([]PerfEvent, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.PerfEvents), ConvLoaderActive: o.ConvLoaderActive, SelectiveSyncActive: o.SelectiveSyncActive, } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_saltpack.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_saltpack.go index 8df8a8d9..f1448660 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_saltpack.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_saltpack.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_saltpack.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_service.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_service.go index e96d4ddf..478d7a52 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_service.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_service.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_service.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_session.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_session.go index 3f89041e..c701d77c 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_session.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_session.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_session.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_team.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_team.go index b90f13e4..59866f99 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_team.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_team.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_team.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_teambot.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_teambot.go index 64d8242a..49bd516a 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_teambot.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_teambot.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_teambot.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_tracking.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_tracking.go index ecb4a58a..23917346 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_tracking.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_tracking.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_tracking.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_users.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_users.go index 10aa26b9..5c16c324 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_users.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_users.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/notify_users.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/os.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/os.go index 1efd93ed..17d03699 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/os.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/os.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/os.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/paperprovision.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/paperprovision.go index eafff4e0..b6d86091 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/paperprovision.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/paperprovision.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/paperprovision.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/passphrase_common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/passphrase_common.go index 1d31f46e..083de1c9 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/passphrase_common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/passphrase_common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/passphrase_common.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp.go index c2869fa5..c8216451 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/pgp.avdl package keybase1 @@ -88,6 +88,7 @@ type PGPSigVerification struct { Verified bool `codec:"verified" json:"verified"` Signer User `codec:"signer" json:"signer"` SignKey PublicKey `codec:"signKey" json:"signKey"` + Warnings []string `codec:"warnings" json:"warnings"` } func (o PGPSigVerification) DeepCopy() PGPSigVerification { @@ -96,6 +97,17 @@ func (o PGPSigVerification) DeepCopy() PGPSigVerification { Verified: o.Verified, Signer: o.Signer.DeepCopy(), SignKey: o.SignKey.DeepCopy(), + Warnings: (func(x []string) []string { + if x == nil { + return nil + } + ret := make([]string, len(x)) + for i, v := range x { + vCopy := v + ret[i] = vCopy + } + return ret + })(o.Warnings), } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp_ui.go index 1dd3ae74..8bf27832 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/pgp_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/phone_numbers.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/phone_numbers.go index 0ac2fe45..e2cd923b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/phone_numbers.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/phone_numbers.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/phone_numbers.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pprof.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pprof.go index 3670f9ae..ffad20a3 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pprof.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pprof.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/pprof.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/process.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/process.go index 276acd63..0591ef95 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/process.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/process.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/process.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove.go index 4d5d8f5e..27bafb65 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/prove.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_common.go index b263e16e..91402e46 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/prove_common.avdl package keybase1 @@ -314,25 +314,10 @@ func (o ParamProofUsernameConfig) DeepCopy() ParamProofUsernameConfig { } } -type ParamProofLogoConfig struct { - SvgBlack string `codec:"svgBlack" json:"svg_black"` - SvgFull string `codec:"svgFull" json:"svg_full"` - SvgWhite string `codec:"svgWhite" json:"svg_white"` -} - -func (o ParamProofLogoConfig) DeepCopy() ParamProofLogoConfig { - return ParamProofLogoConfig{ - SvgBlack: o.SvgBlack, - SvgFull: o.SvgFull, - SvgWhite: o.SvgWhite, - } -} - type ParamProofServiceConfig struct { Version int `codec:"version" json:"version"` Domain string `codec:"domain" json:"domain"` DisplayName string `codec:"displayName" json:"display_name"` - Logo *ParamProofLogoConfig `codec:"logo,omitempty" json:"logo,omitempty"` Description string `codec:"description" json:"description"` UsernameConfig ParamProofUsernameConfig `codec:"usernameConfig" json:"username"` BrandColor string `codec:"brandColor" json:"brand_color"` @@ -345,16 +330,9 @@ type ParamProofServiceConfig struct { func (o ParamProofServiceConfig) DeepCopy() ParamProofServiceConfig { return ParamProofServiceConfig{ - Version: o.Version, - Domain: o.Domain, - DisplayName: o.DisplayName, - Logo: (func(x *ParamProofLogoConfig) *ParamProofLogoConfig { - if x == nil { - return nil - } - tmp := (*x).DeepCopy() - return &tmp - })(o.Logo), + Version: o.Version, + Domain: o.Domain, + DisplayName: o.DisplayName, Description: o.Description, UsernameConfig: o.UsernameConfig.DeepCopy(), BrandColor: o.BrandColor, diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_ui.go index a9dc6a3b..be2fd8d9 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/prove_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/provision_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/provision_ui.go index af88e609..62b0e16b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/provision_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/provision_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/provision_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/quota.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/quota.go index 4656fae8..f2f39022 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/quota.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/quota.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/quota.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reachability.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reachability.go index 20a8d4f2..1d5ff06a 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reachability.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reachability.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/reachability.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey.go index d5e60c42..0f7ad939 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/rekey.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey_ui.go index 83798426..5ea6fe8f 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/rekey_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reset.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reset.go index c7d28b81..f8491395 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reset.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reset.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/reset.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/revoke.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/revoke.go index 0f7faab8..234b117c 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/revoke.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/revoke.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/revoke.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack.go index 994648cd..bc916ecc 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/saltpack.avdl package keybase1 @@ -46,6 +46,7 @@ type SaltpackEncryptOptions struct { NoSelfEncrypt bool `codec:"noSelfEncrypt" json:"noSelfEncrypt"` Binary bool `codec:"binary" json:"binary"` SaltpackVersion int `codec:"saltpackVersion" json:"saltpackVersion"` + NoForcePoll bool `codec:"noForcePoll" json:"noForcePoll"` UseKBFSKeysOnlyForTesting bool `codec:"useKBFSKeysOnlyForTesting" json:"useKBFSKeysOnlyForTesting"` } @@ -80,6 +81,7 @@ func (o SaltpackEncryptOptions) DeepCopy() SaltpackEncryptOptions { NoSelfEncrypt: o.NoSelfEncrypt, Binary: o.Binary, SaltpackVersion: o.SaltpackVersion, + NoForcePoll: o.NoForcePoll, UseKBFSKeysOnlyForTesting: o.UseKBFSKeysOnlyForTesting, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack_ui.go index 39748b8e..f55be0b2 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/saltpack_ui.avdl package keybase1 @@ -54,6 +54,7 @@ func (e SaltpackSenderType) String() string { type SaltpackSender struct { Uid UID `codec:"uid" json:"uid"` Username string `codec:"username" json:"username"` + Fullname string `codec:"fullname" json:"fullname"` SenderType SaltpackSenderType `codec:"senderType" json:"senderType"` } @@ -61,6 +62,7 @@ func (o SaltpackSender) DeepCopy() SaltpackSender { return SaltpackSender{ Uid: o.Uid.DeepCopy(), Username: o.Username, + Fullname: o.Fullname, SenderType: o.SenderType.DeepCopy(), } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/scanproofs.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/scanproofs.go index 61e1140d..a1dbd027 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/scanproofs.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/scanproofs.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/scanproofs.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secret_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secret_ui.go index d48e8b48..2c67abdf 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secret_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secret_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/secret_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secretkeys.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secretkeys.go index e7aeb754..b977ab91 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secretkeys.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secretkeys.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/secretkeys.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/selfprovision.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/selfprovision.go index 3a89450a..42043ff5 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/selfprovision.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/selfprovision.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/selfprovision.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/session.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/session.go index 0c13b9e3..d094fb40 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/session.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/session.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/session.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/signup.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/signup.go index fb8fa57a..84bca35c 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/signup.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/signup.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/signup.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/sigs.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/sigs.go index 09abc8ca..10153141 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/sigs.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/sigs.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/sigs.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/simple_fs.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/simple_fs.go index 0fb77019..2d96ad0a 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/simple_fs.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/simple_fs.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/simple_fs.avdl package keybase1 @@ -744,9 +744,10 @@ func (o WriteArgs) DeepCopy() WriteArgs { } type CopyArgs struct { - OpID OpID `codec:"opID" json:"opID"` - Src Path `codec:"src" json:"src"` - Dest Path `codec:"dest" json:"dest"` + OpID OpID `codec:"opID" json:"opID"` + Src Path `codec:"src" json:"src"` + Dest Path `codec:"dest" json:"dest"` + OverwriteExistingFiles bool `codec:"overwriteExistingFiles" json:"overwriteExistingFiles"` } func (o CopyArgs) DeepCopy() CopyArgs { @@ -754,13 +755,15 @@ func (o CopyArgs) DeepCopy() CopyArgs { OpID: o.OpID.DeepCopy(), Src: o.Src.DeepCopy(), Dest: o.Dest.DeepCopy(), + OverwriteExistingFiles: o.OverwriteExistingFiles, } } type MoveArgs struct { - OpID OpID `codec:"opID" json:"opID"` - Src Path `codec:"src" json:"src"` - Dest Path `codec:"dest" json:"dest"` + OpID OpID `codec:"opID" json:"opID"` + Src Path `codec:"src" json:"src"` + Dest Path `codec:"dest" json:"dest"` + OverwriteExistingFiles bool `codec:"overwriteExistingFiles" json:"overwriteExistingFiles"` } func (o MoveArgs) DeepCopy() MoveArgs { @@ -768,6 +771,7 @@ func (o MoveArgs) DeepCopy() MoveArgs { OpID: o.OpID.DeepCopy(), Src: o.Src.DeepCopy(), Dest: o.Dest.DeepCopy(), + OverwriteExistingFiles: o.OverwriteExistingFiles, } } @@ -1286,12 +1290,14 @@ func (e KbfsOnlineStatus) String() string { type FSSettings struct { SpaceAvailableNotificationThreshold int64 `codec:"spaceAvailableNotificationThreshold" json:"spaceAvailableNotificationThreshold"` SfmiBannerDismissed bool `codec:"sfmiBannerDismissed" json:"sfmiBannerDismissed"` + SyncOnCellular bool `codec:"syncOnCellular" json:"syncOnCellular"` } func (o FSSettings) DeepCopy() FSSettings { return FSSettings{ SpaceAvailableNotificationThreshold: o.SpaceAvailableNotificationThreshold, SfmiBannerDismissed: o.SfmiBannerDismissed, + SyncOnCellular: o.SyncOnCellular, } } @@ -1351,6 +1357,7 @@ const ( SubscriptionTopic_FILES_TAB_BADGE SubscriptionTopic = 4 SubscriptionTopic_OVERALL_SYNC_STATUS SubscriptionTopic = 5 SubscriptionTopic_SETTINGS SubscriptionTopic = 6 + SubscriptionTopic_UPLOAD_STATUS SubscriptionTopic = 7 ) func (o SubscriptionTopic) DeepCopy() SubscriptionTopic { return o } @@ -1363,6 +1370,7 @@ var SubscriptionTopicMap = map[string]SubscriptionTopic{ "FILES_TAB_BADGE": 4, "OVERALL_SYNC_STATUS": 5, "SETTINGS": 6, + "UPLOAD_STATUS": 7, } var SubscriptionTopicRevMap = map[SubscriptionTopic]string{ @@ -1373,6 +1381,7 @@ var SubscriptionTopicRevMap = map[SubscriptionTopic]string{ 4: "FILES_TAB_BADGE", 5: "OVERALL_SYNC_STATUS", 6: "SETTINGS", + 7: "UPLOAD_STATUS", } func (e SubscriptionTopic) String() string { @@ -1480,6 +1489,28 @@ func (o DownloadStatus) DeepCopy() DownloadStatus { } } +type UploadState struct { + UploadID string `codec:"uploadID" json:"uploadID"` + TargetPath KBFSPath `codec:"targetPath" json:"targetPath"` + Error *string `codec:"error,omitempty" json:"error,omitempty"` + Canceled bool `codec:"canceled" json:"canceled"` +} + +func (o UploadState) DeepCopy() UploadState { + return UploadState{ + UploadID: o.UploadID, + TargetPath: o.TargetPath.DeepCopy(), + Error: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.Error), + Canceled: o.Canceled, + } +} + type FilesTabBadge int const ( @@ -1563,3 +1594,75 @@ func (o GUIFileContext) DeepCopy() GUIFileContext { Url: o.Url, } } + +type SimpleFSSearchHit struct { + Path string `codec:"path" json:"path"` +} + +func (o SimpleFSSearchHit) DeepCopy() SimpleFSSearchHit { + return SimpleFSSearchHit{ + Path: o.Path, + } +} + +type SimpleFSSearchResults struct { + Hits []SimpleFSSearchHit `codec:"hits" json:"hits"` + NextResult int `codec:"nextResult" json:"nextResult"` +} + +func (o SimpleFSSearchResults) DeepCopy() SimpleFSSearchResults { + return SimpleFSSearchResults{ + Hits: (func(x []SimpleFSSearchHit) []SimpleFSSearchHit { + if x == nil { + return nil + } + ret := make([]SimpleFSSearchHit, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Hits), + NextResult: o.NextResult, + } +} + +type IndexProgressRecord struct { + EndEstimate Time `codec:"endEstimate" json:"endEstimate"` + BytesTotal int64 `codec:"bytesTotal" json:"bytesTotal"` + BytesSoFar int64 `codec:"bytesSoFar" json:"bytesSoFar"` +} + +func (o IndexProgressRecord) DeepCopy() IndexProgressRecord { + return IndexProgressRecord{ + EndEstimate: o.EndEstimate.DeepCopy(), + BytesTotal: o.BytesTotal, + BytesSoFar: o.BytesSoFar, + } +} + +type SimpleFSIndexProgress struct { + OverallProgress IndexProgressRecord `codec:"overallProgress" json:"overallProgress"` + CurrFolder Folder `codec:"currFolder" json:"currFolder"` + CurrProgress IndexProgressRecord `codec:"currProgress" json:"currProgress"` + FoldersLeft []Folder `codec:"foldersLeft" json:"foldersLeft"` +} + +func (o SimpleFSIndexProgress) DeepCopy() SimpleFSIndexProgress { + return SimpleFSIndexProgress{ + OverallProgress: o.OverallProgress.DeepCopy(), + CurrFolder: o.CurrFolder.DeepCopy(), + CurrProgress: o.CurrProgress.DeepCopy(), + FoldersLeft: (func(x []Folder) []Folder { + if x == nil { + return nil + } + ret := make([]Folder, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.FoldersLeft), + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/stream_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/stream_ui.go index ac4f43c9..05cdfbc7 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/stream_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/stream_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/stream_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teambot.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teambot.go index e9be6638..91b5d8df 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teambot.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teambot.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/teambot.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams.go index bc2648fa..6321489f 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/teams.avdl package keybase1 @@ -283,6 +283,12 @@ func (o TeamInviteID) DeepCopy() TeamInviteID { return o } +type TeamInviteMaxUses int + +func (o TeamInviteMaxUses) DeepCopy() TeamInviteMaxUses { + return o +} + type ReaderKeyMask struct { Application TeamApplication `codec:"application" json:"application"` Generation PerTeamKeyGeneration `codec:"generation" json:"generation"` @@ -494,6 +500,7 @@ type TeamMemberDetails struct { FullName FullName `codec:"fullName" json:"fullName"` NeedsPUK bool `codec:"needsPUK" json:"needsPUK"` Status TeamMemberStatus `codec:"status" json:"status"` + JoinTime *Time `codec:"joinTime,omitempty" json:"joinTime,omitempty"` } func (o TeamMemberDetails) DeepCopy() TeamMemberDetails { @@ -503,6 +510,13 @@ func (o TeamMemberDetails) DeepCopy() TeamMemberDetails { FullName: o.FullName.DeepCopy(), NeedsPUK: o.NeedsPUK, Status: o.Status.DeepCopy(), + JoinTime: (func(x *Time) *Time { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.JoinTime), } } @@ -617,12 +631,82 @@ func (o TeamDetails) DeepCopy() TeamDetails { } } +type TeamMemberRole struct { + Uid UID `codec:"uid" json:"uid"` + Username string `codec:"username" json:"username"` + FullName FullName `codec:"fullName" json:"fullName"` + Role TeamRole `codec:"role" json:"role"` +} + +func (o TeamMemberRole) DeepCopy() TeamMemberRole { + return TeamMemberRole{ + Uid: o.Uid.DeepCopy(), + Username: o.Username, + FullName: o.FullName.DeepCopy(), + Role: o.Role.DeepCopy(), + } +} + +type UntrustedTeamInfo struct { + Name TeamName `codec:"name" json:"name"` + InTeam bool `codec:"inTeam" json:"inTeam"` + Open bool `codec:"open" json:"open"` + Description string `codec:"description" json:"description"` + PublicAdmins []string `codec:"publicAdmins" json:"publicAdmins"` + NumMembers int `codec:"numMembers" json:"numMembers"` + PublicMembers []TeamMemberRole `codec:"publicMembers" json:"publicMembers"` +} + +func (o UntrustedTeamInfo) DeepCopy() UntrustedTeamInfo { + return UntrustedTeamInfo{ + Name: o.Name.DeepCopy(), + InTeam: o.InTeam, + Open: o.Open, + Description: o.Description, + PublicAdmins: (func(x []string) []string { + if x == nil { + return nil + } + ret := make([]string, len(x)) + for i, v := range x { + vCopy := v + ret[i] = vCopy + } + return ret + })(o.PublicAdmins), + NumMembers: o.NumMembers, + PublicMembers: (func(x []TeamMemberRole) []TeamMemberRole { + if x == nil { + return nil + } + ret := make([]TeamMemberRole, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.PublicMembers), + } +} + type UserVersionPercentForm string func (o UserVersionPercentForm) DeepCopy() UserVersionPercentForm { return o } +type TeamUsedInvite struct { + InviteID TeamInviteID `codec:"inviteID" json:"inviteID"` + Uv UserVersionPercentForm `codec:"uv" json:"uv"` +} + +func (o TeamUsedInvite) DeepCopy() TeamUsedInvite { + return TeamUsedInvite{ + InviteID: o.InviteID.DeepCopy(), + Uv: o.Uv.DeepCopy(), + } +} + type TeamChangeReq struct { Owners []UserVersion `codec:"owners" json:"owners"` Admins []UserVersion `codec:"admins" json:"admins"` @@ -632,6 +716,7 @@ type TeamChangeReq struct { RestrictedBots map[UserVersion]TeamBotSettings `codec:"restrictedBots" json:"restrictedBots"` None []UserVersion `codec:"none" json:"none"` CompletedInvites map[TeamInviteID]UserVersionPercentForm `codec:"completedInvites" json:"completedInvites"` + UsedInvites []TeamUsedInvite `codec:"usedInvites" json:"usedInvites"` } func (o TeamChangeReq) DeepCopy() TeamChangeReq { @@ -726,6 +811,17 @@ func (o TeamChangeReq) DeepCopy() TeamChangeReq { } return ret })(o.CompletedInvites), + UsedInvites: (func(x []TeamUsedInvite) []TeamUsedInvite { + if x == nil { + return nil + } + ret := make([]TeamUsedInvite, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.UsedInvites), } } @@ -1384,16 +1480,18 @@ func (e AuditVersion) String() string { } type AuditHistory struct { - ID TeamID `codec:"ID" json:"ID"` - Public bool `codec:"public" json:"public"` - PriorMerkleSeqno Seqno `codec:"priorMerkleSeqno" json:"priorMerkleSeqno"` - Version AuditVersion `codec:"version" json:"version"` - Audits []Audit `codec:"audits" json:"audits"` - PreProbes map[Seqno]Probe `codec:"preProbes" json:"preProbes"` - PostProbes map[Seqno]Probe `codec:"postProbes" json:"postProbes"` - Tails map[Seqno]LinkID `codec:"tails" json:"tails"` - HiddenTails map[Seqno]LinkID `codec:"hiddenTails" json:"hiddenTails"` - SkipUntil Time `codec:"skipUntil" json:"skipUntil"` + ID TeamID `codec:"ID" json:"ID"` + Public bool `codec:"public" json:"public"` + PriorMerkleSeqno Seqno `codec:"priorMerkleSeqno" json:"priorMerkleSeqno"` + Version AuditVersion `codec:"version" json:"version"` + Audits []Audit `codec:"audits" json:"audits"` + PreProbes map[Seqno]Probe `codec:"preProbes" json:"preProbes"` + PostProbes map[Seqno]Probe `codec:"postProbes" json:"postProbes"` + Tails map[Seqno]LinkID `codec:"tails" json:"tails"` + HiddenTails map[Seqno]LinkID `codec:"hiddenTails" json:"hiddenTails"` + PreProbesToRetry []Seqno `codec:"preProbesToRetry" json:"preProbesToRetry"` + PostProbesToRetry []Seqno `codec:"postProbesToRetry" json:"postProbesToRetry"` + SkipUntil Time `codec:"skipUntil" json:"skipUntil"` } func (o AuditHistory) DeepCopy() AuditHistory { @@ -1461,6 +1559,28 @@ func (o AuditHistory) DeepCopy() AuditHistory { } return ret })(o.HiddenTails), + PreProbesToRetry: (func(x []Seqno) []Seqno { + if x == nil { + return nil + } + ret := make([]Seqno, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.PreProbesToRetry), + PostProbesToRetry: (func(x []Seqno) []Seqno { + if x == nil { + return nil + } + ret := make([]Seqno, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.PostProbesToRetry), SkipUntil: o.SkipUntil.DeepCopy(), } } @@ -1468,25 +1588,27 @@ func (o AuditHistory) DeepCopy() AuditHistory { type TeamInviteCategory int const ( - TeamInviteCategory_NONE TeamInviteCategory = 0 - TeamInviteCategory_UNKNOWN TeamInviteCategory = 1 - TeamInviteCategory_KEYBASE TeamInviteCategory = 2 - TeamInviteCategory_EMAIL TeamInviteCategory = 3 - TeamInviteCategory_SBS TeamInviteCategory = 4 - TeamInviteCategory_SEITAN TeamInviteCategory = 5 - TeamInviteCategory_PHONE TeamInviteCategory = 6 + TeamInviteCategory_NONE TeamInviteCategory = 0 + TeamInviteCategory_UNKNOWN TeamInviteCategory = 1 + TeamInviteCategory_KEYBASE TeamInviteCategory = 2 + TeamInviteCategory_EMAIL TeamInviteCategory = 3 + TeamInviteCategory_SBS TeamInviteCategory = 4 + TeamInviteCategory_SEITAN TeamInviteCategory = 5 + TeamInviteCategory_PHONE TeamInviteCategory = 6 + TeamInviteCategory_INVITELINK TeamInviteCategory = 7 ) func (o TeamInviteCategory) DeepCopy() TeamInviteCategory { return o } var TeamInviteCategoryMap = map[string]TeamInviteCategory{ - "NONE": 0, - "UNKNOWN": 1, - "KEYBASE": 2, - "EMAIL": 3, - "SBS": 4, - "SEITAN": 5, - "PHONE": 6, + "NONE": 0, + "UNKNOWN": 1, + "KEYBASE": 2, + "EMAIL": 3, + "SBS": 4, + "SEITAN": 5, + "PHONE": 6, + "INVITELINK": 7, } var TeamInviteCategoryRevMap = map[TeamInviteCategory]string{ @@ -1497,6 +1619,7 @@ var TeamInviteCategoryRevMap = map[TeamInviteCategory]string{ 4: "SBS", 5: "SEITAN", 6: "PHONE", + 7: "INVITELINK", } func (e TeamInviteCategory) String() string { @@ -1600,12 +1723,20 @@ func (o TeamInviteName) DeepCopy() TeamInviteName { return o } +type TeamInviteDisplayName string + +func (o TeamInviteDisplayName) DeepCopy() TeamInviteDisplayName { + return o +} + type TeamInvite struct { - Role TeamRole `codec:"role" json:"role"` - Id TeamInviteID `codec:"id" json:"id"` - Type TeamInviteType `codec:"type" json:"type"` - Name TeamInviteName `codec:"name" json:"name"` - Inviter UserVersion `codec:"inviter" json:"inviter"` + Role TeamRole `codec:"role" json:"role"` + Id TeamInviteID `codec:"id" json:"id"` + Type TeamInviteType `codec:"type" json:"type"` + Name TeamInviteName `codec:"name" json:"name"` + Inviter UserVersion `codec:"inviter" json:"inviter"` + MaxUses *TeamInviteMaxUses `codec:"maxUses,omitempty" json:"maxUses,omitempty"` + Etime *UnixTime `codec:"etime,omitempty" json:"etime,omitempty"` } func (o TeamInvite) DeepCopy() TeamInvite { @@ -1615,32 +1746,58 @@ func (o TeamInvite) DeepCopy() TeamInvite { Type: o.Type.DeepCopy(), Name: o.Name.DeepCopy(), Inviter: o.Inviter.DeepCopy(), + MaxUses: (func(x *TeamInviteMaxUses) *TeamInviteMaxUses { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.MaxUses), + Etime: (func(x *UnixTime) *UnixTime { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Etime), } } type AnnotatedTeamInvite struct { - Role TeamRole `codec:"role" json:"role"` - Id TeamInviteID `codec:"id" json:"id"` - Type TeamInviteType `codec:"type" json:"type"` - Name TeamInviteName `codec:"name" json:"name"` - Uv UserVersion `codec:"uv" json:"uv"` - Inviter UserVersion `codec:"inviter" json:"inviter"` - InviterUsername string `codec:"inviterUsername" json:"inviterUsername"` - TeamName string `codec:"teamName" json:"teamName"` - Status TeamMemberStatus `codec:"status" json:"status"` + InviteMetadata TeamInviteMetadata `codec:"inviteMetadata" json:"inviteMetadata"` + DisplayName TeamInviteDisplayName `codec:"displayName" json:"displayName"` + InviterUsername string `codec:"inviterUsername" json:"inviterUsername"` + InviteeUv UserVersion `codec:"inviteeUv" json:"inviteeUv"` + TeamName string `codec:"teamName" json:"teamName"` + Status *TeamMemberStatus `codec:"status,omitempty" json:"status,omitempty"` + AnnotatedUsedInvites []AnnotatedTeamUsedInviteLogPoint `codec:"annotatedUsedInvites" json:"annotatedUsedInvites"` } func (o AnnotatedTeamInvite) DeepCopy() AnnotatedTeamInvite { return AnnotatedTeamInvite{ - Role: o.Role.DeepCopy(), - Id: o.Id.DeepCopy(), - Type: o.Type.DeepCopy(), - Name: o.Name.DeepCopy(), - Uv: o.Uv.DeepCopy(), - Inviter: o.Inviter.DeepCopy(), + InviteMetadata: o.InviteMetadata.DeepCopy(), + DisplayName: o.DisplayName.DeepCopy(), InviterUsername: o.InviterUsername, + InviteeUv: o.InviteeUv.DeepCopy(), TeamName: o.TeamName, - Status: o.Status.DeepCopy(), + Status: (func(x *TeamMemberStatus) *TeamMemberStatus { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Status), + AnnotatedUsedInvites: (func(x []AnnotatedTeamUsedInviteLogPoint) []AnnotatedTeamUsedInviteLogPoint { + if x == nil { + return nil + } + ret := make([]AnnotatedTeamUsedInviteLogPoint, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.AnnotatedUsedInvites), } } @@ -1706,6 +1863,184 @@ func (o TeamLegacyTLFUpgradeChainInfo) DeepCopy() TeamLegacyTLFUpgradeChainInfo } } +type TeamSignatureMetadata struct { + SigMeta SignatureMetadata `codec:"sigMeta" json:"sigMeta"` + Uv UserVersion `codec:"uv" json:"uv"` +} + +func (o TeamSignatureMetadata) DeepCopy() TeamSignatureMetadata { + return TeamSignatureMetadata{ + SigMeta: o.SigMeta.DeepCopy(), + Uv: o.Uv.DeepCopy(), + } +} + +type TeamInviteMetadataCancel struct { + TeamSigMeta TeamSignatureMetadata `codec:"teamSigMeta" json:"teamSigMeta"` +} + +func (o TeamInviteMetadataCancel) DeepCopy() TeamInviteMetadataCancel { + return TeamInviteMetadataCancel{ + TeamSigMeta: o.TeamSigMeta.DeepCopy(), + } +} + +type TeamInviteMetadataCompleted struct { + TeamSigMeta TeamSignatureMetadata `codec:"teamSigMeta" json:"teamSigMeta"` +} + +func (o TeamInviteMetadataCompleted) DeepCopy() TeamInviteMetadataCompleted { + return TeamInviteMetadataCompleted{ + TeamSigMeta: o.TeamSigMeta.DeepCopy(), + } +} + +type TeamInviteMetadataStatusCode int + +const ( + TeamInviteMetadataStatusCode_ACTIVE TeamInviteMetadataStatusCode = 0 + TeamInviteMetadataStatusCode_OBSOLETE TeamInviteMetadataStatusCode = 1 + TeamInviteMetadataStatusCode_CANCELLED TeamInviteMetadataStatusCode = 2 + TeamInviteMetadataStatusCode_COMPLETED TeamInviteMetadataStatusCode = 3 +) + +func (o TeamInviteMetadataStatusCode) DeepCopy() TeamInviteMetadataStatusCode { return o } + +var TeamInviteMetadataStatusCodeMap = map[string]TeamInviteMetadataStatusCode{ + "ACTIVE": 0, + "OBSOLETE": 1, + "CANCELLED": 2, + "COMPLETED": 3, +} + +var TeamInviteMetadataStatusCodeRevMap = map[TeamInviteMetadataStatusCode]string{ + 0: "ACTIVE", + 1: "OBSOLETE", + 2: "CANCELLED", + 3: "COMPLETED", +} + +func (e TeamInviteMetadataStatusCode) String() string { + if v, ok := TeamInviteMetadataStatusCodeRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type TeamInviteMetadataStatus struct { + Code__ TeamInviteMetadataStatusCode `codec:"code" json:"code"` + Cancelled__ *TeamInviteMetadataCancel `codec:"cancelled,omitempty" json:"cancelled,omitempty"` + Completed__ *TeamInviteMetadataCompleted `codec:"completed,omitempty" json:"completed,omitempty"` +} + +func (o *TeamInviteMetadataStatus) Code() (ret TeamInviteMetadataStatusCode, err error) { + switch o.Code__ { + case TeamInviteMetadataStatusCode_CANCELLED: + if o.Cancelled__ == nil { + err = errors.New("unexpected nil value for Cancelled__") + return ret, err + } + case TeamInviteMetadataStatusCode_COMPLETED: + if o.Completed__ == nil { + err = errors.New("unexpected nil value for Completed__") + return ret, err + } + } + return o.Code__, nil +} + +func (o TeamInviteMetadataStatus) Cancelled() (res TeamInviteMetadataCancel) { + if o.Code__ != TeamInviteMetadataStatusCode_CANCELLED { + panic("wrong case accessed") + } + if o.Cancelled__ == nil { + return + } + return *o.Cancelled__ +} + +func (o TeamInviteMetadataStatus) Completed() (res TeamInviteMetadataCompleted) { + if o.Code__ != TeamInviteMetadataStatusCode_COMPLETED { + panic("wrong case accessed") + } + if o.Completed__ == nil { + return + } + return *o.Completed__ +} + +func NewTeamInviteMetadataStatusWithActive() TeamInviteMetadataStatus { + return TeamInviteMetadataStatus{ + Code__: TeamInviteMetadataStatusCode_ACTIVE, + } +} + +func NewTeamInviteMetadataStatusWithObsolete() TeamInviteMetadataStatus { + return TeamInviteMetadataStatus{ + Code__: TeamInviteMetadataStatusCode_OBSOLETE, + } +} + +func NewTeamInviteMetadataStatusWithCancelled(v TeamInviteMetadataCancel) TeamInviteMetadataStatus { + return TeamInviteMetadataStatus{ + Code__: TeamInviteMetadataStatusCode_CANCELLED, + Cancelled__: &v, + } +} + +func NewTeamInviteMetadataStatusWithCompleted(v TeamInviteMetadataCompleted) TeamInviteMetadataStatus { + return TeamInviteMetadataStatus{ + Code__: TeamInviteMetadataStatusCode_COMPLETED, + Completed__: &v, + } +} + +func (o TeamInviteMetadataStatus) DeepCopy() TeamInviteMetadataStatus { + return TeamInviteMetadataStatus{ + Code__: o.Code__.DeepCopy(), + Cancelled__: (func(x *TeamInviteMetadataCancel) *TeamInviteMetadataCancel { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Cancelled__), + Completed__: (func(x *TeamInviteMetadataCompleted) *TeamInviteMetadataCompleted { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Completed__), + } +} + +type TeamInviteMetadata struct { + Invite TeamInvite `codec:"invite" json:"invite"` + TeamSigMeta TeamSignatureMetadata `codec:"teamSigMeta" json:"teamSigMeta"` + Status TeamInviteMetadataStatus `codec:"status" json:"status"` + UsedInvites []TeamUsedInviteLogPoint `codec:"usedInvites" json:"usedInvites"` +} + +func (o TeamInviteMetadata) DeepCopy() TeamInviteMetadata { + return TeamInviteMetadata{ + Invite: o.Invite.DeepCopy(), + TeamSigMeta: o.TeamSigMeta.DeepCopy(), + Status: o.Status.DeepCopy(), + UsedInvites: (func(x []TeamUsedInviteLogPoint) []TeamUsedInviteLogPoint { + if x == nil { + return nil + } + ret := make([]TeamUsedInviteLogPoint, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.UsedInvites), + } +} + type TeamSigChainState struct { Reader UserVersion `codec:"reader" json:"reader"` Id TeamID `codec:"id" json:"id"` @@ -1726,8 +2061,7 @@ type TeamSigChainState struct { PerTeamKeyCTime UnixTime `codec:"perTeamKeyCTime" json:"perTeamKeyCTime"` LinkIDs map[Seqno]LinkID `codec:"linkIDs" json:"linkIDs"` StubbedLinks map[Seqno]bool `codec:"stubbedLinks" json:"stubbedLinks"` - ActiveInvites map[TeamInviteID]TeamInvite `codec:"activeInvites" json:"activeInvites"` - ObsoleteInvites map[TeamInviteID]TeamInvite `codec:"obsoleteInvites" json:"obsoleteInvites"` + InviteMetadatas map[TeamInviteID]TeamInviteMetadata `codec:"inviteMetadatas" json:"inviteMetadatas"` Open bool `codec:"open" json:"open"` OpenTeamJoinAs TeamRole `codec:"openTeamJoinAs" json:"openTeamJoinAs"` Bots map[UserVersion]TeamBotSettings `codec:"bots" json:"bots"` @@ -1849,30 +2183,18 @@ func (o TeamSigChainState) DeepCopy() TeamSigChainState { } return ret })(o.StubbedLinks), - ActiveInvites: (func(x map[TeamInviteID]TeamInvite) map[TeamInviteID]TeamInvite { - if x == nil { - return nil - } - ret := make(map[TeamInviteID]TeamInvite, len(x)) - for k, v := range x { - kCopy := k.DeepCopy() - vCopy := v.DeepCopy() - ret[kCopy] = vCopy - } - return ret - })(o.ActiveInvites), - ObsoleteInvites: (func(x map[TeamInviteID]TeamInvite) map[TeamInviteID]TeamInvite { + InviteMetadatas: (func(x map[TeamInviteID]TeamInviteMetadata) map[TeamInviteID]TeamInviteMetadata { if x == nil { return nil } - ret := make(map[TeamInviteID]TeamInvite, len(x)) + ret := make(map[TeamInviteID]TeamInviteMetadata, len(x)) for k, v := range x { kCopy := k.DeepCopy() vCopy := v.DeepCopy() ret[kCopy] = vCopy } return ret - })(o.ObsoleteInvites), + })(o.InviteMetadatas), Open: o.Open, OpenTeamJoinAs: o.OpenTeamJoinAs.DeepCopy(), Bots: (func(x map[UserVersion]TeamBotSettings) map[UserVersion]TeamBotSettings { @@ -1962,6 +2284,30 @@ func (o UserLogPoint) DeepCopy() UserLogPoint { } } +type AnnotatedTeamUsedInviteLogPoint struct { + Username string `codec:"username" json:"username"` + TeamUsedInviteLogPoint TeamUsedInviteLogPoint `codec:"teamUsedInviteLogPoint" json:"teamUsedInviteLogPoint"` +} + +func (o AnnotatedTeamUsedInviteLogPoint) DeepCopy() AnnotatedTeamUsedInviteLogPoint { + return AnnotatedTeamUsedInviteLogPoint{ + Username: o.Username, + TeamUsedInviteLogPoint: o.TeamUsedInviteLogPoint.DeepCopy(), + } +} + +type TeamUsedInviteLogPoint struct { + Uv UserVersion `codec:"uv" json:"uv"` + LogPoint int `codec:"logPoint" json:"logPoint"` +} + +func (o TeamUsedInviteLogPoint) DeepCopy() TeamUsedInviteLogPoint { + return TeamUsedInviteLogPoint{ + Uv: o.Uv.DeepCopy(), + LogPoint: o.LogPoint, + } +} + type SubteamLogPoint struct { Name TeamName `codec:"name" json:"name"` Seqno Seqno `codec:"seqno" json:"seqno"` @@ -2077,7 +2423,7 @@ type TeamChangeRow struct { MembershipChanged bool `codec:"membershipChanged" json:"membership_changed"` LatestSeqno Seqno `codec:"latestSeqno" json:"latest_seqno"` LatestHiddenSeqno Seqno `codec:"latestHiddenSeqno" json:"latest_hidden_seqno"` - LatestOffchainSeqno Seqno `codec:"latestOffchainSeqno" json:"latest_offchain_seqno"` + LatestOffchainSeqno Seqno `codec:"latestOffchainSeqno" json:"latest_offchain_version"` ImplicitTeam bool `codec:"implicitTeam" json:"implicit_team"` Misc bool `codec:"misc" json:"misc"` RemovedResetUsers bool `codec:"removedResetUsers" json:"removed_reset_users"` @@ -2206,6 +2552,12 @@ func (o SeitanIKey) DeepCopy() SeitanIKey { return o } +type SeitanIKeyInvitelink string + +func (o SeitanIKeyInvitelink) DeepCopy() SeitanIKeyInvitelink { + return o +} + type SeitanPubKey string func (o SeitanPubKey) DeepCopy() SeitanPubKey { @@ -2221,20 +2573,23 @@ func (o SeitanIKeyV2) DeepCopy() SeitanIKeyV2 { type SeitanKeyAndLabelVersion int const ( - SeitanKeyAndLabelVersion_V1 SeitanKeyAndLabelVersion = 1 - SeitanKeyAndLabelVersion_V2 SeitanKeyAndLabelVersion = 2 + SeitanKeyAndLabelVersion_V1 SeitanKeyAndLabelVersion = 1 + SeitanKeyAndLabelVersion_V2 SeitanKeyAndLabelVersion = 2 + SeitanKeyAndLabelVersion_Invitelink SeitanKeyAndLabelVersion = 3 ) func (o SeitanKeyAndLabelVersion) DeepCopy() SeitanKeyAndLabelVersion { return o } var SeitanKeyAndLabelVersionMap = map[string]SeitanKeyAndLabelVersion{ - "V1": 1, - "V2": 2, + "V1": 1, + "V2": 2, + "Invitelink": 3, } var SeitanKeyAndLabelVersionRevMap = map[SeitanKeyAndLabelVersion]string{ 1: "V1", 2: "V2", + 3: "Invitelink", } func (e SeitanKeyAndLabelVersion) String() string { @@ -2245,9 +2600,10 @@ func (e SeitanKeyAndLabelVersion) String() string { } type SeitanKeyAndLabel struct { - V__ SeitanKeyAndLabelVersion `codec:"v" json:"v"` - V1__ *SeitanKeyAndLabelVersion1 `codec:"v1,omitempty" json:"v1,omitempty"` - V2__ *SeitanKeyAndLabelVersion2 `codec:"v2,omitempty" json:"v2,omitempty"` + V__ SeitanKeyAndLabelVersion `codec:"v" json:"v"` + V1__ *SeitanKeyAndLabelVersion1 `codec:"v1,omitempty" json:"v1,omitempty"` + V2__ *SeitanKeyAndLabelVersion2 `codec:"v2,omitempty" json:"v2,omitempty"` + Invitelink__ *SeitanKeyAndLabelInvitelink `codec:"invitelink,omitempty" json:"invitelink,omitempty"` } func (o *SeitanKeyAndLabel) V() (ret SeitanKeyAndLabelVersion, err error) { @@ -2262,6 +2618,11 @@ func (o *SeitanKeyAndLabel) V() (ret SeitanKeyAndLabelVersion, err error) { err = errors.New("unexpected nil value for V2__") return ret, err } + case SeitanKeyAndLabelVersion_Invitelink: + if o.Invitelink__ == nil { + err = errors.New("unexpected nil value for Invitelink__") + return ret, err + } } return o.V__, nil } @@ -2286,6 +2647,16 @@ func (o SeitanKeyAndLabel) V2() (res SeitanKeyAndLabelVersion2) { return *o.V2__ } +func (o SeitanKeyAndLabel) Invitelink() (res SeitanKeyAndLabelInvitelink) { + if o.V__ != SeitanKeyAndLabelVersion_Invitelink { + panic("wrong case accessed") + } + if o.Invitelink__ == nil { + return + } + return *o.Invitelink__ +} + func NewSeitanKeyAndLabelWithV1(v SeitanKeyAndLabelVersion1) SeitanKeyAndLabel { return SeitanKeyAndLabel{ V__: SeitanKeyAndLabelVersion_V1, @@ -2300,6 +2671,13 @@ func NewSeitanKeyAndLabelWithV2(v SeitanKeyAndLabelVersion2) SeitanKeyAndLabel { } } +func NewSeitanKeyAndLabelWithInvitelink(v SeitanKeyAndLabelInvitelink) SeitanKeyAndLabel { + return SeitanKeyAndLabel{ + V__: SeitanKeyAndLabelVersion_Invitelink, + Invitelink__: &v, + } +} + func NewSeitanKeyAndLabelDefault(v SeitanKeyAndLabelVersion) SeitanKeyAndLabel { return SeitanKeyAndLabel{ V__: v, @@ -2323,6 +2701,13 @@ func (o SeitanKeyAndLabel) DeepCopy() SeitanKeyAndLabel { tmp := (*x).DeepCopy() return &tmp })(o.V2__), + Invitelink__: (func(x *SeitanKeyAndLabelInvitelink) *SeitanKeyAndLabelInvitelink { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Invitelink__), } } @@ -2350,20 +2735,35 @@ func (o SeitanKeyAndLabelVersion2) DeepCopy() SeitanKeyAndLabelVersion2 { } } +type SeitanKeyAndLabelInvitelink struct { + I SeitanIKeyInvitelink `codec:"i" json:"i"` + L SeitanKeyLabel `codec:"l" json:"l"` +} + +func (o SeitanKeyAndLabelInvitelink) DeepCopy() SeitanKeyAndLabelInvitelink { + return SeitanKeyAndLabelInvitelink{ + I: o.I.DeepCopy(), + L: o.L.DeepCopy(), + } +} + type SeitanKeyLabelType int const ( - SeitanKeyLabelType_SMS SeitanKeyLabelType = 1 + SeitanKeyLabelType_SMS SeitanKeyLabelType = 1 + SeitanKeyLabelType_GENERIC SeitanKeyLabelType = 2 ) func (o SeitanKeyLabelType) DeepCopy() SeitanKeyLabelType { return o } var SeitanKeyLabelTypeMap = map[string]SeitanKeyLabelType{ - "SMS": 1, + "SMS": 1, + "GENERIC": 2, } var SeitanKeyLabelTypeRevMap = map[SeitanKeyLabelType]string{ 1: "SMS", + 2: "GENERIC", } func (e SeitanKeyLabelType) String() string { @@ -2374,8 +2774,9 @@ func (e SeitanKeyLabelType) String() string { } type SeitanKeyLabel struct { - T__ SeitanKeyLabelType `codec:"t" json:"t"` - Sms__ *SeitanKeyLabelSms `codec:"sms,omitempty" json:"sms,omitempty"` + T__ SeitanKeyLabelType `codec:"t" json:"t"` + Sms__ *SeitanKeyLabelSms `codec:"sms,omitempty" json:"sms,omitempty"` + Generic__ *SeitanKeyLabelGeneric `codec:"generic,omitempty" json:"generic,omitempty"` } func (o *SeitanKeyLabel) T() (ret SeitanKeyLabelType, err error) { @@ -2385,6 +2786,11 @@ func (o *SeitanKeyLabel) T() (ret SeitanKeyLabelType, err error) { err = errors.New("unexpected nil value for Sms__") return ret, err } + case SeitanKeyLabelType_GENERIC: + if o.Generic__ == nil { + err = errors.New("unexpected nil value for Generic__") + return ret, err + } } return o.T__, nil } @@ -2399,6 +2805,16 @@ func (o SeitanKeyLabel) Sms() (res SeitanKeyLabelSms) { return *o.Sms__ } +func (o SeitanKeyLabel) Generic() (res SeitanKeyLabelGeneric) { + if o.T__ != SeitanKeyLabelType_GENERIC { + panic("wrong case accessed") + } + if o.Generic__ == nil { + return + } + return *o.Generic__ +} + func NewSeitanKeyLabelWithSms(v SeitanKeyLabelSms) SeitanKeyLabel { return SeitanKeyLabel{ T__: SeitanKeyLabelType_SMS, @@ -2406,6 +2822,13 @@ func NewSeitanKeyLabelWithSms(v SeitanKeyLabelSms) SeitanKeyLabel { } } +func NewSeitanKeyLabelWithGeneric(v SeitanKeyLabelGeneric) SeitanKeyLabel { + return SeitanKeyLabel{ + T__: SeitanKeyLabelType_GENERIC, + Generic__: &v, + } +} + func NewSeitanKeyLabelDefault(t SeitanKeyLabelType) SeitanKeyLabel { return SeitanKeyLabel{ T__: t, @@ -2422,6 +2845,13 @@ func (o SeitanKeyLabel) DeepCopy() SeitanKeyLabel { tmp := (*x).DeepCopy() return &tmp })(o.Sms__), + Generic__: (func(x *SeitanKeyLabelGeneric) *SeitanKeyLabelGeneric { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Generic__), } } @@ -2437,6 +2867,16 @@ func (o SeitanKeyLabelSms) DeepCopy() SeitanKeyLabelSms { } } +type SeitanKeyLabelGeneric struct { + L string `codec:"l" json:"l"` +} + +func (o SeitanKeyLabelGeneric) DeepCopy() SeitanKeyLabelGeneric { + return SeitanKeyLabelGeneric{ + L: o.L, + } +} + type TeamSeitanRequest struct { InviteID TeamInviteID `codec:"inviteID" json:"invite_id"` Uid UID `codec:"uid" json:"uid"` @@ -2877,14 +3317,18 @@ func (o TeamAddMembersResult) DeepCopy() TeamAddMembersResult { } type TeamJoinRequest struct { - Name string `codec:"name" json:"name"` - Username string `codec:"username" json:"username"` + Name string `codec:"name" json:"name"` + Username string `codec:"username" json:"username"` + FullName FullName `codec:"fullName" json:"fullName"` + Ctime UnixTime `codec:"ctime" json:"ctime"` } func (o TeamJoinRequest) DeepCopy() TeamJoinRequest { return TeamJoinRequest{ Name: o.Name, Username: o.Username, + FullName: o.FullName.DeepCopy(), + Ctime: o.Ctime.DeepCopy(), } } @@ -3082,16 +3526,104 @@ func (o TeamAndMemberShowcase) DeepCopy() TeamAndMemberShowcase { } } +type TeamAvatar struct { + AvatarFilename string `codec:"avatarFilename" json:"avatarFilename"` + Crop *ImageCropRect `codec:"crop,omitempty" json:"crop,omitempty"` +} + +func (o TeamAvatar) DeepCopy() TeamAvatar { + return TeamAvatar{ + AvatarFilename: o.AvatarFilename, + Crop: (func(x *ImageCropRect) *ImageCropRect { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Crop), + } +} + +type TeamCreateFancyInfo struct { + Name string `codec:"name" json:"name"` + Description string `codec:"description" json:"description"` + JoinSubteam bool `codec:"joinSubteam" json:"joinSubteam"` + OpenSettings TeamSettings `codec:"openSettings" json:"openSettings"` + Showcase bool `codec:"showcase" json:"showcase"` + Avatar *TeamAvatar `codec:"avatar,omitempty" json:"avatar,omitempty"` + ChatChannels []string `codec:"chatChannels" json:"chatChannels"` + Subteams []string `codec:"subteams" json:"subteams"` + Users []UserRolePair `codec:"users" json:"users"` + EmailInviteMessage *string `codec:"emailInviteMessage,omitempty" json:"emailInviteMessage,omitempty"` +} + +func (o TeamCreateFancyInfo) DeepCopy() TeamCreateFancyInfo { + return TeamCreateFancyInfo{ + Name: o.Name, + Description: o.Description, + JoinSubteam: o.JoinSubteam, + OpenSettings: o.OpenSettings.DeepCopy(), + Showcase: o.Showcase, + Avatar: (func(x *TeamAvatar) *TeamAvatar { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Avatar), + ChatChannels: (func(x []string) []string { + if x == nil { + return nil + } + ret := make([]string, len(x)) + for i, v := range x { + vCopy := v + ret[i] = vCopy + } + return ret + })(o.ChatChannels), + Subteams: (func(x []string) []string { + if x == nil { + return nil + } + ret := make([]string, len(x)) + for i, v := range x { + vCopy := v + ret[i] = vCopy + } + return ret + })(o.Subteams), + Users: (func(x []UserRolePair) []UserRolePair { + if x == nil { + return nil + } + ret := make([]UserRolePair, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Users), + EmailInviteMessage: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.EmailInviteMessage), + } +} + type UserRolePair struct { - AssertionOrEmail string `codec:"assertionOrEmail" json:"assertionOrEmail"` - Role TeamRole `codec:"role" json:"role"` - BotSettings *TeamBotSettings `codec:"botSettings,omitempty" json:"botSettings,omitempty"` + Assertion string `codec:"assertion" json:"assertion"` + Role TeamRole `codec:"role" json:"role"` + BotSettings *TeamBotSettings `codec:"botSettings,omitempty" json:"botSettings,omitempty"` } func (o UserRolePair) DeepCopy() UserRolePair { return UserRolePair{ - AssertionOrEmail: o.AssertionOrEmail, - Role: o.Role.DeepCopy(), + Assertion: o.Assertion, + Role: o.Role.DeepCopy(), BotSettings: (func(x *TeamBotSettings) *TeamBotSettings { if x == nil { return nil @@ -3102,36 +3634,226 @@ func (o UserRolePair) DeepCopy() UserRolePair { } } -type BulkRes struct { - Invited []string `codec:"invited" json:"invited"` - AlreadyInvited []string `codec:"alreadyInvited" json:"alreadyInvited"` - Malformed []string `codec:"malformed" json:"malformed"` +type AssertionTeamMemberToRemove struct { + Assertion string `codec:"assertion" json:"assertion"` + RemoveFromSubtree bool `codec:"removeFromSubtree" json:"removeFromSubtree"` } -func (o BulkRes) DeepCopy() BulkRes { - return BulkRes{ - Invited: (func(x []string) []string { +func (o AssertionTeamMemberToRemove) DeepCopy() AssertionTeamMemberToRemove { + return AssertionTeamMemberToRemove{ + Assertion: o.Assertion, + RemoveFromSubtree: o.RemoveFromSubtree, + } +} + +type InviteTeamMemberToRemove struct { + InviteID TeamInviteID `codec:"inviteID" json:"inviteID"` +} + +func (o InviteTeamMemberToRemove) DeepCopy() InviteTeamMemberToRemove { + return InviteTeamMemberToRemove{ + InviteID: o.InviteID.DeepCopy(), + } +} + +type TeamMemberToRemoveType int + +const ( + TeamMemberToRemoveType_ASSERTION TeamMemberToRemoveType = 0 + TeamMemberToRemoveType_INVITEID TeamMemberToRemoveType = 1 +) + +func (o TeamMemberToRemoveType) DeepCopy() TeamMemberToRemoveType { return o } + +var TeamMemberToRemoveTypeMap = map[string]TeamMemberToRemoveType{ + "ASSERTION": 0, + "INVITEID": 1, +} + +var TeamMemberToRemoveTypeRevMap = map[TeamMemberToRemoveType]string{ + 0: "ASSERTION", + 1: "INVITEID", +} + +func (e TeamMemberToRemoveType) String() string { + if v, ok := TeamMemberToRemoveTypeRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type TeamMemberToRemove struct { + Type__ TeamMemberToRemoveType `codec:"type" json:"type"` + Assertion__ *AssertionTeamMemberToRemove `codec:"assertion,omitempty" json:"assertion,omitempty"` + Inviteid__ *InviteTeamMemberToRemove `codec:"inviteid,omitempty" json:"inviteid,omitempty"` +} + +func (o *TeamMemberToRemove) Type() (ret TeamMemberToRemoveType, err error) { + switch o.Type__ { + case TeamMemberToRemoveType_ASSERTION: + if o.Assertion__ == nil { + err = errors.New("unexpected nil value for Assertion__") + return ret, err + } + case TeamMemberToRemoveType_INVITEID: + if o.Inviteid__ == nil { + err = errors.New("unexpected nil value for Inviteid__") + return ret, err + } + } + return o.Type__, nil +} + +func (o TeamMemberToRemove) Assertion() (res AssertionTeamMemberToRemove) { + if o.Type__ != TeamMemberToRemoveType_ASSERTION { + panic("wrong case accessed") + } + if o.Assertion__ == nil { + return + } + return *o.Assertion__ +} + +func (o TeamMemberToRemove) Inviteid() (res InviteTeamMemberToRemove) { + if o.Type__ != TeamMemberToRemoveType_INVITEID { + panic("wrong case accessed") + } + if o.Inviteid__ == nil { + return + } + return *o.Inviteid__ +} + +func NewTeamMemberToRemoveWithAssertion(v AssertionTeamMemberToRemove) TeamMemberToRemove { + return TeamMemberToRemove{ + Type__: TeamMemberToRemoveType_ASSERTION, + Assertion__: &v, + } +} + +func NewTeamMemberToRemoveWithInviteid(v InviteTeamMemberToRemove) TeamMemberToRemove { + return TeamMemberToRemove{ + Type__: TeamMemberToRemoveType_INVITEID, + Inviteid__: &v, + } +} + +func (o TeamMemberToRemove) DeepCopy() TeamMemberToRemove { + return TeamMemberToRemove{ + Type__: o.Type__.DeepCopy(), + Assertion__: (func(x *AssertionTeamMemberToRemove) *AssertionTeamMemberToRemove { if x == nil { return nil } - ret := make([]string, len(x)) + tmp := (*x).DeepCopy() + return &tmp + })(o.Assertion__), + Inviteid__: (func(x *InviteTeamMemberToRemove) *InviteTeamMemberToRemove { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Inviteid__), + } +} + +type RemoveTeamMemberFailure struct { + TeamMember TeamMemberToRemove `codec:"teamMember" json:"teamMember"` + ErrorAtTarget *string `codec:"errorAtTarget,omitempty" json:"errorAtTarget,omitempty"` + ErrorAtSubtree *string `codec:"errorAtSubtree,omitempty" json:"errorAtSubtree,omitempty"` +} + +func (o RemoveTeamMemberFailure) DeepCopy() RemoveTeamMemberFailure { + return RemoveTeamMemberFailure{ + TeamMember: o.TeamMember.DeepCopy(), + ErrorAtTarget: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.ErrorAtTarget), + ErrorAtSubtree: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.ErrorAtSubtree), + } +} + +type TeamRemoveMembersResult struct { + Failures []RemoveTeamMemberFailure `codec:"failures" json:"failures"` +} + +func (o TeamRemoveMembersResult) DeepCopy() TeamRemoveMembersResult { + return TeamRemoveMembersResult{ + Failures: (func(x []RemoveTeamMemberFailure) []RemoveTeamMemberFailure { + if x == nil { + return nil + } + ret := make([]RemoveTeamMemberFailure, len(x)) for i, v := range x { - vCopy := v + vCopy := v.DeepCopy() ret[i] = vCopy } return ret - })(o.Invited), - AlreadyInvited: (func(x []string) []string { + })(o.Failures), + } +} + +type TeamEditMembersResult struct { + Failures []UserRolePair `codec:"failures" json:"failures"` +} + +func (o TeamEditMembersResult) DeepCopy() TeamEditMembersResult { + return TeamEditMembersResult{ + Failures: (func(x []UserRolePair) []UserRolePair { if x == nil { return nil } - ret := make([]string, len(x)) + ret := make([]UserRolePair, len(x)) for i, v := range x { - vCopy := v + vCopy := v.DeepCopy() ret[i] = vCopy } return ret - })(o.AlreadyInvited), + })(o.Failures), + } +} + +type UntrustedTeamExistsResult struct { + Exists bool `codec:"exists" json:"exists"` + Status StatusCode `codec:"status" json:"status"` +} + +func (o UntrustedTeamExistsResult) DeepCopy() UntrustedTeamExistsResult { + return UntrustedTeamExistsResult{ + Exists: o.Exists, + Status: o.Status.DeepCopy(), + } +} + +type Invitelink struct { + Ikey SeitanIKeyInvitelink `codec:"ikey" json:"ikey"` + Url string `codec:"url" json:"url"` +} + +func (o Invitelink) DeepCopy() Invitelink { + return Invitelink{ + Ikey: o.Ikey.DeepCopy(), + Url: o.Url, + } +} + +type BulkRes struct { + Malformed []string `codec:"malformed" json:"malformed"` +} + +func (o BulkRes) DeepCopy() BulkRes { + return BulkRes{ Malformed: (func(x []string) []string { if x == nil { return nil @@ -3146,6 +3868,47 @@ func (o BulkRes) DeepCopy() BulkRes { } } +type InviteLinkDetails struct { + InviteID TeamInviteID `codec:"inviteID" json:"inviteID"` + InviterResetOrDel bool `codec:"inviterResetOrDel" json:"inviterResetOrDel"` + InviterUID UID `codec:"inviterUID" json:"inviterUID"` + InviterUsername string `codec:"inviterUsername" json:"inviterUsername"` + IsMember bool `codec:"isMember" json:"isMember"` + TeamAvatars map[AvatarFormat]AvatarUrl `codec:"teamAvatars" json:"teamAvatars"` + TeamDesc string `codec:"teamDesc" json:"teamDesc"` + TeamID TeamID `codec:"teamID" json:"teamID"` + TeamIsOpen bool `codec:"teamIsOpen" json:"teamIsOpen"` + TeamName TeamName `codec:"teamName" json:"teamName"` + TeamNumMembers int `codec:"teamNumMembers" json:"teamNumMembers"` +} + +func (o InviteLinkDetails) DeepCopy() InviteLinkDetails { + return InviteLinkDetails{ + InviteID: o.InviteID.DeepCopy(), + InviterResetOrDel: o.InviterResetOrDel, + InviterUID: o.InviterUID.DeepCopy(), + InviterUsername: o.InviterUsername, + IsMember: o.IsMember, + TeamAvatars: (func(x map[AvatarFormat]AvatarUrl) map[AvatarFormat]AvatarUrl { + if x == nil { + return nil + } + ret := make(map[AvatarFormat]AvatarUrl, len(x)) + for k, v := range x { + kCopy := k.DeepCopy() + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.TeamAvatars), + TeamDesc: o.TeamDesc, + TeamID: o.TeamID.DeepCopy(), + TeamIsOpen: o.TeamIsOpen, + TeamName: o.TeamName.DeepCopy(), + TeamNumMembers: o.TeamNumMembers, + } +} + type ImplicitTeamUserSet struct { KeybaseUsers []string `codec:"keybaseUsers" json:"keybaseUsers"` UnresolvedUsers []SocialAssertion `codec:"unresolvedUsers" json:"unresolvedUsers"` @@ -3256,10 +4019,12 @@ type TeamOperation struct { ListFirst bool `codec:"listFirst" json:"listFirst"` ChangeTarsDisabled bool `codec:"changeTarsDisabled" json:"changeTarsDisabled"` DeleteChatHistory bool `codec:"deleteChatHistory" json:"deleteChatHistory"` + DeleteOtherEmojis bool `codec:"deleteOtherEmojis" json:"deleteOtherEmojis"` DeleteOtherMessages bool `codec:"deleteOtherMessages" json:"deleteOtherMessages"` DeleteTeam bool `codec:"deleteTeam" json:"deleteTeam"` PinMessage bool `codec:"pinMessage" json:"pinMessage"` ManageBots bool `codec:"manageBots" json:"manageBots"` + ManageEmojis bool `codec:"manageEmojis" json:"manageEmojis"` } func (o TeamOperation) DeepCopy() TeamOperation { @@ -3284,10 +4049,12 @@ func (o TeamOperation) DeepCopy() TeamOperation { ListFirst: o.ListFirst, ChangeTarsDisabled: o.ChangeTarsDisabled, DeleteChatHistory: o.DeleteChatHistory, + DeleteOtherEmojis: o.DeleteOtherEmojis, DeleteOtherMessages: o.DeleteOtherMessages, DeleteTeam: o.DeleteTeam, PinMessage: o.PinMessage, ManageBots: o.ManageBots, + ManageEmojis: o.ManageEmojis, } } @@ -3462,7 +4229,6 @@ type AnnotatedTeam struct { Members []AnnotatedTeamMemberDetails `codec:"members" json:"members"` Invites []AnnotatedTeamInvite `codec:"invites" json:"invites"` JoinRequests []TeamJoinRequest `codec:"joinRequests" json:"joinRequests"` - UserIsShowcasing bool `codec:"userIsShowcasing" json:"userIsShowcasing"` TarsDisabled bool `codec:"tarsDisabled" json:"tarsDisabled"` Settings TeamSettings `codec:"settings" json:"settings"` Showcase TeamShowcase `codec:"showcase" json:"showcase"` @@ -3470,8 +4236,8 @@ type AnnotatedTeam struct { func (o AnnotatedTeam) DeepCopy() AnnotatedTeam { return AnnotatedTeam{ - TeamID: o.TeamID.DeepCopy(), - Name: o.Name, + TeamID: o.TeamID.DeepCopy(), + Name: o.Name, TransitiveSubteamsUnverified: o.TransitiveSubteamsUnverified.DeepCopy(), Members: (func(x []AnnotatedTeamMemberDetails) []AnnotatedTeamMemberDetails { if x == nil { @@ -3506,9 +4272,197 @@ func (o AnnotatedTeam) DeepCopy() AnnotatedTeam { } return ret })(o.JoinRequests), - UserIsShowcasing: o.UserIsShowcasing, - TarsDisabled: o.TarsDisabled, - Settings: o.Settings.DeepCopy(), - Showcase: o.Showcase.DeepCopy(), + TarsDisabled: o.TarsDisabled, + Settings: o.Settings.DeepCopy(), + Showcase: o.Showcase.DeepCopy(), + } +} + +type TeamTreeMembershipValue struct { + Role TeamRole `codec:"role" json:"role"` + JoinTime *Time `codec:"joinTime,omitempty" json:"joinTime,omitempty"` + TeamID TeamID `codec:"teamID" json:"teamID"` +} + +func (o TeamTreeMembershipValue) DeepCopy() TeamTreeMembershipValue { + return TeamTreeMembershipValue{ + Role: o.Role.DeepCopy(), + JoinTime: (func(x *Time) *Time { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.JoinTime), + TeamID: o.TeamID.DeepCopy(), + } +} + +type TeamTreeMembershipStatus int + +const ( + TeamTreeMembershipStatus_OK TeamTreeMembershipStatus = 0 + TeamTreeMembershipStatus_ERROR TeamTreeMembershipStatus = 1 + TeamTreeMembershipStatus_HIDDEN TeamTreeMembershipStatus = 2 +) + +func (o TeamTreeMembershipStatus) DeepCopy() TeamTreeMembershipStatus { return o } + +var TeamTreeMembershipStatusMap = map[string]TeamTreeMembershipStatus{ + "OK": 0, + "ERROR": 1, + "HIDDEN": 2, +} + +var TeamTreeMembershipStatusRevMap = map[TeamTreeMembershipStatus]string{ + 0: "OK", + 1: "ERROR", + 2: "HIDDEN", +} + +func (e TeamTreeMembershipStatus) String() string { + if v, ok := TeamTreeMembershipStatusRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type TeamTreeError struct { + Message string `codec:"message" json:"message"` + WillSkipSubtree bool `codec:"willSkipSubtree" json:"willSkipSubtree"` + WillSkipAncestors bool `codec:"willSkipAncestors" json:"willSkipAncestors"` +} + +func (o TeamTreeError) DeepCopy() TeamTreeError { + return TeamTreeError{ + Message: o.Message, + WillSkipSubtree: o.WillSkipSubtree, + WillSkipAncestors: o.WillSkipAncestors, + } +} + +type TeamTreeMembershipResult struct { + S__ TeamTreeMembershipStatus `codec:"s" json:"s"` + Ok__ *TeamTreeMembershipValue `codec:"ok,omitempty" json:"ok,omitempty"` + Error__ *TeamTreeError `codec:"error,omitempty" json:"error,omitempty"` +} + +func (o *TeamTreeMembershipResult) S() (ret TeamTreeMembershipStatus, err error) { + switch o.S__ { + case TeamTreeMembershipStatus_OK: + if o.Ok__ == nil { + err = errors.New("unexpected nil value for Ok__") + return ret, err + } + case TeamTreeMembershipStatus_ERROR: + if o.Error__ == nil { + err = errors.New("unexpected nil value for Error__") + return ret, err + } + } + return o.S__, nil +} + +func (o TeamTreeMembershipResult) Ok() (res TeamTreeMembershipValue) { + if o.S__ != TeamTreeMembershipStatus_OK { + panic("wrong case accessed") + } + if o.Ok__ == nil { + return + } + return *o.Ok__ +} + +func (o TeamTreeMembershipResult) Error() (res TeamTreeError) { + if o.S__ != TeamTreeMembershipStatus_ERROR { + panic("wrong case accessed") + } + if o.Error__ == nil { + return + } + return *o.Error__ +} + +func NewTeamTreeMembershipResultWithOk(v TeamTreeMembershipValue) TeamTreeMembershipResult { + return TeamTreeMembershipResult{ + S__: TeamTreeMembershipStatus_OK, + Ok__: &v, + } +} + +func NewTeamTreeMembershipResultWithError(v TeamTreeError) TeamTreeMembershipResult { + return TeamTreeMembershipResult{ + S__: TeamTreeMembershipStatus_ERROR, + Error__: &v, + } +} + +func NewTeamTreeMembershipResultWithHidden() TeamTreeMembershipResult { + return TeamTreeMembershipResult{ + S__: TeamTreeMembershipStatus_HIDDEN, + } +} + +func (o TeamTreeMembershipResult) DeepCopy() TeamTreeMembershipResult { + return TeamTreeMembershipResult{ + S__: o.S__.DeepCopy(), + Ok__: (func(x *TeamTreeMembershipValue) *TeamTreeMembershipValue { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Ok__), + Error__: (func(x *TeamTreeError) *TeamTreeError { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Error__), + } +} + +type TeamTreeMembership struct { + TeamName string `codec:"teamName" json:"teamName"` + Result TeamTreeMembershipResult `codec:"result" json:"result"` + TargetTeamID TeamID `codec:"targetTeamID" json:"targetTeamID"` + TargetUsername string `codec:"targetUsername" json:"targetUsername"` + Guid int `codec:"guid" json:"guid"` +} + +func (o TeamTreeMembership) DeepCopy() TeamTreeMembership { + return TeamTreeMembership{ + TeamName: o.TeamName, + Result: o.Result.DeepCopy(), + TargetTeamID: o.TargetTeamID.DeepCopy(), + TargetUsername: o.TargetUsername, + Guid: o.Guid, + } +} + +type TeamTreeMembershipsDoneResult struct { + ExpectedCount int `codec:"expectedCount" json:"expectedCount"` + TargetTeamID TeamID `codec:"targetTeamID" json:"targetTeamID"` + TargetUsername string `codec:"targetUsername" json:"targetUsername"` + Guid int `codec:"guid" json:"guid"` +} + +func (o TeamTreeMembershipsDoneResult) DeepCopy() TeamTreeMembershipsDoneResult { + return TeamTreeMembershipsDoneResult{ + ExpectedCount: o.ExpectedCount, + TargetTeamID: o.TargetTeamID.DeepCopy(), + TargetUsername: o.TargetUsername, + Guid: o.Guid, + } +} + +type TeamTreeInitial struct { + Guid int `codec:"guid" json:"guid"` +} + +func (o TeamTreeInitial) DeepCopy() TeamTreeInitial { + return TeamTreeInitial{ + Guid: o.Guid, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams_ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams_ui.go index 2c713aa6..76e51033 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams_ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams_ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/teams_ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teamsearch.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teamsearch.go new file mode 100644 index 00000000..2cf5ab7e --- /dev/null +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teamsearch.go @@ -0,0 +1,85 @@ +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) +// Input file: ../client/protocol/avdl/keybase1/teamsearch.avdl + +package keybase1 + +type TeamSearchItem struct { + Id TeamID `codec:"id" json:"id"` + Name string `codec:"name" json:"name"` + Description *string `codec:"description,omitempty" json:"description,omitempty"` + MemberCount int `codec:"memberCount" json:"memberCount"` + LastActive Time `codec:"lastActive" json:"lastActive"` + IsDemoted bool `codec:"isDemoted" json:"isDemoted"` + InTeam bool `codec:"inTeam" json:"inTeam"` +} + +func (o TeamSearchItem) DeepCopy() TeamSearchItem { + return TeamSearchItem{ + Id: o.Id.DeepCopy(), + Name: o.Name, + Description: (func(x *string) *string { + if x == nil { + return nil + } + tmp := (*x) + return &tmp + })(o.Description), + MemberCount: o.MemberCount, + LastActive: o.LastActive.DeepCopy(), + IsDemoted: o.IsDemoted, + InTeam: o.InTeam, + } +} + +type TeamSearchExport struct { + Items map[TeamID]TeamSearchItem `codec:"items" json:"items"` + Suggested []TeamID `codec:"suggested" json:"suggested"` +} + +func (o TeamSearchExport) DeepCopy() TeamSearchExport { + return TeamSearchExport{ + Items: (func(x map[TeamID]TeamSearchItem) map[TeamID]TeamSearchItem { + if x == nil { + return nil + } + ret := make(map[TeamID]TeamSearchItem, len(x)) + for k, v := range x { + kCopy := k.DeepCopy() + vCopy := v.DeepCopy() + ret[kCopy] = vCopy + } + return ret + })(o.Items), + Suggested: (func(x []TeamID) []TeamID { + if x == nil { + return nil + } + ret := make([]TeamID, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Suggested), + } +} + +type TeamSearchRes struct { + Results []TeamSearchItem `codec:"results" json:"results"` +} + +func (o TeamSearchRes) DeepCopy() TeamSearchRes { + return TeamSearchRes{ + Results: (func(x []TeamSearchItem) []TeamSearchItem { + if x == nil { + return nil + } + ret := make([]TeamSearchItem, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Results), + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/test.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/test.go index d8d6dd8a..e8944f06 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/test.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/test.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/test.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf.go index ec803243..e6b00761 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/tlf.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf_keys.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf_keys.go index 2aa0ee50..02c74db4 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf_keys.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf_keys.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/tlf_keys.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/track.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/track.go index 23ce1678..e1e3368b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/track.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/track.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/track.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ui.go index 7eb6201c..f86a263b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/ui.avdl package keybase1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/upk.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/upk.go index 3148b115..134ee85b 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/upk.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/upk.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/upk.avdl package keybase1 @@ -127,8 +127,8 @@ func (o SignatureMetadata) DeepCopy() SignatureMetadata { SigningKID: o.SigningKID.DeepCopy(), PrevMerkleRootSigned: o.PrevMerkleRootSigned.DeepCopy(), FirstAppearedUnverified: o.FirstAppearedUnverified.DeepCopy(), - Time: o.Time.DeepCopy(), - SigChainLocation: o.SigChainLocation.DeepCopy(), + Time: o.Time.DeepCopy(), + SigChainLocation: o.SigChainLocation.DeepCopy(), } } @@ -165,7 +165,7 @@ type PublicKeyV2NaCl struct { Parent *KID `codec:"parent,omitempty" json:"parent,omitempty"` DeviceID DeviceID `codec:"deviceID" json:"deviceID"` DeviceDescription string `codec:"deviceDescription" json:"deviceDescription"` - DeviceType string `codec:"deviceType" json:"deviceType"` + DeviceType DeviceTypeV2 `codec:"deviceType" json:"deviceType"` } func (o PublicKeyV2NaCl) DeepCopy() PublicKeyV2NaCl { @@ -180,7 +180,7 @@ func (o PublicKeyV2NaCl) DeepCopy() PublicKeyV2NaCl { })(o.Parent), DeviceID: o.DeviceID.DeepCopy(), DeviceDescription: o.DeviceDescription, - DeviceType: o.DeviceType, + DeviceType: o.DeviceType.DeepCopy(), } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/user.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/user.go index 47b3ab9b..bd1cde4d 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/user.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/user.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/user.avdl package keybase1 @@ -88,28 +88,48 @@ func (o Proofs) DeepCopy() Proofs { } type UserSummary struct { - Uid UID `codec:"uid" json:"uid"` - Username string `codec:"username" json:"username"` - Thumbnail string `codec:"thumbnail" json:"thumbnail"` - IdVersion int `codec:"idVersion" json:"idVersion"` - FullName string `codec:"fullName" json:"fullName"` - Bio string `codec:"bio" json:"bio"` - Proofs Proofs `codec:"proofs" json:"proofs"` - SigIDDisplay string `codec:"sigIDDisplay" json:"sigIDDisplay"` - TrackTime Time `codec:"trackTime" json:"trackTime"` + Uid UID `codec:"uid" json:"uid"` + Username string `codec:"username" json:"username"` + FullName string `codec:"fullName" json:"fullName"` + LinkID *LinkID `codec:"linkID,omitempty" json:"linkID,omitempty"` } func (o UserSummary) DeepCopy() UserSummary { return UserSummary{ - Uid: o.Uid.DeepCopy(), - Username: o.Username, - Thumbnail: o.Thumbnail, - IdVersion: o.IdVersion, - FullName: o.FullName, - Bio: o.Bio, - Proofs: o.Proofs.DeepCopy(), - SigIDDisplay: o.SigIDDisplay, - TrackTime: o.TrackTime.DeepCopy(), + Uid: o.Uid.DeepCopy(), + Username: o.Username, + FullName: o.FullName, + LinkID: (func(x *LinkID) *LinkID { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.LinkID), + } +} + +type UserSummarySet struct { + Users []UserSummary `codec:"users" json:"users"` + Time Time `codec:"time" json:"time"` + Version int `codec:"version" json:"version"` +} + +func (o UserSummarySet) DeepCopy() UserSummarySet { + return UserSummarySet{ + Users: (func(x []UserSummary) []UserSummary { + if x == nil { + return nil + } + ret := make([]UserSummary, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Users), + Time: o.Time.DeepCopy(), + Version: o.Version, } } @@ -169,50 +189,6 @@ func (o UserSettings) DeepCopy() UserSettings { } } -type UserSummary2 struct { - Uid UID `codec:"uid" json:"uid"` - Username string `codec:"username" json:"username"` - Thumbnail string `codec:"thumbnail" json:"thumbnail"` - FullName string `codec:"fullName" json:"fullName"` - IsFollower bool `codec:"isFollower" json:"isFollower"` - IsFollowee bool `codec:"isFollowee" json:"isFollowee"` -} - -func (o UserSummary2) DeepCopy() UserSummary2 { - return UserSummary2{ - Uid: o.Uid.DeepCopy(), - Username: o.Username, - Thumbnail: o.Thumbnail, - FullName: o.FullName, - IsFollower: o.IsFollower, - IsFollowee: o.IsFollowee, - } -} - -type UserSummary2Set struct { - Users []UserSummary2 `codec:"users" json:"users"` - Time Time `codec:"time" json:"time"` - Version int `codec:"version" json:"version"` -} - -func (o UserSummary2Set) DeepCopy() UserSummary2Set { - return UserSummary2Set{ - Users: (func(x []UserSummary2) []UserSummary2 { - if x == nil { - return nil - } - ret := make([]UserSummary2, len(x)) - for i, v := range x { - vCopy := v.DeepCopy() - ret[i] = vCopy - } - return ret - })(o.Users), - Time: o.Time.DeepCopy(), - Version: o.Version, - } -} - type InterestingPerson struct { Uid UID `codec:"uid" json:"uid"` Username string `codec:"username" json:"username"` @@ -263,15 +239,16 @@ func (o ProofSuggestionsRes) DeepCopy() ProofSuggestionsRes { } type ProofSuggestion struct { - Key string `codec:"key" json:"key"` - BelowFold bool `codec:"belowFold" json:"belowFold"` - ProfileText string `codec:"profileText" json:"profileText"` - ProfileIcon []SizedImage `codec:"profileIcon" json:"profileIcon"` - ProfileIconWhite []SizedImage `codec:"profileIconWhite" json:"profileIconWhite"` - PickerText string `codec:"pickerText" json:"pickerText"` - PickerSubtext string `codec:"pickerSubtext" json:"pickerSubtext"` - PickerIcon []SizedImage `codec:"pickerIcon" json:"pickerIcon"` - Metas []Identify3RowMeta `codec:"metas" json:"metas"` + Key string `codec:"key" json:"key"` + BelowFold bool `codec:"belowFold" json:"belowFold"` + ProfileText string `codec:"profileText" json:"profileText"` + ProfileIcon []SizedImage `codec:"profileIcon" json:"profileIcon"` + ProfileIconDarkmode []SizedImage `codec:"profileIconDarkmode" json:"profileIconDarkmode"` + PickerText string `codec:"pickerText" json:"pickerText"` + PickerSubtext string `codec:"pickerSubtext" json:"pickerSubtext"` + PickerIcon []SizedImage `codec:"pickerIcon" json:"pickerIcon"` + PickerIconDarkmode []SizedImage `codec:"pickerIconDarkmode" json:"pickerIconDarkmode"` + Metas []Identify3RowMeta `codec:"metas" json:"metas"` } func (o ProofSuggestion) DeepCopy() ProofSuggestion { @@ -290,7 +267,7 @@ func (o ProofSuggestion) DeepCopy() ProofSuggestion { } return ret })(o.ProfileIcon), - ProfileIconWhite: (func(x []SizedImage) []SizedImage { + ProfileIconDarkmode: (func(x []SizedImage) []SizedImage { if x == nil { return nil } @@ -300,7 +277,7 @@ func (o ProofSuggestion) DeepCopy() ProofSuggestion { ret[i] = vCopy } return ret - })(o.ProfileIconWhite), + })(o.ProfileIconDarkmode), PickerText: o.PickerText, PickerSubtext: o.PickerSubtext, PickerIcon: (func(x []SizedImage) []SizedImage { @@ -314,6 +291,17 @@ func (o ProofSuggestion) DeepCopy() ProofSuggestion { } return ret })(o.PickerIcon), + PickerIconDarkmode: (func(x []SizedImage) []SizedImage { + if x == nil { + return nil + } + ret := make([]SizedImage, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.PickerIconDarkmode), Metas: (func(x []Identify3RowMeta) []Identify3RowMeta { if x == nil { return nil diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/usersearch.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/usersearch.go index 3c66adf0..cf492935 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/usersearch.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/usersearch.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/keybase1/usersearch.avdl package keybase1 @@ -167,15 +167,16 @@ func (o APIUserSearchResult) DeepCopy() APIUserSearchResult { } type NonUserDetails struct { - IsNonUser bool `codec:"isNonUser" json:"isNonUser"` - AssertionValue string `codec:"assertionValue" json:"assertionValue"` - AssertionKey string `codec:"assertionKey" json:"assertionKey"` - Description string `codec:"description" json:"description"` - Contact *ProcessedContact `codec:"contact,omitempty" json:"contact,omitempty"` - Service *APIUserServiceResult `codec:"service,omitempty" json:"service,omitempty"` - SiteIcon []SizedImage `codec:"siteIcon" json:"siteIcon"` - SiteIconFull []SizedImage `codec:"siteIconFull" json:"siteIconFull"` - SiteIconWhite []SizedImage `codec:"siteIconWhite" json:"siteIconWhite"` + IsNonUser bool `codec:"isNonUser" json:"isNonUser"` + AssertionValue string `codec:"assertionValue" json:"assertionValue"` + AssertionKey string `codec:"assertionKey" json:"assertionKey"` + Description string `codec:"description" json:"description"` + Contact *ProcessedContact `codec:"contact,omitempty" json:"contact,omitempty"` + Service *APIUserServiceResult `codec:"service,omitempty" json:"service,omitempty"` + SiteIcon []SizedImage `codec:"siteIcon" json:"siteIcon"` + SiteIconDarkmode []SizedImage `codec:"siteIconDarkmode" json:"siteIconDarkmode"` + SiteIconFull []SizedImage `codec:"siteIconFull" json:"siteIconFull"` + SiteIconFullDarkmode []SizedImage `codec:"siteIconFullDarkmode" json:"siteIconFullDarkmode"` } func (o NonUserDetails) DeepCopy() NonUserDetails { @@ -209,6 +210,17 @@ func (o NonUserDetails) DeepCopy() NonUserDetails { } return ret })(o.SiteIcon), + SiteIconDarkmode: (func(x []SizedImage) []SizedImage { + if x == nil { + return nil + } + ret := make([]SizedImage, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.SiteIconDarkmode), SiteIconFull: (func(x []SizedImage) []SizedImage { if x == nil { return nil @@ -220,7 +232,7 @@ func (o NonUserDetails) DeepCopy() NonUserDetails { } return ret })(o.SiteIconFull), - SiteIconWhite: (func(x []SizedImage) []SizedImage { + SiteIconFullDarkmode: (func(x []SizedImage) []SizedImage { if x == nil { return nil } @@ -230,6 +242,28 @@ func (o NonUserDetails) DeepCopy() NonUserDetails { ret[i] = vCopy } return ret - })(o.SiteIconWhite), + })(o.SiteIconFullDarkmode), + } +} + +type EmailOrPhoneNumberSearchResult struct { + Input string `codec:"input" json:"input"` + Assertion string `codec:"assertion" json:"assertion"` + AssertionValue string `codec:"assertionValue" json:"assertionValue"` + AssertionKey string `codec:"assertionKey" json:"assertionKey"` + FoundUser bool `codec:"foundUser" json:"foundUser"` + Username string `codec:"username" json:"username"` + FullName string `codec:"fullName" json:"fullName"` +} + +func (o EmailOrPhoneNumberSearchResult) DeepCopy() EmailOrPhoneNumberSearchResult { + return EmailOrPhoneNumberSearchResult{ + Input: o.Input, + Assertion: o.Assertion, + AssertionValue: o.AssertionValue, + AssertionKey: o.AssertionKey, + FoundUser: o.FoundUser, + Username: o.Username, + FullName: o.FullName, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/wot.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/wot.go new file mode 100644 index 00000000..694d13b5 --- /dev/null +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/wot.go @@ -0,0 +1,116 @@ +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) +// Input file: ../client/protocol/avdl/keybase1/wot.avdl + +package keybase1 + +import ( + "fmt" +) + +type UsernameVerificationType string + +func (o UsernameVerificationType) DeepCopy() UsernameVerificationType { + return o +} + +type WotProof struct { + ProofType ProofType `codec:"proofType" json:"proof_type"` + Name string `codec:"name" json:"name,omitempty"` + Username string `codec:"username" json:"username,omitempty"` + Protocol string `codec:"protocol" json:"protocol,omitempty"` + Hostname string `codec:"hostname" json:"hostname,omitempty"` + Domain string `codec:"domain" json:"domain,omitempty"` +} + +func (o WotProof) DeepCopy() WotProof { + return WotProof{ + ProofType: o.ProofType.DeepCopy(), + Name: o.Name, + Username: o.Username, + Protocol: o.Protocol, + Hostname: o.Hostname, + Domain: o.Domain, + } +} + +type Confidence struct { + UsernameVerifiedVia UsernameVerificationType `codec:"usernameVerifiedVia" json:"username_verified_via,omitempty"` + Proofs []WotProof `codec:"proofs" json:"proofs,omitempty"` + Other string `codec:"other" json:"other,omitempty"` +} + +func (o Confidence) DeepCopy() Confidence { + return Confidence{ + UsernameVerifiedVia: o.UsernameVerifiedVia.DeepCopy(), + Proofs: (func(x []WotProof) []WotProof { + if x == nil { + return nil + } + ret := make([]WotProof, len(x)) + for i, v := range x { + vCopy := v.DeepCopy() + ret[i] = vCopy + } + return ret + })(o.Proofs), + Other: o.Other, + } +} + +type WotReactionType int + +const ( + WotReactionType_ACCEPT WotReactionType = 0 + WotReactionType_REJECT WotReactionType = 1 +) + +func (o WotReactionType) DeepCopy() WotReactionType { return o } + +var WotReactionTypeMap = map[string]WotReactionType{ + "ACCEPT": 0, + "REJECT": 1, +} + +var WotReactionTypeRevMap = map[WotReactionType]string{ + 0: "ACCEPT", + 1: "REJECT", +} + +func (e WotReactionType) String() string { + if v, ok := WotReactionTypeRevMap[e]; ok { + return v + } + return fmt.Sprintf("%v", int(e)) +} + +type WotVouch struct { + Status WotStatusType `codec:"status" json:"status"` + VouchProof SigID `codec:"vouchProof" json:"vouchProof"` + Vouchee UserVersion `codec:"vouchee" json:"vouchee"` + VoucheeUsername string `codec:"voucheeUsername" json:"voucheeUsername"` + Voucher UserVersion `codec:"voucher" json:"voucher"` + VoucherUsername string `codec:"voucherUsername" json:"voucherUsername"` + VouchText string `codec:"vouchText" json:"vouchText"` + VouchedAt Time `codec:"vouchedAt" json:"vouchedAt"` + Confidence *Confidence `codec:"confidence,omitempty" json:"confidence,omitempty"` +} + +func (o WotVouch) DeepCopy() WotVouch { + return WotVouch{ + Status: o.Status.DeepCopy(), + VouchProof: o.VouchProof.DeepCopy(), + Vouchee: o.Vouchee.DeepCopy(), + VoucheeUsername: o.VoucheeUsername, + Voucher: o.Voucher.DeepCopy(), + VoucherUsername: o.VoucherUsername, + VouchText: o.VouchText, + VouchedAt: o.VouchedAt.DeepCopy(), + Confidence: (func(x *Confidence) *Confidence { + if x == nil { + return nil + } + tmp := (*x).DeepCopy() + return &tmp + })(o.Confidence), + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/bundle.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/bundle.go index d5102ad9..ab08a284 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/bundle.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/bundle.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/stellar1/bundle.avdl package stellar1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/common.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/common.go index cf49a1d8..03ddc409 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/common.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/common.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/stellar1/common.avdl package stellar1 @@ -86,6 +86,7 @@ type Asset struct { AuthEndpoint string `codec:"authEndpoint" json:"authEndpoint"` DepositReqAuth bool `codec:"depositReqAuth" json:"depositReqAuth"` WithdrawReqAuth bool `codec:"withdrawReqAuth" json:"withdrawReqAuth"` + UseSep24 bool `codec:"useSep24" json:"useSep24"` } func (o Asset) DeepCopy() Asset { @@ -107,6 +108,7 @@ func (o Asset) DeepCopy() Asset { AuthEndpoint: o.AuthEndpoint, DepositReqAuth: o.DepositReqAuth, WithdrawReqAuth: o.WithdrawReqAuth, + UseSep24: o.UseSep24, } } diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/gregor.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/gregor.go index bcdf8592..0928f03d 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/gregor.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/gregor.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/stellar1/gregor.avdl package stellar1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/local.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/local.go index ec474d28..fb858852 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/local.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/local.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/stellar1/local.avdl package stellar1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/notify.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/notify.go index f095bf00..ef8e4b11 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/notify.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/notify.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/stellar1/notify.avdl package stellar1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/remote.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/remote.go index 798506a2..0ef09fba 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/remote.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/remote.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/stellar1/remote.avdl package stellar1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/ui.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/ui.go index 8decce76..dfb0d7c5 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/ui.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/ui.go @@ -1,4 +1,4 @@ -// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler) +// Auto-generated to Go types using avdl-compiler v1.4.8 (https://github.com/keybase/node-avdl-compiler) // Input file: ../client/protocol/avdl/stellar1/ui.avdl package stellar1 diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/util.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/util.go new file mode 100644 index 00000000..91cf5e33 --- /dev/null +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/util.go @@ -0,0 +1,38 @@ +package kbchat + +import ( + "fmt" + "log" + "time" +) + +func ErrToOK(err *error) string { + if err == nil || *err == nil { + return "ok" + } + return fmt.Sprintf("ERROR: %v", *err) +} + +type DebugOutput struct { + name string +} + +func NewDebugOutput(name string) *DebugOutput { + return &DebugOutput{ + name: name, + } +} + +func (d *DebugOutput) Debug(format string, args ...interface{}) { + msg := fmt.Sprintf(format, args...) + log.Printf("%s: %s\n", d.name, msg) +} + +func (d *DebugOutput) Trace(err *error, format string, args ...interface{}) func() { + msg := fmt.Sprintf(format, args...) + start := time.Now() + log.Printf("+ %s: %s\n", d.name, msg) + return func() { + log.Printf("- %s: %s -> %s [time=%v]\n", d.name, msg, ErrToOK(err), time.Since(start)) + } +} diff --git a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/wallet.go b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/wallet.go index fb9cfb31..1ced65e4 100644 --- a/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/wallet.go +++ b/vendor/github.com/keybase/go-keybase-chat-bot/kbchat/wallet.go @@ -17,7 +17,11 @@ func (a *API) GetWalletTxDetails(txID string) (wOut WalletOutput, err error) { a.Lock() defer a.Unlock() - apiInput := fmt.Sprintf(`{"method": "details", "params": {"options": {"txid": "%s"}}}`, txID) + txIDEscaped, err := json.Marshal(txID) + if err != nil { + return wOut, err + } + apiInput := fmt.Sprintf(`{"method": "details", "params": {"options": {"txid": %s}}}`, txIDEscaped) cmd := a.runOpts.Command("wallet", "api") cmd.Stdin = strings.NewReader(apiInput) var out bytes.Buffer diff --git a/vendor/github.com/konsorten/go-windows-terminal-sequences/README.md b/vendor/github.com/konsorten/go-windows-terminal-sequences/README.md index 949b77e3..09a4a35c 100644 --- a/vendor/github.com/konsorten/go-windows-terminal-sequences/README.md +++ b/vendor/github.com/konsorten/go-windows-terminal-sequences/README.md @@ -26,6 +26,8 @@ The tool is sponsored by the [marvin + konsorten GmbH](http://www.konsorten.de). We thank all the authors who provided code to this library: * Felix Kollmann +* Nicolas Perraut +* @dirty49374 ## License diff --git a/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go b/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go index ef18d8f9..57f530ae 100644 --- a/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go +++ b/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go @@ -4,7 +4,6 @@ package sequences import ( "syscall" - "unsafe" ) var ( @@ -27,7 +26,7 @@ func EnableVirtualTerminalProcessing(stream syscall.Handle, enable bool) error { mode &^= ENABLE_VIRTUAL_TERMINAL_PROCESSING } - ret, _, err := setConsoleMode.Call(uintptr(unsafe.Pointer(stream)), uintptr(mode)) + ret, _, err := setConsoleMode.Call(uintptr(stream), uintptr(mode)) if ret == 0 { return err } diff --git a/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences_dummy.go b/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences_dummy.go new file mode 100644 index 00000000..df61a6f2 --- /dev/null +++ b/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences_dummy.go @@ -0,0 +1,11 @@ +// +build linux darwin + +package sequences + +import ( + "fmt" +) + +func EnableVirtualTerminalProcessing(stream uintptr, enable bool) error { + return fmt.Errorf("windows only package") +} diff --git a/vendor/github.com/labstack/echo/v4/README.md b/vendor/github.com/labstack/echo/v4/README.md index 0da03122..c57d478f 100644 --- a/vendor/github.com/labstack/echo/v4/README.md +++ b/vendor/github.com/labstack/echo/v4/README.md @@ -50,6 +50,13 @@ Lower is better! ## [Guide](https://echo.labstack.com/guide) +### Installation + +```go +// go get github.com/labstack/echo/{version} +go get github.com/labstack/echo/v4 +``` + ### Example ```go diff --git a/vendor/github.com/labstack/echo/v4/bind.go b/vendor/github.com/labstack/echo/v4/bind.go index c8c88bb2..f8914743 100644 --- a/vendor/github.com/labstack/echo/v4/bind.go +++ b/vendor/github.com/labstack/echo/v4/bind.go @@ -115,7 +115,7 @@ func (b *DefaultBinder) bindData(ptr interface{}, data map[string][]string, tag if inputFieldName == "" { inputFieldName = typeField.Name // If tag is nil, we inspect if the field is a struct. - if _, ok := bindUnmarshaler(structField); !ok && structFieldKind == reflect.Struct { + if _, ok := structField.Addr().Interface().(BindUnmarshaler); !ok && structFieldKind == reflect.Struct { if err := b.bindData(structField.Addr().Interface(), data, tag); err != nil { return err } @@ -129,9 +129,8 @@ func (b *DefaultBinder) bindData(ptr interface{}, data map[string][]string, tag // url params are bound case sensitive which is inconsistent. To // fix this we must check all of the map values in a // case-insensitive search. - inputFieldName = strings.ToLower(inputFieldName) for k, v := range data { - if strings.ToLower(k) == inputFieldName { + if strings.EqualFold(k, inputFieldName) { inputValue = v exists = true break @@ -221,40 +220,13 @@ func unmarshalField(valueKind reflect.Kind, val string, field reflect.Value) (bo } } -// bindUnmarshaler attempts to unmarshal a reflect.Value into a BindUnmarshaler -func bindUnmarshaler(field reflect.Value) (BindUnmarshaler, bool) { - ptr := reflect.New(field.Type()) - if ptr.CanInterface() { - iface := ptr.Interface() - if unmarshaler, ok := iface.(BindUnmarshaler); ok { - return unmarshaler, ok - } - } - return nil, false -} - -// textUnmarshaler attempts to unmarshal a reflect.Value into a TextUnmarshaler -func textUnmarshaler(field reflect.Value) (encoding.TextUnmarshaler, bool) { - ptr := reflect.New(field.Type()) - if ptr.CanInterface() { - iface := ptr.Interface() - if unmarshaler, ok := iface.(encoding.TextUnmarshaler); ok { - return unmarshaler, ok - } - } - return nil, false -} - func unmarshalFieldNonPtr(value string, field reflect.Value) (bool, error) { - if unmarshaler, ok := bindUnmarshaler(field); ok { - err := unmarshaler.UnmarshalParam(value) - field.Set(reflect.ValueOf(unmarshaler).Elem()) - return true, err + fieldIValue := field.Addr().Interface() + if unmarshaler, ok := fieldIValue.(BindUnmarshaler); ok { + return true, unmarshaler.UnmarshalParam(value) } - if unmarshaler, ok := textUnmarshaler(field); ok { - err := unmarshaler.UnmarshalText([]byte(value)) - field.Set(reflect.ValueOf(unmarshaler).Elem()) - return true, err + if unmarshaler, ok := fieldIValue.(encoding.TextUnmarshaler); ok { + return true, unmarshaler.UnmarshalText([]byte(value)) } return false, nil diff --git a/vendor/github.com/labstack/echo/v4/context.go b/vendor/github.com/labstack/echo/v4/context.go index 27da5ffe..99ef03bc 100644 --- a/vendor/github.com/labstack/echo/v4/context.go +++ b/vendor/github.com/labstack/echo/v4/context.go @@ -43,6 +43,7 @@ type ( // RealIP returns the client's network address based on `X-Forwarded-For` // or `X-Real-IP` request header. + // The behavior can be configured using `Echo#IPExtractor`. RealIP() string // Path returns the registered path for the handler. @@ -270,6 +271,10 @@ func (c *context) Scheme() string { } func (c *context) RealIP() string { + if c.echo != nil && c.echo.IPExtractor != nil { + return c.echo.IPExtractor(c.request) + } + // Fall back to legacy behavior if ip := c.request.Header.Get(HeaderXForwardedFor); ip != "" { return strings.Split(ip, ", ")[0] } @@ -305,6 +310,7 @@ func (c *context) ParamNames() []string { func (c *context) SetParamNames(names ...string) { c.pnames = names + *c.echo.maxParam = len(names) } func (c *context) ParamValues() []string { @@ -352,8 +358,11 @@ func (c *context) FormParams() (url.Values, error) { func (c *context) FormFile(name string) (*multipart.FileHeader, error) { f, fh, err := c.request.FormFile(name) + if err != nil { + return nil, err + } defer f.Close() - return fh, err + return fh, nil } func (c *context) MultipartForm() (*multipart.Form, error) { diff --git a/vendor/github.com/labstack/echo/v4/echo.go b/vendor/github.com/labstack/echo/v4/echo.go index a6ac0fa8..511eb43f 100644 --- a/vendor/github.com/labstack/echo/v4/echo.go +++ b/vendor/github.com/labstack/echo/v4/echo.go @@ -59,6 +59,8 @@ import ( "github.com/labstack/gommon/log" "golang.org/x/crypto/acme" "golang.org/x/crypto/acme/autocert" + "golang.org/x/net/http2" + "golang.org/x/net/http2/h2c" ) type ( @@ -88,6 +90,7 @@ type ( Validator Validator Renderer Renderer Logger Logger + IPExtractor IPExtractor } // Route contains a handler and information for matching against requests. @@ -227,7 +230,7 @@ const ( const ( // Version of Echo - Version = "4.1.13" + Version = "4.1.16" website = "https://echo.labstack.com" // http://patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Echo banner = ` @@ -723,6 +726,34 @@ func (e *Echo) StartServer(s *http.Server) (err error) { return s.Serve(e.TLSListener) } +// StartH2CServer starts a custom http/2 server with h2c (HTTP/2 Cleartext). +func (e *Echo) StartH2CServer(address string, h2s *http2.Server) (err error) { + // Setup + s := e.Server + s.Addr = address + e.colorer.SetOutput(e.Logger.Output()) + s.ErrorLog = e.StdLogger + s.Handler = h2c.NewHandler(e, h2s) + if e.Debug { + e.Logger.SetLevel(log.DEBUG) + } + + if !e.HideBanner { + e.colorer.Printf(banner, e.colorer.Red("v"+Version), e.colorer.Blue(website)) + } + + if e.Listener == nil { + e.Listener, err = newListener(s.Addr) + if err != nil { + return err + } + } + if !e.HidePort { + e.colorer.Printf("⇨ http server started on %s\n", e.colorer.Green(e.Listener.Addr())) + } + return s.Serve(e.Listener) +} + // Close immediately stops the server. // It internally calls `http.Server#Close()`. func (e *Echo) Close() error { @@ -752,6 +783,9 @@ func NewHTTPError(code int, message ...interface{}) *HTTPError { // Error makes it compatible with `error` interface. func (he *HTTPError) Error() string { + if he.Internal == nil { + return fmt.Sprintf("code=%d, message=%v", he.Code, he.Message) + } return fmt.Sprintf("code=%d, message=%v, internal=%v", he.Code, he.Message, he.Internal) } @@ -826,9 +860,10 @@ func (ln tcpKeepAliveListener) Accept() (c net.Conn, err error) { return } else if err = c.(*net.TCPConn).SetKeepAlive(true); err != nil { return - } else if err = c.(*net.TCPConn).SetKeepAlivePeriod(3 * time.Minute); err != nil { - return } + // Ignore error from setting the KeepAlivePeriod as some systems, such as + // OpenBSD, do not support setting TCP_USER_TIMEOUT on IPPROTO_TCP + _ = c.(*net.TCPConn).SetKeepAlivePeriod(3 * time.Minute) return } diff --git a/vendor/github.com/labstack/echo/v4/go.mod b/vendor/github.com/labstack/echo/v4/go.mod index c5db2ae1..b3ac0800 100644 --- a/vendor/github.com/labstack/echo/v4/go.mod +++ b/vendor/github.com/labstack/echo/v4/go.mod @@ -1,17 +1,14 @@ module github.com/labstack/echo/v4 -go 1.12 +go 1.14 require ( github.com/dgrijalva/jwt-go v3.2.0+incompatible - github.com/labstack/echo v3.3.10+incompatible // indirect github.com/labstack/gommon v0.3.0 - github.com/mattn/go-colorable v0.1.4 // indirect - github.com/mattn/go-isatty v0.0.11 // indirect + github.com/mattn/go-colorable v0.1.6 // indirect github.com/stretchr/testify v1.4.0 github.com/valyala/fasttemplate v1.1.0 - golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 - golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 // indirect - golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8 // indirect + golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d + golang.org/x/net v0.0.0-20200226121028-0de0cce0169b golang.org/x/text v0.3.2 // indirect ) diff --git a/vendor/github.com/labstack/echo/v4/go.sum b/vendor/github.com/labstack/echo/v4/go.sum index 57c79877..8e7e54ce 100644 --- a/vendor/github.com/labstack/echo/v4/go.sum +++ b/vendor/github.com/labstack/echo/v4/go.sum @@ -1,22 +1,19 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v1.0.2 h1:KPldsxuKGsS2FPWsNeg9ZO18aCrGKujPoWXn2yo+KQM= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/labstack/echo v3.3.10+incompatible h1:pGRcYk231ExFAyoAjAfD85kQzRJCRI8bbnE7CX5OEgg= -github.com/labstack/echo v3.3.10+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s= github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.9 h1:d5US/mDsogSGW37IV293h//ZFaeajb69h+EHFsv2xGg= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.10 h1:qxFzApOv4WsAL965uUPIsXzAKCZxN2p9UqdhFS4ZW10= -github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= 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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -29,29 +26,19 @@ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU github.com/valyala/fasttemplate v1.1.0 h1:RZqt0yGBsps8NGvLSGW804QQqCUYYLsaOjTVHy1Ocw4= github.com/valyala/fasttemplate v1.1.0/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 h1:sKJQZMuxjOAR/Uo2LBfU90onWEf1dF4C+0hPJCc9Mpc= -golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ= +golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d h1:1ZiEyfaQIg3Qh0EoqpwAakHVhecoE5wlSg5GjnafJGw= +golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20191021144547-ec77196f6094 h1:5O4U9trLjNpuhpynaDsqwCk+Tw6seqJz1EbqbnzHrc8= -golang.org/x/net v0.0.0-20191021144547-ec77196f6094/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/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/sys v0.0.0-20190222072716-a9d3bda3a223/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-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO9UxmJRx8K0gsfABByQ= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191024172528-b4ff53e7a1cb h1:ZxSglHghKPYD8WDeRUzRJrUJtDF0PxsTUSxyqr9/5BI= -golang.org/x/sys v0.0.0-20191024172528-b4ff53e7a1cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8 h1:JA8d3MPx/IToSyXZG/RhwYEtfrKO1Fxrqe8KrkiLXKM= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 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.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= diff --git a/vendor/github.com/labstack/echo/v4/ip.go b/vendor/github.com/labstack/echo/v4/ip.go new file mode 100644 index 00000000..39cb421f --- /dev/null +++ b/vendor/github.com/labstack/echo/v4/ip.go @@ -0,0 +1,137 @@ +package echo + +import ( + "net" + "net/http" + "strings" +) + +type ipChecker struct { + trustLoopback bool + trustLinkLocal bool + trustPrivateNet bool + trustExtraRanges []*net.IPNet +} + +// TrustOption is config for which IP address to trust +type TrustOption func(*ipChecker) + +// TrustLoopback configures if you trust loopback address (default: true). +func TrustLoopback(v bool) TrustOption { + return func(c *ipChecker) { + c.trustLoopback = v + } +} + +// TrustLinkLocal configures if you trust link-local address (default: true). +func TrustLinkLocal(v bool) TrustOption { + return func(c *ipChecker) { + c.trustLinkLocal = v + } +} + +// TrustPrivateNet configures if you trust private network address (default: true). +func TrustPrivateNet(v bool) TrustOption { + return func(c *ipChecker) { + c.trustPrivateNet = v + } +} + +// TrustIPRange add trustable IP ranges using CIDR notation. +func TrustIPRange(ipRange *net.IPNet) TrustOption { + return func(c *ipChecker) { + c.trustExtraRanges = append(c.trustExtraRanges, ipRange) + } +} + +func newIPChecker(configs []TrustOption) *ipChecker { + checker := &ipChecker{trustLoopback: true, trustLinkLocal: true, trustPrivateNet: true} + for _, configure := range configs { + configure(checker) + } + return checker +} + +func isPrivateIPRange(ip net.IP) bool { + if ip4 := ip.To4(); ip4 != nil { + return ip4[0] == 10 || + ip4[0] == 172 && ip4[1]&0xf0 == 16 || + ip4[0] == 192 && ip4[1] == 168 + } + return len(ip) == net.IPv6len && ip[0]&0xfe == 0xfc +} + +func (c *ipChecker) trust(ip net.IP) bool { + if c.trustLoopback && ip.IsLoopback() { + return true + } + if c.trustLinkLocal && ip.IsLinkLocalUnicast() { + return true + } + if c.trustPrivateNet && isPrivateIPRange(ip) { + return true + } + for _, trustedRange := range c.trustExtraRanges { + if trustedRange.Contains(ip) { + return true + } + } + return false +} + +// IPExtractor is a function to extract IP addr from http.Request. +// Set appropriate one to Echo#IPExtractor. +// See https://echo.labstack.com/guide/ip-address for more details. +type IPExtractor func(*http.Request) string + +// ExtractIPDirect extracts IP address using actual IP address. +// Use this if your server faces to internet directory (i.e.: uses no proxy). +func ExtractIPDirect() IPExtractor { + return func(req *http.Request) string { + ra, _, _ := net.SplitHostPort(req.RemoteAddr) + return ra + } +} + +// ExtractIPFromRealIPHeader extracts IP address using x-real-ip header. +// Use this if you put proxy which uses this header. +func ExtractIPFromRealIPHeader(options ...TrustOption) IPExtractor { + checker := newIPChecker(options) + return func(req *http.Request) string { + directIP := ExtractIPDirect()(req) + realIP := req.Header.Get(HeaderXRealIP) + if realIP != "" { + if ip := net.ParseIP(directIP); ip != nil && checker.trust(ip) { + return realIP + } + } + return directIP + } +} + +// ExtractIPFromXFFHeader extracts IP address using x-forwarded-for header. +// Use this if you put proxy which uses this header. +// This returns nearest untrustable IP. If all IPs are trustable, returns furthest one (i.e.: XFF[0]). +func ExtractIPFromXFFHeader(options ...TrustOption) IPExtractor { + checker := newIPChecker(options) + return func(req *http.Request) string { + directIP := ExtractIPDirect()(req) + xffs := req.Header[HeaderXForwardedFor] + if len(xffs) == 0 { + return directIP + } + ips := append(strings.Split(strings.Join(xffs, ","), ","), directIP) + for i := len(ips) - 1; i >= 0; i-- { + ip := net.ParseIP(strings.TrimSpace(ips[i])) + if ip == nil { + // Unable to parse IP; cannot trust entire records + return directIP + } + if !checker.trust(ip) { + return ip.String() + } + } + // All of the IPs are trusted; return first element because it is furthest from server (best effort strategy). + return strings.TrimSpace(ips[0]) + } +} diff --git a/vendor/github.com/labstack/echo/v4/middleware/jwt.go b/vendor/github.com/labstack/echo/v4/middleware/jwt.go index 55a98632..3c7c4868 100644 --- a/vendor/github.com/labstack/echo/v4/middleware/jwt.go +++ b/vendor/github.com/labstack/echo/v4/middleware/jwt.go @@ -25,7 +25,7 @@ type ( // ErrorHandler defines a function which is executed for an invalid token. // It may be used to define a custom JWT error. ErrorHandler JWTErrorHandler - + // ErrorHandlerWithContext is almost identical to ErrorHandler, but it's passed the current context. ErrorHandlerWithContext JWTErrorHandlerWithContext @@ -74,7 +74,7 @@ type ( // JWTErrorHandlerWithContext is almost identical to JWTErrorHandler, but it's passed the current context. JWTErrorHandlerWithContext func(error, echo.Context) error - + jwtExtractor func(echo.Context) (string, error) ) @@ -183,7 +183,7 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc { if config.ErrorHandler != nil { return config.ErrorHandler(err) } - + if config.ErrorHandlerWithContext != nil { return config.ErrorHandlerWithContext(err, c) } @@ -210,7 +210,7 @@ func JWTWithConfig(config JWTConfig) echo.MiddlewareFunc { return config.ErrorHandler(err) } if config.ErrorHandlerWithContext != nil { - return config.ErrorHandlerWithContext(err, c) + return config.ErrorHandlerWithContext(err, c) } return &echo.HTTPError{ Code: http.StatusUnauthorized, diff --git a/vendor/github.com/labstack/echo/v4/middleware/proxy.go b/vendor/github.com/labstack/echo/v4/middleware/proxy.go index ef5602bd..1da370db 100644 --- a/vendor/github.com/labstack/echo/v4/middleware/proxy.go +++ b/vendor/github.com/labstack/echo/v4/middleware/proxy.go @@ -231,7 +231,9 @@ func ProxyWithConfig(config ProxyConfig) echo.MiddlewareFunc { } // Fix header - if req.Header.Get(echo.HeaderXRealIP) == "" { + // Basically it's not good practice to unconditionally pass incoming x-real-ip header to upstream. + // However, for backward compatibility, legacy behavior is preserved unless you configure Echo#IPExtractor. + if req.Header.Get(echo.HeaderXRealIP) == "" || c.Echo().IPExtractor != nil { req.Header.Set(echo.HeaderXRealIP, c.RealIP()) } if req.Header.Get(echo.HeaderXForwardedProto) == "" { diff --git a/vendor/github.com/labstack/echo/v4/middleware/rewrite.go b/vendor/github.com/labstack/echo/v4/middleware/rewrite.go index a64e10bb..d1387af0 100644 --- a/vendor/github.com/labstack/echo/v4/middleware/rewrite.go +++ b/vendor/github.com/labstack/echo/v4/middleware/rewrite.go @@ -57,7 +57,8 @@ func RewriteWithConfig(config RewriteConfig) echo.MiddlewareFunc { // Initialize for k, v := range config.Rules { - k = strings.Replace(k, "*", "(.*)", -1) + k = regexp.QuoteMeta(k) + k = strings.Replace(k, `\*`, "(.*)", -1) k = k + "$" config.rulesRegex[regexp.MustCompile(k)] = v } diff --git a/vendor/github.com/labstack/echo/v4/router.go b/vendor/github.com/labstack/echo/v4/router.go index 08145973..15a3398f 100644 --- a/vendor/github.com/labstack/echo/v4/router.go +++ b/vendor/github.com/labstack/echo/v4/router.go @@ -347,7 +347,14 @@ func (r *Router) Find(method, path string, c Context) { if l == pl { // Continue search search = search[l:] - } else { + // Finish routing if no remaining search and we are on an leaf node + if search == "" && (nn == nil || cn.parent == nil || cn.ppath != "") { + break + } + } + + // Attempt to go back up the tree on no matching prefix or no remaining search + if l != pl || search == "" { if nn == nil { // Issue #1348 return // Not found } @@ -360,10 +367,6 @@ func (r *Router) Find(method, path string, c Context) { } } - if search == "" { - break - } - // Static node if child = cn.findChild(search[0], skind); child != nil { // Save next @@ -376,8 +379,8 @@ func (r *Router) Find(method, path string, c Context) { continue } - // Param node Param: + // Param node if child = cn.findChildByKind(pkind); child != nil { // Issue #378 if len(pvalues) == n { @@ -401,43 +404,58 @@ func (r *Router) Find(method, path string, c Context) { continue } - // Any node Any: - if cn = cn.findChildByKind(akind); cn == nil { - if nn != nil { - // No next node to go down in routing (issue #954) - // Find nearest "any" route going up the routing tree - search = ns - np := nn.parent - // Consider param route one level up only - // if no slash is remaining in search string - if cn = nn.findChildByKind(pkind); cn != nil && strings.IndexByte(ns, '/') == -1 { + // Any node + if cn = cn.findChildByKind(akind); cn != nil { + // If any node is found, use remaining path for pvalues + pvalues[len(cn.pnames)-1] = search + break + } + + // No node found, continue at stored next node + // or find nearest "any" route + if nn != nil { + // No next node to go down in routing (issue #954) + // Find nearest "any" route going up the routing tree + search = ns + np := nn.parent + // Consider param route one level up only + if cn = nn.findChildByKind(pkind); cn != nil { + pos := strings.IndexByte(ns, '/') + if pos == -1 { + // If no slash is remaining in search string set param value pvalues[len(cn.pnames)-1] = search break + } else if pos > 0 { + // Otherwise continue route processing with restored next node + cn = nn + nn = nil + ns = "" + goto Param } - for { - np = nn.parent - if cn = nn.findChildByKind(akind); cn != nil { - break - } - if np == nil { - break // no further parent nodes in tree, abort - } - var str strings.Builder - str.WriteString(nn.prefix) - str.WriteString(search) - search = str.String() - nn = np - } - if cn != nil { // use the found "any" route and update path - pvalues[len(cn.pnames)-1] = search + } + // No param route found, try to resolve nearest any route + for { + np = nn.parent + if cn = nn.findChildByKind(akind); cn != nil { break } + if np == nil { + break // no further parent nodes in tree, abort + } + var str strings.Builder + str.WriteString(nn.prefix) + str.WriteString(search) + search = str.String() + nn = np + } + if cn != nil { // use the found "any" route and update path + pvalues[len(cn.pnames)-1] = search + break } - return // Not found } - pvalues[len(cn.pnames)-1] = search - break + return // Not found + } ctx.handler = cn.findHandler(method) diff --git a/vendor/github.com/mattn/go-colorable/.travis.yml b/vendor/github.com/mattn/go-colorable/.travis.yml index 98db8f06..7942c565 100644 --- a/vendor/github.com/mattn/go-colorable/.travis.yml +++ b/vendor/github.com/mattn/go-colorable/.travis.yml @@ -1,9 +1,15 @@ language: go +sudo: false go: + - 1.13.x - tip before_install: - - go get github.com/mattn/goveralls - - go get golang.org/x/tools/cmd/cover + - go get -t -v ./... + script: - - $HOME/gopath/bin/goveralls -repotoken xnXqRGwgW3SXIguzxf90ZSK1GPYZPaGrw + - ./go.test.sh + +after_success: + - bash <(curl -s https://codecov.io/bash) + diff --git a/vendor/github.com/mattn/go-colorable/README.md b/vendor/github.com/mattn/go-colorable/README.md index 56729a92..e055952b 100644 --- a/vendor/github.com/mattn/go-colorable/README.md +++ b/vendor/github.com/mattn/go-colorable/README.md @@ -1,8 +1,8 @@ # go-colorable -[![Godoc Reference](https://godoc.org/github.com/mattn/go-colorable?status.svg)](http://godoc.org/github.com/mattn/go-colorable) [![Build Status](https://travis-ci.org/mattn/go-colorable.svg?branch=master)](https://travis-ci.org/mattn/go-colorable) -[![Coverage Status](https://coveralls.io/repos/github/mattn/go-colorable/badge.svg?branch=master)](https://coveralls.io/github/mattn/go-colorable?branch=master) +[![Codecov](https://codecov.io/gh/mattn/go-colorable/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-colorable) +[![GoDoc](https://godoc.org/github.com/mattn/go-colorable?status.svg)](http://godoc.org/github.com/mattn/go-colorable) [![Go Report Card](https://goreportcard.com/badge/mattn/go-colorable)](https://goreportcard.com/report/mattn/go-colorable) Colorable writer for windows. diff --git a/vendor/github.com/mattn/go-colorable/colorable_appengine.go b/vendor/github.com/mattn/go-colorable/colorable_appengine.go index 0b0aef83..1f7806fe 100644 --- a/vendor/github.com/mattn/go-colorable/colorable_appengine.go +++ b/vendor/github.com/mattn/go-colorable/colorable_appengine.go @@ -27,3 +27,11 @@ func NewColorableStdout() io.Writer { func NewColorableStderr() io.Writer { return os.Stderr } + +// EnableColorsStdout enable colors if possible. +func EnableColorsStdout(enabled *bool) func() { + if enabled != nil { + *enabled = true + } + return func() {} +} diff --git a/vendor/github.com/mattn/go-colorable/colorable_others.go b/vendor/github.com/mattn/go-colorable/colorable_others.go index 3fb771dc..08cbd1e0 100644 --- a/vendor/github.com/mattn/go-colorable/colorable_others.go +++ b/vendor/github.com/mattn/go-colorable/colorable_others.go @@ -28,3 +28,11 @@ func NewColorableStdout() io.Writer { func NewColorableStderr() io.Writer { return os.Stderr } + +// EnableColorsStdout enable colors if possible. +func EnableColorsStdout(enabled *bool) func() { + if enabled != nil { + *enabled = true + } + return func() {} +} diff --git a/vendor/github.com/mattn/go-colorable/colorable_windows.go b/vendor/github.com/mattn/go-colorable/colorable_windows.go index 1bd628f2..b9e93634 100644 --- a/vendor/github.com/mattn/go-colorable/colorable_windows.go +++ b/vendor/github.com/mattn/go-colorable/colorable_windows.go @@ -27,6 +27,8 @@ const ( backgroundRed = 0x40 backgroundIntensity = 0x80 backgroundMask = (backgroundRed | backgroundBlue | backgroundGreen | backgroundIntensity) + + cENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 ) const ( @@ -78,6 +80,8 @@ var ( procGetConsoleCursorInfo = kernel32.NewProc("GetConsoleCursorInfo") procSetConsoleCursorInfo = kernel32.NewProc("SetConsoleCursorInfo") procSetConsoleTitle = kernel32.NewProc("SetConsoleTitleW") + procGetConsoleMode = kernel32.NewProc("GetConsoleMode") + procSetConsoleMode = kernel32.NewProc("SetConsoleMode") procCreateConsoleScreenBuffer = kernel32.NewProc("CreateConsoleScreenBuffer") ) @@ -98,6 +102,10 @@ func NewColorable(file *os.File) io.Writer { } if isatty.IsTerminal(file.Fd()) { + var mode uint32 + if r, _, _ := procGetConsoleMode.Call(file.Fd(), uintptr(unsafe.Pointer(&mode))); r != 0 && mode&cENABLE_VIRTUAL_TERMINAL_PROCESSING != 0 { + return file + } var csbi consoleScreenBufferInfo handle := syscall.Handle(file.Fd()) procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) @@ -1003,3 +1011,23 @@ func n256setup() { n256backAttr[i] = c.backgroundAttr() } } + +// EnableColorsStdout enable colors if possible. +func EnableColorsStdout(enabled *bool) func() { + var mode uint32 + h := os.Stdout.Fd() + if r, _, _ := procGetConsoleMode.Call(h, uintptr(unsafe.Pointer(&mode))); r != 0 { + if r, _, _ = procSetConsoleMode.Call(h, uintptr(mode|cENABLE_VIRTUAL_TERMINAL_PROCESSING)); r != 0 { + if enabled != nil { + *enabled = true + } + return func() { + procSetConsoleMode.Call(h, uintptr(mode)) + } + } + } + if enabled != nil { + *enabled = true + } + return func() {} +} diff --git a/vendor/github.com/mattn/go-colorable/go.mod b/vendor/github.com/mattn/go-colorable/go.mod index ef3ca9d4..1e590b81 100644 --- a/vendor/github.com/mattn/go-colorable/go.mod +++ b/vendor/github.com/mattn/go-colorable/go.mod @@ -1,3 +1,8 @@ module github.com/mattn/go-colorable -require github.com/mattn/go-isatty v0.0.8 +require ( + github.com/mattn/go-isatty v0.0.12 + golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae // indirect +) + +go 1.13 diff --git a/vendor/github.com/mattn/go-colorable/go.sum b/vendor/github.com/mattn/go-colorable/go.sum index 2c12960e..cf5b95d9 100644 --- a/vendor/github.com/mattn/go-colorable/go.sum +++ b/vendor/github.com/mattn/go-colorable/go.sum @@ -1,4 +1,5 @@ -github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/vendor/github.com/mattn/go-colorable/go.test.sh b/vendor/github.com/mattn/go-colorable/go.test.sh new file mode 100644 index 00000000..012162b0 --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/go.test.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e +echo "" > coverage.txt + +for d in $(go list ./... | grep -v vendor); do + go test -race -coverprofile=profile.out -covermode=atomic "$d" + if [ -f profile.out ]; then + cat profile.out >> coverage.txt + rm profile.out + fi +done diff --git a/vendor/github.com/mattn/go-isatty/.travis.yml b/vendor/github.com/mattn/go-isatty/.travis.yml index 5597e026..604314dd 100644 --- a/vendor/github.com/mattn/go-isatty/.travis.yml +++ b/vendor/github.com/mattn/go-isatty/.travis.yml @@ -1,13 +1,14 @@ language: go +sudo: false go: + - 1.13.x - tip -os: - - linux - - osx - before_install: - - go get github.com/mattn/goveralls - - go get golang.org/x/tools/cmd/cover + - go get -t -v ./... + script: - - $HOME/gopath/bin/goveralls -repotoken 3gHdORO5k5ziZcWMBxnd9LrMZaJs8m9x5 + - ./go.test.sh + +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/github.com/mattn/go-isatty/README.md b/vendor/github.com/mattn/go-isatty/README.md index 1e69004b..38418353 100644 --- a/vendor/github.com/mattn/go-isatty/README.md +++ b/vendor/github.com/mattn/go-isatty/README.md @@ -1,7 +1,7 @@ # go-isatty [![Godoc Reference](https://godoc.org/github.com/mattn/go-isatty?status.svg)](http://godoc.org/github.com/mattn/go-isatty) -[![Build Status](https://travis-ci.org/mattn/go-isatty.svg?branch=master)](https://travis-ci.org/mattn/go-isatty) +[![Codecov](https://codecov.io/gh/mattn/go-isatty/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-isatty) [![Coverage Status](https://coveralls.io/repos/github/mattn/go-isatty/badge.svg?branch=master)](https://coveralls.io/github/mattn/go-isatty?branch=master) [![Go Report Card](https://goreportcard.com/badge/mattn/go-isatty)](https://goreportcard.com/report/mattn/go-isatty) diff --git a/vendor/github.com/mattn/go-isatty/go.mod b/vendor/github.com/mattn/go-isatty/go.mod index 53d84a67..605c4c22 100644 --- a/vendor/github.com/mattn/go-isatty/go.mod +++ b/vendor/github.com/mattn/go-isatty/go.mod @@ -2,4 +2,4 @@ module github.com/mattn/go-isatty go 1.12 -require golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 +require golang.org/x/sys v0.0.0-20200116001909-b77594299b42 diff --git a/vendor/github.com/mattn/go-isatty/go.sum b/vendor/github.com/mattn/go-isatty/go.sum index 5e0752bd..912e29cb 100644 --- a/vendor/github.com/mattn/go-isatty/go.sum +++ b/vendor/github.com/mattn/go-isatty/go.sum @@ -1,2 +1,2 @@ -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/vendor/github.com/mattn/go-isatty/go.test.sh b/vendor/github.com/mattn/go-isatty/go.test.sh new file mode 100644 index 00000000..012162b0 --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/go.test.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e +echo "" > coverage.txt + +for d in $(go list ./... | grep -v vendor); do + go test -race -coverprofile=profile.out -covermode=atomic "$d" + if [ -f profile.out ]; then + cat profile.out >> coverage.txt + rm profile.out + fi +done diff --git a/vendor/github.com/mattn/go-isatty/isatty_android.go b/vendor/github.com/mattn/go-isatty/isatty_android.go deleted file mode 100644 index d3567cb5..00000000 --- a/vendor/github.com/mattn/go-isatty/isatty_android.go +++ /dev/null @@ -1,23 +0,0 @@ -// +build android - -package isatty - -import ( - "syscall" - "unsafe" -) - -const ioctlReadTermios = syscall.TCGETS - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - var termios syscall.Termios - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) - return err == 0 -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go index 07e93039..711f2880 100644 --- a/vendor/github.com/mattn/go-isatty/isatty_bsd.go +++ b/vendor/github.com/mattn/go-isatty/isatty_bsd.go @@ -3,18 +3,12 @@ package isatty -import ( - "syscall" - "unsafe" -) - -const ioctlReadTermios = syscall.TIOCGETA +import "golang.org/x/sys/unix" // IsTerminal return true if the file descriptor is terminal. func IsTerminal(fd uintptr) bool { - var termios syscall.Termios - _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) - return err == 0 + _, err := unix.IoctlGetTermios(int(fd), unix.TIOCGETA) + return err == nil } // IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 diff --git a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go index 453b025d..31a1ca97 100644 --- a/vendor/github.com/mattn/go-isatty/isatty_tcgets.go +++ b/vendor/github.com/mattn/go-isatty/isatty_tcgets.go @@ -1,6 +1,5 @@ // +build linux aix // +build !appengine -// +build !android package isatty diff --git a/vendor/github.com/mattn/go-isatty/renovate.json b/vendor/github.com/mattn/go-isatty/renovate.json new file mode 100644 index 00000000..5ae9d96b --- /dev/null +++ b/vendor/github.com/mattn/go-isatty/renovate.json @@ -0,0 +1,8 @@ +{ + "extends": [ + "config:base" + ], + "postUpdateOptions": [ + "gomodTidy" + ] +} diff --git a/vendor/github.com/mattn/go-runewidth/.travis.yml b/vendor/github.com/mattn/go-runewidth/.travis.yml index 5c9c2a30..6a21813a 100644 --- a/vendor/github.com/mattn/go-runewidth/.travis.yml +++ b/vendor/github.com/mattn/go-runewidth/.travis.yml @@ -1,8 +1,16 @@ language: go +sudo: false go: + - 1.13.x - tip + before_install: - - go get github.com/mattn/goveralls - - go get golang.org/x/tools/cmd/cover + - go get -t -v ./... + script: - - $HOME/gopath/bin/goveralls -repotoken lAKAWPzcGsD3A8yBX3BGGtRUdJ6CaGERL + - go generate + - git diff --cached --exit-code + - ./go.test.sh + +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/vendor/github.com/mattn/go-runewidth/README.mkd b/vendor/github.com/mattn/go-runewidth/README.md index 66663a94..aa56ab96 100644 --- a/vendor/github.com/mattn/go-runewidth/README.mkd +++ b/vendor/github.com/mattn/go-runewidth/README.md @@ -2,7 +2,7 @@ go-runewidth ============ [![Build Status](https://travis-ci.org/mattn/go-runewidth.png?branch=master)](https://travis-ci.org/mattn/go-runewidth) -[![Coverage Status](https://coveralls.io/repos/mattn/go-runewidth/badge.png?branch=HEAD)](https://coveralls.io/r/mattn/go-runewidth?branch=HEAD) +[![Codecov](https://codecov.io/gh/mattn/go-runewidth/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-runewidth) [![GoDoc](https://godoc.org/github.com/mattn/go-runewidth?status.svg)](http://godoc.org/github.com/mattn/go-runewidth) [![Go Report Card](https://goreportcard.com/badge/github.com/mattn/go-runewidth)](https://goreportcard.com/report/github.com/mattn/go-runewidth) diff --git a/vendor/github.com/mattn/go-runewidth/go.test.sh b/vendor/github.com/mattn/go-runewidth/go.test.sh new file mode 100644 index 00000000..012162b0 --- /dev/null +++ b/vendor/github.com/mattn/go-runewidth/go.test.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e +echo "" > coverage.txt + +for d in $(go list ./... | grep -v vendor); do + go test -race -coverprofile=profile.out -covermode=atomic "$d" + if [ -f profile.out ]; then + cat profile.out >> coverage.txt + rm profile.out + fi +done diff --git a/vendor/github.com/mattn/go-runewidth/runewidth.go b/vendor/github.com/mattn/go-runewidth/runewidth.go index 8d64da07..19f8e044 100644 --- a/vendor/github.com/mattn/go-runewidth/runewidth.go +++ b/vendor/github.com/mattn/go-runewidth/runewidth.go @@ -50,7 +50,6 @@ func inTables(r rune, ts ...table) bool { } func inTable(r rune, t table) bool { - // func (t table) IncludesRune(r rune) bool { if r < t[0].first { return false } diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_table.go b/vendor/github.com/mattn/go-runewidth/runewidth_table.go index 9ca6d0e2..a8ccee5b 100644 --- a/vendor/github.com/mattn/go-runewidth/runewidth_table.go +++ b/vendor/github.com/mattn/go-runewidth/runewidth_table.go @@ -1,3 +1,5 @@ +// Code generated by script/generate.go. DO NOT EDIT. + package runewidth var combining = table{ diff --git a/vendor/github.com/mattn/godown/go.mod b/vendor/github.com/mattn/godown/go.mod new file mode 100644 index 00000000..d43862ce --- /dev/null +++ b/vendor/github.com/mattn/godown/go.mod @@ -0,0 +1,8 @@ +module github.com/mattn/godown + +go 1.14 + +require ( + github.com/mattn/go-runewidth v0.0.8 + golang.org/x/net v0.0.0-20200202094626-16171245cfb2 +) diff --git a/vendor/github.com/mattn/godown/go.sum b/vendor/github.com/mattn/godown/go.sum new file mode 100644 index 00000000..ca61715d --- /dev/null +++ b/vendor/github.com/mattn/godown/go.sum @@ -0,0 +1,7 @@ +github.com/mattn/go-runewidth v0.0.8 h1:3tS41NlGYSmhhe/8fhGRzc+z3AYCw1Fe1WAyLuujKs0= +github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/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= diff --git a/vendor/github.com/mattn/godown/godown.go b/vendor/github.com/mattn/godown/godown.go index 10423be9..5f73743f 100644 --- a/vendor/github.com/mattn/godown/godown.go +++ b/vendor/github.com/mattn/godown/godown.go @@ -354,6 +354,7 @@ func walk(node *html.Node, w io.Writer, nest int, option *Option) { } } +// Option is optional information for Convert. type Option struct { GuessLang func(string) (string, error) Script bool diff --git a/vendor/github.com/dfordsoft/golib/LICENSE b/vendor/github.com/missdeer/golib/LICENSE index 0d9b5ada..0d9b5ada 100644 --- a/vendor/github.com/dfordsoft/golib/LICENSE +++ b/vendor/github.com/missdeer/golib/LICENSE diff --git a/vendor/github.com/dfordsoft/golib/ic/convutf8.go b/vendor/github.com/missdeer/golib/ic/convutf8.go index b4851497..b4851497 100644 --- a/vendor/github.com/dfordsoft/golib/ic/convutf8.go +++ b/vendor/github.com/missdeer/golib/ic/convutf8.go diff --git a/vendor/github.com/dfordsoft/golib/ic/ic.go b/vendor/github.com/missdeer/golib/ic/ic.go index 9e414e36..9e414e36 100644 --- a/vendor/github.com/dfordsoft/golib/ic/ic.go +++ b/vendor/github.com/missdeer/golib/ic/ic.go diff --git a/vendor/github.com/sirupsen/logrus/.golangci.yml b/vendor/github.com/sirupsen/logrus/.golangci.yml new file mode 100644 index 00000000..65dc2850 --- /dev/null +++ b/vendor/github.com/sirupsen/logrus/.golangci.yml @@ -0,0 +1,40 @@ +run: + # do not run on test files yet + tests: false + +# all available settings of specific linters +linters-settings: + errcheck: + # report about not checking of errors in type assetions: `a := b.(MyStruct)`; + # default is false: such cases aren't reported by default. + check-type-assertions: false + + # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; + # default is false: such cases aren't reported by default. + check-blank: false + + lll: + line-length: 100 + tab-width: 4 + + prealloc: + simple: false + range-loops: false + for-loops: false + + whitespace: + multi-if: false # Enforces newlines (or comments) after every multi-line if statement + multi-func: false # Enforces newlines (or comments) after every multi-line function signature + +linters: + enable: + - megacheck + - govet + disable: + - maligned + - prealloc + disable-all: false + presets: + - bugs + - unused + fast: false diff --git a/vendor/github.com/sirupsen/logrus/.travis.yml b/vendor/github.com/sirupsen/logrus/.travis.yml index 848938a6..5e20aa41 100644 --- a/vendor/github.com/sirupsen/logrus/.travis.yml +++ b/vendor/github.com/sirupsen/logrus/.travis.yml @@ -4,21 +4,13 @@ git: depth: 1 env: - GO111MODULE=on - - GO111MODULE=off -go: [ 1.11.x, 1.12.x ] -os: [ linux, osx ] -matrix: - exclude: - - go: 1.12.x - env: GO111MODULE=off - - go: 1.11.x - os: osx +go: [1.13.x, 1.14.x] +os: [linux, osx] install: - ./travis/install.sh - - if [[ "$GO111MODULE" == "on" ]]; then go mod download; fi - - if [[ "$GO111MODULE" == "off" ]]; then go get github.com/stretchr/testify/assert golang.org/x/sys/unix github.com/konsorten/go-windows-terminal-sequences; fi script: - ./travis/cross_build.sh + - ./travis/lint.sh - export GOMAXPROCS=4 - export GORACE=halt_on_error=1 - go test -race -v ./... diff --git a/vendor/github.com/sirupsen/logrus/CHANGELOG.md b/vendor/github.com/sirupsen/logrus/CHANGELOG.md index 51a7ab0c..584026d6 100644 --- a/vendor/github.com/sirupsen/logrus/CHANGELOG.md +++ b/vendor/github.com/sirupsen/logrus/CHANGELOG.md @@ -1,9 +1,32 @@ +# 1.6.0 +Fixes: + * end of line cleanup + * revert the entry concurrency bug fix whic leads to deadlock under some circumstances + * update dependency on go-windows-terminal-sequences to fix a crash with go 1.14 + +Features: + * add an option to the `TextFormatter` to completely disable fields quoting + +# 1.5.0 +Code quality: + * add golangci linter run on travis + +Fixes: + * add mutex for hooks concurrent access on `Entry` data + * caller function field for go1.14 + * fix build issue for gopherjs target + +Feature: + * add an hooks/writer sub-package whose goal is to split output on different stream depending on the trace level + * add a `DisableHTMLEscape` option in the `JSONFormatter` + * add `ForceQuote` and `PadLevelText` options in the `TextFormatter` + # 1.4.2 * Fixes build break for plan9, nacl, solaris # 1.4.1 This new release introduces: * Enhance TextFormatter to not print caller information when they are empty (#944) - * Remove dependency on golang.org/x/crypto (#932, #943) + * Remove dependency on golang.org/x/crypto (#932, #943) Fixes: * Fix Entry.WithContext method to return a copy of the initial entry (#941) @@ -11,7 +34,7 @@ Fixes: # 1.4.0 This new release introduces: * Add `DeferExitHandler`, similar to `RegisterExitHandler` but prepending the handler to the list of handlers (semantically like `defer`) (#848). - * Add `CallerPrettyfier` to `JSONFormatter` and `TextFormatter (#909, #911) + * Add `CallerPrettyfier` to `JSONFormatter` and `TextFormatter` (#909, #911) * Add `Entry.WithContext()` and `Entry.Context`, to set a context on entries to be used e.g. in hooks (#919). Fixes: diff --git a/vendor/github.com/sirupsen/logrus/README.md b/vendor/github.com/sirupsen/logrus/README.md index a4796eb0..5796706d 100644 --- a/vendor/github.com/sirupsen/logrus/README.md +++ b/vendor/github.com/sirupsen/logrus/README.md @@ -1,8 +1,28 @@ -# Logrus <img src="http://i.imgur.com/hTeVwmJ.png" width="40" height="40" alt=":walrus:" class="emoji" title=":walrus:"/> [![Build Status](https://travis-ci.org/sirupsen/logrus.svg?branch=master)](https://travis-ci.org/sirupsen/logrus) [![GoDoc](https://godoc.org/github.com/sirupsen/logrus?status.svg)](https://godoc.org/github.com/sirupsen/logrus) +# Logrus <img src="http://i.imgur.com/hTeVwmJ.png" width="40" height="40" alt=":walrus:" class="emoji" title=":walrus:"/> [![Build Status](https://travis-ci.org/sirupsen/logrus.svg?branch=master)](https://travis-ci.org/sirupsen/logrus) [![GoDoc](https://godoc.org/github.com/sirupsen/logrus?status.svg)](https://godoc.org/github.com/sirupsen/logrus) Logrus is a structured logger for Go (golang), completely API compatible with the standard library logger. +**Logrus is in maintenance-mode.** We will not be introducing new features. It's +simply too hard to do in a way that won't break many people's projects, which is +the last thing you want from your Logging library (again...). + +This does not mean Logrus is dead. Logrus will continue to be maintained for +security, (backwards compatible) bug fixes, and performance (where we are +limited by the interface). + +I believe Logrus' biggest contribution is to have played a part in today's +widespread use of structured logging in Golang. There doesn't seem to be a +reason to do a major, breaking iteration into Logrus V2, since the fantastic Go +community has built those independently. Many fantastic alternatives have sprung +up. Logrus would look like those, had it been re-designed with what we know +about structured logging in Go today. Check out, for example, +[Zerolog][zerolog], [Zap][zap], and [Apex][apex]. + +[zerolog]: https://github.com/rs/zerolog +[zap]: https://github.com/uber-go/zap +[apex]: https://github.com/apex/log + **Seeing weird case-sensitive problems?** It's in the past been possible to import Logrus as both upper- and lower-case. Due to the Go package environment, this caused issues in the community and we needed a standard. Some environments @@ -15,11 +35,6 @@ comments](https://github.com/sirupsen/logrus/issues/553#issuecomment-306591437). For an in-depth explanation of the casing issue, see [this comment](https://github.com/sirupsen/logrus/issues/570#issuecomment-313933276). -**Are you interested in assisting in maintaining Logrus?** Currently I have a -lot of obligations, and I am unable to provide Logrus with the maintainership it -needs. If you'd like to help, please reach out to me at `simon at author's -username dot com`. - Nicely color-coded in development (when a TTY is attached, otherwise just plain text): @@ -187,7 +202,7 @@ func main() { log.Out = os.Stdout // You could set this to any `io.Writer` such as a file - // file, err := os.OpenFile("logrus.log", os.O_CREATE|os.O_WRONLY, 0666) + // file, err := os.OpenFile("logrus.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) // if err == nil { // log.Out = file // } else { @@ -272,7 +287,7 @@ func init() { ``` Note: Syslog hook also support connecting to local syslog (Ex. "/dev/log" or "/var/run/syslog" or "/var/run/log"). For the detail, please check the [syslog hook README](hooks/syslog/README.md). -A list of currently known of service hook can be found in this wiki [page](https://github.com/sirupsen/logrus/wiki/Hooks) +A list of currently known service hooks can be found in this wiki [page](https://github.com/sirupsen/logrus/wiki/Hooks) #### Level logging @@ -354,6 +369,7 @@ The built-in logging formatters are: [github.com/mattn/go-colorable](https://github.com/mattn/go-colorable). * When colors are enabled, levels are truncated to 4 characters by default. To disable truncation set the `DisableLevelTruncation` field to `true`. + * When outputting to a TTY, it's often helpful to visually scan down a column where all the levels are the same width. Setting the `PadLevelText` field to `true` enables this behavior, by adding padding to the level text. * All options are listed in the [generated docs](https://godoc.org/github.com/sirupsen/logrus#TextFormatter). * `logrus.JSONFormatter`. Logs fields as JSON. * All options are listed in the [generated docs](https://godoc.org/github.com/sirupsen/logrus#JSONFormatter). @@ -364,8 +380,10 @@ Third party logging formatters: * [`GELF`](https://github.com/fabienm/go-logrus-formatters). Formats entries so they comply to Graylog's [GELF 1.1 specification](http://docs.graylog.org/en/2.4/pages/gelf.html). * [`logstash`](https://github.com/bshuster-repo/logrus-logstash-hook). Logs fields as [Logstash](http://logstash.net) Events. * [`prefixed`](https://github.com/x-cray/logrus-prefixed-formatter). Displays log entry source along with alternative layout. -* [`zalgo`](https://github.com/aybabtme/logzalgo). Invoking the P͉̫o̳̼̊w̖͈̰͎e̬͔̭͂r͚̼̹̲ ̫͓͉̳͈ō̠͕͖̚f̝͍̠ ͕̲̞͖͑Z̖̫̤̫ͪa͉̬͈̗l͖͎g̳̥o̰̥̅!̣͔̲̻͊̄ ̙̘̦̹̦. +* [`zalgo`](https://github.com/aybabtme/logzalgo). Invoking the Power of Zalgo. * [`nested-logrus-formatter`](https://github.com/antonfisher/nested-logrus-formatter). Converts logrus fields to a nested structure. +* [`powerful-logrus-formatter`](https://github.com/zput/zxcTool). get fileName, log's line number and the latest function's name when print log; Sava log to files. +* [`caption-json-formatter`](https://github.com/nolleh/caption_json_formatter). logrus's message json formatter with human-readable caption added. You can define your formatter by implementing the `Formatter` interface, requiring a `Format` method. `Format` takes an `*Entry`. `entry.Data` is a @@ -430,14 +448,14 @@ entries. It should not be a feature of the application-level logger. | Tool | Description | | ---- | ----------- | -|[Logrus Mate](https://github.com/gogap/logrus_mate)|Logrus mate is a tool for Logrus to manage loggers, you can initial logger's level, hook and formatter by config file, the logger will generated with different config at different environment.| +|[Logrus Mate](https://github.com/gogap/logrus_mate)|Logrus mate is a tool for Logrus to manage loggers, you can initial logger's level, hook and formatter by config file, the logger will be generated with different configs in different environments.| |[Logrus Viper Helper](https://github.com/heirko/go-contrib/tree/master/logrusHelper)|An Helper around Logrus to wrap with spf13/Viper to load configuration with fangs! And to simplify Logrus configuration use some behavior of [Logrus Mate](https://github.com/gogap/logrus_mate). [sample](https://github.com/heirko/iris-contrib/blob/master/middleware/logrus-logger/example) | #### Testing Logrus has a built in facility for asserting the presence of log messages. This is implemented through the `test` hook and provides: -* decorators for existing logger (`test.NewLocal` and `test.NewGlobal`) which basically just add the `test` hook +* decorators for existing logger (`test.NewLocal` and `test.NewGlobal`) which basically just adds the `test` hook * a test logger (`test.NewNullLogger`) that just records log messages (and does not output any): ```go @@ -465,7 +483,7 @@ func TestSomething(t*testing.T){ Logrus can register one or more functions that will be called when any `fatal` level message is logged. The registered handlers will be executed before -logrus performs a `os.Exit(1)`. This behavior may be helpful if callers need +logrus performs an `os.Exit(1)`. This behavior may be helpful if callers need to gracefully shutdown. Unlike a `panic("Something went wrong...")` call which can be intercepted with a deferred `recover` a call to `os.Exit(1)` can not be intercepted. ``` @@ -490,6 +508,6 @@ Situation when locking is not needed includes: 1) logger.Out is protected by locks. - 2) logger.Out is a os.File handler opened with `O_APPEND` flag, and every write is smaller than 4k. (This allow multi-thread/multi-process writing) + 2) logger.Out is an os.File handler opened with `O_APPEND` flag, and every write is smaller than 4k. (This allows multi-thread/multi-process writing) (Refer to http://www.notthewizard.com/2014/06/17/are-files-appends-really-atomic/) diff --git a/vendor/github.com/sirupsen/logrus/appveyor.yml b/vendor/github.com/sirupsen/logrus/appveyor.yml index 96c2ce15..df9d65c3 100644 --- a/vendor/github.com/sirupsen/logrus/appveyor.yml +++ b/vendor/github.com/sirupsen/logrus/appveyor.yml @@ -1,14 +1,14 @@ -version: "{build}"
-platform: x64
-clone_folder: c:\gopath\src\github.com\sirupsen\logrus
-environment:
- GOPATH: c:\gopath
-branches:
- only:
- - master
-install:
- - set PATH=%GOPATH%\bin;c:\go\bin;%PATH%
- - go version
-build_script:
- - go get -t
- - go test
+version: "{build}" +platform: x64 +clone_folder: c:\gopath\src\github.com\sirupsen\logrus +environment: + GOPATH: c:\gopath +branches: + only: + - master +install: + - set PATH=%GOPATH%\bin;c:\go\bin;%PATH% + - go version +build_script: + - go get -t + - go test diff --git a/vendor/github.com/sirupsen/logrus/entry.go b/vendor/github.com/sirupsen/logrus/entry.go index 63e25583..f6e062a3 100644 --- a/vendor/github.com/sirupsen/logrus/entry.go +++ b/vendor/github.com/sirupsen/logrus/entry.go @@ -85,10 +85,15 @@ func NewEntry(logger *Logger) *Entry { } } +// Returns the bytes representation of this entry from the formatter. +func (entry *Entry) Bytes() ([]byte, error) { + return entry.Logger.Formatter.Format(entry) +} + // Returns the string representation from the reader and ultimately the // formatter. func (entry *Entry) String() (string, error) { - serialized, err := entry.Logger.Formatter.Format(entry) + serialized, err := entry.Bytes() if err != nil { return "", err } @@ -103,7 +108,11 @@ func (entry *Entry) WithError(err error) *Entry { // Add a context to the Entry. func (entry *Entry) WithContext(ctx context.Context) *Entry { - return &Entry{Logger: entry.Logger, Data: entry.Data, Time: entry.Time, err: entry.err, Context: ctx} + dataCopy := make(Fields, len(entry.Data)) + for k, v := range entry.Data { + dataCopy[k] = v + } + return &Entry{Logger: entry.Logger, Data: dataCopy, Time: entry.Time, err: entry.err, Context: ctx} } // Add a single field to the Entry. @@ -144,7 +153,11 @@ func (entry *Entry) WithFields(fields Fields) *Entry { // Overrides the time of the Entry. func (entry *Entry) WithTime(t time.Time) *Entry { - return &Entry{Logger: entry.Logger, Data: entry.Data, Time: t, err: entry.err, Context: entry.Context} + dataCopy := make(Fields, len(entry.Data)) + for k, v := range entry.Data { + dataCopy[k] = v + } + return &Entry{Logger: entry.Logger, Data: dataCopy, Time: t, err: entry.err, Context: entry.Context} } // getPackageName reduces a fully qualified function name to the package name @@ -165,15 +178,20 @@ func getPackageName(f string) string { // getCaller retrieves the name of the first non-logrus calling function func getCaller() *runtime.Frame { - // cache this package's fully-qualified name callerInitOnce.Do(func() { - pcs := make([]uintptr, 2) + pcs := make([]uintptr, maximumCallerDepth) _ = runtime.Callers(0, pcs) - logrusPackage = getPackageName(runtime.FuncForPC(pcs[1]).Name()) - // now that we have the cache, we can skip a minimum count of known-logrus functions - // XXX this is dubious, the number of frames may vary + // dynamic get the package name and the minimum caller depth + for i := 0; i < maximumCallerDepth; i++ { + funcName := runtime.FuncForPC(pcs[i]).Name() + if strings.Contains(funcName, "getCaller") { + logrusPackage = getPackageName(funcName) + break + } + } + minimumCallerDepth = knownLogrusFrames }) @@ -187,7 +205,7 @@ func getCaller() *runtime.Frame { // If the caller isn't part of this package, we're done if pkg != logrusPackage { - return &f + return &f //nolint:scopelint } } @@ -217,9 +235,11 @@ func (entry Entry) log(level Level, msg string) { entry.Level = level entry.Message = msg + entry.Logger.mu.Lock() if entry.Logger.ReportCaller { entry.Caller = getCaller() } + entry.Logger.mu.Unlock() entry.fireHooks() @@ -255,11 +275,10 @@ func (entry *Entry) write() { serialized, err := entry.Logger.Formatter.Format(entry) if err != nil { fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", err) - } else { - _, err = entry.Logger.Out.Write(serialized) - if err != nil { - fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", err) - } + return + } + if _, err = entry.Logger.Out.Write(serialized); err != nil { + fmt.Fprintf(os.Stderr, "Failed to write to log, %v\n", err) } } diff --git a/vendor/github.com/sirupsen/logrus/exported.go b/vendor/github.com/sirupsen/logrus/exported.go index 62fc2f21..42b04f6c 100644 --- a/vendor/github.com/sirupsen/logrus/exported.go +++ b/vendor/github.com/sirupsen/logrus/exported.go @@ -80,7 +80,7 @@ func WithFields(fields Fields) *Entry { return std.WithFields(fields) } -// WithTime creats an entry from the standard logger and overrides the time of +// WithTime creates an entry from the standard logger and overrides the time of // logs generated with it. // // Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal diff --git a/vendor/github.com/sirupsen/logrus/go.mod b/vendor/github.com/sirupsen/logrus/go.mod index 12fdf989..d4132967 100644 --- a/vendor/github.com/sirupsen/logrus/go.mod +++ b/vendor/github.com/sirupsen/logrus/go.mod @@ -2,9 +2,10 @@ module github.com/sirupsen/logrus require ( github.com/davecgh/go-spew v1.1.1 // indirect - github.com/konsorten/go-windows-terminal-sequences v1.0.1 + github.com/konsorten/go-windows-terminal-sequences v1.0.3 github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/stretchr/objx v0.1.1 // indirect github.com/stretchr/testify v1.2.2 golang.org/x/sys v0.0.0-20190422165155-953cdadca894 ) + +go 1.13 diff --git a/vendor/github.com/sirupsen/logrus/go.sum b/vendor/github.com/sirupsen/logrus/go.sum index 596c318b..49c690f2 100644 --- a/vendor/github.com/sirupsen/logrus/go.sum +++ b/vendor/github.com/sirupsen/logrus/go.sum @@ -1,16 +1,12 @@ 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/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe h1:CHRGQ8V7OlCYtwaKPJi3iA7J+YdNKdo8j7nG5IgDhjs= -github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= 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.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= 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/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 h1:I6FyU15t786LL7oL/hn43zqTuEGr4PN7F4XJ1p4E3Y8= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/vendor/github.com/sirupsen/logrus/json_formatter.go b/vendor/github.com/sirupsen/logrus/json_formatter.go index 098a21a0..ba7f2371 100644 --- a/vendor/github.com/sirupsen/logrus/json_formatter.go +++ b/vendor/github.com/sirupsen/logrus/json_formatter.go @@ -28,6 +28,9 @@ type JSONFormatter struct { // DisableTimestamp allows disabling automatic timestamps in output DisableTimestamp bool + // DisableHTMLEscape allows disabling html escaping in output + DisableHTMLEscape bool + // DataKey allows users to put all the log entry parameters into a nested dictionary at a given key. DataKey string @@ -110,6 +113,7 @@ func (f *JSONFormatter) Format(entry *Entry) ([]byte, error) { } encoder := json.NewEncoder(b) + encoder.SetEscapeHTML(!f.DisableHTMLEscape) if f.PrettyPrint { encoder.SetIndent("", " ") } diff --git a/vendor/github.com/sirupsen/logrus/logger.go b/vendor/github.com/sirupsen/logrus/logger.go index c0c0b1e5..6fdda748 100644 --- a/vendor/github.com/sirupsen/logrus/logger.go +++ b/vendor/github.com/sirupsen/logrus/logger.go @@ -68,10 +68,10 @@ func (mw *MutexWrap) Disable() { // `Out` and `Hooks` directly on the default logger instance. You can also just // instantiate your own: // -// var log = &Logger{ +// var log = &logrus.Logger{ // Out: os.Stderr, -// Formatter: new(JSONFormatter), -// Hooks: make(LevelHooks), +// Formatter: new(logrus.JSONFormatter), +// Hooks: make(logrus.LevelHooks), // Level: logrus.DebugLevel, // } // @@ -100,8 +100,9 @@ func (logger *Logger) releaseEntry(entry *Entry) { logger.entryPool.Put(entry) } -// Adds a field to the log entry, note that it doesn't log until you call -// Debug, Print, Info, Warn, Error, Fatal or Panic. It only creates a log entry. +// WithField allocates a new entry and adds a field to it. +// Debug, Print, Info, Warn, Error, Fatal or Panic must be then applied to +// this new returned entry. // If you want multiple fields, use `WithFields`. func (logger *Logger) WithField(key string, value interface{}) *Entry { entry := logger.newEntry() diff --git a/vendor/github.com/sirupsen/logrus/logrus.go b/vendor/github.com/sirupsen/logrus/logrus.go index 8644761f..2f16224c 100644 --- a/vendor/github.com/sirupsen/logrus/logrus.go +++ b/vendor/github.com/sirupsen/logrus/logrus.go @@ -51,7 +51,7 @@ func (level *Level) UnmarshalText(text []byte) error { return err } - *level = Level(l) + *level = l return nil } diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_bsd.go b/vendor/github.com/sirupsen/logrus/terminal_check_bsd.go index 3c4f43f9..49978998 100644 --- a/vendor/github.com/sirupsen/logrus/terminal_check_bsd.go +++ b/vendor/github.com/sirupsen/logrus/terminal_check_bsd.go @@ -1,4 +1,5 @@ // +build darwin dragonfly freebsd netbsd openbsd +// +build !js package logrus @@ -10,4 +11,3 @@ func isTerminal(fd int) bool { _, err := unix.IoctlGetTermios(fd, ioctlReadTermios) return err == nil } - diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_js.go b/vendor/github.com/sirupsen/logrus/terminal_check_js.go new file mode 100644 index 00000000..ebdae3ec --- /dev/null +++ b/vendor/github.com/sirupsen/logrus/terminal_check_js.go @@ -0,0 +1,7 @@ +// +build js + +package logrus + +func isTerminal(fd int) bool { + return false +} diff --git a/vendor/github.com/sirupsen/logrus/terminal_check_unix.go b/vendor/github.com/sirupsen/logrus/terminal_check_unix.go index 355dc966..cc4fe6e3 100644 --- a/vendor/github.com/sirupsen/logrus/terminal_check_unix.go +++ b/vendor/github.com/sirupsen/logrus/terminal_check_unix.go @@ -1,4 +1,5 @@ // +build linux aix +// +build !js package logrus @@ -10,4 +11,3 @@ func isTerminal(fd int) bool { _, err := unix.IoctlGetTermios(fd, ioctlReadTermios) return err == nil } - diff --git a/vendor/github.com/sirupsen/logrus/text_formatter.go b/vendor/github.com/sirupsen/logrus/text_formatter.go index e01587c4..3c28b54c 100644 --- a/vendor/github.com/sirupsen/logrus/text_formatter.go +++ b/vendor/github.com/sirupsen/logrus/text_formatter.go @@ -6,9 +6,11 @@ import ( "os" "runtime" "sort" + "strconv" "strings" "sync" "time" + "unicode/utf8" ) const ( @@ -32,6 +34,14 @@ type TextFormatter struct { // Force disabling colors. DisableColors bool + // Force quoting of all values + ForceQuote bool + + // DisableQuote disables quoting for all values. + // DisableQuote will have a lower priority than ForceQuote. + // If both of them are set to true, quote will be forced on all values. + DisableQuote bool + // Override coloring based on CLICOLOR and CLICOLOR_FORCE. - https://bixense.com/clicolors/ EnvironmentOverrideColors bool @@ -57,6 +67,10 @@ type TextFormatter struct { // Disables the truncation of the level text to 4 characters. DisableLevelTruncation bool + // PadLevelText Adds padding the level text so that all the levels output at the same length + // PadLevelText is a superset of the DisableLevelTruncation option + PadLevelText bool + // QuoteEmptyFields will wrap empty fields in quotes if true QuoteEmptyFields bool @@ -79,23 +93,32 @@ type TextFormatter struct { CallerPrettyfier func(*runtime.Frame) (function string, file string) terminalInitOnce sync.Once + + // The max length of the level text, generated dynamically on init + levelTextMaxLength int } func (f *TextFormatter) init(entry *Entry) { if entry.Logger != nil { f.isTerminal = checkIfTerminal(entry.Logger.Out) } + // Get the max length of the level text + for _, level := range AllLevels { + levelTextLength := utf8.RuneCount([]byte(level.String())) + if levelTextLength > f.levelTextMaxLength { + f.levelTextMaxLength = levelTextLength + } + } } func (f *TextFormatter) isColored() bool { isColored := f.ForceColors || (f.isTerminal && (runtime.GOOS != "windows")) if f.EnvironmentOverrideColors { - if force, ok := os.LookupEnv("CLICOLOR_FORCE"); ok && force != "0" { + switch force, ok := os.LookupEnv("CLICOLOR_FORCE"); { + case ok && force != "0": isColored = true - } else if ok && force == "0" { - isColored = false - } else if os.Getenv("CLICOLOR") == "0" { + case ok && force == "0", os.Getenv("CLICOLOR") == "0": isColored = false } } @@ -217,9 +240,18 @@ func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []strin } levelText := strings.ToUpper(entry.Level.String()) - if !f.DisableLevelTruncation { + if !f.DisableLevelTruncation && !f.PadLevelText { levelText = levelText[0:4] } + if f.PadLevelText { + // Generates the format string used in the next line, for example "%-6s" or "%-7s". + // Based on the max level text length. + formatString := "%-" + strconv.Itoa(f.levelTextMaxLength) + "s" + // Formats the level text by appending spaces up to the max length, for example: + // - "INFO " + // - "WARNING" + levelText = fmt.Sprintf(formatString, levelText) + } // Remove a single newline if it already exists in the message to keep // the behavior of logrus text_formatter the same as the stdlib log package @@ -243,11 +275,12 @@ func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []strin } } - if f.DisableTimestamp { + switch { + case f.DisableTimestamp: fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m%s %-44s ", levelColor, levelText, caller, entry.Message) - } else if !f.FullTimestamp { + case !f.FullTimestamp: fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%04d]%s %-44s ", levelColor, levelText, int(entry.Time.Sub(baseTimestamp)/time.Second), caller, entry.Message) - } else { + default: fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%s]%s %-44s ", levelColor, levelText, entry.Time.Format(timestampFormat), caller, entry.Message) } for _, k := range keys { @@ -258,9 +291,15 @@ func (f *TextFormatter) printColored(b *bytes.Buffer, entry *Entry, keys []strin } func (f *TextFormatter) needsQuoting(text string) bool { + if f.ForceQuote { + return true + } if f.QuoteEmptyFields && len(text) == 0 { return true } + if f.DisableQuote { + return false + } for _, ch := range text { if !((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || diff --git a/vendor/github.com/sirupsen/logrus/writer.go b/vendor/github.com/sirupsen/logrus/writer.go index 9e1f7513..72e8e3a1 100644 --- a/vendor/github.com/sirupsen/logrus/writer.go +++ b/vendor/github.com/sirupsen/logrus/writer.go @@ -6,10 +6,16 @@ import ( "runtime" ) +// Writer at INFO level. See WriterLevel for details. func (logger *Logger) Writer() *io.PipeWriter { return logger.WriterLevel(InfoLevel) } +// WriterLevel returns an io.Writer that can be used to write arbitrary text to +// the logger at the given log level. Each line written to the writer will be +// printed in the usual way using formatters and hooks. The writer is part of an +// io.Pipe and it is the callers responsibility to close the writer when done. +// This can be used to override the standard library logger easily. func (logger *Logger) WriterLevel(level Level) *io.PipeWriter { return NewEntry(logger).WriterLevel(level) } diff --git a/vendor/github.com/slack-go/slack/block_conv.go b/vendor/github.com/slack-go/slack/block_conv.go index 43c0c96b..00d59c3b 100644 --- a/vendor/github.com/slack-go/slack/block_conv.go +++ b/vendor/github.com/slack-go/slack/block_conv.go @@ -108,6 +108,8 @@ func (b *InputBlock) UnmarshalJSON(data []byte) error { e = &PlainTextInputBlockElement{} case "static_select", "external_select", "users_select", "conversations_select", "channels_select": e = &SelectBlockElement{} + case "multi_static_select", "multi_external_select", "multi_users_select", "multi_conversations_select", "multi_channels_select": + e = &MultiSelectBlockElement{} default: return errors.New("unsupported block element type") } diff --git a/vendor/github.com/slack-go/slack/block_element.go b/vendor/github.com/slack-go/slack/block_element.go index 8460e957..50971bfa 100644 --- a/vendor/github.com/slack-go/slack/block_element.go +++ b/vendor/github.com/slack-go/slack/block_element.go @@ -3,6 +3,7 @@ package slack // https://api.slack.com/reference/messaging/block-elements const ( + METCheckboxGroups MessageElementType = "checkboxes" METImage MessageElementType = "image" METButton MessageElementType = "button" METOverflow MessageElementType = "overflow" @@ -363,6 +364,32 @@ func NewPlainTextInputBlockElement(placeholder *TextBlockObject, actionID string } } +// CheckboxGroupsBlockElement defines an element which allows users to choose +// one or more items from a list of possible options. +// +// More Information: https://api.slack.com/reference/block-kit/block-elements#checkboxes +type CheckboxGroupsBlockElement struct { + Type MessageElementType `json:"type"` + ActionID string `json:"action_id"` + Options []*OptionBlockObject `json:"options"` + InitialOptions []*OptionBlockObject `json:"initial_options,omitempty"` + Confirm *ConfirmationBlockObject `json:"confirm,omitempty"` +} + +// ElementType returns the type of the Element +func (c CheckboxGroupsBlockElement) ElementType() MessageElementType { + return c.Type +} + +// NewRadioButtonsBlockElement returns an instance of a radio block element +func NewCheckboxGroupsBlockElement(actionID string, options ...*OptionBlockObject) *CheckboxGroupsBlockElement { + return &CheckboxGroupsBlockElement{ + Type: METCheckboxGroups, + ActionID: actionID, + Options: options, + } +} + // RadioButtonsBlockElement defines an element which lets users choose one item // from a list of possible options. // diff --git a/vendor/github.com/slack-go/slack/chat.go b/vendor/github.com/slack-go/slack/chat.go index 1281b15a..c5b524c1 100644 --- a/vendor/github.com/slack-go/slack/chat.go +++ b/vendor/github.com/slack-go/slack/chat.go @@ -261,14 +261,16 @@ const ( ) type sendConfig struct { - apiurl string - options []MsgOption - mode sendMode - endpoint string - values url.Values - attachments []Attachment - blocks Blocks - responseType string + apiurl string + options []MsgOption + mode sendMode + endpoint string + values url.Values + attachments []Attachment + blocks Blocks + responseType string + replaceOriginal bool + deleteOriginal bool } func (t sendConfig) BuildRequest(token, channelID string) (req *http.Request, _ func(*chatResponseFull) responseParser, err error) { @@ -279,11 +281,13 @@ func (t sendConfig) BuildRequest(token, channelID string) (req *http.Request, _ switch t.mode { case chatResponse: return responseURLSender{ - endpoint: t.endpoint, - values: t.values, - attachments: t.attachments, - blocks: t.blocks, - responseType: t.responseType, + endpoint: t.endpoint, + values: t.values, + attachments: t.attachments, + blocks: t.blocks, + responseType: t.responseType, + replaceOriginal: t.replaceOriginal, + deleteOriginal: t.deleteOriginal, }.BuildRequest() default: return formSender{endpoint: t.endpoint, values: t.values}.BuildRequest() @@ -303,20 +307,24 @@ func (t formSender) BuildRequest() (*http.Request, func(*chatResponseFull) respo } type responseURLSender struct { - endpoint string - values url.Values - attachments []Attachment - blocks Blocks - responseType string + endpoint string + values url.Values + attachments []Attachment + blocks Blocks + responseType string + replaceOriginal bool + deleteOriginal bool } func (t responseURLSender) BuildRequest() (*http.Request, func(*chatResponseFull) responseParser, error) { req, err := jsonReq(t.endpoint, Msg{ - Text: t.values.Get("text"), - Timestamp: t.values.Get("ts"), - Attachments: t.attachments, - Blocks: t.blocks, - ResponseType: t.responseType, + Text: t.values.Get("text"), + Timestamp: t.values.Get("ts"), + Attachments: t.attachments, + Blocks: t.blocks, + ResponseType: t.responseType, + ReplaceOriginal: t.replaceOriginal, + DeleteOriginal: t.deleteOriginal, }) return req, func(resp *chatResponseFull) responseParser { return newContentTypeParser(resp) @@ -405,6 +413,26 @@ func MsgOptionResponseURL(url string, responseType string) MsgOption { } } +// MsgOptionReplaceOriginal replaces original message with response url +func MsgOptionReplaceOriginal(responseURL string) MsgOption { + return func(config *sendConfig) error { + config.mode = chatResponse + config.endpoint = responseURL + config.replaceOriginal = true + return nil + } +} + +// MsgOptionDeleteOriginal deletes original message with response url +func MsgOptionDeleteOriginal(responseURL string) MsgOption { + return func(config *sendConfig) error { + config.mode = chatResponse + config.endpoint = responseURL + config.deleteOriginal = true + return nil + } +} + // MsgOptionAsUser whether or not to send the message as the user. func MsgOptionAsUser(b bool) MsgOption { return func(config *sendConfig) error { diff --git a/vendor/github.com/slack-go/slack/go.mod b/vendor/github.com/slack-go/slack/go.mod index b57c9b35..2107e612 100644 --- a/vendor/github.com/slack-go/slack/go.mod +++ b/vendor/github.com/slack-go/slack/go.mod @@ -3,7 +3,6 @@ module github.com/slack-go/slack require ( github.com/go-test/deep v1.0.4 github.com/gorilla/websocket v1.2.0 - github.com/nlopes/slack v0.6.0 github.com/pkg/errors v0.8.0 github.com/stretchr/testify v1.2.2 ) diff --git a/vendor/github.com/slack-go/slack/go.sum b/vendor/github.com/slack-go/slack/go.sum index 196525e7..7a0ae46e 100644 --- a/vendor/github.com/slack-go/slack/go.sum +++ b/vendor/github.com/slack-go/slack/go.sum @@ -4,8 +4,6 @@ github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho= github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/gorilla/websocket v1.2.0 h1:VJtLvh6VQym50czpZzx07z/kw9EgAxI3x1ZB8taTMQQ= github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/nlopes/slack v0.6.0 h1:jt0jxVQGhssx1Ib7naAOZEZcGdtIhTzkP0nopK0AsRA= -github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk= github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/vendor/github.com/slack-go/slack/groups.go b/vendor/github.com/slack-go/slack/groups.go index 23374869..6ea1b134 100644 --- a/vendor/github.com/slack-go/slack/groups.go +++ b/vendor/github.com/slack-go/slack/groups.go @@ -353,3 +353,24 @@ func (api *Client) SetGroupTopicContext(ctx context.Context, group, topic string } return response.Topic, nil } + +// GetGroupReplies gets an entire thread (a message plus all the messages in reply to it). +// see https://api.slack.com/methods/groups.replies +func (api *Client) GetGroupReplies(channelID, thread_ts string) ([]Message, error) { + return api.GetGroupRepliesContext(context.Background(), channelID, thread_ts) +} + +// GetGroupRepliesContext gets an entire thread (a message plus all the messages in reply to it) with a custom context +// see https://api.slack.com/methods/groups.replies +func (api *Client) GetGroupRepliesContext(ctx context.Context, channelID, thread_ts string) ([]Message, error) { + values := url.Values{ + "token": {api.token}, + "channel": {channelID}, + "thread_ts": {thread_ts}, + } + response, err := api.groupRequest(ctx, "groups.replies", values) + if err != nil { + return nil, err + } + return response.History.Messages, nil +} diff --git a/vendor/github.com/slack-go/slack/history.go b/vendor/github.com/slack-go/slack/history.go index 87b2e1ed..49dfe354 100644 --- a/vendor/github.com/slack-go/slack/history.go +++ b/vendor/github.com/slack-go/slack/history.go @@ -22,6 +22,7 @@ type History struct { Latest string `json:"latest"` Messages []Message `json:"messages"` HasMore bool `json:"has_more"` + Unread int `json:"unread_count_display"` } // NewHistoryParameters provides an instance of HistoryParameters with all the sane default values set diff --git a/vendor/github.com/slack-go/slack/interactions.go b/vendor/github.com/slack-go/slack/interactions.go index c56a34fe..ec662ee3 100644 --- a/vendor/github.com/slack-go/slack/interactions.go +++ b/vendor/github.com/slack-go/slack/interactions.go @@ -27,6 +27,7 @@ const ( InteractionTypeBlockSuggestion = InteractionType("block_suggestion") InteractionTypeViewSubmission = InteractionType("view_submission") InteractionTypeViewClosed = InteractionType("view_closed") + InteractionTypeShortcut = InteractionType("shortcut") ) // InteractionCallback is sent from slack when a user interactions with a button or dialog. diff --git a/vendor/github.com/slack-go/slack/messages.go b/vendor/github.com/slack-go/slack/messages.go index f2f5b145..09db5463 100644 --- a/vendor/github.com/slack-go/slack/messages.go +++ b/vendor/github.com/slack-go/slack/messages.go @@ -22,7 +22,7 @@ type Message struct { // Msg contains information about a slack message type Msg struct { // Basic Message - ClientMsgID string `json:"client_msg_id"` + ClientMsgID string `json:"client_msg_id,omitempty"` Type string `json:"type,omitempty"` Channel string `json:"channel,omitempty"` User string `json:"user,omitempty"` diff --git a/vendor/github.com/slack-go/slack/oauth.go b/vendor/github.com/slack-go/slack/oauth.go index 64118fb0..43139768 100644 --- a/vendor/github.com/slack-go/slack/oauth.go +++ b/vendor/github.com/slack-go/slack/oauth.go @@ -38,7 +38,6 @@ type OAuthV2Response struct { Scope string `json:"scope"` BotUserID string `json:"bot_user_id"` AppID string `json:"app_id"` - TeamID string `json:"team_id"` Team OAuthV2ResponseTeam `json:"team"` Enterprise OAuthV2ResponseEnterprise `json:"enterprise"` AuthedUser OAuthV2ResponseAuthedUser `json:"authed_user"` diff --git a/vendor/github.com/slack-go/slack/users.go b/vendor/github.com/slack-go/slack/users.go index 6001e0fa..364958e8 100644 --- a/vendor/github.com/slack-go/slack/users.go +++ b/vendor/github.com/slack-go/slack/users.go @@ -5,6 +5,7 @@ import ( "encoding/json" "net/url" "strconv" + "strings" "time" ) @@ -184,6 +185,7 @@ type TeamIdentity struct { type userResponseFull struct { Members []User `json:"members,omitempty"` User `json:"user,omitempty"` + Users []User `json:"users,omitempty"` UserPresence SlackResponse Metadata ResponseMetadata `json:"response_metadata"` @@ -252,6 +254,26 @@ func (api *Client) GetUserInfoContext(ctx context.Context, user string) (*User, return &response.User, nil } +// GetUsersInfo will retrieve the complete multi-users information +func (api *Client) GetUsersInfo(users ...string) (*[]User, error) { + return api.GetUsersInfoContext(context.Background(), users...) +} + +// GetUsersInfoContext will retrieve the complete multi-users information with a custom context +func (api *Client) GetUsersInfoContext(ctx context.Context, users ...string) (*[]User, error) { + values := url.Values{ + "token": {api.token}, + "users": {strings.Join(users, ",")}, + "include_locale": {strconv.FormatBool(true)}, + } + + response, err := api.userRequest(ctx, "users.info", values) + if err != nil { + return nil, err + } + return &response.Users, nil +} + // GetUsersOption options for the GetUsers method call. type GetUsersOption func(*UserPagination) diff --git a/vendor/github.com/slack-go/slack/websocket_managed_conn.go b/vendor/github.com/slack-go/slack/websocket_managed_conn.go index a8844f82..8607b3a3 100644 --- a/vendor/github.com/slack-go/slack/websocket_managed_conn.go +++ b/vendor/github.com/slack-go/slack/websocket_managed_conn.go @@ -572,10 +572,11 @@ var EventMapping = map[string]interface{}{ "member_joined_channel": MemberJoinedChannelEvent{}, "member_left_channel": MemberLeftChannelEvent{}, - "subteam_created": SubteamCreatedEvent{}, - "subteam_self_added": SubteamSelfAddedEvent{}, - "subteam_self_removed": SubteamSelfRemovedEvent{}, - "subteam_updated": SubteamUpdatedEvent{}, + "subteam_created": SubteamCreatedEvent{}, + "subteam_members_changed": SubteamMembersChangedEvent{}, + "subteam_self_added": SubteamSelfAddedEvent{}, + "subteam_self_removed": SubteamSelfRemovedEvent{}, + "subteam_updated": SubteamUpdatedEvent{}, "desktop_notification": DesktopNotificationEvent{}, "mobile_in_app_notification": MobileInAppNotificationEvent{}, diff --git a/vendor/github.com/spf13/viper/.editorconfig b/vendor/github.com/spf13/viper/.editorconfig new file mode 100644 index 00000000..63afcbcd --- /dev/null +++ b/vendor/github.com/spf13/viper/.editorconfig @@ -0,0 +1,15 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.go] +indent_style = tab + +[{Makefile, *.mk}] +indent_style = tab diff --git a/vendor/github.com/spf13/viper/.gitignore b/vendor/github.com/spf13/viper/.gitignore index d6941f32..89625083 100644 --- a/vendor/github.com/spf13/viper/.gitignore +++ b/vendor/github.com/spf13/viper/.gitignore @@ -1,20 +1,5 @@ +/.idea/ /bin/ /build/ /var/ /vendor/ - -# IDE integration -/.vscode/* -!/.vscode/launch.json -!/.vscode/tasks.json -/.idea/* -!/.idea/codeStyles/ -!/.idea/copyright/ -!/.idea/dataSources.xml -!/.idea/*.iml -!/.idea/externalDependencies.xml -!/.idea/go.imports.xml -!/.idea/modules.xml -!/.idea/runConfigurations/ -!/.idea/scopes/ -!/.idea/sqldialects.xml diff --git a/vendor/github.com/spf13/viper/.golangci.yml b/vendor/github.com/spf13/viper/.golangci.yml index 0ea9249e..a0755ce7 100644 --- a/vendor/github.com/spf13/viper/.golangci.yml +++ b/vendor/github.com/spf13/viper/.golangci.yml @@ -21,4 +21,7 @@ linters: - scopelint - gocyclo - gocognit - - gocritic
\ No newline at end of file + - gocritic + +service: + golangci-lint-version: 1.21.x diff --git a/vendor/github.com/spf13/viper/.travis.yml b/vendor/github.com/spf13/viper/.travis.yml deleted file mode 100644 index ed677bbb..00000000 --- a/vendor/github.com/spf13/viper/.travis.yml +++ /dev/null @@ -1,32 +0,0 @@ -go_import_path: github.com/spf13/viper - -language: go - -env: - global: - - GO111MODULE="on" - - GOFLAGS="-mod=readonly" - -go: - - 1.11.x - - 1.12.x - - 1.13.x - - tip - -os: - - linux - - osx - -matrix: - allow_failures: - - go: tip - fast_finish: true - -script: - - go install ./... - - diff -u <(echo -n) <(gofmt -d .) - - go test -v ./... - -after_success: - - go get -u -d github.com/spf13/hugo - - cd $GOPATH/src/github.com/spf13/hugo && make && ./hugo -s docs && cd - diff --git a/vendor/github.com/spf13/viper/Makefile b/vendor/github.com/spf13/viper/Makefile index e39b8b5e..1c2cab03 100644 --- a/vendor/github.com/spf13/viper/Makefile +++ b/vendor/github.com/spf13/viper/Makefile @@ -1,9 +1,12 @@ # A Self-Documenting Makefile: http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html OS = $(shell uname | tr A-Z a-z) +export PATH := $(abspath bin/):${PATH} # Build variables BUILD_DIR ?= build +export CGO_ENABLED ?= 0 +export GOOS = $(shell go env GOOS) ifeq (${VERBOSE}, 1) ifeq ($(filter -v,${GOARGS}),) GOARGS += -v @@ -12,7 +15,7 @@ TEST_FORMAT = short-verbose endif # Dependency versions -GOTESTSUM_VERSION = 0.3.5 +GOTESTSUM_VERSION = 0.4.0 GOLANGCI_VERSION = 1.21.0 # Add the ability to override some variables @@ -33,20 +36,19 @@ bin/gotestsum-${GOTESTSUM_VERSION}: curl -L https://github.com/gotestyourself/gotestsum/releases/download/v${GOTESTSUM_VERSION}/gotestsum_${GOTESTSUM_VERSION}_${OS}_amd64.tar.gz | tar -zOxf - gotestsum > ./bin/gotestsum-${GOTESTSUM_VERSION} && chmod +x ./bin/gotestsum-${GOTESTSUM_VERSION} TEST_PKGS ?= ./... -TEST_REPORT_NAME ?= results.xml .PHONY: test -test: TEST_REPORT ?= main test: TEST_FORMAT ?= short test: SHELL = /bin/bash +test: export CGO_ENABLED=1 test: bin/gotestsum ## Run tests - @mkdir -p ${BUILD_DIR}/test_results/${TEST_REPORT} - bin/gotestsum --no-summary=skipped --junitfile ${BUILD_DIR}/test_results/${TEST_REPORT}/${TEST_REPORT_NAME} --format ${TEST_FORMAT} -- $(filter-out -v,${GOARGS}) $(if ${TEST_PKGS},${TEST_PKGS},./...) + @mkdir -p ${BUILD_DIR} + bin/gotestsum --no-summary=skipped --junitfile ${BUILD_DIR}/coverage.xml --format ${TEST_FORMAT} -- -race -coverprofile=${BUILD_DIR}/coverage.txt -covermode=atomic $(filter-out -v,${GOARGS}) $(if ${TEST_PKGS},${TEST_PKGS},./...) bin/golangci-lint: bin/golangci-lint-${GOLANGCI_VERSION} @ln -sf golangci-lint-${GOLANGCI_VERSION} bin/golangci-lint bin/golangci-lint-${GOLANGCI_VERSION}: @mkdir -p bin - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | BINARY=golangci-lint bash -s -- v${GOLANGCI_VERSION} + curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b ./bin/ v${GOLANGCI_VERSION} @mv bin/golangci-lint $@ .PHONY: lint @@ -57,6 +59,9 @@ lint: bin/golangci-lint ## Run linter fix: bin/golangci-lint ## Fix lint violations bin/golangci-lint run --fix +# Add custom targets here +-include custom.mk + .PHONY: list list: ## List all make targets @${MAKE} -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | sort diff --git a/vendor/github.com/spf13/viper/README.md b/vendor/github.com/spf13/viper/README.md index 327308bc..dfd8034f 100644 --- a/vendor/github.com/spf13/viper/README.md +++ b/vendor/github.com/spf13/viper/README.md @@ -1,10 +1,13 @@ -![viper logo](https://cloud.githubusercontent.com/assets/173412/10886745/998df88a-8151-11e5-9448-4736db51020d.png) +![Viper](.github/logo.png?raw=true) -Go configuration with fangs! +[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/avelino/awesome-go#configuration) -[![Actions](https://github.com/spf13/viper/workflows/CI/badge.svg)](https://github.com/spf13/viper) +[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/spf13/viper/CI?style=flat-square)](https://github.com/spf13/viper/actions?query=workflow%3ACI) [![Join the chat at https://gitter.im/spf13/viper](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/spf13/viper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![GoDoc](https://godoc.org/github.com/spf13/viper?status.svg)](https://godoc.org/github.com/spf13/viper) +[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/viper?style=flat-square)](https://goreportcard.com/report/github.com/spf13/viper) +[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/mod/github.com/spf13/viper) + +**Go configuration with fangs!** Many Go projects are built using Viper including: @@ -101,6 +104,7 @@ where a configuration file is expected. ```go viper.SetConfigName("config") // name of config file (without extension) +viper.SetConfigType("yaml") // REQUIRED if the config file does not have the extension in the name viper.AddConfigPath("/etc/appname/") // path to look for the config file in viper.AddConfigPath("$HOME/.appname") // call multiple times to add many search paths viper.AddConfigPath(".") // optionally look for config in the working directory @@ -124,7 +128,7 @@ if err := viper.ReadInConfig(); err != nil { // Config file found and successfully parsed ``` -*NOTE:* You can also have a file without an extension and specify the format programmaticaly. For those configuration files that lie in the home of the user without any extension like `.bashrc` +*NOTE [since 1.6]:* You can also have a file without an extension and specify the format programmaticaly. For those configuration files that lie in the home of the user without any extension like `.bashrc` ### Writing Config Files @@ -399,7 +403,7 @@ in a Key/Value store such as etcd or Consul. These values take precedence over default values, but are overridden by configuration values retrieved from disk, flags, or environment variables. -Viper uses [crypt](https://github.com/xordataexchange/crypt) to retrieve +Viper uses [crypt](https://github.com/bketelsen/crypt) to retrieve configuration from the K/V store, which means that you can store your configuration values encrypted and have them automatically decrypted if you have the correct gpg keyring. Encryption is optional. @@ -411,7 +415,7 @@ independently of it. K/V store. `crypt` defaults to etcd on http://127.0.0.1:4001. ```bash -$ go get github.com/xordataexchange/crypt/bin/crypt +$ go get github.com/bketelsen/crypt/bin/crypt $ crypt set -plaintext /config/hugo.json /Users/hugo/settings/config.json ``` @@ -434,7 +438,7 @@ err := viper.ReadRemoteConfig() ``` #### Consul -You need to set a key to Consul key/value storage with JSON value containing your desired config. +You need to set a key to Consul key/value storage with JSON value containing your desired config. For example, create a Consul key/value store key `MY_CONSUL_KEY` with value: ```json @@ -453,6 +457,16 @@ fmt.Println(viper.Get("port")) // 8080 fmt.Println(viper.Get("hostname")) // myhostname.com ``` +#### Firestore + +```go +viper.AddRemoteProvider("firestore", "google-cloud-project-id", "collection/document") +viper.SetConfigType("json") // Config's format: "json", "toml", "yaml", "yml" +err := viper.ReadRemoteConfig() +``` + +Of course, you're allowed to use `SecureRemoteProvider` also + ### Remote Key/Value Store Example - Encrypted ```go @@ -692,18 +706,49 @@ var C config v.Unmarshal(&C) ``` +Viper also supports unmarshaling into embedded structs: + +```go +/* +Example config: + +module: + enabled: true + token: 89h3f98hbwf987h3f98wenf89ehf +*/ +type config struct { + Module struct { + Enabled bool + + moduleConfig `mapstructure:",squash"` + } +} + +// moduleConfig could be in a module specific package +type moduleConfig struct { + Token string +} + +var C config + +err := viper.Unmarshal(&C) +if err != nil { + t.Fatalf("unable to decode into struct, %v", err) +} +``` + Viper uses [github.com/mitchellh/mapstructure](https://github.com/mitchellh/mapstructure) under the hood for unmarshaling values which uses `mapstructure` tags by default. ### Marshalling to string -You may need to marshal all the settings held in viper into a string rather than write them to a file. +You may need to marshal all the settings held in viper into a string rather than write them to a file. You can use your favorite format's marshaller with the config returned by `AllSettings()`. ```go import ( yaml "gopkg.in/yaml.v2" // ... -) +) func yamlStringSettings() string { c := viper.AllSettings() diff --git a/vendor/github.com/spf13/viper/go.mod b/vendor/github.com/spf13/viper/go.mod index 0e358cbe..7d108dcc 100644 --- a/vendor/github.com/spf13/viper/go.mod +++ b/vendor/github.com/spf13/viper/go.mod @@ -3,18 +3,15 @@ module github.com/spf13/viper go 1.12 require ( - github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 // indirect + github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c github.com/coreos/bbolt v1.3.2 // indirect - github.com/coreos/etcd v3.3.10+incompatible // indirect - github.com/coreos/go-semver v0.2.0 // indirect github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e // indirect github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect github.com/fsnotify/fsnotify v1.4.7 github.com/gogo/protobuf v1.2.1 // indirect github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect - github.com/google/btree v1.0.0 // indirect - github.com/gorilla/websocket v1.4.0 // indirect + github.com/gorilla/websocket v1.4.2 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.9.0 // indirect @@ -30,19 +27,14 @@ require ( github.com/spf13/cast v1.3.0 github.com/spf13/jwalterweatherman v1.0.0 github.com/spf13/pflag v1.0.3 - github.com/stretchr/testify v1.2.2 + github.com/stretchr/testify v1.3.0 github.com/subosito/gotenv v1.2.0 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect - github.com/ugorji/go v1.1.4 // indirect github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect - github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 go.etcd.io/bbolt v1.3.2 // indirect go.uber.org/atomic v1.4.0 // indirect go.uber.org/multierr v1.1.0 // indirect go.uber.org/zap v1.10.0 // indirect - golang.org/x/net v0.0.0-20190522155817-f3200d17e092 // indirect - golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 // indirect - google.golang.org/grpc v1.21.0 // indirect gopkg.in/ini.v1 v1.51.0 gopkg.in/yaml.v2 v2.2.4 ) diff --git a/vendor/github.com/spf13/viper/go.sum b/vendor/github.com/spf13/viper/go.sum index d75aee23..463aa7db 100644 --- a/vendor/github.com/spf13/viper/go.sum +++ b/vendor/github.com/spf13/viper/go.sum @@ -1,35 +1,62 @@ 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= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3 h1:AVXDdKsrtX33oR9fbCMu/+c1o8Ofjq6Ku/MInaLVg5Y= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go/bigquery v1.0.1 h1:hL+ycaJpVE9M7nLoiXb/Pn10ENE2u+oddxbD8uu0ZVU= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/datastore v1.0.0 h1:Kt+gOPPp2LEPWp8CSfxhsM8ik9CcyE/gYu+0r+RnZvM= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/firestore v1.1.0 h1:9x7Bx0A9R5/M9jibeJeZWqjeVEIxYW9fZYqB9a70/bY= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/pubsub v1.0.1 h1:W9tAK3E57P75u0XLLR82LZyw8VpAnhmyTOxW9qzmyj8= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/storage v1.0.0 h1:VV2nUM3wwLLGh9lSABFgZMjInyUbJeaRSE64WuAIQ+4= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= 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/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= +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/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c h1:+0HFd5KSZ/mm3JmhmrDukiId5iR6w4+BdFtfSy4yWIc= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/coreos/bbolt v1.3.2 h1:wZwiHHUieZCquLkDL0B8UhzreNWsPHooDAG3q34zk0s= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible h1:jFneRYjIvLMLhDLCzuTuU4rSJUjRplcJQ7pD7MnhC04= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +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/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= 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= @@ -42,26 +69,77 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef h1:veQD95Isof8w9/WXiA+pa3tz3fJXkt5B7QaRBrM62gk= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +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/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:Iju5GlWwrvL6UBg4zJJt3btmonfrMlCDdsejg4CZE7c= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= 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 h1:bM6ZAFZmc/wPFaRDi0d5L7hGEZEx/2u+Tmr2evNHDiI= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/consul/api v1.1.0 h1:BNQPM9ytxj6jbjjdRPioQ94T6YXriSopn0i8COv6SRA= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1 h1:LnuDWGNsoajlhGyHJvuWW6FVqRl8JOTPqS6CPTsYjhY= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0 h1:Rqb66Oo1X/eSV1x66xbDccZjhJigjg0+e82kpwzSwCI= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= +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 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +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 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2 h1:YZ7UKsJv+hKjqGVUUbtE3HNj79Eln2oQ75tniF6iPt0= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024 h1:rBMNdlhTLzJjJSDIjNEXX1Pz3Hmwmz91v+zycvx9PJc= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= @@ -77,18 +155,39 @@ 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/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.0.14 h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0 h1:vKb8ShqSby24Yrqr/yDYkuFz8d0WUjys40rvnGC8aR0= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= +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= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +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 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= @@ -103,6 +202,10 @@ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 h1:sofwID9zm4tzr github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= @@ -120,21 +223,23 @@ github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9 github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +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/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= go.etcd.io/bbolt v1.3.2 h1:Z/90sZLPOeCy2PwprqkFa25PdkusRzaj9P8zm/KNyvk= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= @@ -142,46 +247,132 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= 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-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5 h1:58fnuSXlxZmFdJyvtTFVmVhcMLU6v5fEb/ok4wyqtNU= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +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= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136 h1:A1gGSx58LAGVHUUsOf7IiR0u8Xb6W51gRwfDBhkdcaw= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +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= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +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= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +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-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-20190522155817-f3200d17e092 h1:4QSRKanuywn15aTZvI/mIDEgPQpswuFndXpOj3rKEco= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 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 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 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-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +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-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/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-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0 h1:HyfiK1WMnHj5FXFXatD+Qs1A/xC2Run6RzeW1SyHxpc= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 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.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/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-20180917221912-90fa682c2a6e/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-20190311212946-11955173bddd/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-20190328211700-ab21143f2384 h1:TFlARGu6Czu1z7q93HTxcP1P+/ZFC/IKythI5RzrnRg= 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= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/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-20190911174233-4f2ddba30aff/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-20191112195655-aa38f8e97acc h1:NCy3Ohtk6Iny5V/reW2Ktypo4zIpWBdRJ1uFMjBxdg8= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +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.13.0 h1:Q3Ui3V3/CVinFWFiW39Iw0kMuVrRzYX0wN6OPFp0lTA= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +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 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/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-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-20191108220845-16a3f7862a1a h1:Ob5/580gVHBJZgXnff1cZDbG+xLtMVE5mDRTe+nIsX4= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.21.0 h1:G+97AoqBnmZIT91cLG/EkCoK9NSelj64P8bOHHNmGn0= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1 h1:j6XxA85m/6txkUCHvzlV5f+HBNl/1r5cZ2A/3IEFOO8= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= 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/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= @@ -190,3 +381,8 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 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= +honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/vendor/github.com/spf13/viper/viper.go b/vendor/github.com/spf13/viper/viper.go index eb2f5177..f61f4ed7 100644 --- a/vendor/github.com/spf13/viper/viper.go +++ b/vendor/github.com/spf13/viper/viper.go @@ -287,7 +287,7 @@ func NewWithOptions(opts ...Option) *Viper { func Reset() { v = New() SupportedExts = []string{"json", "toml", "yaml", "yml", "properties", "props", "prop", "hcl", "dotenv", "env", "ini"} - SupportedRemoteProviders = []string{"etcd", "consul"} + SupportedRemoteProviders = []string{"etcd", "consul", "firestore"} } type defaultRemoteProvider struct { @@ -328,7 +328,7 @@ type RemoteProvider interface { var SupportedExts = []string{"json", "toml", "yaml", "yml", "properties", "props", "prop", "hcl", "dotenv", "env", "ini"} // SupportedRemoteProviders are universally supported remote providers. -var SupportedRemoteProviders = []string{"etcd", "consul"} +var SupportedRemoteProviders = []string{"etcd", "consul", "firestore"} func OnConfigChange(run func(in fsnotify.Event)) { v.OnConfigChange(run) } func (v *Viper) OnConfigChange(run func(in fsnotify.Event)) { @@ -477,7 +477,7 @@ func (v *Viper) AddConfigPath(in string) { // AddRemoteProvider adds a remote configuration source. // Remote Providers are searched in the order they are added. -// provider is a string value, "etcd" or "consul" are currently supported. +// provider is a string value: "etcd", "consul" or "firestore" are currently supported. // endpoint is the url. etcd requires http://ip:port consul requires ip:port // path is the path in the k/v store to retrieve configuration // To retrieve a config file called myapp.json from /configs/myapp.json @@ -506,14 +506,14 @@ func (v *Viper) AddRemoteProvider(provider, endpoint, path string) error { // AddSecureRemoteProvider adds a remote configuration source. // Secure Remote Providers are searched in the order they are added. -// provider is a string value, "etcd" or "consul" are currently supported. +// provider is a string value: "etcd", "consul" or "firestore" are currently supported. // endpoint is the url. etcd requires http://ip:port consul requires ip:port // secretkeyring is the filepath to your openpgp secret keyring. e.g. /etc/secrets/myring.gpg // path is the path in the k/v store to retrieve configuration // To retrieve a config file called myapp.json from /configs/myapp.json // you should set path to /configs and set config name (SetConfigName()) to // "myapp" -// Secure Remote Providers are implemented with github.com/xordataexchange/crypt +// Secure Remote Providers are implemented with github.com/bketelsen/crypt func AddSecureRemoteProvider(provider, endpoint, path, secretkeyring string) error { return v.AddSecureRemoteProvider(provider, endpoint, path, secretkeyring) } @@ -996,11 +996,6 @@ func (v *Viper) BindFlagValues(flags FlagValueSet) (err error) { } // BindFlagValue binds a specific key to a FlagValue. -// Example (where serverCmd is a Cobra instance): -// -// serverCmd.Flags().Int("port", 1138, "Port to run Application server on") -// Viper.BindFlagValue("port", serverCmd.Flags().Lookup("port")) -// func BindFlagValue(key string, flag FlagValue) error { return v.BindFlagValue(key, flag) } func (v *Viper) BindFlagValue(key string, flag FlagValue) error { if flag == nil { @@ -1088,6 +1083,8 @@ func (v *Viper) find(lcaseKey string, flagDefault bool) interface{} { s = strings.TrimSuffix(s, "]") res, _ := readAsCSV(s) return cast.ToIntSlice(res) + case "stringToString": + return stringToStringConv(flag.ValueString()) default: return flag.ValueString() } @@ -1163,6 +1160,8 @@ func (v *Viper) find(lcaseKey string, flagDefault bool) interface{} { s = strings.TrimSuffix(s, "]") res, _ := readAsCSV(s) return cast.ToIntSlice(res) + case "stringToString": + return stringToStringConv(flag.ValueString()) default: return flag.ValueString() } @@ -1182,6 +1181,30 @@ func readAsCSV(val string) ([]string, error) { return csvReader.Read() } +// mostly copied from pflag's implementation of this operation here https://github.com/spf13/pflag/blob/master/string_to_string.go#L79 +// alterations are: errors are swallowed, map[string]interface{} is returned in order to enable cast.ToStringMap +func stringToStringConv(val string) interface{} { + val = strings.Trim(val, "[]") + // An empty string would cause an empty map + if len(val) == 0 { + return map[string]interface{}{} + } + r := csv.NewReader(strings.NewReader(val)) + ss, err := r.Read() + if err != nil { + return nil + } + out := make(map[string]interface{}, len(ss)) + for _, pair := range ss { + kv := strings.SplitN(pair, "=", 2) + if len(kv) != 2 { + return nil + } + out[kv[0]] = kv[1] + } + return out +} + // IsSet checks to see if the key has been set in any of the data locations. // IsSet is case-insensitive for a key. func IsSet(key string) bool { return v.IsSet(key) } @@ -1418,11 +1441,18 @@ func (v *Viper) SafeWriteConfigAs(filename string) error { func (v *Viper) writeConfig(filename string, force bool) error { jww.INFO.Println("Attempting to write configuration to file.") + var configType string + ext := filepath.Ext(filename) - if len(ext) <= 1 { - return fmt.Errorf("filename: %s requires valid extension", filename) + if ext != "" { + configType = ext[1:] + } else { + configType = v.configType } - configType := ext[1:] + if configType == "" { + return fmt.Errorf("config type could not be determined for %s", filename) + } + if !stringInSlice(configType, SupportedExts) { return UnsupportedConfigError(configType) } @@ -1619,7 +1649,7 @@ func (v *Viper) marshalWriter(f afero.File, configType string) error { if sectionName == "default" { sectionName = "" } - cfg.Section(sectionName).Key(keyName).SetValue(Get(key).(string)) + cfg.Section(sectionName).Key(keyName).SetValue(v.Get(key).(string)) } cfg.WriteTo(f) } @@ -1976,8 +2006,10 @@ func (v *Viper) searchInPath(in string) (filename string) { } } - if b, _ := exists(v.fs, filepath.Join(in, v.configName)); b { - return filepath.Join(in, v.configName) + if v.configType != "" { + if b, _ := exists(v.fs, filepath.Join(in, v.configName)); b { + return filepath.Join(in, v.configName) + } } return "" diff --git a/vendor/github.com/stretchr/testify/assert/assertion_format.go b/vendor/github.com/stretchr/testify/assert/assertion_format.go index e0364e9e..bf89ecd2 100644 --- a/vendor/github.com/stretchr/testify/assert/assertion_format.go +++ b/vendor/github.com/stretchr/testify/assert/assertion_format.go @@ -32,7 +32,8 @@ func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args return Contains(t, s, contains, append([]interface{}{msg}, args...)...) } -// DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists. +// DirExistsf checks whether a directory exists in the given path. It also fails +// if the path is a file rather a directory or there is an error checking whether it exists. func DirExistsf(t TestingT, path string, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -160,7 +161,8 @@ func Falsef(t TestingT, value bool, msg string, args ...interface{}) bool { return False(t, value, append([]interface{}{msg}, args...)...) } -// FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file. +// FileExistsf checks whether a file exists in the given path. It also fails if +// the path points to a directory or there is an error when trying to check the file. func FileExistsf(t TestingT, path string, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -267,7 +269,7 @@ func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, ms // InDeltaf asserts that the two numerals are within delta of each other. // -// assert.InDeltaf(t, math.Pi, (22 / 7.0, "error message %s", "formatted"), 0.01) +// assert.InDeltaf(t, math.Pi, 22/7.0, 0.01, "error message %s", "formatted") func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -325,14 +327,6 @@ func JSONEqf(t TestingT, expected string, actual string, msg string, args ...int return JSONEq(t, expected, actual, append([]interface{}{msg}, args...)...) } -// YAMLEqf asserts that two YAML strings are equivalent. -func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := t.(tHelper); ok { - h.Helper() - } - return YAMLEq(t, expected, actual, append([]interface{}{msg}, args...)...) -} - // Lenf asserts that the specified object has specific length. // Lenf also fails if the object has a type that len() not accept. // @@ -369,6 +363,17 @@ func LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args . return LessOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...) } +// Neverf asserts that the given condition doesn't satisfy in waitFor time, +// periodically checking the target function each tick. +// +// assert.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") +func Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return Never(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...) +} + // Nilf asserts that the specified object is nil. // // assert.Nilf(t, err, "error message %s", "formatted") @@ -379,6 +384,15 @@ func Nilf(t TestingT, object interface{}, msg string, args ...interface{}) bool return Nil(t, object, append([]interface{}{msg}, args...)...) } +// NoDirExistsf checks whether a directory does not exist in the given path. +// It fails if the path points to an existing _directory_ only. +func NoDirExistsf(t TestingT, path string, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return NoDirExists(t, path, append([]interface{}{msg}, args...)...) +} + // NoErrorf asserts that a function returned no error (i.e. `nil`). // // actualObj, err := SomeFunction() @@ -392,6 +406,15 @@ func NoErrorf(t TestingT, err error, msg string, args ...interface{}) bool { return NoError(t, err, append([]interface{}{msg}, args...)...) } +// NoFileExistsf checks whether a file does not exist in a given path. It fails +// if the path points to an existing _file_ only. +func NoFileExistsf(t TestingT, path string, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return NoFileExists(t, path, append([]interface{}{msg}, args...)...) +} + // NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the // specified substring or element. // @@ -462,6 +485,19 @@ func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args .. return NotRegexp(t, rx, str, append([]interface{}{msg}, args...)...) } +// NotSamef asserts that two pointers do not reference the same object. +// +// assert.NotSamef(t, ptr1, ptr2, "error message %s", "formatted") +// +// Both arguments must be pointer variables. Pointer variable sameness is +// determined based on the equality of both type and value. +func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return NotSame(t, expected, actual, append([]interface{}{msg}, args...)...) +} + // NotSubsetf asserts that the specified list(array, slice...) contains not all // elements given in the specified subset(array, slice...). // @@ -491,6 +527,18 @@ func Panicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool return Panics(t, f, append([]interface{}{msg}, args...)...) } +// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc +// panics, and that the recovered panic value is an error that satisfies the +// EqualError comparison. +// +// assert.PanicsWithErrorf(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") +func PanicsWithErrorf(t TestingT, errString string, f PanicTestFunc, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return PanicsWithError(t, errString, f, append([]interface{}{msg}, args...)...) +} + // PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that // the recovered panic value equals the expected panic value. // @@ -557,6 +605,14 @@ func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta tim return WithinDuration(t, expected, actual, delta, append([]interface{}{msg}, args...)...) } +// YAMLEqf asserts that two YAML strings are equivalent. +func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + return YAMLEq(t, expected, actual, append([]interface{}{msg}, args...)...) +} + // Zerof asserts that i is the zero value for its type. func Zerof(t TestingT, i interface{}, msg string, args ...interface{}) bool { if h, ok := t.(tHelper); ok { diff --git a/vendor/github.com/stretchr/testify/assert/assertion_forward.go b/vendor/github.com/stretchr/testify/assert/assertion_forward.go index 26830403..75ecdcaa 100644 --- a/vendor/github.com/stretchr/testify/assert/assertion_forward.go +++ b/vendor/github.com/stretchr/testify/assert/assertion_forward.go @@ -53,7 +53,8 @@ func (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, return Containsf(a.t, s, contains, msg, args...) } -// DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists. +// DirExists checks whether a directory exists in the given path. It also fails +// if the path is a file rather a directory or there is an error checking whether it exists. func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -61,7 +62,8 @@ func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) bool { return DirExists(a.t, path, msgAndArgs...) } -// DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists. +// DirExistsf checks whether a directory exists in the given path. It also fails +// if the path is a file rather a directory or there is an error checking whether it exists. func (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -309,7 +311,8 @@ func (a *Assertions) Falsef(value bool, msg string, args ...interface{}) bool { return Falsef(a.t, value, msg, args...) } -// FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file. +// FileExists checks whether a file exists in the given path. It also fails if +// the path points to a directory or there is an error when trying to check the file. func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -317,7 +320,8 @@ func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) bool { return FileExists(a.t, path, msgAndArgs...) } -// FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file. +// FileExistsf checks whether a file exists in the given path. It also fails if +// the path points to a directory or there is an error when trying to check the file. func (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -521,7 +525,7 @@ func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{} // InDelta asserts that the two numerals are within delta of each other. // -// a.InDelta(math.Pi, (22 / 7.0), 0.01) +// a.InDelta(math.Pi, 22/7.0, 0.01) func (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -563,7 +567,7 @@ func (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, del // InDeltaf asserts that the two numerals are within delta of each other. // -// a.InDeltaf(math.Pi, (22 / 7.0, "error message %s", "formatted"), 0.01) +// a.InDeltaf(math.Pi, 22/7.0, 0.01, "error message %s", "formatted") func (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -639,22 +643,6 @@ func (a *Assertions) JSONEqf(expected string, actual string, msg string, args .. return JSONEqf(a.t, expected, actual, msg, args...) } -// YAMLEq asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return YAMLEq(a.t, expected, actual, msgAndArgs...) -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) bool { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - return YAMLEqf(a.t, expected, actual, msg, args...) -} - // Len asserts that the specified object has specific length. // Len also fails if the object has a type that len() not accept. // @@ -727,6 +715,28 @@ func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...i return Lessf(a.t, e1, e2, msg, args...) } +// Never asserts that the given condition doesn't satisfy in waitFor time, +// periodically checking the target function each tick. +// +// a.Never(func() bool { return false; }, time.Second, 10*time.Millisecond) +func (a *Assertions) Never(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return Never(a.t, condition, waitFor, tick, msgAndArgs...) +} + +// Neverf asserts that the given condition doesn't satisfy in waitFor time, +// periodically checking the target function each tick. +// +// a.Neverf(func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") +func (a *Assertions) Neverf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return Neverf(a.t, condition, waitFor, tick, msg, args...) +} + // Nil asserts that the specified object is nil. // // a.Nil(err) @@ -747,6 +757,24 @@ func (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) b return Nilf(a.t, object, msg, args...) } +// NoDirExists checks whether a directory does not exist in the given path. +// It fails if the path points to an existing _directory_ only. +func (a *Assertions) NoDirExists(path string, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NoDirExists(a.t, path, msgAndArgs...) +} + +// NoDirExistsf checks whether a directory does not exist in the given path. +// It fails if the path points to an existing _directory_ only. +func (a *Assertions) NoDirExistsf(path string, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NoDirExistsf(a.t, path, msg, args...) +} + // NoError asserts that a function returned no error (i.e. `nil`). // // actualObj, err := SomeFunction() @@ -773,6 +801,24 @@ func (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) bool { return NoErrorf(a.t, err, msg, args...) } +// NoFileExists checks whether a file does not exist in a given path. It fails +// if the path points to an existing _file_ only. +func (a *Assertions) NoFileExists(path string, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NoFileExists(a.t, path, msgAndArgs...) +} + +// NoFileExistsf checks whether a file does not exist in a given path. It fails +// if the path points to an existing _file_ only. +func (a *Assertions) NoFileExistsf(path string, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NoFileExistsf(a.t, path, msg, args...) +} + // NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the // specified substring or element. // @@ -913,6 +959,32 @@ func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, arg return NotRegexpf(a.t, rx, str, msg, args...) } +// NotSame asserts that two pointers do not reference the same object. +// +// a.NotSame(ptr1, ptr2) +// +// Both arguments must be pointer variables. Pointer variable sameness is +// determined based on the equality of both type and value. +func (a *Assertions) NotSame(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NotSame(a.t, expected, actual, msgAndArgs...) +} + +// NotSamef asserts that two pointers do not reference the same object. +// +// a.NotSamef(ptr1, ptr2, "error message %s", "formatted") +// +// Both arguments must be pointer variables. Pointer variable sameness is +// determined based on the equality of both type and value. +func (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return NotSamef(a.t, expected, actual, msg, args...) +} + // NotSubset asserts that the specified list(array, slice...) contains not all // elements given in the specified subset(array, slice...). // @@ -961,6 +1033,30 @@ func (a *Assertions) Panics(f PanicTestFunc, msgAndArgs ...interface{}) bool { return Panics(a.t, f, msgAndArgs...) } +// PanicsWithError asserts that the code inside the specified PanicTestFunc +// panics, and that the recovered panic value is an error that satisfies the +// EqualError comparison. +// +// a.PanicsWithError("crazy error", func(){ GoCrazy() }) +func (a *Assertions) PanicsWithError(errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return PanicsWithError(a.t, errString, f, msgAndArgs...) +} + +// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc +// panics, and that the recovered panic value is an error that satisfies the +// EqualError comparison. +// +// a.PanicsWithErrorf("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") +func (a *Assertions) PanicsWithErrorf(errString string, f PanicTestFunc, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return PanicsWithErrorf(a.t, errString, f, msg, args...) +} + // PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that // the recovered panic value equals the expected panic value. // @@ -1103,6 +1199,22 @@ func (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta return WithinDurationf(a.t, expected, actual, delta, msg, args...) } +// YAMLEq asserts that two YAML strings are equivalent. +func (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return YAMLEq(a.t, expected, actual, msgAndArgs...) +} + +// YAMLEqf asserts that two YAML strings are equivalent. +func (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) bool { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + return YAMLEqf(a.t, expected, actual, msg, args...) +} + // Zero asserts that i is the zero value for its type. func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) bool { if h, ok := a.t.(tHelper); ok { diff --git a/vendor/github.com/stretchr/testify/assert/assertions.go b/vendor/github.com/stretchr/testify/assert/assertions.go index 044da8b0..bdd81389 100644 --- a/vendor/github.com/stretchr/testify/assert/assertions.go +++ b/vendor/github.com/stretchr/testify/assert/assertions.go @@ -11,6 +11,7 @@ import ( "reflect" "regexp" "runtime" + "runtime/debug" "strings" "time" "unicode" @@ -21,7 +22,7 @@ import ( yaml "gopkg.in/yaml.v2" ) -//go:generate go run ../_codegen/main.go -output-package=assert -template=assertion_format.go.tmpl +//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_format.go.tmpl" // TestingT is an interface wrapper around *testing.T type TestingT interface { @@ -351,6 +352,19 @@ func Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) } +// validateEqualArgs checks whether provided arguments can be safely used in the +// Equal/NotEqual functions. +func validateEqualArgs(expected, actual interface{}) error { + if expected == nil && actual == nil { + return nil + } + + if isFunction(expected) || isFunction(actual) { + return errors.New("cannot take func type as argument") + } + return nil +} + // Same asserts that two pointers reference the same object. // // assert.Same(t, ptr1, ptr2) @@ -362,18 +376,7 @@ func Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) b h.Helper() } - expectedPtr, actualPtr := reflect.ValueOf(expected), reflect.ValueOf(actual) - if expectedPtr.Kind() != reflect.Ptr || actualPtr.Kind() != reflect.Ptr { - return Fail(t, "Invalid operation: both arguments must be pointers", msgAndArgs...) - } - - expectedType, actualType := reflect.TypeOf(expected), reflect.TypeOf(actual) - if expectedType != actualType { - return Fail(t, fmt.Sprintf("Pointer expected to be of type %v, but was %v", - expectedType, actualType), msgAndArgs...) - } - - if expected != actual { + if !samePointers(expected, actual) { return Fail(t, fmt.Sprintf("Not same: \n"+ "expected: %p %#v\n"+ "actual : %p %#v", expected, expected, actual, actual), msgAndArgs...) @@ -382,6 +385,42 @@ func Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) b return true } +// NotSame asserts that two pointers do not reference the same object. +// +// assert.NotSame(t, ptr1, ptr2) +// +// Both arguments must be pointer variables. Pointer variable sameness is +// determined based on the equality of both type and value. +func NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + + if samePointers(expected, actual) { + return Fail(t, fmt.Sprintf( + "Expected and actual point to the same object: %p %#v", + expected, expected), msgAndArgs...) + } + return true +} + +// samePointers compares two generic interface objects and returns whether +// they point to the same object +func samePointers(first, second interface{}) bool { + firstPtr, secondPtr := reflect.ValueOf(first), reflect.ValueOf(second) + if firstPtr.Kind() != reflect.Ptr || secondPtr.Kind() != reflect.Ptr { + return false + } + + firstType, secondType := reflect.TypeOf(first), reflect.TypeOf(second) + if firstType != secondType { + return false + } + + // compare pointer addresses + return first == second +} + // formatUnequalValues takes two values of arbitrary types and returns string // representations appropriate to be presented to the user. // @@ -393,9 +432,11 @@ func formatUnequalValues(expected, actual interface{}) (e string, a string) { return fmt.Sprintf("%T(%#v)", expected, expected), fmt.Sprintf("%T(%#v)", actual, actual) } - - return fmt.Sprintf("%#v", expected), - fmt.Sprintf("%#v", actual) + switch expected.(type) { + case time.Duration: + return fmt.Sprintf("%v", expected), fmt.Sprintf("%v", actual) + } + return fmt.Sprintf("%#v", expected), fmt.Sprintf("%#v", actual) } // EqualValues asserts that two objects are equal or convertable to the same types @@ -901,15 +942,17 @@ func Condition(t TestingT, comp Comparison, msgAndArgs ...interface{}) bool { type PanicTestFunc func() // didPanic returns true if the function passed to it panics. Otherwise, it returns false. -func didPanic(f PanicTestFunc) (bool, interface{}) { +func didPanic(f PanicTestFunc) (bool, interface{}, string) { didPanic := false var message interface{} + var stack string func() { defer func() { if message = recover(); message != nil { didPanic = true + stack = string(debug.Stack()) } }() @@ -918,7 +961,7 @@ func didPanic(f PanicTestFunc) (bool, interface{}) { }() - return didPanic, message + return didPanic, message, stack } @@ -930,7 +973,7 @@ func Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool { h.Helper() } - if funcDidPanic, panicValue := didPanic(f); !funcDidPanic { + if funcDidPanic, panicValue, _ := didPanic(f); !funcDidPanic { return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) } @@ -946,12 +989,34 @@ func PanicsWithValue(t TestingT, expected interface{}, f PanicTestFunc, msgAndAr h.Helper() } - funcDidPanic, panicValue := didPanic(f) + funcDidPanic, panicValue, panickedStack := didPanic(f) if !funcDidPanic { return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) } if panicValue != expected { - return Fail(t, fmt.Sprintf("func %#v should panic with value:\t%#v\n\tPanic value:\t%#v", f, expected, panicValue), msgAndArgs...) + return Fail(t, fmt.Sprintf("func %#v should panic with value:\t%#v\n\tPanic value:\t%#v\n\tPanic stack:\t%s", f, expected, panicValue, panickedStack), msgAndArgs...) + } + + return true +} + +// PanicsWithError asserts that the code inside the specified PanicTestFunc +// panics, and that the recovered panic value is an error that satisfies the +// EqualError comparison. +// +// assert.PanicsWithError(t, "crazy error", func(){ GoCrazy() }) +func PanicsWithError(t TestingT, errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + + funcDidPanic, panicValue, panickedStack := didPanic(f) + if !funcDidPanic { + return Fail(t, fmt.Sprintf("func %#v should panic\n\tPanic value:\t%#v", f, panicValue), msgAndArgs...) + } + panicErr, ok := panicValue.(error) + if !ok || panicErr.Error() != errString { + return Fail(t, fmt.Sprintf("func %#v should panic with error message:\t%#v\n\tPanic value:\t%#v\n\tPanic stack:\t%s", f, errString, panicValue, panickedStack), msgAndArgs...) } return true @@ -965,8 +1030,8 @@ func NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool { h.Helper() } - if funcDidPanic, panicValue := didPanic(f); funcDidPanic { - return Fail(t, fmt.Sprintf("func %#v should not panic\n\tPanic value:\t%v", f, panicValue), msgAndArgs...) + if funcDidPanic, panicValue, panickedStack := didPanic(f); funcDidPanic { + return Fail(t, fmt.Sprintf("func %#v should not panic\n\tPanic value:\t%v\n\tPanic stack:\t%s", f, panicValue, panickedStack), msgAndArgs...) } return true @@ -1026,7 +1091,7 @@ func toFloat(x interface{}) (float64, bool) { // InDelta asserts that the two numerals are within delta of each other. // -// assert.InDelta(t, math.Pi, (22 / 7.0), 0.01) +// assert.InDelta(t, math.Pi, 22/7.0, 0.01) func InDelta(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -1314,7 +1379,8 @@ func NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool { return true } -// FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file. +// FileExists checks whether a file exists in the given path. It also fails if +// the path points to a directory or there is an error when trying to check the file. func FileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -1332,7 +1398,24 @@ func FileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { return true } -// DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists. +// NoFileExists checks whether a file does not exist in a given path. It fails +// if the path points to an existing _file_ only. +func NoFileExists(t TestingT, path string, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + info, err := os.Lstat(path) + if err != nil { + return true + } + if info.IsDir() { + return true + } + return Fail(t, fmt.Sprintf("file %q exists", path), msgAndArgs...) +} + +// DirExists checks whether a directory exists in the given path. It also fails +// if the path is a file rather a directory or there is an error checking whether it exists. func DirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { if h, ok := t.(tHelper); ok { h.Helper() @@ -1350,6 +1433,25 @@ func DirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { return true } +// NoDirExists checks whether a directory does not exist in the given path. +// It fails if the path points to an existing _directory_ only. +func NoDirExists(t TestingT, path string, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + info, err := os.Lstat(path) + if err != nil { + if os.IsNotExist(err) { + return true + } + return true + } + if !info.IsDir() { + return true + } + return Fail(t, fmt.Sprintf("directory %q exists", path), msgAndArgs...) +} + // JSONEq asserts that two JSON strings are equivalent. // // assert.JSONEq(t, `{"hello": "world", "foo": "bar"}`, `{"foo": "bar", "hello": "world"}`) @@ -1439,15 +1541,6 @@ func diff(expected interface{}, actual interface{}) string { return "\n\nDiff:\n" + diff } -// validateEqualArgs checks whether provided arguments can be safely used in the -// Equal/NotEqual functions. -func validateEqualArgs(expected, actual interface{}) error { - if isFunction(expected) || isFunction(actual) { - return errors.New("cannot take func type as argument") - } - return nil -} - func isFunction(arg interface{}) bool { if arg == nil { return false @@ -1475,24 +1568,59 @@ func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick t h.Helper() } + ch := make(chan bool, 1) + timer := time.NewTimer(waitFor) - ticker := time.NewTicker(tick) - checkPassed := make(chan bool) defer timer.Stop() + + ticker := time.NewTicker(tick) defer ticker.Stop() - defer close(checkPassed) - for { + + for tick := ticker.C; ; { select { case <-timer.C: return Fail(t, "Condition never satisfied", msgAndArgs...) - case result := <-checkPassed: - if result { + case <-tick: + tick = nil + go func() { ch <- condition() }() + case v := <-ch: + if v { return true } - case <-ticker.C: - go func() { - checkPassed <- condition() - }() + tick = ticker.C + } + } +} + +// Never asserts that the given condition doesn't satisfy in waitFor time, +// periodically checking the target function each tick. +// +// assert.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond) +func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool { + if h, ok := t.(tHelper); ok { + h.Helper() + } + + ch := make(chan bool, 1) + + timer := time.NewTimer(waitFor) + defer timer.Stop() + + ticker := time.NewTicker(tick) + defer ticker.Stop() + + for tick := ticker.C; ; { + select { + case <-timer.C: + return true + case <-tick: + tick = nil + go func() { ch <- condition() }() + case v := <-ch: + if v { + return Fail(t, "Condition satisfied", msgAndArgs...) + } + tick = ticker.C } } } diff --git a/vendor/github.com/stretchr/testify/assert/forward_assertions.go b/vendor/github.com/stretchr/testify/assert/forward_assertions.go index 9ad56851..df189d23 100644 --- a/vendor/github.com/stretchr/testify/assert/forward_assertions.go +++ b/vendor/github.com/stretchr/testify/assert/forward_assertions.go @@ -13,4 +13,4 @@ func New(t TestingT) *Assertions { } } -//go:generate go run ../_codegen/main.go -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs +//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs" diff --git a/vendor/github.com/stretchr/testify/require/forward_requirements.go b/vendor/github.com/stretchr/testify/require/forward_requirements.go index ac71d405..1dcb2338 100644 --- a/vendor/github.com/stretchr/testify/require/forward_requirements.go +++ b/vendor/github.com/stretchr/testify/require/forward_requirements.go @@ -13,4 +13,4 @@ func New(t TestingT) *Assertions { } } -//go:generate go run ../_codegen/main.go -output-package=require -template=require_forward.go.tmpl -include-format-funcs +//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=require -template=require_forward.go.tmpl -include-format-funcs" diff --git a/vendor/github.com/stretchr/testify/require/require.go b/vendor/github.com/stretchr/testify/require/require.go index c5903f5d..cf6c7b56 100644 --- a/vendor/github.com/stretchr/testify/require/require.go +++ b/vendor/github.com/stretchr/testify/require/require.go @@ -66,7 +66,8 @@ func Containsf(t TestingT, s interface{}, contains interface{}, msg string, args t.FailNow() } -// DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists. +// DirExists checks whether a directory exists in the given path. It also fails +// if the path is a file rather a directory or there is an error checking whether it exists. func DirExists(t TestingT, path string, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -77,7 +78,8 @@ func DirExists(t TestingT, path string, msgAndArgs ...interface{}) { t.FailNow() } -// DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists. +// DirExistsf checks whether a directory exists in the given path. It also fails +// if the path is a file rather a directory or there is an error checking whether it exists. func DirExistsf(t TestingT, path string, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -275,12 +277,12 @@ func Errorf(t TestingT, err error, msg string, args ...interface{}) { // // assert.Eventually(t, func() bool { return true; }, time.Second, 10*time.Millisecond) func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { - if assert.Eventually(t, condition, waitFor, tick, msgAndArgs...) { - return - } if h, ok := t.(tHelper); ok { h.Helper() } + if assert.Eventually(t, condition, waitFor, tick, msgAndArgs...) { + return + } t.FailNow() } @@ -289,12 +291,12 @@ func Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick t // // assert.Eventuallyf(t, func() bool { return true; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") func Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { - if assert.Eventuallyf(t, condition, waitFor, tick, msg, args...) { - return - } if h, ok := t.(tHelper); ok { h.Helper() } + if assert.Eventuallyf(t, condition, waitFor, tick, msg, args...) { + return + } t.FailNow() } @@ -394,7 +396,8 @@ func Falsef(t TestingT, value bool, msg string, args ...interface{}) { t.FailNow() } -// FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file. +// FileExists checks whether a file exists in the given path. It also fails if +// the path points to a directory or there is an error when trying to check the file. func FileExists(t TestingT, path string, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -405,7 +408,8 @@ func FileExists(t TestingT, path string, msgAndArgs ...interface{}) { t.FailNow() } -// FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file. +// FileExistsf checks whether a file exists in the given path. It also fails if +// the path points to a directory or there is an error when trying to check the file. func FileExistsf(t TestingT, path string, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -660,7 +664,7 @@ func Implementsf(t TestingT, interfaceObject interface{}, object interface{}, ms // InDelta asserts that the two numerals are within delta of each other. // -// assert.InDelta(t, math.Pi, (22 / 7.0), 0.01) +// assert.InDelta(t, math.Pi, 22/7.0, 0.01) func InDelta(t TestingT, expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -717,7 +721,7 @@ func InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta f // InDeltaf asserts that the two numerals are within delta of each other. // -// assert.InDeltaf(t, math.Pi, (22 / 7.0, "error message %s", "formatted"), 0.01) +// assert.InDeltaf(t, math.Pi, 22/7.0, 0.01, "error message %s", "formatted") func InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { if h, ok := t.(tHelper); ok { h.Helper() @@ -820,28 +824,6 @@ func JSONEqf(t TestingT, expected string, actual string, msg string, args ...int t.FailNow() } -// YAMLEq asserts that two YAML strings are equivalent. -func YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.YAMLEq(t, expected, actual, msgAndArgs...) { - return - } - t.FailNow() -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) { - if h, ok := t.(tHelper); ok { - h.Helper() - } - if assert.YAMLEqf(t, expected, actual, msg, args...) { - return - } - t.FailNow() -} - // Len asserts that the specified object has specific length. // Len also fails if the object has a type that len() not accept. // @@ -932,6 +914,34 @@ func Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...inter t.FailNow() } +// Never asserts that the given condition doesn't satisfy in waitFor time, +// periodically checking the target function each tick. +// +// assert.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond) +func Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.Never(t, condition, waitFor, tick, msgAndArgs...) { + return + } + t.FailNow() +} + +// Neverf asserts that the given condition doesn't satisfy in waitFor time, +// periodically checking the target function each tick. +// +// assert.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") +func Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.Neverf(t, condition, waitFor, tick, msg, args...) { + return + } + t.FailNow() +} + // Nil asserts that the specified object is nil. // // assert.Nil(t, err) @@ -958,6 +968,30 @@ func Nilf(t TestingT, object interface{}, msg string, args ...interface{}) { t.FailNow() } +// NoDirExists checks whether a directory does not exist in the given path. +// It fails if the path points to an existing _directory_ only. +func NoDirExists(t TestingT, path string, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NoDirExists(t, path, msgAndArgs...) { + return + } + t.FailNow() +} + +// NoDirExistsf checks whether a directory does not exist in the given path. +// It fails if the path points to an existing _directory_ only. +func NoDirExistsf(t TestingT, path string, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NoDirExistsf(t, path, msg, args...) { + return + } + t.FailNow() +} + // NoError asserts that a function returned no error (i.e. `nil`). // // actualObj, err := SomeFunction() @@ -990,6 +1024,30 @@ func NoErrorf(t TestingT, err error, msg string, args ...interface{}) { t.FailNow() } +// NoFileExists checks whether a file does not exist in a given path. It fails +// if the path points to an existing _file_ only. +func NoFileExists(t TestingT, path string, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NoFileExists(t, path, msgAndArgs...) { + return + } + t.FailNow() +} + +// NoFileExistsf checks whether a file does not exist in a given path. It fails +// if the path points to an existing _file_ only. +func NoFileExistsf(t TestingT, path string, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NoFileExistsf(t, path, msg, args...) { + return + } + t.FailNow() +} + // NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the // specified substring or element. // @@ -1166,6 +1224,38 @@ func NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args .. t.FailNow() } +// NotSame asserts that two pointers do not reference the same object. +// +// assert.NotSame(t, ptr1, ptr2) +// +// Both arguments must be pointer variables. Pointer variable sameness is +// determined based on the equality of both type and value. +func NotSame(t TestingT, expected interface{}, actual interface{}, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NotSame(t, expected, actual, msgAndArgs...) { + return + } + t.FailNow() +} + +// NotSamef asserts that two pointers do not reference the same object. +// +// assert.NotSamef(t, ptr1, ptr2, "error message %s", "formatted") +// +// Both arguments must be pointer variables. Pointer variable sameness is +// determined based on the equality of both type and value. +func NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.NotSamef(t, expected, actual, msg, args...) { + return + } + t.FailNow() +} + // NotSubset asserts that the specified list(array, slice...) contains not all // elements given in the specified subset(array, slice...). // @@ -1229,6 +1319,36 @@ func Panics(t TestingT, f assert.PanicTestFunc, msgAndArgs ...interface{}) { t.FailNow() } +// PanicsWithError asserts that the code inside the specified PanicTestFunc +// panics, and that the recovered panic value is an error that satisfies the +// EqualError comparison. +// +// assert.PanicsWithError(t, "crazy error", func(){ GoCrazy() }) +func PanicsWithError(t TestingT, errString string, f assert.PanicTestFunc, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.PanicsWithError(t, errString, f, msgAndArgs...) { + return + } + t.FailNow() +} + +// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc +// panics, and that the recovered panic value is an error that satisfies the +// EqualError comparison. +// +// assert.PanicsWithErrorf(t, "crazy error", func(){ GoCrazy() }, "error message %s", "formatted") +func PanicsWithErrorf(t TestingT, errString string, f assert.PanicTestFunc, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.PanicsWithErrorf(t, errString, f, msg, args...) { + return + } + t.FailNow() +} + // PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that // the recovered panic value equals the expected panic value. // @@ -1410,6 +1530,28 @@ func WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta tim t.FailNow() } +// YAMLEq asserts that two YAML strings are equivalent. +func YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.YAMLEq(t, expected, actual, msgAndArgs...) { + return + } + t.FailNow() +} + +// YAMLEqf asserts that two YAML strings are equivalent. +func YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) { + if h, ok := t.(tHelper); ok { + h.Helper() + } + if assert.YAMLEqf(t, expected, actual, msg, args...) { + return + } + t.FailNow() +} + // Zero asserts that i is the zero value for its type. func Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) { if h, ok := t.(tHelper); ok { diff --git a/vendor/github.com/stretchr/testify/require/require_forward.go b/vendor/github.com/stretchr/testify/require/require_forward.go index 804fae03..5aac226d 100644 --- a/vendor/github.com/stretchr/testify/require/require_forward.go +++ b/vendor/github.com/stretchr/testify/require/require_forward.go @@ -54,7 +54,8 @@ func (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, Containsf(a.t, s, contains, msg, args...) } -// DirExists checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists. +// DirExists checks whether a directory exists in the given path. It also fails +// if the path is a file rather a directory or there is an error checking whether it exists. func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -62,7 +63,8 @@ func (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) { DirExists(a.t, path, msgAndArgs...) } -// DirExistsf checks whether a directory exists in the given path. It also fails if the path is a file rather a directory or there is an error checking whether it exists. +// DirExistsf checks whether a directory exists in the given path. It also fails +// if the path is a file rather a directory or there is an error checking whether it exists. func (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -310,7 +312,8 @@ func (a *Assertions) Falsef(value bool, msg string, args ...interface{}) { Falsef(a.t, value, msg, args...) } -// FileExists checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file. +// FileExists checks whether a file exists in the given path. It also fails if +// the path points to a directory or there is an error when trying to check the file. func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -318,7 +321,8 @@ func (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) { FileExists(a.t, path, msgAndArgs...) } -// FileExistsf checks whether a file exists in the given path. It also fails if the path points to a directory or there is an error when trying to check the file. +// FileExistsf checks whether a file exists in the given path. It also fails if +// the path points to a directory or there is an error when trying to check the file. func (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -522,7 +526,7 @@ func (a *Assertions) Implementsf(interfaceObject interface{}, object interface{} // InDelta asserts that the two numerals are within delta of each other. // -// a.InDelta(math.Pi, (22 / 7.0), 0.01) +// a.InDelta(math.Pi, 22/7.0, 0.01) func (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -564,7 +568,7 @@ func (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, del // InDeltaf asserts that the two numerals are within delta of each other. // -// a.InDeltaf(math.Pi, (22 / 7.0, "error message %s", "formatted"), 0.01) +// a.InDeltaf(math.Pi, 22/7.0, 0.01, "error message %s", "formatted") func (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) { if h, ok := a.t.(tHelper); ok { h.Helper() @@ -640,22 +644,6 @@ func (a *Assertions) JSONEqf(expected string, actual string, msg string, args .. JSONEqf(a.t, expected, actual, msg, args...) } -// YAMLEq asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - YAMLEq(a.t, expected, actual, msgAndArgs...) -} - -// YAMLEqf asserts that two YAML strings are equivalent. -func (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) { - if h, ok := a.t.(tHelper); ok { - h.Helper() - } - YAMLEqf(a.t, expected, actual, msg, args...) -} - // Len asserts that the specified object has specific length. // Len also fails if the object has a type that len() not accept. // @@ -728,6 +716,28 @@ func (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...i Lessf(a.t, e1, e2, msg, args...) } +// Never asserts that the given condition doesn't satisfy in waitFor time, +// periodically checking the target function each tick. +// +// a.Never(func() bool { return false; }, time.Second, 10*time.Millisecond) +func (a *Assertions) Never(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + Never(a.t, condition, waitFor, tick, msgAndArgs...) +} + +// Neverf asserts that the given condition doesn't satisfy in waitFor time, +// periodically checking the target function each tick. +// +// a.Neverf(func() bool { return false; }, time.Second, 10*time.Millisecond, "error message %s", "formatted") +func (a *Assertions) Neverf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + Neverf(a.t, condition, waitFor, tick, msg, args...) +} + // Nil asserts that the specified object is nil. // // a.Nil(err) @@ -748,6 +758,24 @@ func (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) { Nilf(a.t, object, msg, args...) } +// NoDirExists checks whether a directory does not exist in the given path. +// It fails if the path points to an existing _directory_ only. +func (a *Assertions) NoDirExists(path string, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NoDirExists(a.t, path, msgAndArgs...) +} + +// NoDirExistsf checks whether a directory does not exist in the given path. +// It fails if the path points to an existing _directory_ only. +func (a *Assertions) NoDirExistsf(path string, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NoDirExistsf(a.t, path, msg, args...) +} + // NoError asserts that a function returned no error (i.e. `nil`). // // actualObj, err := SomeFunction() @@ -774,6 +802,24 @@ func (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) { NoErrorf(a.t, err, msg, args...) } +// NoFileExists checks whether a file does not exist in a given path. It fails +// if the path points to an existing _file_ only. +func (a *Assertions) NoFileExists(path string, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NoFileExists(a.t, path, msgAndArgs...) +} + +// NoFileExistsf checks whether a file does not exist in a given path. It fails +// if the path points to an existing _file_ only. +func (a *Assertions) NoFileExistsf(path string, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NoFileExistsf(a.t, path, msg, args...) +} + // NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the // specified substring or element. // @@ -914,6 +960,32 @@ func (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, arg NotRegexpf(a.t, rx, str, msg, args...) } +// NotSame asserts that two pointers do not reference the same object. +// +// a.NotSame(ptr1, ptr2) +// +// Both arguments must be pointer variables. Pointer variable sameness is +// determined based on the equality of both type and value. +func (a *Assertions) NotSame(expected interface{}, actual interface{}, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NotSame(a.t, expected, actual, msgAndArgs...) +} + +// NotSamef asserts that two pointers do not reference the same object. +// +// a.NotSamef(ptr1, ptr2, "error message %s", "formatted") +// +// Both arguments must be pointer variables. Pointer variable sameness is +// determined based on the equality of both type and value. +func (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + NotSamef(a.t, expected, actual, msg, args...) +} + // NotSubset asserts that the specified list(array, slice...) contains not all // elements given in the specified subset(array, slice...). // @@ -962,6 +1034,30 @@ func (a *Assertions) Panics(f assert.PanicTestFunc, msgAndArgs ...interface{}) { Panics(a.t, f, msgAndArgs...) } +// PanicsWithError asserts that the code inside the specified PanicTestFunc +// panics, and that the recovered panic value is an error that satisfies the +// EqualError comparison. +// +// a.PanicsWithError("crazy error", func(){ GoCrazy() }) +func (a *Assertions) PanicsWithError(errString string, f assert.PanicTestFunc, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + PanicsWithError(a.t, errString, f, msgAndArgs...) +} + +// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc +// panics, and that the recovered panic value is an error that satisfies the +// EqualError comparison. +// +// a.PanicsWithErrorf("crazy error", func(){ GoCrazy() }, "error message %s", "formatted") +func (a *Assertions) PanicsWithErrorf(errString string, f assert.PanicTestFunc, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + PanicsWithErrorf(a.t, errString, f, msg, args...) +} + // PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that // the recovered panic value equals the expected panic value. // @@ -1104,6 +1200,22 @@ func (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta WithinDurationf(a.t, expected, actual, delta, msg, args...) } +// YAMLEq asserts that two YAML strings are equivalent. +func (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + YAMLEq(a.t, expected, actual, msgAndArgs...) +} + +// YAMLEqf asserts that two YAML strings are equivalent. +func (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) { + if h, ok := a.t.(tHelper); ok { + h.Helper() + } + YAMLEqf(a.t, expected, actual, msg, args...) +} + // Zero asserts that i is the zero value for its type. func (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) { if h, ok := a.t.(tHelper); ok { diff --git a/vendor/github.com/stretchr/testify/require/requirements.go b/vendor/github.com/stretchr/testify/require/requirements.go index 6b85c5ec..91772dfe 100644 --- a/vendor/github.com/stretchr/testify/require/requirements.go +++ b/vendor/github.com/stretchr/testify/require/requirements.go @@ -26,4 +26,4 @@ type BoolAssertionFunc func(TestingT, bool, ...interface{}) // for table driven tests. type ErrorAssertionFunc func(TestingT, error, ...interface{}) -//go:generate go run ../_codegen/main.go -output-package=require -template=require.go.tmpl -include-format-funcs +//go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=require -template=require.go.tmpl -include-format-funcs" diff --git a/vendor/github.com/stretchr/testify/suite/suite.go b/vendor/github.com/stretchr/testify/suite/suite.go index d708d7d7..61953018 100644 --- a/vendor/github.com/stretchr/testify/suite/suite.go +++ b/vendor/github.com/stretchr/testify/suite/suite.go @@ -7,6 +7,7 @@ import ( "reflect" "regexp" "runtime/debug" + "sync" "testing" "github.com/stretchr/testify/assert" @@ -80,11 +81,12 @@ func (suite *Suite) Run(name string, subtest func()) bool { // Run takes a testing suite and runs all of the tests attached // to it. func Run(t *testing.T, suite TestingSuite) { + testsSync := &sync.WaitGroup{} suite.SetT(t) defer failOnPanic(t) suiteSetupDone := false - + methodFinder := reflect.TypeOf(suite) tests := []testing.InternalTest{} for index := 0; index < methodFinder.NumMethod(); index++ { @@ -103,6 +105,7 @@ func Run(t *testing.T, suite TestingSuite) { } defer func() { if tearDownAllSuite, ok := suite.(TearDownAllSuite); ok { + testsSync.Wait() tearDownAllSuite.TearDownSuite() } }() @@ -111,6 +114,7 @@ func Run(t *testing.T, suite TestingSuite) { test := testing.InternalTest{ Name: method.Name, F: func(t *testing.T) { + defer testsSync.Done() parentT := suite.T() suite.SetT(t) defer failOnPanic(t) @@ -134,6 +138,7 @@ func Run(t *testing.T, suite TestingSuite) { }, } tests = append(tests, test) + testsSync.Add(1) } runTests(t, tests) } diff --git a/vendor/github.com/zfjagann/golang-ring/ring.go b/vendor/github.com/zfjagann/golang-ring/ring.go index 6d2a7e24..345ee8cd 100644 --- a/vendor/github.com/zfjagann/golang-ring/ring.go +++ b/vendor/github.com/zfjagann/golang-ring/ring.go @@ -56,7 +56,7 @@ func (r *Ring) ContentSize() int { } else { difference := (r.head - r.tail) if difference < 0 { - difference = -difference + difference += r.capacity() } return difference + 1 } |