@keplr-wallet/chain-validator 0.12.0-alpha.0 → 0.12.0-alpha.3

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.
@@ -0,0 +1,377 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const http_1 = __importDefault(require("http"));
16
+ const feature_1 = require("./feature");
17
+ const createMockServer = (ibcGoSuccess, ibcTransferSuccess, WasmSuccess, SpendableBalancesSuccess) => {
18
+ let i = 0;
19
+ const server = http_1.default.createServer((req, resp) => {
20
+ i++;
21
+ if (req.url === "/ibc/apps/transfer/v1/params") {
22
+ resp.writeHead(ibcGoSuccess ? 200 : 501, {
23
+ "content-type": "text/json",
24
+ });
25
+ resp.end(JSON.stringify({
26
+ params: { receive_enabled: ibcGoSuccess, send_enabled: ibcGoSuccess },
27
+ }));
28
+ }
29
+ if (req.url === "/ibc/applications/transfer/v1beta1/params") {
30
+ resp.writeHead(200, {
31
+ "content-type": "text/json",
32
+ });
33
+ resp.end(JSON.stringify({
34
+ params: {
35
+ receive_enabled: ibcTransferSuccess,
36
+ send_enabled: ibcTransferSuccess,
37
+ },
38
+ }));
39
+ }
40
+ if (req.url === "/cosmwasm/wasm/v1/contract/test/smart/test") {
41
+ resp.writeHead(WasmSuccess ? 400 : 501);
42
+ resp.end();
43
+ }
44
+ if (req.url === "/cosmos/bank/v1beta1/spendable_balances/test") {
45
+ resp.writeHead(SpendableBalancesSuccess ? 400 : 501);
46
+ resp.end();
47
+ }
48
+ });
49
+ server.listen();
50
+ const address = server.address();
51
+ if (!address || typeof address === "string") {
52
+ throw new Error("Failed to get address for server");
53
+ }
54
+ const port = address.port;
55
+ return {
56
+ port,
57
+ closeServer: () => {
58
+ server.close();
59
+ },
60
+ getQueryCount: () => i,
61
+ };
62
+ };
63
+ describe("The chain server supports all features(체인 서버가 모든 기능을 지원할 때)", () => {
64
+ let port = -1;
65
+ let closeServer;
66
+ let getQueryCount;
67
+ beforeEach(() => {
68
+ const server = createMockServer(true, true, true, true);
69
+ port = server.port;
70
+ closeServer = server.closeServer;
71
+ getQueryCount = server.getQueryCount;
72
+ });
73
+ afterEach(() => {
74
+ if (closeServer) {
75
+ closeServer();
76
+ closeServer = undefined;
77
+ }
78
+ getQueryCount = undefined;
79
+ });
80
+ test("test features has no duplication", () => {
81
+ let f = {};
82
+ for (const feature of feature_1.SupportedChainFeatures) {
83
+ if (f[feature]) {
84
+ throw new Error(`${feature} is duplicated on SupportedChainFeatures`);
85
+ }
86
+ f[feature] = true;
87
+ }
88
+ f = {};
89
+ for (const feature of feature_1.RecognizableChainFeatures) {
90
+ if (f[feature]) {
91
+ throw new Error(`${feature} is duplicated on RecognizableChainFeatures`);
92
+ }
93
+ f[feature] = true;
94
+ }
95
+ f = {};
96
+ for (const feature of feature_1.NonRecognizableChainFeatures) {
97
+ if (f[feature]) {
98
+ throw new Error(`${feature} is duplicated on NonRecognizableChainFeatures`);
99
+ }
100
+ f[feature] = true;
101
+ }
102
+ });
103
+ test("test SupportedChainFeatures contains RecognizableChainFeatures/NonRecognizableChainFeatures", () => {
104
+ const f = {};
105
+ for (const feature of feature_1.RecognizableChainFeatures) {
106
+ if (f[feature]) {
107
+ throw new Error(`${feature} is duplicated on RecognizableChainFeatures`);
108
+ }
109
+ f[feature] = true;
110
+ }
111
+ for (const feature of feature_1.NonRecognizableChainFeatures) {
112
+ if (f[feature]) {
113
+ throw new Error(`${feature} is duplicated on RecognizableChainFeatures/NonRecognizableChainFeatures`);
114
+ }
115
+ f[feature] = true;
116
+ }
117
+ expect(Object.keys(f).sort()).toStrictEqual(feature_1.SupportedChainFeatures.sort());
118
+ });
119
+ test("hasFeature should not make query if chain info already include feature", () => __awaiter(void 0, void 0, void 0, function* () {
120
+ const mockChainInfoForCheck = {
121
+ rpc: "noop",
122
+ rest: `http://127.0.0.1:${port}`,
123
+ features: ["ibc-go"],
124
+ };
125
+ expect(yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "ibc-go")).toEqual(true);
126
+ expect(getQueryCount()).toEqual(0);
127
+ }));
128
+ test("checkChainFeatures should not make query if chain info already include feature", () => __awaiter(void 0, void 0, void 0, function* () {
129
+ const mockChainInfoForCheck = {
130
+ rpc: "noop",
131
+ rest: `http://127.0.0.1:${port}`,
132
+ features: ["ibc-go"],
133
+ };
134
+ expect(yield (0, feature_1.checkChainFeatures)(mockChainInfoForCheck)).toEqual([
135
+ "ibc-transfer",
136
+ "query:/cosmos/bank/v1beta1/spendable_balances",
137
+ ]);
138
+ expect(getQueryCount()).toEqual(2);
139
+ }));
140
+ /**
141
+ * @Given The server support all features, No input JSON feature
142
+ * @When When you input 'ibc-go' feature in 'hasFeature' function
143
+ * @Then return true
144
+ */
145
+ test("When you input 'ibc-go' feature in 'hasFeature' function", () => __awaiter(void 0, void 0, void 0, function* () {
146
+ const mockChainInfoForCheck = {
147
+ rpc: "noop",
148
+ rest: `http://127.0.0.1:${port}`,
149
+ features: [],
150
+ };
151
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "ibc-go");
152
+ expect(feature).toEqual(true);
153
+ }));
154
+ /**
155
+ * @Given The server support all features, No input JSON feature
156
+ * @When When you input 'ibc-transfer' feature in 'hasFeature' function
157
+ * @Then return true
158
+ */
159
+ test("When you input 'ibc-transfer' feature in 'hasFeature' function", () => __awaiter(void 0, void 0, void 0, function* () {
160
+ const mockChainInfoForCheck = {
161
+ rpc: "noop",
162
+ rest: `http://127.0.0.1:${port}`,
163
+ features: [],
164
+ };
165
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "ibc-transfer");
166
+ expect(feature).toEqual(true);
167
+ }));
168
+ /**
169
+ * @Given The server support all features, Input 'ibc-go' in JSON feature
170
+ * @When When you input 'ibc-transfer' feature in 'hasFeature' function
171
+ * @Then return true
172
+ */
173
+ test("When you input 'ibc-transfer' feature in 'hasFeature' function(Input 'ibc-go' in JSON feature)", () => __awaiter(void 0, void 0, void 0, function* () {
174
+ const mockChainInfoForCheck = {
175
+ rpc: "noop",
176
+ rest: `http://127.0.0.1:${port}`,
177
+ features: ["ibc-go"],
178
+ };
179
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "ibc-transfer");
180
+ expect(feature).toEqual(true);
181
+ }));
182
+ /**
183
+ * @Given The server support all features, No input JSON feature
184
+ * @When When you input 'wasmd_0.24+' feature in 'hasFeature' function
185
+ * @Then return false
186
+ */
187
+ test("When you input 'wasmd_0.24+' feature in 'hasFeature' function", () => __awaiter(void 0, void 0, void 0, function* () {
188
+ const mockChainInfoForCheck = {
189
+ rpc: "noop",
190
+ rest: `http://127.0.0.1:${port}`,
191
+ features: [],
192
+ };
193
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "wasmd_0.24+");
194
+ expect(feature).toEqual(false);
195
+ }));
196
+ /**
197
+ * @Given The server support all features, Input 'cosmwasm' in JSON feature
198
+ * @When When you input 'wasmd_0.24+' feature in 'hasFeature' function
199
+ * @Then return "wasmd_0.24+" string
200
+ */
201
+ test("When you input 'wasmd_0.24+' feature in 'hasFeature' function with 'cosmwasm' feature", () => __awaiter(void 0, void 0, void 0, function* () {
202
+ const mockChainInfoForCheck = {
203
+ rpc: "noop",
204
+ rest: `http://127.0.0.1:${port}`,
205
+ features: ["cosmwasm"],
206
+ };
207
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "wasmd_0.24+");
208
+ expect(feature).toEqual(true);
209
+ }));
210
+ /**
211
+ * @Given The server support all features, No input JSON feature
212
+ * @When When you input 'query:/cosmos/bank/v1beta1/spendable_balances' feature in 'hasFeature' function
213
+ * @Then return true
214
+ */
215
+ test("When you input 'query:/cosmos/bank/v1beta1/spendable_balances' feature in 'hasFeature' function", () => __awaiter(void 0, void 0, void 0, function* () {
216
+ const mockChainInfoForCheck = {
217
+ rpc: "noop",
218
+ rest: `http://127.0.0.1:${port}`,
219
+ features: [],
220
+ };
221
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "query:/cosmos/bank/v1beta1/spendable_balances");
222
+ expect(feature).toEqual(true);
223
+ }));
224
+ /**
225
+ * @Given The server support all features
226
+ * @When When you input that there are no supported features
227
+ * @Then return "ibc-go", "ibc-transfer", "query:/cosmos/bank/v1beta1/spendable_balances", features
228
+ */
229
+ test("When you input that there are no supported features(지원하는 기능이 없다고 입력했을 때)", () => __awaiter(void 0, void 0, void 0, function* () {
230
+ const mockChainInfoForCheck = {
231
+ rpc: "noop",
232
+ rest: `http://127.0.0.1:${port}`,
233
+ features: [],
234
+ };
235
+ const features = yield (0, feature_1.checkChainFeatures)(mockChainInfoForCheck);
236
+ expect(features).toEqual([
237
+ "ibc-go",
238
+ "ibc-transfer",
239
+ "query:/cosmos/bank/v1beta1/spendable_balances",
240
+ ]);
241
+ }));
242
+ /**
243
+ * @Given The server support all features
244
+ * @When When you input undefined in supported features
245
+ * @Then return "ibc-go", "ibc-transfer", "query:/cosmos/bank/v1beta1/spendable_balances", features
246
+ */
247
+ test("When you input undefined in supported features", () => __awaiter(void 0, void 0, void 0, function* () {
248
+ const mockChainInfoForCheck = {
249
+ rpc: "noop",
250
+ rest: `http://127.0.0.1:${port}`,
251
+ features: undefined,
252
+ };
253
+ const features = yield (0, feature_1.checkChainFeatures)(mockChainInfoForCheck);
254
+ expect(features).toEqual([
255
+ "ibc-go",
256
+ "ibc-transfer",
257
+ "query:/cosmos/bank/v1beta1/spendable_balances",
258
+ ]);
259
+ }));
260
+ /**
261
+ * @Given The server support all features
262
+ * @When When you input that there is 'cosmwasm' feature
263
+ * @Then return all features
264
+ */
265
+ test("When you input that there is 'cosmwasm' feature", () => __awaiter(void 0, void 0, void 0, function* () {
266
+ const mockChainInfoForCheck = {
267
+ rpc: "noop",
268
+ rest: `http://127.0.0.1:${port}`,
269
+ features: ["cosmwasm"],
270
+ };
271
+ const features = yield (0, feature_1.checkChainFeatures)(mockChainInfoForCheck);
272
+ expect(features).toEqual([
273
+ "ibc-go",
274
+ "ibc-transfer",
275
+ "wasmd_0.24+",
276
+ "query:/cosmos/bank/v1beta1/spendable_balances",
277
+ ]);
278
+ }));
279
+ });
280
+ describe("The chain server doesn't support all features(체인 서버가 모든 기능을 지원하지 않을 때)", () => {
281
+ let port = -1;
282
+ let closeServer;
283
+ beforeEach(() => {
284
+ const server = createMockServer(false, false, false, false);
285
+ port = server.port;
286
+ closeServer = server.closeServer;
287
+ });
288
+ afterEach(() => {
289
+ if (closeServer) {
290
+ closeServer();
291
+ closeServer = undefined;
292
+ }
293
+ });
294
+ /**
295
+ * @Given The server doesn't support all features, No input JSON feature
296
+ * @When When you input 'ibc-go' feature in 'hasFeature' function
297
+ * @Then return "Failed to get response /ibc/apps/transfer/v1/params from lcd endpoint" error string
298
+ */
299
+ test("When you input 'ibc-go' feature in 'hasFeature' function", () => __awaiter(void 0, void 0, void 0, function* () {
300
+ const mockChainInfoForCheck = {
301
+ rpc: "noop",
302
+ rest: `http://127.0.0.1:${port}`,
303
+ features: [],
304
+ };
305
+ expect(yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "ibc-go")).toEqual(false);
306
+ }));
307
+ /**
308
+ * @Given The server doesn't support all features, No input JSON feature
309
+ * @When When you input 'ibc-transfer' feature in 'hasFeature' function
310
+ * @Then return undefined
311
+ */
312
+ test("When you input 'ibc-transfer' feature in 'hasFeature' function", () => __awaiter(void 0, void 0, void 0, function* () {
313
+ const mockChainInfoForCheck = {
314
+ rpc: "noop",
315
+ rest: `http://127.0.0.1:${port}`,
316
+ features: [],
317
+ };
318
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "ibc-transfer");
319
+ expect(feature).toEqual(false);
320
+ }));
321
+ /**
322
+ * @Given The server doesn't support all features, Input 'ibc-go' in JSON feature
323
+ * @When When you input 'ibc-transfer' feature in 'hasFeature' function
324
+ * @Then return "Failed to get response /ibc/apps/transfer/v1/params from lcd endpoint" error string
325
+ */
326
+ test("When you input 'ibc-transfer' feature in 'hasFeature' function(Input 'ibc-go' in JSON feature)", () => __awaiter(void 0, void 0, void 0, function* () {
327
+ const mockChainInfoForCheck = {
328
+ rpc: "noop",
329
+ rest: `http://127.0.0.1:${port}`,
330
+ features: ["ibc-go"],
331
+ };
332
+ expect(yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "ibc-transfer")).toBe(false);
333
+ }));
334
+ /**
335
+ * @Given The server doesn't support all features, No input JSON feature
336
+ * @When When you input 'wasmd_0.24+' feature in 'hasFeature' function
337
+ * @Then return undefined
338
+ */
339
+ test("When you input 'wasmd_0.24+' feature in 'hasFeature' function", () => __awaiter(void 0, void 0, void 0, function* () {
340
+ const mockChainInfoForCheck = {
341
+ rpc: "noop",
342
+ rest: `http://127.0.0.1:${port}`,
343
+ features: [],
344
+ };
345
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "wasmd_0.24+");
346
+ expect(feature).toEqual(false);
347
+ }));
348
+ /**
349
+ * @Given The server doesn't support all features, Input 'cosmwasm' in JSON feature
350
+ * @When When you input 'wasmd_0.24+' feature in 'hasFeature' function
351
+ * @Then return undefined
352
+ */
353
+ test("When you input 'wasmd_0.24+' feature in 'hasFeature' function", () => __awaiter(void 0, void 0, void 0, function* () {
354
+ const mockChainInfoForCheck = {
355
+ rpc: "noop",
356
+ rest: `http://127.0.0.1:${port}`,
357
+ features: ["cosmwasm"],
358
+ };
359
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "wasmd_0.24+");
360
+ expect(feature).toEqual(false);
361
+ }));
362
+ /**
363
+ * @Given The server doesn't support all features, No input JSON feature
364
+ * @When When you input 'query:/cosmos/bank/v1beta1/spendable_balances' feature in 'hasFeature' function
365
+ * @Then return undefined
366
+ */
367
+ test("When you input 'query:/cosmos/bank/v1beta1/spendable_balances' feature in 'hasFeature' function", () => __awaiter(void 0, void 0, void 0, function* () {
368
+ const mockChainInfoForCheck = {
369
+ rpc: "noop",
370
+ rest: `http://127.0.0.1:${port}`,
371
+ features: [],
372
+ };
373
+ const feature = yield (0, feature_1.hasFeature)(mockChainInfoForCheck, "query:/cosmos/bank/v1beta1/spendable_balances");
374
+ expect(feature).toEqual(false);
375
+ }));
376
+ });
377
+ //# sourceMappingURL=feature.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.spec.js","sourceRoot":"","sources":["../src/feature.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,uCAOmB;AAEnB,MAAM,gBAAgB,GAAG,CACvB,YAAqB,EACrB,kBAA2B,EAC3B,WAAoB,EACpB,wBAAiC,EACjC,EAAE;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7C,CAAC,EAAE,CAAC;QAEJ,IAAI,GAAG,CAAC,GAAG,KAAK,8BAA8B,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;gBACvC,cAAc,EAAE,WAAW;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,SAAS,CAAC;gBACb,MAAM,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE;aACtE,CAAC,CACH,CAAC;SACH;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,2CAA2C,EAAE;YAC3D,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;gBAClB,cAAc,EAAE,WAAW;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,SAAS,CAAC;gBACb,MAAM,EAAE;oBACN,eAAe,EAAE,kBAAkB;oBACnC,YAAY,EAAE,kBAAkB;iBACjC;aACF,CAAC,CACH,CAAC;SACH;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,4CAA4C,EAAE;YAC5D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,8CAA8C,EAAE;YAC9D,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACrD,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC3C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;KACrD;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,GAAG,EAAE;YAChB,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;KACvB,CAAC;AACJ,CAAC,CAAC;AAEF,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IAC3E,IAAI,IAAI,GAAW,CAAC,CAAC,CAAC;IACtB,IAAI,WAAqC,CAAC;IAC1C,IAAI,aAAyC,CAAC;IAE9C,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACnB,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE;YACf,WAAW,EAAE,CAAC;YACd,WAAW,GAAG,SAAS,CAAC;SACzB;QACD,aAAa,GAAG,SAAS,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,IAAI,CAAC,GAAwC,EAAE,CAAC;QAChD,KAAK,MAAM,OAAO,IAAI,gCAAsB,EAAE;YAC5C,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,0CAA0C,CAAC,CAAC;aACvE;YAED,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;SACnB;QAED,CAAC,GAAG,EAAE,CAAC;QACP,KAAK,MAAM,OAAO,IAAI,mCAAyB,EAAE;YAC/C,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;gBACd,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,6CAA6C,CACxD,CAAC;aACH;YAED,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;SACnB;QAED,CAAC,GAAG,EAAE,CAAC;QACP,KAAK,MAAM,OAAO,IAAI,sCAA4B,EAAE;YAClD,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;gBACd,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,gDAAgD,CAC3D,CAAC;aACH;YAED,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;SACnB;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6FAA6F,EAAE,GAAG,EAAE;QACvG,MAAM,CAAC,GAAwC,EAAE,CAAC;QAClD,KAAK,MAAM,OAAO,IAAI,mCAAyB,EAAE;YAC/C,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;gBACd,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,6CAA6C,CACxD,CAAC;aACH;YAED,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;SACnB;QAED,KAAK,MAAM,OAAO,IAAI,sCAA4B,EAAE;YAClD,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;gBACd,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,0EAA0E,CACrF,CAAC;aACH;YAED,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;SACnB;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,gCAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wEAAwE,EAAE,GAAS,EAAE;QACxF,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB,CAAC;QAEF,MAAM,CAAC,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAExE,MAAM,CAAC,aAAc,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,gFAAgF,EAAE,GAAS,EAAE;QAChG,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB,CAAC;QAEF,MAAM,CAAC,MAAM,IAAA,4BAAkB,EAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9D,cAAc;YACd,+CAA+C;SAChD,CAAC,CAAC;QAEH,MAAM,CAAC,aAAc,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,0DAA0D,EAAE,GAAS,EAAE;QAC1E,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,gEAAgE,EAAE,GAAS,EAAE;QAChF,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,gGAAgG,EAAE,GAAS,EAAE;QAChH,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,+DAA+D,EAAE,GAAS,EAAE;QAC/E,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,uFAAuF,EAAE,GAAS,EAAE;QACvG,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,iGAAiG,EAAE,GAAS,EAAE;QACjH,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAC9B,qBAAqB,EACrB,+CAA+C,CAChD,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,0EAA0E,EAAE,GAAS,EAAE;QAC1F,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,4BAAkB,EAAC,qBAAqB,CAAC,CAAC;QAEjE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YACvB,QAAQ;YACR,cAAc;YACd,+CAA+C;SAChD,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,gDAAgD,EAAE,GAAS,EAAE;QAChE,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,SAAS;SACpB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,4BAAkB,EAAC,qBAAqB,CAAC,CAAC;QAEjE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YACvB,QAAQ;YACR,cAAc;YACd,+CAA+C;SAChD,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,iDAAiD,EAAE,GAAS,EAAE;QACjE,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,4BAAkB,EAAC,qBAAqB,CAAC,CAAC;QAEjE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YACvB,QAAQ;YACR,cAAc;YACd,aAAa;YACb,+CAA+C;SAChD,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wEAAwE,EAAE,GAAG,EAAE;IACtF,IAAI,IAAI,GAAW,CAAC,CAAC,CAAC;IACtB,IAAI,WAAqC,CAAC;IAE1C,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACnB,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE;YACf,WAAW,EAAE,CAAC;YACd,WAAW,GAAG,SAAS,CAAC;SACzB;IACH,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,0DAA0D,EAAE,GAAS,EAAE;QAC1E,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,CAAC,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,gEAAgE,EAAE,GAAS,EAAE;QAChF,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;QACxE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,gGAAgG,EAAE,GAAS,EAAE;QAChH,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB,CAAC;QAEF,MAAM,CAAC,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,+DAA+D,EAAE,GAAS,EAAE;QAC/E,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,+DAA+D,EAAE,GAAS,EAAE;QAC/E,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAA,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,iGAAiG,EAAE,GAAS,EAAE;QACjH,MAAM,qBAAqB,GAAsB;YAC/C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,oBAAoB,IAAI,EAAE;YAChC,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAC9B,qBAAqB,EACrB,+CAA+C,CAChD,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/build/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./schema";
2
2
  export * from "./basic";
