@hyperweb/telescope 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1529 -0
- package/main/build.js +183 -0
- package/main/builder.js +229 -0
- package/main/bundle.js +162 -0
- package/main/bundler.js +100 -0
- package/main/cli.js +71 -0
- package/main/cmds.js +28 -0
- package/main/commands/download.js +122 -0
- package/main/commands/generate.js +151 -0
- package/main/commands/install.js +143 -0
- package/main/commands/transpile.js +197 -0
- package/main/contracts/generate.js +31 -0
- package/main/contracts/install.js +107 -0
- package/main/contracts/message-composer.js +31 -0
- package/main/contracts/react-query.js +31 -0
- package/main/contracts/recoil.js +31 -0
- package/main/file.js +20 -0
- package/main/generators/create-aggregated-lcd-client.js +87 -0
- package/main/generators/create-all-stargate-clients.js +96 -0
- package/main/generators/create-amino-converters.js +43 -0
- package/main/generators/create-bundle.js +83 -0
- package/main/generators/create-cosmwasm-bundle.js +15 -0
- package/main/generators/create-custom-stargate-clients.js +100 -0
- package/main/generators/create-helpers.js +119 -0
- package/main/generators/create-index.js +75 -0
- package/main/generators/create-lcd-client-all.js +116 -0
- package/main/generators/create-lcd-client-scoped.js +89 -0
- package/main/generators/create-lcd-clients.js +78 -0
- package/main/generators/create-mcp-server.js +1853 -0
- package/main/generators/create-mobx-bundle.js +52 -0
- package/main/generators/create-msg-funcs.js +132 -0
- package/main/generators/create-pinia-store-bundle.js +50 -0
- package/main/generators/create-pinia-store.js +90 -0
- package/main/generators/create-query-funcs.js +133 -0
- package/main/generators/create-react-query-bundle.js +103 -0
- package/main/generators/create-registries.js +49 -0
- package/main/generators/create-root-readme.js +259 -0
- package/main/generators/create-rpc-msg-client-all.js +135 -0
- package/main/generators/create-rpc-msg-client-scoped.js +114 -0
- package/main/generators/create-rpc-msg-clients.js +116 -0
- package/main/generators/create-rpc-ops-bundle.js +119 -0
- package/main/generators/create-rpc-query-client-all.js +137 -0
- package/main/generators/create-rpc-query-client-scoped.js +110 -0
- package/main/generators/create-rpc-query-clients.js +198 -0
- package/main/generators/create-sdk-module-stargate-clients.js +95 -0
- package/main/generators/create-stargate-clients.js +96 -0
- package/main/generators/create-types.js +164 -0
- package/main/generators/customize-utils.js +50 -0
- package/main/helpers/__test__/internalTimestamp.js +49 -0
- package/main/helpers/__test__/internalTimestampBigint.js +45 -0
- package/main/helpers/binary-coder.js +535 -0
- package/main/helpers/decimals.js +111 -0
- package/main/helpers/external-comet.js +52 -0
- package/main/helpers/external-icjs.js +36 -0
- package/main/helpers/external.js +31 -0
- package/main/helpers/grpc-gateway.js +348 -0
- package/main/helpers/grpc-web.js +14 -0
- package/main/helpers/helper-func-types-interface.js +106 -0
- package/main/helpers/helper-func-types.js +93 -0
- package/main/helpers/index.js +38 -0
- package/main/helpers/internal-for-bigint.js +259 -0
- package/main/helpers/internal.js +240 -0
- package/main/helpers/json-safe.js +12 -0
- package/main/helpers/mobx.js +80 -0
- package/main/helpers/pinia-endpoint.js +20 -0
- package/main/helpers/react-query-hooks-icjs.js +223 -0
- package/main/helpers/react-query-hooks.js +258 -0
- package/main/helpers/react-query.js +93 -0
- package/main/helpers/registry-helper.js +229 -0
- package/main/helpers/types-helper.js +165 -0
- package/main/helpers/utf8-helper.js +146 -0
- package/main/helpers/varint.js +486 -0
- package/main/helpers/vue-query-hooks.js +226 -0
- package/main/imports.js +416 -0
- package/main/index.js +24 -0
- package/main/parse.js +194 -0
- package/main/prompt.js +64 -0
- package/main/protod/bufbuild.js +87 -0
- package/main/protod/config.js +30 -0
- package/main/protod/git-repo.js +58 -0
- package/main/protod/index.js +17 -0
- package/main/protod/recursive.js +134 -0
- package/main/protod/types.js +2 -0
- package/main/protod/utils.js +91 -0
- package/main/telescope.js +10 -0
- package/main/types.js +2 -0
- package/main/utils/common-create-bundle.js +29 -0
- package/main/utils/contracts.js +39 -0
- package/main/utils/files.js +138 -0
- package/main/utils/index.js +163 -0
- package/main/utils/unused.js +73 -0
- package/module/build.js +176 -0
- package/module/builder.js +222 -0
- package/module/bundle.js +128 -0
- package/module/bundler.js +96 -0
- package/module/cli.js +44 -0
- package/module/cmds.js +22 -0
- package/module/commands/download.js +94 -0
- package/module/commands/generate.js +123 -0
- package/module/commands/install.js +141 -0
- package/module/commands/transpile.js +169 -0
- package/module/contracts/generate.js +29 -0
- package/module/contracts/install.js +105 -0
- package/module/contracts/message-composer.js +29 -0
- package/module/contracts/react-query.js +29 -0
- package/module/contracts/recoil.js +29 -0
- package/module/file.js +18 -0
- package/module/generators/create-aggregated-lcd-client.js +83 -0
- package/module/generators/create-all-stargate-clients.js +92 -0
- package/module/generators/create-amino-converters.js +39 -0
- package/module/generators/create-bundle.js +79 -0
- package/module/generators/create-cosmwasm-bundle.js +11 -0
- package/module/generators/create-custom-stargate-clients.js +96 -0
- package/module/generators/create-helpers.js +112 -0
- package/module/generators/create-index.js +45 -0
- package/module/generators/create-lcd-client-all.js +89 -0
- package/module/generators/create-lcd-client-scoped.js +62 -0
- package/module/generators/create-lcd-clients.js +74 -0
- package/module/generators/create-mcp-server.js +1849 -0
- package/module/generators/create-mobx-bundle.js +25 -0
- package/module/generators/create-msg-funcs.js +128 -0
- package/module/generators/create-pinia-store-bundle.js +23 -0
- package/module/generators/create-pinia-store.js +86 -0
- package/module/generators/create-query-funcs.js +129 -0
- package/module/generators/create-react-query-bundle.js +76 -0
- package/module/generators/create-registries.js +45 -0
- package/module/generators/create-root-readme.js +255 -0
- package/module/generators/create-rpc-msg-client-all.js +108 -0
- package/module/generators/create-rpc-msg-client-scoped.js +87 -0
- package/module/generators/create-rpc-msg-clients.js +112 -0
- package/module/generators/create-rpc-ops-bundle.js +92 -0
- package/module/generators/create-rpc-query-client-all.js +110 -0
- package/module/generators/create-rpc-query-client-scoped.js +83 -0
- package/module/generators/create-rpc-query-clients.js +198 -0
- package/module/generators/create-sdk-module-stargate-clients.js +91 -0
- package/module/generators/create-stargate-clients.js +92 -0
- package/module/generators/create-types.js +137 -0
- package/module/generators/customize-utils.js +46 -0
- package/module/helpers/__test__/internalTimestamp.js +39 -0
- package/module/helpers/__test__/internalTimestampBigint.js +38 -0
- package/module/helpers/binary-coder.js +531 -0
- package/module/helpers/decimals.js +108 -0
- package/module/helpers/external-comet.js +49 -0
- package/module/helpers/external-icjs.js +33 -0
- package/module/helpers/external.js +28 -0
- package/module/helpers/grpc-gateway.js +345 -0
- package/module/helpers/grpc-web.js +11 -0
- package/module/helpers/helper-func-types-interface.js +102 -0
- package/module/helpers/helper-func-types.js +89 -0
- package/module/helpers/index.js +22 -0
- package/module/helpers/internal-for-bigint.js +255 -0
- package/module/helpers/internal.js +236 -0
- package/module/helpers/json-safe.js +9 -0
- package/module/helpers/mobx.js +77 -0
- package/module/helpers/pinia-endpoint.js +17 -0
- package/module/helpers/react-query-hooks-icjs.js +219 -0
- package/module/helpers/react-query-hooks.js +254 -0
- package/module/helpers/react-query.js +89 -0
- package/module/helpers/registry-helper.js +225 -0
- package/module/helpers/types-helper.js +161 -0
- package/module/helpers/utf8-helper.js +143 -0
- package/module/helpers/varint.js +483 -0
- package/module/helpers/vue-query-hooks.js +222 -0
- package/module/imports.js +382 -0
- package/module/index.js +8 -0
- package/module/parse.js +185 -0
- package/module/prompt.js +58 -0
- package/module/protod/bufbuild.js +76 -0
- package/module/protod/config.js +27 -0
- package/module/protod/git-repo.js +54 -0
- package/module/protod/index.js +1 -0
- package/module/protod/recursive.js +125 -0
- package/module/protod/types.js +1 -0
- package/module/protod/utils.js +77 -0
- package/module/telescope.js +8 -0
- package/module/types.js +1 -0
- package/module/utils/common-create-bundle.js +25 -0
- package/module/utils/contracts.js +33 -0
- package/module/utils/files.js +106 -0
- package/module/utils/index.js +143 -0
- package/module/utils/unused.js +47 -0
- package/package.json +115 -0
- package/src/build.ts +255 -0
- package/src/builder.ts +302 -0
- package/src/bundle.ts +160 -0
- package/src/bundler.ts +153 -0
- package/src/cli.js +51 -0
- package/src/cmds.js +25 -0
- package/src/commands/download.ts +120 -0
- package/src/commands/generate.ts +156 -0
- package/src/commands/install.ts +154 -0
- package/src/commands/transpile.ts +198 -0
- package/src/contracts/generate.ts +33 -0
- package/src/contracts/install.ts +118 -0
- package/src/contracts/message-composer.ts +34 -0
- package/src/contracts/react-query.ts +33 -0
- package/src/contracts/recoil.ts +32 -0
- package/src/file.js +20 -0
- package/src/generators/create-aggregated-lcd-client.ts +133 -0
- package/src/generators/create-all-stargate-clients.ts +121 -0
- package/src/generators/create-amino-converters.ts +62 -0
- package/src/generators/create-bundle.ts +97 -0
- package/src/generators/create-cosmwasm-bundle.ts +17 -0
- package/src/generators/create-custom-stargate-clients.ts +128 -0
- package/src/generators/create-helpers.ts +196 -0
- package/src/generators/create-index.ts +72 -0
- package/src/generators/create-lcd-client-all.ts +139 -0
- package/src/generators/create-lcd-client-scoped.ts +109 -0
- package/src/generators/create-lcd-clients.ts +108 -0
- package/src/generators/create-mcp-server.ts +1902 -0
- package/src/generators/create-mobx-bundle.ts +31 -0
- package/src/generators/create-msg-funcs.ts +219 -0
- package/src/generators/create-pinia-store-bundle.ts +35 -0
- package/src/generators/create-pinia-store.ts +121 -0
- package/src/generators/create-query-funcs.ts +224 -0
- package/src/generators/create-react-query-bundle.ts +111 -0
- package/src/generators/create-registries.ts +70 -0
- package/src/generators/create-root-readme.ts +316 -0
- package/src/generators/create-rpc-msg-client-all.ts +167 -0
- package/src/generators/create-rpc-msg-client-scoped.ts +147 -0
- package/src/generators/create-rpc-msg-clients.ts +165 -0
- package/src/generators/create-rpc-ops-bundle.ts +155 -0
- package/src/generators/create-rpc-query-client-all.ts +173 -0
- package/src/generators/create-rpc-query-client-scoped.ts +142 -0
- package/src/generators/create-rpc-query-clients.ts +304 -0
- package/src/generators/create-sdk-module-stargate-clients.ts +120 -0
- package/src/generators/create-stargate-clients.ts +123 -0
- package/src/generators/create-types.ts +236 -0
- package/src/generators/customize-utils.ts +54 -0
- package/src/helpers/__test__/internalTimestamp.test.ts +79 -0
- package/src/helpers/__test__/internalTimestamp.ts +58 -0
- package/src/helpers/__test__/internalTimestampBigint.test.ts +78 -0
- package/src/helpers/__test__/internalTimestampBigint.ts +58 -0
- package/src/helpers/binary-coder.ts +533 -0
- package/src/helpers/decimals.ts +108 -0
- package/src/helpers/external-comet.ts +49 -0
- package/src/helpers/external-icjs.ts +33 -0
- package/src/helpers/external.ts +28 -0
- package/src/helpers/grpc-gateway.ts +345 -0
- package/src/helpers/grpc-web.ts +11 -0
- package/src/helpers/helper-func-types-interface.ts +104 -0
- package/src/helpers/helper-func-types.ts +91 -0
- package/src/helpers/index.ts +22 -0
- package/src/helpers/internal-for-bigint.ts +257 -0
- package/src/helpers/internal.ts +238 -0
- package/src/helpers/json-safe.ts +11 -0
- package/src/helpers/mobx.ts +77 -0
- package/src/helpers/pinia-endpoint.ts +17 -0
- package/src/helpers/react-query-hooks-icjs.ts +223 -0
- package/src/helpers/react-query-hooks.ts +266 -0
- package/src/helpers/react-query.ts +101 -0
- package/src/helpers/registry-helper.ts +227 -0
- package/src/helpers/types-helper.ts +169 -0
- package/src/helpers/utf8-helper.ts +143 -0
- package/src/helpers/varint.ts +483 -0
- package/src/helpers/vue-query-hooks.ts +224 -0
- package/src/imports.ts +499 -0
- package/src/index.ts +12 -0
- package/src/parse.ts +243 -0
- package/src/prompt.js +65 -0
- package/src/protod/bufbuild.spec.ts +80 -0
- package/src/protod/bufbuild.ts +95 -0
- package/src/protod/config.ts +30 -0
- package/src/protod/git-repo.ts +74 -0
- package/src/protod/index.ts +1 -0
- package/src/protod/recursive.spec.ts +164 -0
- package/src/protod/recursive.ts +180 -0
- package/src/protod/test-data/.protod.config.json +42 -0
- package/src/protod/test-data/buf.lock +23 -0
- package/src/protod/test-data/buf.yaml +25 -0
- package/src/protod/test-data/buf2.yaml +20 -0
- package/src/protod/test-data/cosmos/buf.lock +23 -0
- package/src/protod/test-data/cosmos/crypto/secp256k1/keys.proto +38 -0
- package/src/protod/test-data/model.proto +101 -0
- package/src/protod/types.ts +55 -0
- package/src/protod/utils.spec.ts +68 -0
- package/src/protod/utils.ts +90 -0
- package/src/telescope.js +9 -0
- package/src/types.ts +46 -0
- package/src/utils/common-create-bundle.ts +62 -0
- package/src/utils/contracts.ts +37 -0
- package/src/utils/files.ts +145 -0
- package/src/utils/index.ts +150 -0
- package/src/utils/unused.ts +52 -0
- package/types/build.d.ts +41 -0
- package/types/builder.d.ts +50 -0
- package/types/bundle.d.ts +30 -0
- package/types/bundler.d.ts +31 -0
- package/types/cli.d.ts +1 -0
- package/types/cmds.d.ts +11 -0
- package/types/commands/download.d.ts +5 -0
- package/types/commands/generate.d.ts +2 -0
- package/types/commands/install.d.ts +2 -0
- package/types/commands/transpile.d.ts +4 -0
- package/types/contracts/generate.d.ts +2 -0
- package/types/contracts/install.d.ts +2 -0
- package/types/contracts/message-composer.d.ts +2 -0
- package/types/contracts/react-query.d.ts +2 -0
- package/types/contracts/recoil.d.ts +2 -0
- package/types/file.d.ts +2 -0
- package/types/generators/create-aggregated-lcd-client.d.ts +2 -0
- package/types/generators/create-all-stargate-clients.d.ts +3 -0
- package/types/generators/create-amino-converters.d.ts +3 -0
- package/types/generators/create-bundle.d.ts +3 -0
- package/types/generators/create-combined-stargate-clients.d.ts +3 -0
- package/types/generators/create-cosmwasm-bundle.d.ts +2 -0
- package/types/generators/create-custom-stargate-clients.d.ts +3 -0
- package/types/generators/create-helpers.d.ts +2 -0
- package/types/generators/create-index.d.ts +2 -0
- package/types/generators/create-lcd-client-all.d.ts +3 -0
- package/types/generators/create-lcd-client-scoped.d.ts +3 -0
- package/types/generators/create-lcd-clients.d.ts +3 -0
- package/types/generators/create-mcp-server.d.ts +3 -0
- package/types/generators/create-mobx-bundle.d.ts +2 -0
- package/types/generators/create-msg-funcs.d.ts +3 -0
- package/types/generators/create-pinia-store-bundle.d.ts +2 -0
- package/types/generators/create-pinia-store.d.ts +3 -0
- package/types/generators/create-query-funcs.d.ts +3 -0
- package/types/generators/create-react-query-bundle.d.ts +2 -0
- package/types/generators/create-registries.d.ts +3 -0
- package/types/generators/create-root-readme.d.ts +2 -0
- package/types/generators/create-rpc-msg-client-all.d.ts +3 -0
- package/types/generators/create-rpc-msg-client-scoped.d.ts +3 -0
- package/types/generators/create-rpc-msg-clients.d.ts +3 -0
- package/types/generators/create-rpc-ops-bundle.d.ts +2 -0
- package/types/generators/create-rpc-query-client-all.d.ts +3 -0
- package/types/generators/create-rpc-query-client-scoped.d.ts +3 -0
- package/types/generators/create-rpc-query-clients.d.ts +3 -0
- package/types/generators/create-scoped-stargate-clients.d.ts +3 -0
- package/types/generators/create-sdk-module-stargate-clients.d.ts +3 -0
- package/types/generators/create-stargate-clients.d.ts +3 -0
- package/types/generators/create-types.d.ts +3 -0
- package/types/generators/create-unified-stargate-clients.d.ts +3 -0
- package/types/generators/customize-utils.d.ts +2 -0
- package/types/helpers/__test__/internalTimestamp.d.ts +21 -0
- package/types/helpers/__test__/internalTimestampBigint.d.ts +20 -0
- package/types/helpers/binary-coder.d.ts +2 -0
- package/types/helpers/decimals.d.ts +1 -0
- package/types/helpers/external-comet.d.ts +1 -0
- package/types/helpers/external-icjs.d.ts +1 -0
- package/types/helpers/external.d.ts +1 -0
- package/types/helpers/generated-type.d.ts +1 -0
- package/types/helpers/grpc-gateway.d.ts +1 -0
- package/types/helpers/grpc-web.d.ts +1 -0
- package/types/helpers/helper-func-types-interface.d.ts +2 -0
- package/types/helpers/helper-func-types.d.ts +2 -0
- package/types/helpers/index.d.ts +22 -0
- package/types/helpers/internal-for-bigint.d.ts +2 -0
- package/types/helpers/internal.d.ts +2 -0
- package/types/helpers/internalForBigInt.d.ts +1 -0
- package/types/helpers/json-safe.d.ts +1 -0
- package/types/helpers/mobx.d.ts +1 -0
- package/types/helpers/pinia-endpoint.d.ts +1 -0
- package/types/helpers/react-query-hooks-icjs.d.ts +2 -0
- package/types/helpers/react-query-hooks.d.ts +2 -0
- package/types/helpers/react-query.d.ts +2 -0
- package/types/helpers/registry-helper.d.ts +2 -0
- package/types/helpers/types-helper.d.ts +2 -0
- package/types/helpers/types.d.ts +1 -0
- package/types/helpers/utf8-helper.d.ts +1 -0
- package/types/helpers/varint.d.ts +1 -0
- package/types/helpers/vue-query-hooks.d.ts +2 -0
- package/types/helpers/vue-query.d.ts +2 -0
- package/types/imports.d.ts +17 -0
- package/types/index.d.ts +6 -0
- package/types/parse.d.ts +15 -0
- package/types/prompt.d.ts +3 -0
- package/types/protod/bufbuild.d.ts +6 -0
- package/types/protod/config.d.ts +7 -0
- package/types/protod/git-repo.d.ts +11 -0
- package/types/protod/index.d.ts +1 -0
- package/types/protod/proto-download.d.ts +2 -0
- package/types/protod/recursive.d.ts +4 -0
- package/types/protod/types.d.ts +49 -0
- package/types/protod/utils.d.ts +11 -0
- package/types/telescope.d.ts +2 -0
- package/types/types.d.ts +43 -0
- package/types/utils/common-create-bundle.d.ts +18 -0
- package/types/utils/contracts.d.ts +6 -0
- package/types/utils/files.d.ts +5 -0
- package/types/utils/index.d.ts +16 -0
- package/types/utils/unused.d.ts +5 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { TelescopeInput } from "..";
|
|
2
|
+
import { TelescopeBuilder } from "../builder";
|
|
3
|
+
import { TelescopeOptions } from "@cosmology/types";
|
|
4
|
+
|
|
5
|
+
import { clone, cloneAll, extractProto } from "./recursive";
|
|
6
|
+
import { removeFolder } from "./utils";
|
|
7
|
+
|
|
8
|
+
import { join } from "path";
|
|
9
|
+
|
|
10
|
+
const GIT_MOUDLES = "git-modules";
|
|
11
|
+
let gitModules = join(
|
|
12
|
+
__dirname,
|
|
13
|
+
"../../../../__fixtures__/misc/proto-download",
|
|
14
|
+
GIT_MOUDLES
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
const GIT_MOUDLES_ALL = "git-modules-all";
|
|
18
|
+
let gitModulesAll = join(
|
|
19
|
+
__dirname,
|
|
20
|
+
"../../../../__fixtures__/misc/proto-download",
|
|
21
|
+
GIT_MOUDLES_ALL
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
const PROTO_FOLDER = "proto";
|
|
25
|
+
let protoFolder = join(
|
|
26
|
+
__dirname,
|
|
27
|
+
"../../../../__fixtures__/misc/proto-download",
|
|
28
|
+
PROTO_FOLDER
|
|
29
|
+
);
|
|
30
|
+
const CODEGEN_FOLDER = "codegen";
|
|
31
|
+
let codegenFolder = join(
|
|
32
|
+
__dirname,
|
|
33
|
+
"../../../../__fixtures__/misc/proto-download",
|
|
34
|
+
CODEGEN_FOLDER
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const options: TelescopeOptions = {
|
|
38
|
+
classesUseArrowFunctions: true,
|
|
39
|
+
env: "v-next",
|
|
40
|
+
useSDKTypes: false,
|
|
41
|
+
prototypes: {
|
|
42
|
+
useOptionalNullable: true,
|
|
43
|
+
fieldDefaultIsOptional: false,
|
|
44
|
+
enableRegistryLoader: false,
|
|
45
|
+
enableMessageComposer: false,
|
|
46
|
+
enabled: true,
|
|
47
|
+
parser: {
|
|
48
|
+
keepCase: false,
|
|
49
|
+
},
|
|
50
|
+
methods: {
|
|
51
|
+
fromJSON: false,
|
|
52
|
+
toJSON: false,
|
|
53
|
+
encode: true,
|
|
54
|
+
decode: true,
|
|
55
|
+
fromPartial: true,
|
|
56
|
+
toAmino: false,
|
|
57
|
+
fromAmino: false,
|
|
58
|
+
fromProto: false,
|
|
59
|
+
toProto: false,
|
|
60
|
+
},
|
|
61
|
+
addTypeUrlToDecoders: false,
|
|
62
|
+
addTypeUrlToObjects: true,
|
|
63
|
+
addAminoTypeToObjects: true,
|
|
64
|
+
typingsFormat: {
|
|
65
|
+
duration: "duration",
|
|
66
|
+
timestamp: "date",
|
|
67
|
+
useExact: false,
|
|
68
|
+
useDeepPartial: true,
|
|
69
|
+
num64: "bigint",
|
|
70
|
+
customTypes: {
|
|
71
|
+
useCosmosSDKDec: false,
|
|
72
|
+
},
|
|
73
|
+
useTelescopeGeneratedType: true,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
bundle: {
|
|
77
|
+
enabled: false,
|
|
78
|
+
},
|
|
79
|
+
stargateClients: {
|
|
80
|
+
enabled: false,
|
|
81
|
+
},
|
|
82
|
+
lcdClients: {
|
|
83
|
+
enabled: false,
|
|
84
|
+
},
|
|
85
|
+
rpcClients: {
|
|
86
|
+
enabled: false,
|
|
87
|
+
inline: false,
|
|
88
|
+
extensions: false,
|
|
89
|
+
camelCase: true,
|
|
90
|
+
enabledServices: ["Query"],
|
|
91
|
+
},
|
|
92
|
+
interfaces: {
|
|
93
|
+
enabled: false,
|
|
94
|
+
},
|
|
95
|
+
aminoEncoding: {
|
|
96
|
+
enabled: false,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const input: TelescopeInput = {
|
|
101
|
+
outPath: codegenFolder,
|
|
102
|
+
protoDirs: [protoFolder],
|
|
103
|
+
options,
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
const testSwitch = false;
|
|
107
|
+
|
|
108
|
+
describe("Test `cloneAll`", () => {
|
|
109
|
+
(testSwitch ? it : it.skip)("should download `injective`, `ibc-go` to `./git-modules`", async () => {
|
|
110
|
+
removeFolder(gitModulesAll);
|
|
111
|
+
const result = await cloneAll({
|
|
112
|
+
repos: [
|
|
113
|
+
{ owner: "cosmos", repo: "ibc-go" },
|
|
114
|
+
{ owner: "injectivelabs", repo: "sdk-go" },
|
|
115
|
+
],
|
|
116
|
+
gitModulesDir: gitModulesAll,
|
|
117
|
+
protoDirMapping: {
|
|
118
|
+
"gogo/protobuf/master": ".",
|
|
119
|
+
"googleapis/googleapis/master": ".",
|
|
120
|
+
"protocolbuffers/protobuf/main": "src",
|
|
121
|
+
},
|
|
122
|
+
ssh: true,
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
console.log(result);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
describe("Test `clone`", () => {
|
|
130
|
+
(testSwitch ? it : it.skip)("should download `cosmos-sdk`, `googleapis`, `protobuf` to `./git-modules` and extract `cosmos/bank/v1beta1/tx.proto` to `./proto`", async () => {
|
|
131
|
+
removeFolder(gitModules);
|
|
132
|
+
const result = await clone({
|
|
133
|
+
owner: "cosmos",
|
|
134
|
+
repo: "cosmos-sdk",
|
|
135
|
+
gitModulesDir: gitModules,
|
|
136
|
+
branch: "release/v0.50.x",
|
|
137
|
+
protoDirMapping: {
|
|
138
|
+
"gogo/protobuf/master": ".",
|
|
139
|
+
"googleapis/googleapis/master": ".",
|
|
140
|
+
"protocolbuffers/protobuf/main": "src",
|
|
141
|
+
},
|
|
142
|
+
ssh: true,
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
if (result) {
|
|
146
|
+
removeFolder(protoFolder);
|
|
147
|
+
extractProto({
|
|
148
|
+
targets: [
|
|
149
|
+
"cosmos/bank/v1beta1/tx.proto",
|
|
150
|
+
"cosmos/gov/**/*.proto",
|
|
151
|
+
"cosmos/authz/**/*.proto",
|
|
152
|
+
],
|
|
153
|
+
sources: result,
|
|
154
|
+
outDir: protoFolder,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
(testSwitch ? it : it.skip)("should successfully generate code in `./codegen`", async () => {
|
|
160
|
+
removeFolder(codegenFolder);
|
|
161
|
+
const telescope = new TelescopeBuilder(input);
|
|
162
|
+
await telescope.build();
|
|
163
|
+
});
|
|
164
|
+
});
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { getAllBufDeps } from "./bufbuild";
|
|
2
|
+
import { GitRepo } from "./git-repo";
|
|
3
|
+
import {
|
|
4
|
+
CloneOptions,
|
|
5
|
+
GitInfo,
|
|
6
|
+
ProtoCopyOptions,
|
|
7
|
+
CloneAllOptions,
|
|
8
|
+
} from "./types";
|
|
9
|
+
import { join, dirname, resolve, relative } from "path";
|
|
10
|
+
import { getCorrespondingGit, makeDir, parseProtoFile } from "./utils";
|
|
11
|
+
import fs from "fs";
|
|
12
|
+
import { crossGlob as glob } from '@cosmology/utils';
|
|
13
|
+
|
|
14
|
+
export async function cloneAll({
|
|
15
|
+
repos,
|
|
16
|
+
gitModulesDir,
|
|
17
|
+
protoDirMapping,
|
|
18
|
+
ssh,
|
|
19
|
+
}: CloneAllOptions) {
|
|
20
|
+
let clonedResult: Record<string, GitInfo> = {};
|
|
21
|
+
|
|
22
|
+
for (const { owner, repo, branch } of repos) {
|
|
23
|
+
const cloned = await clone({
|
|
24
|
+
owner,
|
|
25
|
+
repo,
|
|
26
|
+
branch,
|
|
27
|
+
gitModulesDir,
|
|
28
|
+
protoDirMapping,
|
|
29
|
+
ssh,
|
|
30
|
+
cloned: clonedResult,
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
for (const [key, value] of Object.entries(cloned)) {
|
|
34
|
+
clonedResult[key] = value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return clonedResult;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export async function clone({
|
|
42
|
+
owner,
|
|
43
|
+
repo,
|
|
44
|
+
branch,
|
|
45
|
+
gitModulesDir: outDir,
|
|
46
|
+
protoDirMapping,
|
|
47
|
+
ssh,
|
|
48
|
+
cloned,
|
|
49
|
+
}: CloneOptions) {
|
|
50
|
+
let clonedResult: Record<string, GitInfo> = cloned ?? {};
|
|
51
|
+
|
|
52
|
+
const gitRepo = new GitRepo(owner, repo, ssh);
|
|
53
|
+
const gitBranch = branch ?? (await gitRepo.getMainBranchName());
|
|
54
|
+
const resultKey = `${owner}/${repo}/${gitBranch}`;
|
|
55
|
+
|
|
56
|
+
if (clonedResult[resultKey]) {
|
|
57
|
+
console.log(`Skip cloning ${resultKey}`);
|
|
58
|
+
return clonedResult;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const gitDir = gitRepo.clone(gitBranch, 1, outDir);
|
|
62
|
+
const protoDir =
|
|
63
|
+
protoDirMapping?.[`${owner}/${repo}/${gitBranch}`] ?? "proto";
|
|
64
|
+
clonedResult[`${owner}/${repo}/${gitBranch}`] = {
|
|
65
|
+
owner,
|
|
66
|
+
repo,
|
|
67
|
+
branch: gitBranch,
|
|
68
|
+
protoDir,
|
|
69
|
+
protoPath: resolve(`${outDir}/${owner}/${repo}/${gitBranch}/${protoDir}`),
|
|
70
|
+
};
|
|
71
|
+
const bufDeps = await getAllBufDeps(gitDir);
|
|
72
|
+
await Promise.all(
|
|
73
|
+
bufDeps.map(async (bufRepo) => {
|
|
74
|
+
const gitRepos = getCorrespondingGit(bufRepo);
|
|
75
|
+
await Promise.all(
|
|
76
|
+
gitRepos.map(async (gitRepo) => {
|
|
77
|
+
const gitRepoObj = new GitRepo(gitRepo.owner, gitRepo.repo, ssh);
|
|
78
|
+
const branch = await gitRepoObj.getMainBranchName();
|
|
79
|
+
const depsClonedResult = await clone({
|
|
80
|
+
...gitRepo,
|
|
81
|
+
gitModulesDir: outDir,
|
|
82
|
+
branch,
|
|
83
|
+
protoDirMapping,
|
|
84
|
+
ssh,
|
|
85
|
+
cloned: clonedResult,
|
|
86
|
+
});
|
|
87
|
+
for (const [key, value] of Object.entries(depsClonedResult)) {
|
|
88
|
+
clonedResult[key] = value;
|
|
89
|
+
}
|
|
90
|
+
})
|
|
91
|
+
);
|
|
92
|
+
})
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
return clonedResult;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function extractProto({ sources, targets, outDir }: ProtoCopyOptions) {
|
|
99
|
+
const extractProtoFiles: { sourceFile: string; target: string }[] =
|
|
100
|
+
extractProtoFromDirs({
|
|
101
|
+
targets,
|
|
102
|
+
sources,
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
extractProtoFiles.map(({ sourceFile, target }) => {
|
|
106
|
+
const targetFile = join(outDir, target);
|
|
107
|
+
const deepTargetDir = dirname(targetFile);
|
|
108
|
+
makeDir(deepTargetDir);
|
|
109
|
+
fs.copyFileSync(sourceFile, targetFile);
|
|
110
|
+
console.info(`Copied ${target} from ${sourceFile.replace(target, "")}`);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function extractProtoFromDirs({
|
|
115
|
+
targets,
|
|
116
|
+
sources,
|
|
117
|
+
}: {
|
|
118
|
+
targets: string[];
|
|
119
|
+
sources: Record<string, GitInfo>;
|
|
120
|
+
}) {
|
|
121
|
+
const extractProtoFiles: { sourceFile: string; target: string }[] = [];
|
|
122
|
+
const existingFiles = new Set();
|
|
123
|
+
|
|
124
|
+
if (!targets || targets.length === 0) {
|
|
125
|
+
return [];
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (!sources || Object.keys(sources).length === 0) {
|
|
129
|
+
return [];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
for (const target of targets) {
|
|
133
|
+
for (const source of Object.values(sources)) {
|
|
134
|
+
const sourceProtoPath = resolve(source.protoPath);
|
|
135
|
+
const files = glob(join(sourceProtoPath, target));
|
|
136
|
+
|
|
137
|
+
extractProtoFiles.push(
|
|
138
|
+
...files
|
|
139
|
+
.map((file) => {
|
|
140
|
+
const copyTarget = relative(sourceProtoPath, file);
|
|
141
|
+
const duplicate = existingFiles.has(copyTarget);
|
|
142
|
+
existingFiles.add(copyTarget);
|
|
143
|
+
if (!duplicate) {
|
|
144
|
+
const resultFiles = [
|
|
145
|
+
{
|
|
146
|
+
sourceFile: file,
|
|
147
|
+
target: copyTarget,
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
|
|
151
|
+
const newTargets = parseProtoFile(file);
|
|
152
|
+
|
|
153
|
+
if (newTargets && newTargets.length > 0) {
|
|
154
|
+
const deps = extractProtoFromDirs({
|
|
155
|
+
targets: newTargets,
|
|
156
|
+
sources,
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
const filteredDeps = deps?.filter((dep) => {
|
|
160
|
+
const depDuplicate = existingFiles.has(dep.target);
|
|
161
|
+
existingFiles.add(dep.target);
|
|
162
|
+
return !depDuplicate;
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
if (filteredDeps && filteredDeps.length > 0) {
|
|
166
|
+
resultFiles.push(...filteredDeps);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return resultFiles;
|
|
171
|
+
}
|
|
172
|
+
})
|
|
173
|
+
.flat()
|
|
174
|
+
.filter(Boolean)
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return extractProtoFiles;
|
|
180
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"repos": [
|
|
3
|
+
{ "owner": "cosmos", "repo": "cosmos-sdk", "branch": "release/v0.50.x" },
|
|
4
|
+
{ "owner": "cosmos", "repo": "ibc-go" },
|
|
5
|
+
{ "owner": "injectivelabs", "repo": "sdk-go" }
|
|
6
|
+
],
|
|
7
|
+
"protoDirMapping": {
|
|
8
|
+
"gogo/protobuf/master": ".",
|
|
9
|
+
"googleapis/googleapis/master": ".",
|
|
10
|
+
"protocolbuffers/protobuf/main": "src"
|
|
11
|
+
},
|
|
12
|
+
"outDir": "../../__fixtures__/misc/proto-download/testproto",
|
|
13
|
+
"ssh": true,
|
|
14
|
+
"tempRepoDir": "git-modules",
|
|
15
|
+
"targets": [
|
|
16
|
+
"cosmos/auth/v1beta1/auth.proto",
|
|
17
|
+
"cosmos/vesting/v1beta1/vesting.proto",
|
|
18
|
+
"cosmos/crypto/secp256k1/keys.proto",
|
|
19
|
+
"cosmos/crypto/secp256r1/keys.proto",
|
|
20
|
+
"cosmos/crypto/ed25519/keys.proto",
|
|
21
|
+
"cosmos/authz/v1beta1/tx.proto",
|
|
22
|
+
"cosmos/bank/v1beta1/tx.proto",
|
|
23
|
+
"cosmos/distribution/v1beta1/tx.proto",
|
|
24
|
+
"cosmos/feegrant/v1beta1/tx.proto",
|
|
25
|
+
"cosmos/gov/v1beta1/tx.proto",
|
|
26
|
+
"cosmos/gov/v1/tx.proto",
|
|
27
|
+
"cosmos/group/v1/tx.proto",
|
|
28
|
+
"cosmos/staking/v1beta1/tx.proto",
|
|
29
|
+
"cosmos/vesting/v1beta1/tx.proto",
|
|
30
|
+
"cosmos/auth/v1beta1/query.proto",
|
|
31
|
+
"cosmos/bank/v1beta1/query.proto",
|
|
32
|
+
"cosmos/staking/v1beta1/query.proto",
|
|
33
|
+
"cosmos/gov/v1beta1/query.proto",
|
|
34
|
+
"cosmwasm/wasm/v1/tx.proto",
|
|
35
|
+
"cosmwasm/wasm/v1/query.proto",
|
|
36
|
+
"ibc/applications/transfer/v1/tx.proto",
|
|
37
|
+
"ibc/core/channel/v1/tx.proto",
|
|
38
|
+
"ibc/core/client/v1/tx.proto",
|
|
39
|
+
"ibc/core/connection/v1/tx.proto",
|
|
40
|
+
"injective/types/v1beta1/account.proto"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Generated by buf. DO NOT EDIT.
|
|
2
|
+
version: v1
|
|
3
|
+
deps:
|
|
4
|
+
- remote: buf.build
|
|
5
|
+
owner: cosmos
|
|
6
|
+
repository: cosmos-proto
|
|
7
|
+
commit: 1935555c206d4afb9e94615dfd0fad31
|
|
8
|
+
digest: shake256:c74d91a3ac7ae07d579e90eee33abf9b29664047ac8816500cf22c081fec0d72d62c89ce0bebafc1f6fec7aa5315be72606717740ca95007248425102c365377
|
|
9
|
+
- remote: buf.build
|
|
10
|
+
owner: cosmos
|
|
11
|
+
repository: gogo-proto
|
|
12
|
+
commit: 5e5b9fdd01804356895f8f79a6f1ddc1
|
|
13
|
+
digest: shake256:0b85da49e2e5f9ebc4806eae058e2f56096ff3b1c59d1fb7c190413dd15f45dd456f0b69ced9059341c80795d2b6c943de15b120a9e0308b499e43e4b5fc2952
|
|
14
|
+
- remote: buf.build
|
|
15
|
+
owner: googleapis
|
|
16
|
+
repository: googleapis
|
|
17
|
+
commit: 28151c0d0a1641bf938a7672c500e01d
|
|
18
|
+
digest: shake256:49215edf8ef57f7863004539deff8834cfb2195113f0b890dd1f67815d9353e28e668019165b9d872395871eeafcbab3ccfdb2b5f11734d3cca95be9e8d139de
|
|
19
|
+
- remote: buf.build
|
|
20
|
+
owner: protocolbuffers
|
|
21
|
+
repository: wellknowntypes
|
|
22
|
+
commit: 657250e6a39648cbb169d079a60bd9ba
|
|
23
|
+
digest: shake256:00de25001b8dd2e29d85fc4bcc3ede7aed886d76d67f5e0f7a9b320b90f871d3eb73507d50818d823a0512f3f8db77a11c043685528403e31ff3fef18323a9fb
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# This module represents buf.build/cosmos/cosmos-sdk
|
|
2
|
+
version: v1
|
|
3
|
+
name: buf.build/cosmos/cosmos-sdk
|
|
4
|
+
deps:
|
|
5
|
+
- buf.build/cosmos/cosmos-proto
|
|
6
|
+
- buf.build/cosmos/gogo-proto
|
|
7
|
+
- buf.build/googleapis/googleapis
|
|
8
|
+
- buf.build/protocolbuffers/wellknowntypes:v23.4
|
|
9
|
+
breaking:
|
|
10
|
+
use:
|
|
11
|
+
- FILE
|
|
12
|
+
lint:
|
|
13
|
+
use:
|
|
14
|
+
- DEFAULT
|
|
15
|
+
- COMMENTS
|
|
16
|
+
- FILE_LOWER_SNAKE_CASE
|
|
17
|
+
except:
|
|
18
|
+
- UNARY_RPC
|
|
19
|
+
- COMMENT_FIELD
|
|
20
|
+
- SERVICE_SUFFIX
|
|
21
|
+
- PACKAGE_VERSION_SUFFIX
|
|
22
|
+
- RPC_REQUEST_STANDARD_NAME
|
|
23
|
+
- ENUM_NO_ALLOW_ALIAS
|
|
24
|
+
ignore:
|
|
25
|
+
- tendermint
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This module represents buf.build/cosmos/cosmos-sdk
|
|
2
|
+
version: v1
|
|
3
|
+
name: buf.build/cosmos/cosmos-sdk
|
|
4
|
+
breaking:
|
|
5
|
+
use:
|
|
6
|
+
- FILE
|
|
7
|
+
lint:
|
|
8
|
+
use:
|
|
9
|
+
- DEFAULT
|
|
10
|
+
- COMMENTS
|
|
11
|
+
- FILE_LOWER_SNAKE_CASE
|
|
12
|
+
except:
|
|
13
|
+
- UNARY_RPC
|
|
14
|
+
- COMMENT_FIELD
|
|
15
|
+
- SERVICE_SUFFIX
|
|
16
|
+
- PACKAGE_VERSION_SUFFIX
|
|
17
|
+
- RPC_REQUEST_STANDARD_NAME
|
|
18
|
+
- ENUM_NO_ALLOW_ALIAS
|
|
19
|
+
ignore:
|
|
20
|
+
- tendermint
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Generated by buf. DO NOT EDIT.
|
|
2
|
+
version: v1
|
|
3
|
+
deps:
|
|
4
|
+
- remote: buf.build
|
|
5
|
+
owner: cosmos
|
|
6
|
+
repository: cosmos-proto
|
|
7
|
+
commit: 1935555c206d4afb9e94615dfd0fad31
|
|
8
|
+
digest: shake256:c74d91a3ac7ae07d579e90eee33abf9b29664047ac8816500cf22c081fec0d72d62c89ce0bebafc1f6fec7aa5315be72606717740ca95007248425102c365377
|
|
9
|
+
- remote: buf.build
|
|
10
|
+
owner: cosmos
|
|
11
|
+
repository: gogo-proto
|
|
12
|
+
commit: 5e5b9fdd01804356895f8f79a6f1ddc1
|
|
13
|
+
digest: shake256:0b85da49e2e5f9ebc4806eae058e2f56096ff3b1c59d1fb7c190413dd15f45dd456f0b69ced9059341c80795d2b6c943de15b120a9e0308b499e43e4b5fc2952
|
|
14
|
+
- remote: buf.build
|
|
15
|
+
owner: googleapis
|
|
16
|
+
repository: googleapis
|
|
17
|
+
commit: 28151c0d0a1641bf938a7672c500e01d
|
|
18
|
+
digest: shake256:49215edf8ef57f7863004539deff8834cfb2195113f0b890dd1f67815d9353e28e668019165b9d872395871eeafcbab3ccfdb2b5f11734d3cca95be9e8d139de
|
|
19
|
+
- remote: buf.build
|
|
20
|
+
owner: protocolbuffers
|
|
21
|
+
repository: wellknowntypes
|
|
22
|
+
commit: 657250e6a39648cbb169d079a60bd9ba
|
|
23
|
+
digest: shake256:00de25001b8dd2e29d85fc4bcc3ede7aed886d76d67f5e0f7a9b320b90f871d3eb73507d50818d823a0512f3f8db77a11c043685528403e31ff3fef18323a9fb
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
package cosmos.crypto.secp256k1;
|
|
3
|
+
|
|
4
|
+
import "amino/amino.proto";
|
|
5
|
+
import "gogoproto/gogo.proto";
|
|
6
|
+
|
|
7
|
+
option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1";
|
|
8
|
+
|
|
9
|
+
// PubKey defines a secp256k1 public key
|
|
10
|
+
// Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte
|
|
11
|
+
// if the y-coordinate is the lexicographically largest of the two associated with
|
|
12
|
+
// the x-coordinate. Otherwise the first byte is a 0x03.
|
|
13
|
+
// This prefix is followed with the x-coordinate.
|
|
14
|
+
message PubKey {
|
|
15
|
+
option (amino.name) = "tendermint/PubKeySecp256k1";
|
|
16
|
+
// The Amino encoding is simply the inner bytes field, and not the Amino
|
|
17
|
+
// encoding of the whole PubKey struct.
|
|
18
|
+
//
|
|
19
|
+
// Example (JSON):
|
|
20
|
+
// s := PubKey{Key: []byte{0x01}}
|
|
21
|
+
// out := AminoJSONEncoder(s)
|
|
22
|
+
//
|
|
23
|
+
// Then we have:
|
|
24
|
+
// out == `"MQ=="`
|
|
25
|
+
// out != `{"key":"MQ=="}`
|
|
26
|
+
option (amino.message_encoding) = "key_field";
|
|
27
|
+
option (gogoproto.goproto_stringer) = false;
|
|
28
|
+
|
|
29
|
+
bytes key = 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// PrivKey defines a secp256k1 private key.
|
|
33
|
+
message PrivKey {
|
|
34
|
+
option (amino.name) = "tendermint/PrivKeySecp256k1";
|
|
35
|
+
option (amino.message_encoding) = "key_field";
|
|
36
|
+
|
|
37
|
+
bytes key = 1;
|
|
38
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// Copyright 2023 Google LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
syntax = "proto3";
|
|
16
|
+
|
|
17
|
+
package google.ai.generativelanguage.v1beta;
|
|
18
|
+
|
|
19
|
+
import "google/api/field_behavior.proto";
|
|
20
|
+
import "google/api/resource.proto";
|
|
21
|
+
|
|
22
|
+
option go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb";
|
|
23
|
+
option java_multiple_files = true;
|
|
24
|
+
option java_outer_classname = "ModelProto";
|
|
25
|
+
option java_package = "com.google.ai.generativelanguage.v1beta";
|
|
26
|
+
|
|
27
|
+
// Information about a Generative Language Model.
|
|
28
|
+
message Model {
|
|
29
|
+
option (google.api.resource) = {
|
|
30
|
+
type: "generativelanguage.googleapis.com/Model"
|
|
31
|
+
pattern: "models/{model}"
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// Required. The resource name of the `Model`.
|
|
35
|
+
//
|
|
36
|
+
// Format: `models/{model}` with a `{model}` naming convention of:
|
|
37
|
+
//
|
|
38
|
+
// * "{base_model_id}-{version}"
|
|
39
|
+
//
|
|
40
|
+
// Examples:
|
|
41
|
+
//
|
|
42
|
+
// * `models/chat-bison-001`
|
|
43
|
+
string name = 1 [(google.api.field_behavior) = REQUIRED];
|
|
44
|
+
|
|
45
|
+
// Required. The name of the base model, pass this to the generation request.
|
|
46
|
+
//
|
|
47
|
+
// Examples:
|
|
48
|
+
//
|
|
49
|
+
// * `chat-bison`
|
|
50
|
+
string base_model_id = 2 [(google.api.field_behavior) = REQUIRED];
|
|
51
|
+
|
|
52
|
+
// Required. The version number of the model.
|
|
53
|
+
//
|
|
54
|
+
// This represents the major version
|
|
55
|
+
string version = 3 [(google.api.field_behavior) = REQUIRED];
|
|
56
|
+
|
|
57
|
+
// The human-readable name of the model. E.g. "Chat Bison".
|
|
58
|
+
//
|
|
59
|
+
// The name can be up to 128 characters long and can consist of any UTF-8
|
|
60
|
+
// characters.
|
|
61
|
+
string display_name = 4;
|
|
62
|
+
|
|
63
|
+
// A short description of the model.
|
|
64
|
+
string description = 5;
|
|
65
|
+
|
|
66
|
+
// Maximum number of input tokens allowed for this model.
|
|
67
|
+
int32 input_token_limit = 6;
|
|
68
|
+
|
|
69
|
+
// Maximum number of output tokens available for this model.
|
|
70
|
+
int32 output_token_limit = 7;
|
|
71
|
+
|
|
72
|
+
// The model's supported generation methods.
|
|
73
|
+
//
|
|
74
|
+
// The method names are defined as Pascal case
|
|
75
|
+
// strings, such as `generateMessage` which correspond to API methods.
|
|
76
|
+
repeated string supported_generation_methods = 8;
|
|
77
|
+
|
|
78
|
+
// Controls the randomness of the output.
|
|
79
|
+
//
|
|
80
|
+
// Values can range over `[0.0,1.0]`, inclusive. A value closer to `1.0` will
|
|
81
|
+
// produce responses that are more varied, while a value closer to `0.0` will
|
|
82
|
+
// typically result in less surprising responses from the model.
|
|
83
|
+
// This value specifies default to be used by the backend while making the
|
|
84
|
+
// call to the model.
|
|
85
|
+
optional float temperature = 9;
|
|
86
|
+
|
|
87
|
+
// For Nucleus sampling.
|
|
88
|
+
//
|
|
89
|
+
// Nucleus sampling considers the smallest set of tokens whose probability
|
|
90
|
+
// sum is at least `top_p`.
|
|
91
|
+
// This value specifies default to be used by the backend while making the
|
|
92
|
+
// call to the model.
|
|
93
|
+
optional float top_p = 10;
|
|
94
|
+
|
|
95
|
+
// For Top-k sampling.
|
|
96
|
+
//
|
|
97
|
+
// Top-k sampling considers the set of `top_k` most probable tokens.
|
|
98
|
+
// This value specifies default to be used by the backend while making the
|
|
99
|
+
// call to the model.
|
|
100
|
+
optional int32 top_k = 11;
|
|
101
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface Repo {
|
|
2
|
+
owner: string;
|
|
3
|
+
repo: string;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface BufInfo extends Repo {
|
|
7
|
+
git: Repo[];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface GitInfo extends Repo {
|
|
11
|
+
branch: string;
|
|
12
|
+
protoDir?: string;
|
|
13
|
+
protoPath?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface DownloadOptions {
|
|
17
|
+
repos?: {
|
|
18
|
+
owner: string;
|
|
19
|
+
repo: string;
|
|
20
|
+
branch?: string;
|
|
21
|
+
}[];
|
|
22
|
+
protoDirMapping?: Record<string, string>;
|
|
23
|
+
outDir?: string;
|
|
24
|
+
ssh?: boolean;
|
|
25
|
+
targets?: string[];
|
|
26
|
+
tempRepoDir?: string;
|
|
27
|
+
deleteTempRepoDir?: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface CloneAllOptions {
|
|
31
|
+
repos?: {
|
|
32
|
+
owner: string;
|
|
33
|
+
repo: string;
|
|
34
|
+
branch?: string;
|
|
35
|
+
}[];
|
|
36
|
+
protoDirMapping?: Record<string, string>;
|
|
37
|
+
gitModulesDir: string;
|
|
38
|
+
ssh: boolean;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export interface CloneOptions {
|
|
42
|
+
owner: string;
|
|
43
|
+
repo: string;
|
|
44
|
+
branch?: string;
|
|
45
|
+
protoDirMapping?: Record<string, string>;
|
|
46
|
+
gitModulesDir: string;
|
|
47
|
+
ssh: boolean;
|
|
48
|
+
cloned?: Record<string, GitInfo>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface ProtoCopyOptions {
|
|
52
|
+
sources: Record<string, GitInfo>;
|
|
53
|
+
targets: string[];
|
|
54
|
+
outDir: string;
|
|
55
|
+
}
|