summaryrefslogtreecommitdiffstats
path: root/vendor/github.com
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com')
-rw-r--r--vendor/github.com/d5/tengo/v2/Makefile1
-rw-r--r--vendor/github.com/d5/tengo/v2/README.md35
-rw-r--r--vendor/github.com/d5/tengo/v2/bytecode.go12
-rw-r--r--vendor/github.com/d5/tengo/v2/compiler.go42
-rw-r--r--vendor/github.com/d5/tengo/v2/script.go13
-rw-r--r--vendor/github.com/d5/tengo/v2/stdlib/json/encode.go195
-rw-r--r--vendor/github.com/fsnotify/fsnotify/.editorconfig9
-rw-r--r--vendor/github.com/fsnotify/fsnotify/.gitattributes1
-rw-r--r--vendor/github.com/fsnotify/fsnotify/.travis.yml20
-rw-r--r--vendor/github.com/fsnotify/fsnotify/LICENSE2
-rw-r--r--vendor/github.com/fsnotify/fsnotify/README.md71
-rw-r--r--vendor/github.com/fsnotify/fsnotify/fsnotify.go4
-rw-r--r--vendor/github.com/fsnotify/fsnotify/go.mod5
-rw-r--r--vendor/github.com/fsnotify/fsnotify/go.sum2
-rw-r--r--vendor/github.com/fsnotify/fsnotify/inotify_poller.go4
-rw-r--r--vendor/github.com/fsnotify/fsnotify/open_mode_bsd.go2
-rw-r--r--vendor/github.com/fsnotify/fsnotify/open_mode_darwin.go2
-rw-r--r--vendor/github.com/golang/protobuf/proto/properties.go5
-rw-r--r--vendor/github.com/gorilla/websocket/README.md2
-rw-r--r--vendor/github.com/gorilla/websocket/conn.go14
-rw-r--r--vendor/github.com/gorilla/websocket/doc.go6
-rw-r--r--vendor/github.com/gorilla/websocket/go.sum2
-rw-r--r--vendor/github.com/gorilla/websocket/prepared.go4
-rw-r--r--vendor/github.com/hashicorp/golang-lru/lru.go22
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/chat.go63
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/errors.go7
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/kbchat.go417
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/team.go12
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/api.go146
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/blocking.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/chat_ui.go137
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/commands.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/common.go184
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/emoji.go374
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/gregor.go12
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/local.go871
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/notify.go24
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/remote.go367
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/chat1/unfurl.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_internal.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/auth_update.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/common.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/incoming.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/outgoing.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/gregor1/remind.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/account.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/airdrop.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/apiserver.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/appstate.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/audit.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/avatars.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/backend_common.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/badger.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/block.go106
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/bot.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/btc.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/common.go145
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/config.go24
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/constants.go306
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/contacts.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/crypto.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/cryptocurrency.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ctl.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/debugging.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/delegate_ui_ctl.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/device.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/emails.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ephemeral.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/favorite.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/featured_bot.go28
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/fs.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/git.go6
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_common.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gpg_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/gregor_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home.go18
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/home_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_common.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify3_ui.go68
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_common.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/identify_ui.go52
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/implicit_team_migration.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/incoming-share.go98
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/install.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/invite_friends.go56
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_common.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfs_git.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kbfsmount.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisionee2.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kex2provisioner.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/kvstore.go28
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/log_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/login_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/logsend.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/merkle_store.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/metadata_update.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/network_stats.go66
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_app.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_audit.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_badges.go78
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_can_user_perform.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ctl.go124
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_device_clone.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_email.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_ephemeral.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_favorites.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_featuredbots.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_fs_request.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_invite_friends.go4
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_keyfamily.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_paperkey.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_pgp.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_phone.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_runtimestats.go72
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_saltpack.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_service.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_session.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_team.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_teambot.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_tracking.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/notify_users.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/os.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/paperprovision.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/passphrase_common.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp.go14
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pgp_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/phone_numbers.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/pprof.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/process.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_common.go30
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/prove_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/provision_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/quota.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reachability.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/rekey_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/reset.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/revoke.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack.go4
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/saltpack_ui.go4
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/scanproofs.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secret_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/secretkeys.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/selfprovision.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/session.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/signup.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/sigs.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/simple_fs.go117
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/stream_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teambot.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams.go1160
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teams_ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/teamsearch.go85
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/test.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/tlf_keys.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/track.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/upk.go10
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/user.go136
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/usersearch.go58
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/keybase1/wot.go116
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/bundle.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/common.go4
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/gregor.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/local.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/notify.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/remote.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1/ui.go2
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/util.go38
-rw-r--r--vendor/github.com/keybase/go-keybase-chat-bot/kbchat/wallet.go6
-rw-r--r--vendor/github.com/konsorten/go-windows-terminal-sequences/README.md2
-rw-r--r--vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go3
-rw-r--r--vendor/github.com/konsorten/go-windows-terminal-sequences/sequences_dummy.go11
-rw-r--r--vendor/github.com/labstack/echo/v4/README.md7
-rw-r--r--vendor/github.com/labstack/echo/v4/bind.go42
-rw-r--r--vendor/github.com/labstack/echo/v4/context.go11
-rw-r--r--vendor/github.com/labstack/echo/v4/echo.go41
-rw-r--r--vendor/github.com/labstack/echo/v4/go.mod11
-rw-r--r--vendor/github.com/labstack/echo/v4/go.sum37
-rw-r--r--vendor/github.com/labstack/echo/v4/ip.go137
-rw-r--r--vendor/github.com/labstack/echo/v4/middleware/jwt.go8
-rw-r--r--vendor/github.com/labstack/echo/v4/middleware/proxy.go4
-rw-r--r--vendor/github.com/labstack/echo/v4/middleware/rewrite.go3
-rw-r--r--vendor/github.com/labstack/echo/v4/router.go88
-rw-r--r--vendor/github.com/mattn/go-colorable/.travis.yml12
-rw-r--r--vendor/github.com/mattn/go-colorable/README.md4
-rw-r--r--vendor/github.com/mattn/go-colorable/colorable_appengine.go8
-rw-r--r--vendor/github.com/mattn/go-colorable/colorable_others.go8
-rw-r--r--vendor/github.com/mattn/go-colorable/colorable_windows.go28
-rw-r--r--vendor/github.com/mattn/go-colorable/go.mod7
-rw-r--r--vendor/github.com/mattn/go-colorable/go.sum9
-rw-r--r--vendor/github.com/mattn/go-colorable/go.test.sh12
-rw-r--r--vendor/github.com/mattn/go-isatty/.travis.yml15
-rw-r--r--vendor/github.com/mattn/go-isatty/README.md2
-rw-r--r--vendor/github.com/mattn/go-isatty/go.mod2
-rw-r--r--vendor/github.com/mattn/go-isatty/go.sum4
-rw-r--r--vendor/github.com/mattn/go-isatty/go.test.sh12
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_android.go23
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_bsd.go12
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_tcgets.go1
-rw-r--r--vendor/github.com/mattn/go-isatty/renovate.json8
-rw-r--r--vendor/github.com/mattn/go-runewidth/.travis.yml14
-rw-r--r--vendor/github.com/mattn/go-runewidth/README.md (renamed from vendor/github.com/mattn/go-runewidth/README.mkd)2
-rw-r--r--vendor/github.com/mattn/go-runewidth/go.test.sh12
-rw-r--r--vendor/github.com/mattn/go-runewidth/runewidth.go1
-rw-r--r--vendor/github.com/mattn/go-runewidth/runewidth_table.go2
-rw-r--r--vendor/github.com/mattn/godown/go.mod8
-rw-r--r--vendor/github.com/mattn/godown/go.sum7
-rw-r--r--vendor/github.com/mattn/godown/godown.go1
-rw-r--r--vendor/github.com/missdeer/golib/LICENSE (renamed from vendor/github.com/dfordsoft/golib/LICENSE)0
-rw-r--r--vendor/github.com/missdeer/golib/ic/convutf8.go (renamed from vendor/github.com/dfordsoft/golib/ic/convutf8.go)0
-rw-r--r--vendor/github.com/missdeer/golib/ic/ic.go (renamed from vendor/github.com/dfordsoft/golib/ic/ic.go)0
-rw-r--r--vendor/github.com/sirupsen/logrus/.golangci.yml40
-rw-r--r--vendor/github.com/sirupsen/logrus/.travis.yml14
-rw-r--r--vendor/github.com/sirupsen/logrus/CHANGELOG.md27
-rw-r--r--vendor/github.com/sirupsen/logrus/README.md44
-rw-r--r--vendor/github.com/sirupsen/logrus/appveyor.yml28
-rw-r--r--vendor/github.com/sirupsen/logrus/entry.go47
-rw-r--r--vendor/github.com/sirupsen/logrus/exported.go2
-rw-r--r--vendor/github.com/sirupsen/logrus/go.mod5
-rw-r--r--vendor/github.com/sirupsen/logrus/go.sum8
-rw-r--r--vendor/github.com/sirupsen/logrus/json_formatter.go4
-rw-r--r--vendor/github.com/sirupsen/logrus/logger.go11
-rw-r--r--vendor/github.com/sirupsen/logrus/logrus.go2
-rw-r--r--vendor/github.com/sirupsen/logrus/terminal_check_bsd.go2
-rw-r--r--vendor/github.com/sirupsen/logrus/terminal_check_js.go7
-rw-r--r--vendor/github.com/sirupsen/logrus/terminal_check_unix.go2
-rw-r--r--vendor/github.com/sirupsen/logrus/text_formatter.go55
-rw-r--r--vendor/github.com/sirupsen/logrus/writer.go6
-rw-r--r--vendor/github.com/slack-go/slack/block_conv.go2
-rw-r--r--vendor/github.com/slack-go/slack/block_element.go27
-rw-r--r--vendor/github.com/slack-go/slack/chat.go74
-rw-r--r--vendor/github.com/slack-go/slack/go.mod1
-rw-r--r--vendor/github.com/slack-go/slack/go.sum2
-rw-r--r--vendor/github.com/slack-go/slack/groups.go21
-rw-r--r--vendor/github.com/slack-go/slack/history.go1
-rw-r--r--vendor/github.com/slack-go/slack/interactions.go1
-rw-r--r--vendor/github.com/slack-go/slack/messages.go2
-rw-r--r--vendor/github.com/slack-go/slack/oauth.go1
-rw-r--r--vendor/github.com/slack-go/slack/users.go22
-rw-r--r--vendor/github.com/slack-go/slack/websocket_managed_conn.go9
-rw-r--r--vendor/github.com/spf13/viper/.editorconfig15
-rw-r--r--vendor/github.com/spf13/viper/.gitignore17
-rw-r--r--vendor/github.com/spf13/viper/.golangci.yml5
-rw-r--r--vendor/github.com/spf13/viper/.travis.yml32
-rw-r--r--vendor/github.com/spf13/viper/Makefile17
-rw-r--r--vendor/github.com/spf13/viper/README.md65
-rw-r--r--vendor/github.com/spf13/viper/go.mod14
-rw-r--r--vendor/github.com/spf13/viper/go.sum228
-rw-r--r--vendor/github.com/spf13/viper/viper.go64
-rw-r--r--vendor/github.com/stretchr/testify/assert/assertion_format.go78
-rw-r--r--vendor/github.com/stretchr/testify/assert/assertion_forward.go156
-rw-r--r--vendor/github.com/stretchr/testify/assert/assertions.go218
-rw-r--r--vendor/github.com/stretchr/testify/assert/forward_assertions.go2
-rw-r--r--vendor/github.com/stretchr/testify/require/forward_requirements.go2
-rw-r--r--vendor/github.com/stretchr/testify/require/require.go210
-rw-r--r--vendor/github.com/stretchr/testify/require/require_forward.go156
-rw-r--r--vendor/github.com/stretchr/testify/require/requirements.go2
-rw-r--r--vendor/github.com/stretchr/testify/suite/suite.go7
-rw-r--r--vendor/github.com/zfjagann/golang-ring/ring.go2
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), &notification); 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), &notification); 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:"/>&nbsp;[![Build Status](https://travis-ci.org/sirupsen/logrus.svg?branch=master)](https://travis-ci.org/sirupsen/logrus)&nbsp;[![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
}