3
3
  export * from "./connection";
4
+ export * from "./feature";
package/build/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -13,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./schema"), exports);
14
18
  __exportStar(require("./basic"), exports);
15
19
  __exportStar(require("./connection"), exports);
20
+ __exportStar(require("./feature"), exports);
16
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,+CAA6B;AAC7B,4CAA0B"}
package/build/schema.d.ts CHANGED
@@ -1,16 +1,11 @@
1
- import { Bech32Config, ChainInfo, Currency, CW20Currency, Secret20Currency } from "@keplr-wallet/types";
1
+ import { Bech32Config, ChainInfo, Currency, CW20Currency, Secret20Currency, WithGasPriceStep } from "@keplr-wallet/types";
2
2
  import Joi from "joi";
3
- export declare const SupportedChainFeatures: string[];
4
- export declare const CurrencySchema: Joi.ObjectSchema<Currency>;
3
+ export declare const CurrencySchema: Joi.ObjectSchema<Currency & {
4
+ type?: undefined;
5
+ }>;
5
6
  export declare const CW20CurrencySchema: Joi.ObjectSchema<CW20Currency>;
6
7
  export declare const Secret20CurrencySchema: Joi.ObjectSchema<Secret20Currency>;
7
- export declare const FeeCurrencySchema: Joi.ObjectSchema<Currency & {
8
- readonly gasPriceStep?: {
9
- readonly low: number;
10
- readonly average: number;
11
- readonly high: number;
12
- } | undefined;
13
- }>;
8
+ export declare const FeeCurrencySchema: Joi.ObjectSchema<WithGasPriceStep<Currency>>;
14
9
  export declare const Bech32ConfigSchema: Joi.ObjectSchema<Bech32Config>;
