@stellar/stellar-sdk 14.4.3 → 14.6.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 +150 -0
- package/bin/stellar-js +4 -0
- package/dist/stellar-sdk-minimal.js +11450 -10315
- package/dist/stellar-sdk-minimal.min.js +1 -1
- package/dist/stellar-sdk-no-axios.js +7459 -6324
- package/dist/stellar-sdk-no-axios.min.js +1 -1
- package/dist/stellar-sdk-no-eventsource.js +11597 -10483
- package/dist/stellar-sdk-no-eventsource.min.js +1 -1
- package/dist/stellar-sdk.js +10647 -9533
- package/dist/stellar-sdk.min.js +1 -1
- package/lib/bindings/client.d.ts +30 -0
- package/lib/bindings/client.js +134 -0
- package/lib/bindings/config.d.ts +34 -0
- package/lib/bindings/config.js +83 -0
- package/lib/bindings/generator.d.ts +176 -0
- package/lib/bindings/generator.js +131 -0
- package/lib/bindings/index.d.ts +6 -0
- package/lib/bindings/index.js +75 -0
- package/lib/bindings/sac-spec.d.ts +1 -0
- package/lib/bindings/sac-spec.js +7 -0
- package/lib/bindings/types.d.ts +66 -0
- package/lib/bindings/types.js +184 -0
- package/lib/bindings/utils.d.ts +49 -0
- package/lib/bindings/utils.js +223 -0
- package/lib/bindings/wasm_fetcher.d.ts +25 -0
- package/lib/bindings/wasm_fetcher.js +225 -0
- package/lib/cli/index.d.ts +2 -0
- package/lib/cli/index.js +171 -0
- package/lib/cli/util.d.ts +55 -0
- package/lib/cli/util.js +254 -0
- package/lib/contract/client.js +2 -1
- package/lib/horizon/call_builder.js +30 -6
- package/lib/horizon/horizon_axios_client.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +9 -1
- package/lib/minimal/bindings/client.d.ts +30 -0
- package/lib/minimal/bindings/client.js +134 -0
- package/lib/minimal/bindings/config.d.ts +34 -0
- package/lib/minimal/bindings/config.js +83 -0
- package/lib/minimal/bindings/generator.d.ts +176 -0
- package/lib/minimal/bindings/generator.js +131 -0
- package/lib/minimal/bindings/index.d.ts +6 -0
- package/lib/minimal/bindings/index.js +75 -0
- package/lib/minimal/bindings/sac-spec.d.ts +1 -0
- package/lib/minimal/bindings/sac-spec.js +7 -0
- package/lib/minimal/bindings/types.d.ts +66 -0
- package/lib/minimal/bindings/types.js +184 -0
- package/lib/minimal/bindings/utils.d.ts +49 -0
- package/lib/minimal/bindings/utils.js +223 -0
- package/lib/minimal/bindings/wasm_fetcher.d.ts +25 -0
- package/lib/minimal/bindings/wasm_fetcher.js +225 -0
- package/lib/minimal/cli/index.d.ts +2 -0
- package/lib/minimal/cli/index.js +171 -0
- package/lib/minimal/cli/util.d.ts +55 -0
- package/lib/minimal/cli/util.js +254 -0
- package/lib/minimal/contract/client.js +2 -1
- package/lib/minimal/horizon/call_builder.js +30 -6
- package/lib/minimal/horizon/horizon_axios_client.js +1 -1
- package/lib/minimal/index.d.ts +1 -0
- package/lib/minimal/index.js +9 -1
- package/lib/minimal/rpc/axios.js +1 -1
- package/lib/minimal/rpc/server.d.ts +35 -1
- package/lib/minimal/rpc/server.js +110 -43
- package/lib/minimal/stellartoml/index.d.ts +3 -0
- package/lib/no-axios/bindings/client.d.ts +30 -0
- package/lib/no-axios/bindings/client.js +134 -0
- package/lib/no-axios/bindings/config.d.ts +34 -0
- package/lib/no-axios/bindings/config.js +83 -0
- package/lib/no-axios/bindings/generator.d.ts +176 -0
- package/lib/no-axios/bindings/generator.js +131 -0
- package/lib/no-axios/bindings/index.d.ts +6 -0
- package/lib/no-axios/bindings/index.js +75 -0
- package/lib/no-axios/bindings/sac-spec.d.ts +1 -0
- package/lib/no-axios/bindings/sac-spec.js +7 -0
- package/lib/no-axios/bindings/types.d.ts +66 -0
- package/lib/no-axios/bindings/types.js +184 -0
- package/lib/no-axios/bindings/utils.d.ts +49 -0
- package/lib/no-axios/bindings/utils.js +223 -0
- package/lib/no-axios/bindings/wasm_fetcher.d.ts +25 -0
- package/lib/no-axios/bindings/wasm_fetcher.js +225 -0
- package/lib/no-axios/cli/index.d.ts +2 -0
- package/lib/no-axios/cli/index.js +171 -0
- package/lib/no-axios/cli/util.d.ts +55 -0
- package/lib/no-axios/cli/util.js +254 -0
- package/lib/no-axios/contract/client.js +2 -1
- package/lib/no-axios/horizon/call_builder.js +30 -6
- package/lib/no-axios/horizon/horizon_axios_client.js +1 -1
- package/lib/no-axios/index.d.ts +1 -0
- package/lib/no-axios/index.js +9 -1
- package/lib/no-axios/rpc/axios.js +1 -1
- package/lib/no-axios/rpc/server.d.ts +35 -1
- package/lib/no-axios/rpc/server.js +110 -43
- package/lib/no-axios/stellartoml/index.d.ts +3 -0
- package/lib/no-eventsource/bindings/client.d.ts +30 -0
- package/lib/no-eventsource/bindings/client.js +134 -0
- package/lib/no-eventsource/bindings/config.d.ts +34 -0
- package/lib/no-eventsource/bindings/config.js +83 -0
- package/lib/no-eventsource/bindings/generator.d.ts +176 -0
- package/lib/no-eventsource/bindings/generator.js +131 -0
- package/lib/no-eventsource/bindings/index.d.ts +6 -0
- package/lib/no-eventsource/bindings/index.js +75 -0
- package/lib/no-eventsource/bindings/sac-spec.d.ts +1 -0
- package/lib/no-eventsource/bindings/sac-spec.js +7 -0
- package/lib/no-eventsource/bindings/types.d.ts +66 -0
- package/lib/no-eventsource/bindings/types.js +184 -0
- package/lib/no-eventsource/bindings/utils.d.ts +49 -0
- package/lib/no-eventsource/bindings/utils.js +223 -0
- package/lib/no-eventsource/bindings/wasm_fetcher.d.ts +25 -0
- package/lib/no-eventsource/bindings/wasm_fetcher.js +225 -0
- package/lib/no-eventsource/cli/index.d.ts +2 -0
- package/lib/no-eventsource/cli/index.js +171 -0
- package/lib/no-eventsource/cli/util.d.ts +55 -0
- package/lib/no-eventsource/cli/util.js +254 -0
- package/lib/no-eventsource/contract/client.js +2 -1
- package/lib/no-eventsource/horizon/call_builder.js +30 -6
- package/lib/no-eventsource/horizon/horizon_axios_client.js +1 -1
- package/lib/no-eventsource/index.d.ts +1 -0
- package/lib/no-eventsource/index.js +9 -1
- package/lib/no-eventsource/rpc/axios.js +1 -1
- package/lib/no-eventsource/rpc/server.d.ts +35 -1
- package/lib/no-eventsource/rpc/server.js +110 -43
- package/lib/no-eventsource/stellartoml/index.d.ts +3 -0
- package/lib/rpc/axios.js +1 -1
- package/lib/rpc/server.d.ts +35 -1
- package/lib/rpc/server.js +110 -43
- package/lib/stellartoml/index.d.ts +3 -0
- package/package.json +10 -4
- package/CHANGELOG.md +0 -2023
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ConfigGenerator = void 0;
|
|
7
|
+
var _package = _interopRequireDefault(require("../../package.json"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
10
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
11
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
12
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
|
+
var ConfigGenerator = exports.ConfigGenerator = function () {
|
|
16
|
+
function ConfigGenerator() {
|
|
17
|
+
_classCallCheck(this, ConfigGenerator);
|
|
18
|
+
}
|
|
19
|
+
return _createClass(ConfigGenerator, [{
|
|
20
|
+
key: "generate",
|
|
21
|
+
value: function generate(options) {
|
|
22
|
+
var contractName = options.contractName;
|
|
23
|
+
return {
|
|
24
|
+
packageJson: this.generatePackageJson(contractName),
|
|
25
|
+
tsConfig: this.generateTsConfig(),
|
|
26
|
+
gitignore: this.generateGitignore(),
|
|
27
|
+
readme: this.generateReadme(contractName)
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}, {
|
|
31
|
+
key: "generatePackageJson",
|
|
32
|
+
value: function generatePackageJson(contractName) {
|
|
33
|
+
var generatedPackageJson = {
|
|
34
|
+
name: contractName.toLowerCase().replace(/[^a-z0-9-]/g, "-"),
|
|
35
|
+
version: "0.0.1",
|
|
36
|
+
description: "Generated TypeScript bindings for ".concat(contractName, " Stellar contract"),
|
|
37
|
+
type: "module",
|
|
38
|
+
main: "dist/index.js",
|
|
39
|
+
types: "dist/index.d.ts",
|
|
40
|
+
scripts: {
|
|
41
|
+
build: "tsc"
|
|
42
|
+
},
|
|
43
|
+
dependencies: {
|
|
44
|
+
"@stellar/stellar-sdk": "^".concat(_package.default.version),
|
|
45
|
+
buffer: "6.0.3"
|
|
46
|
+
},
|
|
47
|
+
devDependencies: {
|
|
48
|
+
typescript: "^5.6.3"
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
return JSON.stringify(generatedPackageJson, null, 2);
|
|
52
|
+
}
|
|
53
|
+
}, {
|
|
54
|
+
key: "generateTsConfig",
|
|
55
|
+
value: function generateTsConfig() {
|
|
56
|
+
var tsConfig = {
|
|
57
|
+
compilerOptions: {
|
|
58
|
+
target: "ESNext",
|
|
59
|
+
module: "NodeNext",
|
|
60
|
+
moduleResolution: "nodenext",
|
|
61
|
+
declaration: true,
|
|
62
|
+
outDir: "./dist",
|
|
63
|
+
strictNullChecks: true,
|
|
64
|
+
skipLibCheck: true
|
|
65
|
+
},
|
|
66
|
+
include: ["src/*"]
|
|
67
|
+
};
|
|
68
|
+
return JSON.stringify(tsConfig, null, 2);
|
|
69
|
+
}
|
|
70
|
+
}, {
|
|
71
|
+
key: "generateGitignore",
|
|
72
|
+
value: function generateGitignore() {
|
|
73
|
+
var gitignore = ["# Dependencies", "node_modules/", "", "# Build outputs", "dist/", "*.tgz", "", "# IDE", ".vscode/", ".idea/", "", "# OS", ".DS_Store", "Thumbs.db", "", "# Logs", "*.log", "npm-debug.log*", "", "# Runtime data", "*.pid", "*.seed"].join("\n");
|
|
74
|
+
return gitignore;
|
|
75
|
+
}
|
|
76
|
+
}, {
|
|
77
|
+
key: "generateReadme",
|
|
78
|
+
value: function generateReadme(contractName) {
|
|
79
|
+
var readme = ["# ".concat(contractName, " Contract Bindings"), "", "TypeScript bindings for the ".concat(contractName, " Stellar smart contract."), "", "## Installation", "", "```bash", "npm install", "```", "", "## Build", "", "```bash", "npm run build", "```", "", "## Usage", "", "```typescript", 'import { Client } from "./src";', "", "const client = new Client({", ' contractId: "YOUR_CONTRACT_ID",', ' rpcUrl: "https://soroban-testnet.stellar.org:443",', ' networkPassphrase: "Test SDF Network ; September 2015",', "});", "", "// Call contract methods", "// const result = await client.methodName();", "```", "", "## Generated Files", "", "- `src/index.ts` - Entry point exporting the Client", "- `src/types.ts` - Type definitions for contract structs, enums, and unions", "- `src/contract.ts` - Client implementation", "- `tsconfig.json` - TypeScript configuration", "- `package.json` - NPM package configuration", "", "This package was generated using the Js-Stellar-SDK contract binding generator."].join("\n");
|
|
80
|
+
return readme;
|
|
81
|
+
}
|
|
82
|
+
}]);
|
|
83
|
+
}();
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Spec } from "../contract";
|
|
2
|
+
import { Server } from "../rpc";
|
|
3
|
+
/**
|
|
4
|
+
* Options for generating TypeScript bindings.
|
|
5
|
+
*
|
|
6
|
+
* @property contractName - The name used for the generated package and client class.
|
|
7
|
+
* Should be in kebab-case (e.g., "my-contract").
|
|
8
|
+
*/
|
|
9
|
+
export type GenerateOptions = {
|
|
10
|
+
contractName: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* The output of the binding generation process.
|
|
14
|
+
*
|
|
15
|
+
* Contains all generated TypeScript source files and configuration files
|
|
16
|
+
* needed to create a standalone npm package for interacting with a Stellar contract.
|
|
17
|
+
*
|
|
18
|
+
* @property index - The index.ts barrel export file that re-exports Client and types
|
|
19
|
+
* @property types - The types.ts file containing TypeScript interfaces for contract structs, enums, and unions
|
|
20
|
+
* @property client - The client.ts file containing the generated Client class with typed methods
|
|
21
|
+
* @property packageJson - The package.json for the generated npm package
|
|
22
|
+
* @property tsConfig - The tsconfig.json for TypeScript compilation
|
|
23
|
+
* @property readme - The README.md with usage documentation
|
|
24
|
+
* @property gitignore - The .gitignore file for the generated package
|
|
25
|
+
*/
|
|
26
|
+
export type GeneratedBindings = {
|
|
27
|
+
index: string;
|
|
28
|
+
types: string;
|
|
29
|
+
client: string;
|
|
30
|
+
packageJson: string;
|
|
31
|
+
tsConfig: string;
|
|
32
|
+
readme: string;
|
|
33
|
+
gitignore: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Generates TypeScript bindings for Stellar smart contracts.
|
|
37
|
+
*
|
|
38
|
+
* This class creates fully-typed TypeScript client code from a contract's specification,
|
|
39
|
+
* allowing developers to interact with Stellar smart contracts with full IDE support
|
|
40
|
+
* and compile-time type checking.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* // Create from a local WASM file
|
|
44
|
+
* const wasmBuffer = fs.readFileSync("./my_contract.wasm");
|
|
45
|
+
* const generator = await BindingGenerator.fromWasm(wasmBuffer);
|
|
46
|
+
* const bindings = generator.generate({ contractName: "my-contract" });
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* // Create from a contract deployed on the network
|
|
50
|
+
* const generator = await BindingGenerator.fromContractId(
|
|
51
|
+
* "CABC...XYZ",
|
|
52
|
+
* "https://soroban-testnet.stellar.org",
|
|
53
|
+
* Networks.TESTNET
|
|
54
|
+
* );
|
|
55
|
+
* const bindings = generator.generate({ contractName: "my-contract" });
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* // Create from a Spec object directly
|
|
59
|
+
* const spec = new Spec(specEntries);
|
|
60
|
+
* const generator = BindingGenerator.fromSpec(spec);
|
|
61
|
+
* const bindings = generator.generate({ contractName: "my-contract" });
|
|
62
|
+
*/
|
|
63
|
+
export declare class BindingGenerator {
|
|
64
|
+
private spec;
|
|
65
|
+
/**
|
|
66
|
+
* Private constructor - use static factory methods instead.
|
|
67
|
+
*
|
|
68
|
+
* @param spec - The parsed contract specification
|
|
69
|
+
*/
|
|
70
|
+
private constructor();
|
|
71
|
+
/**
|
|
72
|
+
* Creates a BindingGenerator from an existing Spec object.
|
|
73
|
+
*
|
|
74
|
+
* Use this when you already have a parsed contract specification,
|
|
75
|
+
* such as from manually constructed spec entries or from another source.
|
|
76
|
+
*
|
|
77
|
+
* @param spec - The contract specification containing function and type definitions
|
|
78
|
+
* @returns A new BindingGenerator instance
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* const spec = new Spec(specEntries);
|
|
82
|
+
* const generator = BindingGenerator.fromSpec(spec);
|
|
83
|
+
*/
|
|
84
|
+
static fromSpec(spec: Spec): BindingGenerator;
|
|
85
|
+
/**
|
|
86
|
+
* Creates a BindingGenerator from a WASM binary buffer.
|
|
87
|
+
*
|
|
88
|
+
* Parses the contract specification directly from the WASM file's custom section.
|
|
89
|
+
* This is the most common method when working with locally compiled contracts.
|
|
90
|
+
*
|
|
91
|
+
* @param wasmBuffer - The raw WASM binary as a Buffer
|
|
92
|
+
* @returns A Promise resolving to a new BindingGenerator instance
|
|
93
|
+
* @throws {Error} If the WASM file doesn't contain a valid contract spec
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* const wasmBuffer = fs.readFileSync("./target/wasm32-unknown-unknown/release/my_contract.wasm");
|
|
97
|
+
* const generator = await BindingGenerator.fromWasm(wasmBuffer);
|
|
98
|
+
*/
|
|
99
|
+
static fromWasm(wasmBuffer: Buffer): BindingGenerator;
|
|
100
|
+
/**
|
|
101
|
+
* Creates a BindingGenerator by fetching WASM from the network using its hash.
|
|
102
|
+
*
|
|
103
|
+
* Retrieves the WASM bytecode from Stellar RPC using the WASM hash,
|
|
104
|
+
* then parses the contract specification from it. Useful when you know
|
|
105
|
+
* the hash of an installed WASM but don't have the binary locally.
|
|
106
|
+
*
|
|
107
|
+
* @param wasmHash - The hex-encoded hash of the installed WASM blob
|
|
108
|
+
* @param rpcServer - The Stellar RPC server instance
|
|
109
|
+
* @returns A Promise resolving to a new BindingGenerator instance
|
|
110
|
+
* @throws {Error} If the WASM cannot be fetched or doesn't contain a valid spec
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* const generator = await BindingGenerator.fromWasmHash(
|
|
114
|
+
* "a1b2c3...xyz",
|
|
115
|
+
* "https://soroban-testnet.stellar.org",
|
|
116
|
+
* Networks.TESTNET
|
|
117
|
+
* );
|
|
118
|
+
*/
|
|
119
|
+
static fromWasmHash(wasmHash: string, rpcServer: Server): Promise<BindingGenerator>;
|
|
120
|
+
/**
|
|
121
|
+
* Creates a BindingGenerator by fetching contract info from a deployed contract ID.
|
|
122
|
+
*
|
|
123
|
+
* Retrieves the contract's WASM from the network using the contract ID,
|
|
124
|
+
* then parses the specification. If the contract is a Stellar Asset Contract (SAC),
|
|
125
|
+
* returns a generator with the standard SAC specification.
|
|
126
|
+
*
|
|
127
|
+
* @param contractId - The contract ID (C... address) of the deployed contract
|
|
128
|
+
* @param rpcServer - The Stellar RPC server instance
|
|
129
|
+
* @returns A Promise resolving to a new BindingGenerator instance
|
|
130
|
+
* @throws {Error} If the contract cannot be found or fetched
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* const generator = await BindingGenerator.fromContractId(
|
|
134
|
+
* "CABC123...XYZ",
|
|
135
|
+
* rpcServer
|
|
136
|
+
* );
|
|
137
|
+
*/
|
|
138
|
+
static fromContractId(contractId: string, rpcServer: Server): Promise<BindingGenerator>;
|
|
139
|
+
/**
|
|
140
|
+
* Generates TypeScript bindings for the contract.
|
|
141
|
+
*
|
|
142
|
+
* Produces all the files needed for a standalone npm package:
|
|
143
|
+
* - `client.ts`: A typed Client class with methods for each contract function
|
|
144
|
+
* - `types.ts`: TypeScript interfaces for all contract types (structs, enums, unions)
|
|
145
|
+
* - `index.ts`: Barrel export file
|
|
146
|
+
* - `package.json`, `tsconfig.json`, `README.md`, `.gitignore`: Package configuration
|
|
147
|
+
*
|
|
148
|
+
* The generated code does not write to disk - use the returned strings
|
|
149
|
+
* to write files as needed.
|
|
150
|
+
*
|
|
151
|
+
* @param options - Configuration options for generation
|
|
152
|
+
* @param options.contractName - Required. The name for the generated package (kebab-case recommended)
|
|
153
|
+
* @returns An object containing all generated file contents as strings
|
|
154
|
+
* @throws {Error} If contractName is missing or empty
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* const bindings = generator.generate({
|
|
158
|
+
* contractName: "my-token",
|
|
159
|
+
* contractAddress: "CABC...XYZ",
|
|
160
|
+
* rpcUrl: "https://soroban-testnet.stellar.org",
|
|
161
|
+
* networkPassphrase: Networks.TESTNET
|
|
162
|
+
* });
|
|
163
|
+
*
|
|
164
|
+
* // Write files to disk
|
|
165
|
+
* fs.writeFileSync("./src/client.ts", bindings.client);
|
|
166
|
+
* fs.writeFileSync("./src/types.ts", bindings.types);
|
|
167
|
+
*/
|
|
168
|
+
generate(options: GenerateOptions): GeneratedBindings;
|
|
169
|
+
/**
|
|
170
|
+
* Validates that required generation options are provided.
|
|
171
|
+
*
|
|
172
|
+
* @param options - The options to validate
|
|
173
|
+
* @throws {Error} If contractName is missing or empty
|
|
174
|
+
*/
|
|
175
|
+
private validateOptions;
|
|
176
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BindingGenerator = void 0;
|
|
7
|
+
var _contract = require("../contract");
|
|
8
|
+
var _config = require("./config");
|
|
9
|
+
var _types = require("./types");
|
|
10
|
+
var _client = require("./client");
|
|
11
|
+
var _wasm_spec_parser = require("../contract/wasm_spec_parser");
|
|
12
|
+
var _wasm_fetcher = require("./wasm_fetcher");
|
|
13
|
+
var _sacSpec = require("./sac-spec");
|
|
14
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
15
|
+
function _regenerator() { var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
16
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
17
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
18
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
19
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
20
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
21
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
22
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
23
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
24
|
+
var BindingGenerator = exports.BindingGenerator = function () {
|
|
25
|
+
function BindingGenerator(spec) {
|
|
26
|
+
_classCallCheck(this, BindingGenerator);
|
|
27
|
+
this.spec = spec;
|
|
28
|
+
}
|
|
29
|
+
return _createClass(BindingGenerator, [{
|
|
30
|
+
key: "generate",
|
|
31
|
+
value: function generate(options) {
|
|
32
|
+
this.validateOptions(options);
|
|
33
|
+
var typeGenerator = new _types.TypeGenerator(this.spec);
|
|
34
|
+
var clientGenerator = new _client.ClientGenerator(this.spec);
|
|
35
|
+
var types = typeGenerator.generate();
|
|
36
|
+
var client = clientGenerator.generate();
|
|
37
|
+
var index = "export { Client } from \"./client.js\";";
|
|
38
|
+
if (types.trim() !== "") {
|
|
39
|
+
index = index.concat("\nexport * from \"./types.js\";");
|
|
40
|
+
}
|
|
41
|
+
var configGenerator = new _config.ConfigGenerator();
|
|
42
|
+
var _configGenerator$gene = configGenerator.generate(options),
|
|
43
|
+
packageJson = _configGenerator$gene.packageJson,
|
|
44
|
+
tsConfig = _configGenerator$gene.tsConfig,
|
|
45
|
+
readme = _configGenerator$gene.readme,
|
|
46
|
+
gitignore = _configGenerator$gene.gitignore;
|
|
47
|
+
return {
|
|
48
|
+
index: index,
|
|
49
|
+
types: types,
|
|
50
|
+
client: client,
|
|
51
|
+
packageJson: packageJson,
|
|
52
|
+
tsConfig: tsConfig,
|
|
53
|
+
readme: readme,
|
|
54
|
+
gitignore: gitignore
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}, {
|
|
58
|
+
key: "validateOptions",
|
|
59
|
+
value: function validateOptions(options) {
|
|
60
|
+
if (!options.contractName || options.contractName.trim() === "") {
|
|
61
|
+
throw new Error("contractName is required and cannot be empty");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}], [{
|
|
65
|
+
key: "fromSpec",
|
|
66
|
+
value: function fromSpec(spec) {
|
|
67
|
+
return new BindingGenerator(spec);
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
key: "fromWasm",
|
|
71
|
+
value: function fromWasm(wasmBuffer) {
|
|
72
|
+
var spec = new _contract.Spec((0, _wasm_spec_parser.specFromWasm)(wasmBuffer));
|
|
73
|
+
return new BindingGenerator(spec);
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "fromWasmHash",
|
|
77
|
+
value: (function () {
|
|
78
|
+
var _fromWasmHash = _asyncToGenerator(_regenerator().m(function _callee(wasmHash, rpcServer) {
|
|
79
|
+
var wasm;
|
|
80
|
+
return _regenerator().w(function (_context) {
|
|
81
|
+
while (1) switch (_context.n) {
|
|
82
|
+
case 0:
|
|
83
|
+
_context.n = 1;
|
|
84
|
+
return (0, _wasm_fetcher.fetchFromWasmHash)(wasmHash, rpcServer);
|
|
85
|
+
case 1:
|
|
86
|
+
wasm = _context.v;
|
|
87
|
+
if (!(wasm.type !== "wasm")) {
|
|
88
|
+
_context.n = 2;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
throw new Error("Fetched contract is not of type 'wasm'");
|
|
92
|
+
case 2:
|
|
93
|
+
return _context.a(2, BindingGenerator.fromWasm(wasm.wasmBytes));
|
|
94
|
+
}
|
|
95
|
+
}, _callee);
|
|
96
|
+
}));
|
|
97
|
+
function fromWasmHash(_x, _x2) {
|
|
98
|
+
return _fromWasmHash.apply(this, arguments);
|
|
99
|
+
}
|
|
100
|
+
return fromWasmHash;
|
|
101
|
+
}())
|
|
102
|
+
}, {
|
|
103
|
+
key: "fromContractId",
|
|
104
|
+
value: (function () {
|
|
105
|
+
var _fromContractId = _asyncToGenerator(_regenerator().m(function _callee2(contractId, rpcServer) {
|
|
106
|
+
var result, spec;
|
|
107
|
+
return _regenerator().w(function (_context2) {
|
|
108
|
+
while (1) switch (_context2.n) {
|
|
109
|
+
case 0:
|
|
110
|
+
_context2.n = 1;
|
|
111
|
+
return (0, _wasm_fetcher.fetchFromContractId)(contractId, rpcServer);
|
|
112
|
+
case 1:
|
|
113
|
+
result = _context2.v;
|
|
114
|
+
if (!(result.type === "wasm")) {
|
|
115
|
+
_context2.n = 2;
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
return _context2.a(2, BindingGenerator.fromWasm(result.wasmBytes));
|
|
119
|
+
case 2:
|
|
120
|
+
spec = new _contract.Spec(_sacSpec.SAC_SPEC);
|
|
121
|
+
return _context2.a(2, BindingGenerator.fromSpec(spec));
|
|
122
|
+
}
|
|
123
|
+
}, _callee2);
|
|
124
|
+
}));
|
|
125
|
+
function fromContractId(_x3, _x4) {
|
|
126
|
+
return _fromContractId.apply(this, arguments);
|
|
127
|
+
}
|
|
128
|
+
return fromContractId;
|
|
129
|
+
}())
|
|
130
|
+
}]);
|
|
131
|
+
}();
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
SAC_SPEC: true
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "SAC_SPEC", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function get() {
|
|
12
|
+
return _sacSpec.SAC_SPEC;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
var _generator = require("./generator");
|
|
16
|
+
Object.keys(_generator).forEach(function (key) {
|
|
17
|
+
if (key === "default" || key === "__esModule") return;
|
|
18
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
19
|
+
if (key in exports && exports[key] === _generator[key]) return;
|
|
20
|
+
Object.defineProperty(exports, key, {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function get() {
|
|
23
|
+
return _generator[key];
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
var _config = require("./config");
|
|
28
|
+
Object.keys(_config).forEach(function (key) {
|
|
29
|
+
if (key === "default" || key === "__esModule") return;
|
|
30
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
31
|
+
if (key in exports && exports[key] === _config[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _config[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _types = require("./types");
|
|
40
|
+
Object.keys(_types).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
43
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
44
|
+
Object.defineProperty(exports, key, {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function get() {
|
|
47
|
+
return _types[key];
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
var _wasm_fetcher = require("./wasm_fetcher");
|
|
52
|
+
Object.keys(_wasm_fetcher).forEach(function (key) {
|
|
53
|
+
if (key === "default" || key === "__esModule") return;
|
|
54
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
55
|
+
if (key in exports && exports[key] === _wasm_fetcher[key]) return;
|
|
56
|
+
Object.defineProperty(exports, key, {
|
|
57
|
+
enumerable: true,
|
|
58
|
+
get: function get() {
|
|
59
|
+
return _wasm_fetcher[key];
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
var _client = require("./client");
|
|
64
|
+
Object.keys(_client).forEach(function (key) {
|
|
65
|
+
if (key === "default" || key === "__esModule") return;
|
|
66
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
67
|
+
if (key in exports && exports[key] === _client[key]) return;
|
|
68
|
+
Object.defineProperty(exports, key, {
|
|
69
|
+
enumerable: true,
|
|
70
|
+
get: function get() {
|
|
71
|
+
return _client[key];
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
var _sacSpec = require("./sac-spec");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SAC_SPEC = "AAAAAAAAAYpSZXR1cm5zIHRoZSBhbGxvd2FuY2UgZm9yIGBzcGVuZGVyYCB0byB0cmFuc2ZlciBmcm9tIGBmcm9tYC4KClRoZSBhbW91bnQgcmV0dXJuZWQgaXMgdGhlIGFtb3VudCB0aGF0IHNwZW5kZXIgaXMgYWxsb3dlZCB0byB0cmFuc2ZlcgpvdXQgb2YgZnJvbSdzIGJhbGFuY2UuIFdoZW4gdGhlIHNwZW5kZXIgdHJhbnNmZXJzIGFtb3VudHMsIHRoZSBhbGxvd2FuY2UKd2lsbCBiZSByZWR1Y2VkIGJ5IHRoZSBhbW91bnQgdHJhbnNmZXJyZWQuCgojIEFyZ3VtZW50cwoKKiBgZnJvbWAgLSBUaGUgYWRkcmVzcyBob2xkaW5nIHRoZSBiYWxhbmNlIG9mIHRva2VucyB0byBiZSBkcmF3biBmcm9tLgoqIGBzcGVuZGVyYCAtIFRoZSBhZGRyZXNzIHNwZW5kaW5nIHRoZSB0b2tlbnMgaGVsZCBieSBgZnJvbWAuAAAAAAAJYWxsb3dhbmNlAAAAAAAAAgAAAAAAAAAEZnJvbQAAABMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAEAAAALAAAAAAAAAIlSZXR1cm5zIHRydWUgaWYgYGlkYCBpcyBhdXRob3JpemVkIHRvIHVzZSBpdHMgYmFsYW5jZS4KCiMgQXJndW1lbnRzCgoqIGBpZGAgLSBUaGUgYWRkcmVzcyBmb3Igd2hpY2ggdG9rZW4gYXV0aG9yaXphdGlvbiBpcyBiZWluZyBjaGVja2VkLgAAAAAAAAphdXRob3JpemVkAAAAAAABAAAAAAAAAAJpZAAAAAAAEwAAAAEAAAABAAAAAAAAA59TZXQgdGhlIGFsbG93YW5jZSBieSBgYW1vdW50YCBmb3IgYHNwZW5kZXJgIHRvIHRyYW5zZmVyL2J1cm4gZnJvbQpgZnJvbWAuCgpUaGUgYW1vdW50IHNldCBpcyB0aGUgYW1vdW50IHRoYXQgc3BlbmRlciBpcyBhcHByb3ZlZCB0byB0cmFuc2ZlciBvdXQgb2YKZnJvbSdzIGJhbGFuY2UuIFRoZSBzcGVuZGVyIHdpbGwgYmUgYWxsb3dlZCB0byB0cmFuc2ZlciBhbW91bnRzLCBhbmQKd2hlbiBhbiBhbW91bnQgaXMgdHJhbnNmZXJyZWQgdGhlIGFsbG93YW5jZSB3aWxsIGJlIHJlZHVjZWQgYnkgdGhlCmFtb3VudCB0cmFuc2ZlcnJlZC4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHRvIGJlIGRyYXduIGZyb20uCiogYHNwZW5kZXJgIC0gVGhlIGFkZHJlc3MgYmVpbmcgYXV0aG9yaXplZCB0byBzcGVuZCB0aGUgdG9rZW5zIGhlbGQgYnkKYGZyb21gLgoqIGBhbW91bnRgIC0gVGhlIHRva2VucyB0byBiZSBtYWRlIGF2YWlsYWJsZSB0byBgc3BlbmRlcmAuCiogYGV4cGlyYXRpb25fbGVkZ2VyYCAtIFRoZSBsZWRnZXIgbnVtYmVyIHdoZXJlIHRoaXMgYWxsb3dhbmNlIGV4cGlyZXMuIENhbm5vdApiZSBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgbGVkZ2VyIG51bWJlciB1bmxlc3MgdGhlIGFtb3VudCBpcyBiZWluZyBzZXQgdG8gMC4KQW4gZXhwaXJlZCBlbnRyeSAod2hlcmUgZXhwaXJhdGlvbl9sZWRnZXIgPCB0aGUgY3VycmVudCBsZWRnZXIgbnVtYmVyKQpzaG91bGQgYmUgdHJlYXRlZCBhcyBhIDAgYW1vdW50IGFsbG93YW5jZS4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJhcHByb3ZlIiwgZnJvbTogQWRkcmVzcywKc3BlbmRlcjogQWRkcmVzc10sIGRhdGEgPSBbYW1vdW50OiBpMTI4LCBleHBpcmF0aW9uX2xlZGdlcjogdTMyXWAAAAAAB2FwcHJvdmUAAAAABAAAAAAAAAAEZnJvbQAAABMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAABFleHBpcmF0aW9uX2xlZGdlcgAAAAAAAAQAAAAAAAAAAAAAAJhSZXR1cm5zIHRoZSBiYWxhbmNlIG9mIGBpZGAuCgojIEFyZ3VtZW50cwoKKiBgaWRgIC0gVGhlIGFkZHJlc3MgZm9yIHdoaWNoIGEgYmFsYW5jZSBpcyBiZWluZyBxdWVyaWVkLiBJZiB0aGUKYWRkcmVzcyBoYXMgbm8gZXhpc3RpbmcgYmFsYW5jZSwgcmV0dXJucyAwLgAAAAdiYWxhbmNlAAAAAAEAAAAAAAAAAmlkAAAAAAATAAAAAQAAAAsAAAAAAAABYkJ1cm4gYGFtb3VudGAgZnJvbSBgZnJvbWAuCgpSZWR1Y2VzIGZyb20ncyBiYWxhbmNlIGJ5IHRoZSBhbW91bnQsIHdpdGhvdXQgdHJhbnNmZXJyaW5nIHRoZSBiYWxhbmNlCnRvIGFub3RoZXIgaG9sZGVyJ3MgYmFsYW5jZS4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHdoaWNoIHdpbGwgYmUKYnVybmVkIGZyb20uCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBidXJuZWQuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsiYnVybiIsIGZyb206IEFkZHJlc3NdLCBkYXRhID0gYW1vdW50OgppMTI4YAAAAAAABGJ1cm4AAAACAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAALaQnVybiBgYW1vdW50YCBmcm9tIGBmcm9tYCwgY29uc3VtaW5nIHRoZSBhbGxvd2FuY2Ugb2YgYHNwZW5kZXJgLgoKUmVkdWNlcyBmcm9tJ3MgYmFsYW5jZSBieSB0aGUgYW1vdW50LCB3aXRob3V0IHRyYW5zZmVycmluZyB0aGUgYmFsYW5jZQp0byBhbm90aGVyIGhvbGRlcidzIGJhbGFuY2UuCgpUaGUgc3BlbmRlciB3aWxsIGJlIGFsbG93ZWQgdG8gYnVybiB0aGUgYW1vdW50IGZyb20gZnJvbSdzIGJhbGFuY2UsIGlmCnRoZSBhbW91bnQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBhbGxvd2FuY2UgdGhhdCB0aGUgc3BlbmRlciBoYXMKb24gdGhlIGZyb20ncyBiYWxhbmNlLiBUaGUgc3BlbmRlcidzIGFsbG93YW5jZSBvbiBmcm9tJ3MgYmFsYW5jZSB3aWxsIGJlCnJlZHVjZWQgYnkgdGhlIGFtb3VudC4KCiMgQXJndW1lbnRzCgoqIGBzcGVuZGVyYCAtIFRoZSBhZGRyZXNzIGF1dGhvcml6aW5nIHRoZSBidXJuLCBhbmQgaGF2aW5nIGl0cyBhbGxvd2FuY2UKY29uc3VtZWQgZHVyaW5nIHRoZSBidXJuLgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHdoaWNoIHdpbGwgYmUKYnVybmVkIGZyb20uCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBidXJuZWQuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsiYnVybiIsIGZyb206IEFkZHJlc3NdLCBkYXRhID0gYW1vdW50OgppMTI4YAAAAAAACWJ1cm5fZnJvbQAAAAAAAAMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAAAAAAEZnJvbQAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAABUUNsYXdiYWNrIGBhbW91bnRgIGZyb20gYGZyb21gIGFjY291bnQuIGBhbW91bnRgIGlzIGJ1cm5lZCBpbiB0aGUKY2xhd2JhY2sgcHJvY2Vzcy4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2UgZnJvbSB3aGljaCB0aGUgY2xhd2JhY2sgd2lsbAp0YWtlIHRva2Vucy4KKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIHRvIGJlIGNsYXdlZCBiYWNrLgoKIyBFdmVudHMKCkVtaXRzIGFuIGV2ZW50IHdpdGggdG9waWNzIGBbImNsYXdiYWNrIiwgYWRtaW46IEFkZHJlc3MsIHRvOiBBZGRyZXNzXSwKZGF0YSA9IGFtb3VudDogaTEyOGAAAAAAAAAIY2xhd2JhY2sAAAACAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAACAUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHVzZWQgdG8gcmVwcmVzZW50IGFtb3VudHMgb2YgdGhpcyB0b2tlbi4KCiMgUGFuaWNzCgpJZiB0aGUgY29udHJhY3QgaGFzIG5vdCB5ZXQgYmVlbiBpbml0aWFsaXplZC4AAAAIZGVjaW1hbHMAAAAAAAAAAQAAAAQAAAAAAAAA801pbnRzIGBhbW91bnRgIHRvIGB0b2AuCgojIEFyZ3VtZW50cwoKKiBgdG9gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSBtaW50ZWQgdG9rZW5zLgoqIGBhbW91bnRgIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgbWludGVkLgoKIyBFdmVudHMKCkVtaXRzIGFuIGV2ZW50IHdpdGggdG9waWNzIGBbIm1pbnQiLCBhZG1pbjogQWRkcmVzcywgdG86IEFkZHJlc3NdLCBkYXRhCj0gYW1vdW50OiBpMTI4YAAAAAAEbWludAAAAAIAAAAAAAAAAnRvAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAFlSZXR1cm5zIHRoZSBuYW1lIGZvciB0aGlzIHRva2VuLgoKIyBQYW5pY3MKCklmIHRoZSBjb250cmFjdCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLgAAAAAAAARuYW1lAAAAAAAAAAEAAAAQAAAAAAAAAQxTZXRzIHRoZSBhZG1pbmlzdHJhdG9yIHRvIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBgbmV3X2FkbWluYC4KCiMgQXJndW1lbnRzCgoqIGBuZXdfYWRtaW5gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCBoZW5jZWZvcnRoIGJlIHRoZSBhZG1pbmlzdHJhdG9yCm9mIHRoaXMgdG9rZW4gY29udHJhY3QuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsic2V0X2FkbWluIiwgYWRtaW46IEFkZHJlc3NdLCBkYXRhID0KW25ld19hZG1pbjogQWRkcmVzc11gAAAACXNldF9hZG1pbgAAAAAAAAEAAAAAAAAACW5ld19hZG1pbgAAAAAAABMAAAAAAAAAAAAAAEZSZXR1cm5zIHRoZSBhZG1pbiBvZiB0aGUgY29udHJhY3QuCgojIFBhbmljcwoKSWYgdGhlIGFkbWluIGlzIG5vdCBzZXQuAAAAAAAFYWRtaW4AAAAAAAAAAAAAAQAAABMAAAAAAAABUFNldHMgd2hldGhlciB0aGUgYWNjb3VudCBpcyBhdXRob3JpemVkIHRvIHVzZSBpdHMgYmFsYW5jZS4gSWYKYGF1dGhvcml6ZWRgIGlzIHRydWUsIGBpZGAgc2hvdWxkIGJlIGFibGUgdG8gdXNlIGl0cyBiYWxhbmNlLgoKIyBBcmd1bWVudHMKCiogYGlkYCAtIFRoZSBhZGRyZXNzIGJlaW5nIChkZS0pYXV0aG9yaXplZC4KKiBgYXV0aG9yaXplYCAtIFdoZXRoZXIgb3Igbm90IGBpZGAgY2FuIHVzZSBpdHMgYmFsYW5jZS4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJzZXRfYXV0aG9yaXplZCIsIGlkOiBBZGRyZXNzXSwgZGF0YSA9ClthdXRob3JpemU6IGJvb2xdYAAAAA5zZXRfYXV0aG9yaXplZAAAAAAAAgAAAAAAAAACaWQAAAAAABMAAAAAAAAACWF1dGhvcml6ZQAAAAAAAAEAAAAAAAAAAAAAAFtSZXR1cm5zIHRoZSBzeW1ib2wgZm9yIHRoaXMgdG9rZW4uCgojIFBhbmljcwoKSWYgdGhlIGNvbnRyYWN0IGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQuAAAAAAZzeW1ib2wAAAAAAAAAAAABAAAAEAAAAAAAAAFiVHJhbnNmZXIgYGFtb3VudGAgZnJvbSBgZnJvbWAgdG8gYHRvYC4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHdoaWNoIHdpbGwgYmUKd2l0aGRyYXduIGZyb20uCiogYHRvYCAtIFRoZSBhZGRyZXNzIHdoaWNoIHdpbGwgcmVjZWl2ZSB0aGUgdHJhbnNmZXJyZWQgdG9rZW5zLgoqIGBhbW91bnRgIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgdHJhbnNmZXJyZWQuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsidHJhbnNmZXIiLCBmcm9tOiBBZGRyZXNzLCB0bzogQWRkcmVzc10sCmRhdGEgPSBhbW91bnQ6IGkxMjhgAAAAAAAIdHJhbnNmZXIAAAADAAAAAAAAAARmcm9tAAAAEwAAAAAAAAACdG8AAAAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAADMVRyYW5zZmVyIGBhbW91bnRgIGZyb20gYGZyb21gIHRvIGB0b2AsIGNvbnN1bWluZyB0aGUgYWxsb3dhbmNlIHRoYXQKYHNwZW5kZXJgIGhhcyBvbiBgZnJvbWAncyBiYWxhbmNlLiBBdXRob3JpemVkIGJ5IHNwZW5kZXIKKGBzcGVuZGVyLnJlcXVpcmVfYXV0aCgpYCkuCgpUaGUgc3BlbmRlciB3aWxsIGJlIGFsbG93ZWQgdG8gdHJhbnNmZXIgdGhlIGFtb3VudCBmcm9tIGZyb20ncyBiYWxhbmNlCmlmIHRoZSBhbW91bnQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBhbGxvd2FuY2UgdGhhdCB0aGUgc3BlbmRlcgpoYXMgb24gdGhlIGZyb20ncyBiYWxhbmNlLiBUaGUgc3BlbmRlcidzIGFsbG93YW5jZSBvbiBmcm9tJ3MgYmFsYW5jZQp3aWxsIGJlIHJlZHVjZWQgYnkgdGhlIGFtb3VudC4KCiMgQXJndW1lbnRzCgoqIGBzcGVuZGVyYCAtIFRoZSBhZGRyZXNzIGF1dGhvcml6aW5nIHRoZSB0cmFuc2ZlciwgYW5kIGhhdmluZyBpdHMKYWxsb3dhbmNlIGNvbnN1bWVkIGR1cmluZyB0aGUgdHJhbnNmZXIuCiogYGZyb21gIC0gVGhlIGFkZHJlc3MgaG9sZGluZyB0aGUgYmFsYW5jZSBvZiB0b2tlbnMgd2hpY2ggd2lsbCBiZQp3aXRoZHJhd24gZnJvbS4KKiBgdG9gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSB0cmFuc2ZlcnJlZCB0b2tlbnMuCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSB0cmFuc2ZlcnJlZC4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJ0cmFuc2ZlciIsIGZyb206IEFkZHJlc3MsIHRvOiBBZGRyZXNzXSwKZGF0YSA9IGFtb3VudDogaTEyOGAAAAAAAAANdHJhbnNmZXJfZnJvbQAAAAAAAAQAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAAAAAAEZnJvbQAAABMAAAAAAAAAAnRvAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAABQAAAAAAAAAAAAAAB0FwcHJvdmUAAAAAAQAAAAdhcHByb3ZlAAAAAAQAAAAAAAAABGZyb20AAAATAAAAAQAAAAAAAAAHc3BlbmRlcgAAAAATAAAAAQAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAAARZXhwaXJhdGlvbl9sZWRnZXIAAAAAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAIVHJhbnNmZXIAAAABAAAACHRyYW5zZmVyAAAAAwAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAAABQAAAAAAAAAAAAAADVRyYW5zZmVyTXV4ZWQAAAAAAAABAAAACHRyYW5zZmVyAAAABAAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAAC3RvX211eGVkX2lkAAAAAAQAAAAAAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAARCdXJuAAAAAQAAAARidXJuAAAAAgAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAARNaW50AAAAAQAAAARtaW50AAAAAgAAAAAAAAACdG8AAAAAABMAAAABAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAhDbGF3YmFjawAAAAEAAAAIY2xhd2JhY2sAAAACAAAAAAAAAARmcm9tAAAAEwAAAAEAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAAABQAAAAAAAAAAAAAACFNldEFkbWluAAAAAQAAAAlzZXRfYWRtaW4AAAAAAAABAAAAAAAAAAluZXdfYWRtaW4AAAAAAAATAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAANU2V0QXV0aG9yaXplZAAAAAAAAAEAAAAOc2V0X2F1dGhvcml6ZWQAAAAAAAIAAAAAAAAAAmlkAAAAAAATAAAAAQAAAAAAAAAJYXV0aG9yaXplAAAAAAAAAQAAAAAAAAAA";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SAC_SPEC = void 0;
|
|
7
|
+
var SAC_SPEC = exports.SAC_SPEC = "AAAAAAAAAYpSZXR1cm5zIHRoZSBhbGxvd2FuY2UgZm9yIGBzcGVuZGVyYCB0byB0cmFuc2ZlciBmcm9tIGBmcm9tYC4KClRoZSBhbW91bnQgcmV0dXJuZWQgaXMgdGhlIGFtb3VudCB0aGF0IHNwZW5kZXIgaXMgYWxsb3dlZCB0byB0cmFuc2ZlcgpvdXQgb2YgZnJvbSdzIGJhbGFuY2UuIFdoZW4gdGhlIHNwZW5kZXIgdHJhbnNmZXJzIGFtb3VudHMsIHRoZSBhbGxvd2FuY2UKd2lsbCBiZSByZWR1Y2VkIGJ5IHRoZSBhbW91bnQgdHJhbnNmZXJyZWQuCgojIEFyZ3VtZW50cwoKKiBgZnJvbWAgLSBUaGUgYWRkcmVzcyBob2xkaW5nIHRoZSBiYWxhbmNlIG9mIHRva2VucyB0byBiZSBkcmF3biBmcm9tLgoqIGBzcGVuZGVyYCAtIFRoZSBhZGRyZXNzIHNwZW5kaW5nIHRoZSB0b2tlbnMgaGVsZCBieSBgZnJvbWAuAAAAAAAJYWxsb3dhbmNlAAAAAAAAAgAAAAAAAAAEZnJvbQAAABMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAEAAAALAAAAAAAAAIlSZXR1cm5zIHRydWUgaWYgYGlkYCBpcyBhdXRob3JpemVkIHRvIHVzZSBpdHMgYmFsYW5jZS4KCiMgQXJndW1lbnRzCgoqIGBpZGAgLSBUaGUgYWRkcmVzcyBmb3Igd2hpY2ggdG9rZW4gYXV0aG9yaXphdGlvbiBpcyBiZWluZyBjaGVja2VkLgAAAAAAAAphdXRob3JpemVkAAAAAAABAAAAAAAAAAJpZAAAAAAAEwAAAAEAAAABAAAAAAAAA59TZXQgdGhlIGFsbG93YW5jZSBieSBgYW1vdW50YCBmb3IgYHNwZW5kZXJgIHRvIHRyYW5zZmVyL2J1cm4gZnJvbQpgZnJvbWAuCgpUaGUgYW1vdW50IHNldCBpcyB0aGUgYW1vdW50IHRoYXQgc3BlbmRlciBpcyBhcHByb3ZlZCB0byB0cmFuc2ZlciBvdXQgb2YKZnJvbSdzIGJhbGFuY2UuIFRoZSBzcGVuZGVyIHdpbGwgYmUgYWxsb3dlZCB0byB0cmFuc2ZlciBhbW91bnRzLCBhbmQKd2hlbiBhbiBhbW91bnQgaXMgdHJhbnNmZXJyZWQgdGhlIGFsbG93YW5jZSB3aWxsIGJlIHJlZHVjZWQgYnkgdGhlCmFtb3VudCB0cmFuc2ZlcnJlZC4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHRvIGJlIGRyYXduIGZyb20uCiogYHNwZW5kZXJgIC0gVGhlIGFkZHJlc3MgYmVpbmcgYXV0aG9yaXplZCB0byBzcGVuZCB0aGUgdG9rZW5zIGhlbGQgYnkKYGZyb21gLgoqIGBhbW91bnRgIC0gVGhlIHRva2VucyB0byBiZSBtYWRlIGF2YWlsYWJsZSB0byBgc3BlbmRlcmAuCiogYGV4cGlyYXRpb25fbGVkZ2VyYCAtIFRoZSBsZWRnZXIgbnVtYmVyIHdoZXJlIHRoaXMgYWxsb3dhbmNlIGV4cGlyZXMuIENhbm5vdApiZSBsZXNzIHRoYW4gdGhlIGN1cnJlbnQgbGVkZ2VyIG51bWJlciB1bmxlc3MgdGhlIGFtb3VudCBpcyBiZWluZyBzZXQgdG8gMC4KQW4gZXhwaXJlZCBlbnRyeSAod2hlcmUgZXhwaXJhdGlvbl9sZWRnZXIgPCB0aGUgY3VycmVudCBsZWRnZXIgbnVtYmVyKQpzaG91bGQgYmUgdHJlYXRlZCBhcyBhIDAgYW1vdW50IGFsbG93YW5jZS4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJhcHByb3ZlIiwgZnJvbTogQWRkcmVzcywKc3BlbmRlcjogQWRkcmVzc10sIGRhdGEgPSBbYW1vdW50OiBpMTI4LCBleHBpcmF0aW9uX2xlZGdlcjogdTMyXWAAAAAAB2FwcHJvdmUAAAAABAAAAAAAAAAEZnJvbQAAABMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAABFleHBpcmF0aW9uX2xlZGdlcgAAAAAAAAQAAAAAAAAAAAAAAJhSZXR1cm5zIHRoZSBiYWxhbmNlIG9mIGBpZGAuCgojIEFyZ3VtZW50cwoKKiBgaWRgIC0gVGhlIGFkZHJlc3MgZm9yIHdoaWNoIGEgYmFsYW5jZSBpcyBiZWluZyBxdWVyaWVkLiBJZiB0aGUKYWRkcmVzcyBoYXMgbm8gZXhpc3RpbmcgYmFsYW5jZSwgcmV0dXJucyAwLgAAAAdiYWxhbmNlAAAAAAEAAAAAAAAAAmlkAAAAAAATAAAAAQAAAAsAAAAAAAABYkJ1cm4gYGFtb3VudGAgZnJvbSBgZnJvbWAuCgpSZWR1Y2VzIGZyb20ncyBiYWxhbmNlIGJ5IHRoZSBhbW91bnQsIHdpdGhvdXQgdHJhbnNmZXJyaW5nIHRoZSBiYWxhbmNlCnRvIGFub3RoZXIgaG9sZGVyJ3MgYmFsYW5jZS4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHdoaWNoIHdpbGwgYmUKYnVybmVkIGZyb20uCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBidXJuZWQuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsiYnVybiIsIGZyb206IEFkZHJlc3NdLCBkYXRhID0gYW1vdW50OgppMTI4YAAAAAAABGJ1cm4AAAACAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAALaQnVybiBgYW1vdW50YCBmcm9tIGBmcm9tYCwgY29uc3VtaW5nIHRoZSBhbGxvd2FuY2Ugb2YgYHNwZW5kZXJgLgoKUmVkdWNlcyBmcm9tJ3MgYmFsYW5jZSBieSB0aGUgYW1vdW50LCB3aXRob3V0IHRyYW5zZmVycmluZyB0aGUgYmFsYW5jZQp0byBhbm90aGVyIGhvbGRlcidzIGJhbGFuY2UuCgpUaGUgc3BlbmRlciB3aWxsIGJlIGFsbG93ZWQgdG8gYnVybiB0aGUgYW1vdW50IGZyb20gZnJvbSdzIGJhbGFuY2UsIGlmCnRoZSBhbW91bnQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBhbGxvd2FuY2UgdGhhdCB0aGUgc3BlbmRlciBoYXMKb24gdGhlIGZyb20ncyBiYWxhbmNlLiBUaGUgc3BlbmRlcidzIGFsbG93YW5jZSBvbiBmcm9tJ3MgYmFsYW5jZSB3aWxsIGJlCnJlZHVjZWQgYnkgdGhlIGFtb3VudC4KCiMgQXJndW1lbnRzCgoqIGBzcGVuZGVyYCAtIFRoZSBhZGRyZXNzIGF1dGhvcml6aW5nIHRoZSBidXJuLCBhbmQgaGF2aW5nIGl0cyBhbGxvd2FuY2UKY29uc3VtZWQgZHVyaW5nIHRoZSBidXJuLgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHdoaWNoIHdpbGwgYmUKYnVybmVkIGZyb20uCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBidXJuZWQuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsiYnVybiIsIGZyb206IEFkZHJlc3NdLCBkYXRhID0gYW1vdW50OgppMTI4YAAAAAAACWJ1cm5fZnJvbQAAAAAAAAMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAAAAAAEZnJvbQAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAABUUNsYXdiYWNrIGBhbW91bnRgIGZyb20gYGZyb21gIGFjY291bnQuIGBhbW91bnRgIGlzIGJ1cm5lZCBpbiB0aGUKY2xhd2JhY2sgcHJvY2Vzcy4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2UgZnJvbSB3aGljaCB0aGUgY2xhd2JhY2sgd2lsbAp0YWtlIHRva2Vucy4KKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIHRvIGJlIGNsYXdlZCBiYWNrLgoKIyBFdmVudHMKCkVtaXRzIGFuIGV2ZW50IHdpdGggdG9waWNzIGBbImNsYXdiYWNrIiwgYWRtaW46IEFkZHJlc3MsIHRvOiBBZGRyZXNzXSwKZGF0YSA9IGFtb3VudDogaTEyOGAAAAAAAAAIY2xhd2JhY2sAAAACAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAACAUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHVzZWQgdG8gcmVwcmVzZW50IGFtb3VudHMgb2YgdGhpcyB0b2tlbi4KCiMgUGFuaWNzCgpJZiB0aGUgY29udHJhY3QgaGFzIG5vdCB5ZXQgYmVlbiBpbml0aWFsaXplZC4AAAAIZGVjaW1hbHMAAAAAAAAAAQAAAAQAAAAAAAAA801pbnRzIGBhbW91bnRgIHRvIGB0b2AuCgojIEFyZ3VtZW50cwoKKiBgdG9gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSBtaW50ZWQgdG9rZW5zLgoqIGBhbW91bnRgIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgbWludGVkLgoKIyBFdmVudHMKCkVtaXRzIGFuIGV2ZW50IHdpdGggdG9waWNzIGBbIm1pbnQiLCBhZG1pbjogQWRkcmVzcywgdG86IEFkZHJlc3NdLCBkYXRhCj0gYW1vdW50OiBpMTI4YAAAAAAEbWludAAAAAIAAAAAAAAAAnRvAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAFlSZXR1cm5zIHRoZSBuYW1lIGZvciB0aGlzIHRva2VuLgoKIyBQYW5pY3MKCklmIHRoZSBjb250cmFjdCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLgAAAAAAAARuYW1lAAAAAAAAAAEAAAAQAAAAAAAAAQxTZXRzIHRoZSBhZG1pbmlzdHJhdG9yIHRvIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBgbmV3X2FkbWluYC4KCiMgQXJndW1lbnRzCgoqIGBuZXdfYWRtaW5gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCBoZW5jZWZvcnRoIGJlIHRoZSBhZG1pbmlzdHJhdG9yCm9mIHRoaXMgdG9rZW4gY29udHJhY3QuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsic2V0X2FkbWluIiwgYWRtaW46IEFkZHJlc3NdLCBkYXRhID0KW25ld19hZG1pbjogQWRkcmVzc11gAAAACXNldF9hZG1pbgAAAAAAAAEAAAAAAAAACW5ld19hZG1pbgAAAAAAABMAAAAAAAAAAAAAAEZSZXR1cm5zIHRoZSBhZG1pbiBvZiB0aGUgY29udHJhY3QuCgojIFBhbmljcwoKSWYgdGhlIGFkbWluIGlzIG5vdCBzZXQuAAAAAAAFYWRtaW4AAAAAAAAAAAAAAQAAABMAAAAAAAABUFNldHMgd2hldGhlciB0aGUgYWNjb3VudCBpcyBhdXRob3JpemVkIHRvIHVzZSBpdHMgYmFsYW5jZS4gSWYKYGF1dGhvcml6ZWRgIGlzIHRydWUsIGBpZGAgc2hvdWxkIGJlIGFibGUgdG8gdXNlIGl0cyBiYWxhbmNlLgoKIyBBcmd1bWVudHMKCiogYGlkYCAtIFRoZSBhZGRyZXNzIGJlaW5nIChkZS0pYXV0aG9yaXplZC4KKiBgYXV0aG9yaXplYCAtIFdoZXRoZXIgb3Igbm90IGBpZGAgY2FuIHVzZSBpdHMgYmFsYW5jZS4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJzZXRfYXV0aG9yaXplZCIsIGlkOiBBZGRyZXNzXSwgZGF0YSA9ClthdXRob3JpemU6IGJvb2xdYAAAAA5zZXRfYXV0aG9yaXplZAAAAAAAAgAAAAAAAAACaWQAAAAAABMAAAAAAAAACWF1dGhvcml6ZQAAAAAAAAEAAAAAAAAAAAAAAFtSZXR1cm5zIHRoZSBzeW1ib2wgZm9yIHRoaXMgdG9rZW4uCgojIFBhbmljcwoKSWYgdGhlIGNvbnRyYWN0IGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQuAAAAAAZzeW1ib2wAAAAAAAAAAAABAAAAEAAAAAAAAAFiVHJhbnNmZXIgYGFtb3VudGAgZnJvbSBgZnJvbWAgdG8gYHRvYC4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHdoaWNoIHdpbGwgYmUKd2l0aGRyYXduIGZyb20uCiogYHRvYCAtIFRoZSBhZGRyZXNzIHdoaWNoIHdpbGwgcmVjZWl2ZSB0aGUgdHJhbnNmZXJyZWQgdG9rZW5zLgoqIGBhbW91bnRgIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgdHJhbnNmZXJyZWQuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsidHJhbnNmZXIiLCBmcm9tOiBBZGRyZXNzLCB0bzogQWRkcmVzc10sCmRhdGEgPSBhbW91bnQ6IGkxMjhgAAAAAAAIdHJhbnNmZXIAAAADAAAAAAAAAARmcm9tAAAAEwAAAAAAAAACdG8AAAAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAADMVRyYW5zZmVyIGBhbW91bnRgIGZyb20gYGZyb21gIHRvIGB0b2AsIGNvbnN1bWluZyB0aGUgYWxsb3dhbmNlIHRoYXQKYHNwZW5kZXJgIGhhcyBvbiBgZnJvbWAncyBiYWxhbmNlLiBBdXRob3JpemVkIGJ5IHNwZW5kZXIKKGBzcGVuZGVyLnJlcXVpcmVfYXV0aCgpYCkuCgpUaGUgc3BlbmRlciB3aWxsIGJlIGFsbG93ZWQgdG8gdHJhbnNmZXIgdGhlIGFtb3VudCBmcm9tIGZyb20ncyBiYWxhbmNlCmlmIHRoZSBhbW91bnQgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBhbGxvd2FuY2UgdGhhdCB0aGUgc3BlbmRlcgpoYXMgb24gdGhlIGZyb20ncyBiYWxhbmNlLiBUaGUgc3BlbmRlcidzIGFsbG93YW5jZSBvbiBmcm9tJ3MgYmFsYW5jZQp3aWxsIGJlIHJlZHVjZWQgYnkgdGhlIGFtb3VudC4KCiMgQXJndW1lbnRzCgoqIGBzcGVuZGVyYCAtIFRoZSBhZGRyZXNzIGF1dGhvcml6aW5nIHRoZSB0cmFuc2ZlciwgYW5kIGhhdmluZyBpdHMKYWxsb3dhbmNlIGNvbnN1bWVkIGR1cmluZyB0aGUgdHJhbnNmZXIuCiogYGZyb21gIC0gVGhlIGFkZHJlc3MgaG9sZGluZyB0aGUgYmFsYW5jZSBvZiB0b2tlbnMgd2hpY2ggd2lsbCBiZQp3aXRoZHJhd24gZnJvbS4KKiBgdG9gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSB0cmFuc2ZlcnJlZCB0b2tlbnMuCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSB0cmFuc2ZlcnJlZC4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJ0cmFuc2ZlciIsIGZyb206IEFkZHJlc3MsIHRvOiBBZGRyZXNzXSwKZGF0YSA9IGFtb3VudDogaTEyOGAAAAAAAAANdHJhbnNmZXJfZnJvbQAAAAAAAAQAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAAAAAAEZnJvbQAAABMAAAAAAAAAAnRvAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAABQAAAAAAAAAAAAAAB0FwcHJvdmUAAAAAAQAAAAdhcHByb3ZlAAAAAAQAAAAAAAAABGZyb20AAAATAAAAAQAAAAAAAAAHc3BlbmRlcgAAAAATAAAAAQAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAAARZXhwaXJhdGlvbl9sZWRnZXIAAAAAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAIVHJhbnNmZXIAAAABAAAACHRyYW5zZmVyAAAAAwAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAAABQAAAAAAAAAAAAAADVRyYW5zZmVyTXV4ZWQAAAAAAAABAAAACHRyYW5zZmVyAAAABAAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAAC3RvX211eGVkX2lkAAAAAAQAAAAAAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAARCdXJuAAAAAQAAAARidXJuAAAAAgAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAARNaW50AAAAAQAAAARtaW50AAAAAgAAAAAAAAACdG8AAAAAABMAAAABAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAhDbGF3YmFjawAAAAEAAAAIY2xhd2JhY2sAAAACAAAAAAAAAARmcm9tAAAAEwAAAAEAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAAAAAABQAAAAAAAAAAAAAACFNldEFkbWluAAAAAQAAAAlzZXRfYWRtaW4AAAAAAAABAAAAAAAAAAluZXdfYWRtaW4AAAAAAAATAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAANU2V0QXV0aG9yaXplZAAAAAAAAAEAAAAOc2V0X2F1dGhvcml6ZWQAAAAAAAIAAAAAAAAAAmlkAAAAAAATAAAAAQAAAAAAAAAJYXV0aG9yaXplAAAAAAAAAQAAAAAAAAAA";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Spec } from "../contract";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for struct fields
|
|
4
|
+
*/
|
|
5
|
+
export interface StructField {
|
|
6
|
+
doc: string;
|
|
7
|
+
name: string;
|
|
8
|
+
type: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Interface for union cases
|
|
12
|
+
*/
|
|
13
|
+
export interface UnionCase {
|
|
14
|
+
doc: string;
|
|
15
|
+
name: string;
|
|
16
|
+
types: string[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Interface for enum cases
|
|
20
|
+
*/
|
|
21
|
+
export interface EnumCase {
|
|
22
|
+
doc: string;
|
|
23
|
+
name: string;
|
|
24
|
+
value: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Generates TypeScript type definitions from Stellar contract specs
|
|
28
|
+
*/
|
|
29
|
+
export declare class TypeGenerator {
|
|
30
|
+
private spec;
|
|
31
|
+
constructor(spec: Spec);
|
|
32
|
+
/**
|
|
33
|
+
* Generate all TypeScript type definitions
|
|
34
|
+
*/
|
|
35
|
+
generate(): string;
|
|
36
|
+
/**
|
|
37
|
+
* Generate TypeScript for a single spec entry
|
|
38
|
+
*/
|
|
39
|
+
private generateEntry;
|
|
40
|
+
private generateImports;
|
|
41
|
+
/**
|
|
42
|
+
* Generate TypeScript interface for a struct
|
|
43
|
+
*/
|
|
44
|
+
private generateStruct;
|
|
45
|
+
/**
|
|
46
|
+
* Generate TypeScript union type
|
|
47
|
+
*/
|
|
48
|
+
private generateUnion;
|
|
49
|
+
/**
|
|
50
|
+
* Generate TypeScript enum
|
|
51
|
+
*/
|
|
52
|
+
private generateEnum;
|
|
53
|
+
/**
|
|
54
|
+
* Generate TypeScript error enum
|
|
55
|
+
*/
|
|
56
|
+
private generateErrorEnum;
|
|
57
|
+
/**
|
|
58
|
+
* Generate union case
|
|
59
|
+
*/
|
|
60
|
+
private generateUnionCase;
|
|
61
|
+
/**
|
|
62
|
+
* Generate enum case
|
|
63
|
+
*/
|
|
64
|
+
private generateEnumCase;
|
|
65
|
+
private generateTupleStruct;
|
|
66
|
+
}
|