15
10
  export declare const SuggestingBIP44Schema: Joi.ObjectSchema<{
16
11
  coinType: number;
package/build/schema.js CHANGED
@@ -3,28 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ChainInfoSchema = exports.SuggestingBIP44Schema = exports.Bech32ConfigSchema = exports.FeeCurrencySchema = exports.Secret20CurrencySchema = exports.CW20CurrencySchema = exports.CurrencySchema = exports.SupportedChainFeatures = void 0;
6
+ exports.ChainInfoSchema = exports.SuggestingBIP44Schema = exports.Bech32ConfigSchema = exports.FeeCurrencySchema = exports.Secret20CurrencySchema = exports.CW20CurrencySchema = exports.CurrencySchema = void 0;
7
+ const feature_1 = require("./feature");
7
8
  const joi_1 = __importDefault(require("joi"));
8
- exports.SupportedChainFeatures = [
9
- "stargate",
10
- "cosmwasm",
11
- "wasmd_0.24+",
12
- "secretwasm",
13
- "ibc-transfer",
14
- "no-legacy-stdTx",
15
- "ibc-go",
16
- "eth-address-gen",
17
- "eth-key-sign",
18
- "query:/cosmos/bank/v1beta1/spendable_balances",
19
- "axelar-evm-bridge",
20
- "osmosis-txfees",
21
- ];
22
9
  exports.CurrencySchema = joi_1.default.object({
23
10
  coinDenom: joi_1.default.string().required(),
24
11
  coinMinimalDenom: joi_1.default.string().required(),
25
- coinDecimals: joi_1.default.number().integer().min(0).max(18).required(),
12
+ coinDecimals: joi_1.default.number().strict().integer().min(0).max(18).required(),
26
13
  coinGeckoId: joi_1.default.string(),
27
14
  coinImageUrl: joi_1.default.string().uri(),
15
+ }).keys({
16
+ type: joi_1.default.forbidden(),
28
17
  });
29
18
  exports.CW20CurrencySchema = exports.CurrencySchema
30
19
  .keys({
@@ -54,9 +43,9 @@ exports.Secret20CurrencySchema = exports.CurrencySchema
54
43
  }
55
44
  });
56
45
  const GasPriceStepSchema = joi_1.default.object({
57
- low: joi_1.default.number().required(),
58
- average: joi_1.default.number().required(),
59
- high: joi_1.default.number().required(),
46
+ low: joi_1.default.number().strict().required(),
47
+ average: joi_1.default.number().strict().required(),
48
+ high: joi_1.default.number().strict().required(),
60
49
  }).custom((value) => {
61
50
  if (value.low > value.average) {
62
51
  throw new Error("Low gas price step can not be greater than average");
@@ -78,7 +67,8 @@ exports.Bech32ConfigSchema = joi_1.default.object({
78
67
  bech32PrefixConsPub: joi_1.default.string().required(),
79
68
  });
80
69
  exports.SuggestingBIP44Schema = joi_1.default.object({
81
- coinType: joi_1.default.number().integer().min(0).required(),
70
+ coinType: joi_1.default.number().strict().integer().min(0).required(),
71
+ // Alow the any keys for compatibility of cosmosJS's BIP44 (for legacy).
82
72
  }).unknown(true);
83
73
  exports.ChainInfoSchema = joi_1.default.object({
84
74
  rpc: joi_1.default.string()
@@ -90,7 +80,6 @@ exports.ChainInfoSchema = joi_1.default.object({
90
80
  return value;
91
81
  })
92
82
  .required(),
93
- // TODO: Handle rpc config.
94
83
  rest: joi_1.default.string()
95
84
  .uri()
96
85
  .custom((value) => {
@@ -100,7 +89,17 @@ exports.ChainInfoSchema = joi_1.default.object({
100
89
  return value;
101
90
  })
102
91
  .required(),
103
- // TODO: Handle rest config.
92
+ nodeProvider: joi_1.default.object({
93
+ name: joi_1.default.string().min(1).max(30).required(),
94
+ email: joi_1.default.string()
95
+ .email({
96
+ tlds: {
97
+ allow: false,
98
+ },
99
+ })
100
+ .required(),
101
+ website: joi_1.default.string().uri(),
102
+ }),
104
103
  chainId: joi_1.default.string().required().min(1).max(30),
105
104
  chainName: joi_1.default.string().required().min(1).max(30),
106
105
  stakeCurrency: exports.CurrencySchema.required(),
@@ -148,10 +147,9 @@ exports.ChainInfoSchema = joi_1.default.object({
148
147
  return values;
149
148
  })
150
149
  .required(),
151
- coinType: joi_1.default.number().integer(),
152
150
  beta: joi_1.default.boolean(),
153
151
  features: joi_1.default.array()
154
- .items(joi_1.default.string().valid(...exports.SupportedChainFeatures))
152
+ .items(joi_1.default.string().valid(...feature_1.SupportedChainFeatures))
155
153
  .unique()
156
154
  .custom((value) => {
157
155
  if (value.indexOf("cosmwasm") >= 0 && value.indexOf("secretwasm") >= 0) {
@@ -159,6 +157,7 @@ exports.ChainInfoSchema = joi_1.default.object({
159
157
  }
160
158
  return value;
161
159
  }),
160
+ chainSymbolImageUrl: joi_1.default.string().uri(),
162
161
  }).custom((value) => {
163
162
  var _a;
164
163
  if ((_a = value.alternativeBIP44s) === null || _a === void 0 ? void 0 : _a.find((bip44) => bip44.coinType === value.bip44.coinType)) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":";;;;;;AAYA,8CAAwC;AAE3B,QAAA,sBAAsB,GAAG;IACpC,UAAU;IACV,UAAU;IACV,aAAa;IACb,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,QAAQ;IACR,iBAAiB;IACjB,cAAc;IACd,+CAA+C;IAC/C,mBAAmB;IACnB,gBAAgB;CACjB,CAAC;AAEW,QAAA,cAAc,GAAG,aAAG,CAAC,MAAM,CAAW;IACjD,SAAS,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,gBAAgB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9D,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE;IACzB,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CACjC,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAI,sBAA6C;KAC7E,IAAI,CAAC;IACJ,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAC3C,eAAe,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,MAAM,CAAC,CAAC,KAAmB,EAAE,EAAE;IAC9B,IACE,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAC/B,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,eAAe,GAAG,CAC1C,EACD;QACA,OAAO,KAAK,CAAC;KACd;SAAM;QACL,uCACK,KAAK,KACR,gBAAgB,EACd,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,eAAe,GAAG,GAAG,KAAK,CAAC,gBAAgB,IACpE;KACH;AACH,CAAC,CAAC,CAAC;AAEQ,QAAA,sBAAsB,GAAI,sBAAiD;KACrF,IAAI,CAAC;IACJ,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IAC/C,eAAe,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC;KACD,MAAM,CAAC,CAAC,KAAuB,EAAE,EAAE;IAClC,IACE,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAC/B,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,eAAe,GAAG,CAC1C,EACD;QACA,OAAO,KAAK,CAAC;KACd;SAAM;QACL,uCACK,KAAK,KACR,gBAAgB,EACd,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,eAAe,GAAG,GAAG,KAAK,CAAC,gBAAgB,IACpE;KACH;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,kBAAkB,GAAG,aAAG,CAAC,MAAM,CAIlC;IACD,GAAG,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;IAClB,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IACD,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;KACxE;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC;AAEU,QAAA,iBAAiB,GAAI,sBAEhC,CAAC,IAAI,CAAC;IACN,YAAY,EAAE,kBAAkB;CACjC,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,aAAG,CAAC,MAAM,CAAe;IACzD,mBAAmB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,kBAAkB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,mBAAmB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,kBAAkB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,oBAAoB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,mBAAmB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,aAAG,CAAC,MAAM,CAAuB;IACpE,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAEnD,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEJ,QAAA,eAAe,GAAG,aAAG,CAAC,MAAM,CAAY;IACnD,GAAG,EAAE,aAAG,CAAC,MAAM,EAAE;SACd,GAAG,EAAE;SACL,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;SACD,QAAQ,EAAE;IACb,2BAA2B;IAC3B,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;SACf,GAAG,EAAE;SACL,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;QACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACtD;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;SACD,QAAQ,EAAE;IACb,4BAA4B;IAC5B,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/C,SAAS,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACjD,aAAa,EAAE,sBAAc,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC7B,mBAAmB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACvC,KAAK,EAAE,6BAAqB,CAAC,QAAQ,EAAE;IACvC,iBAAiB,EAAE,aAAG,CAAC,KAAK,EAAE;SAC3B,KAAK,CAAC,6BAAqB,CAAC;SAC5B,MAAM,CAAC,CAAC,MAAe,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAgD,EAAE,CAAC;QAE7D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,QAAQ,gBAAgB,CAAC,CAAC;aAC5D;YACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SAC3B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACJ,YAAY,EAAE,0BAAkB,CAAC,QAAQ,EAAE;IAC3C,UAAU,EAAE,aAAG,CAAC,KAAK,EAAE;SACpB,GAAG,CAAC,CAAC,CAAC;SACN,KAAK,CAAC,sBAAc,EAAE,0BAAkB,EAAE,8BAAsB,CAAC;SACjE,MAAM,CAAC,CAAC,MAAqB,EAAE,EAAE;QAChC,MAAM,IAAI,GAA6C,EAAE,CAAC;QAE1D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;gBAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,gBAAgB,gBAAgB,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;SACnC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;SACD,QAAQ,EAAE;IACb,aAAa,EAAE,aAAG,CAAC,KAAK,EAAE;SACvB,GAAG,CAAC,CAAC,CAAC;SACN,KAAK,CAAC,yBAAiB,CAAC;SACxB,MAAM,CAAC,CAAC,MAAqB,EAAE,EAAE;QAChC,MAAM,IAAI,GAA6C,EAAE,CAAC;QAE1D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;gBAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,gBAAgB,gBAAgB,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;SACnC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;SACD,QAAQ,EAAE;IACb,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAChC,IAAI,EAAE,aAAG,CAAC,OAAO,EAAE;IACnB,QAAQ,EAAE,aAAG,CAAC,KAAK,EAAE;SAClB,KAAK,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,8BAAsB,CAAC,CAAC;SACpD,MAAM,EAAE;SACR,MAAM,CAAC,CAAC,KAAe,EAAE,EAAE;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YACtE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;CACL,CAAC,CAAC,MAAM,CAAC,CAAC,KAAgB,EAAE,EAAE;;IAC7B,UACE,KAAK,CAAC,iBAAiB,0CAAE,IAAI,CAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,CAAC,QAAQ,GAEpD;QACA,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,KAAK,CAAC,QAAQ,gBAAgB,CAAC,CAAC;KACpE;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}