@algorandfoundation/algokit-client-generator 2.0.0-beta.3 → 2.0.0-beta.4
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-types.d.ts","sourceRoot":"","sources":["../../src/client/app-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAqC,aAAa,EAAqC,MAAM,kBAAkB,CAAA;AAKtH,wBAAiB,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"app-types.d.ts","sourceRoot":"","sources":["../../src/client/app-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAqC,aAAa,EAAqC,MAAM,kBAAkB,CAAA;AAKtH,wBAAiB,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,CAuE9D"}
|
package/client/app-types.js
CHANGED
|
@@ -44,13 +44,23 @@ function* appTypes(ctx) {
|
|
|
44
44
|
yield writer_1.IncIndent;
|
|
45
45
|
yield `argsObj: {`;
|
|
46
46
|
yield writer_1.IncIndent;
|
|
47
|
-
|
|
47
|
+
const argsMeta = method.args.map((arg) => {
|
|
48
|
+
var _a, _b, _c;
|
|
49
|
+
return ({
|
|
50
|
+
...arg,
|
|
51
|
+
hasDefault: (_c = (_b = (_a = app.hints) === null || _a === void 0 ? void 0 : _a[methodSig]) === null || _b === void 0 ? void 0 : _b.default_arguments) === null || _c === void 0 ? void 0 : _c[arg.name],
|
|
52
|
+
tsType: (0, get_equivalent_type_1.getEquivalentType)(arg.type, 'input'),
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
for (const arg of argsMeta) {
|
|
48
56
|
if (arg.desc)
|
|
49
57
|
yield* (0, writer_1.jsDoc)(arg.desc);
|
|
50
|
-
yield `${(0, sanitization_1.makeSafePropertyIdentifier)(arg.name)}
|
|
58
|
+
yield `${(0, sanitization_1.makeSafePropertyIdentifier)(arg.name)}${arg.hasDefault ? '?' : ''}: ${arg.tsType}`;
|
|
51
59
|
}
|
|
52
60
|
yield writer_1.DecIndentAndCloseBlock;
|
|
53
|
-
yield* (0, writer_1.inline)(`argsTuple: [`,
|
|
61
|
+
yield* (0, writer_1.inline)(`argsTuple: [`, argsMeta
|
|
62
|
+
.map((arg) => `${(0, sanitization_1.makeSafeVariableIdentifier)(arg.name)}: ${(0, get_equivalent_type_1.getEquivalentType)(arg.type, 'input')}${arg.hasDefault ? ' | undefined' : ''}`)
|
|
63
|
+
.join(', '), ']');
|
|
54
64
|
const outputStruct = (_c = (_b = (_a = ctx.app.hints) === null || _a === void 0 ? void 0 : _a[methodSig]) === null || _b === void 0 ? void 0 : _b.structs) === null || _c === void 0 ? void 0 : _c.output;
|
|
55
65
|
if (method.returns.desc)
|
|
56
66
|
yield* (0, writer_1.jsDoc)(method.returns.desc);
|
|
@@ -71,7 +81,7 @@ function* appTypes(ctx) {
|
|
|
71
81
|
yield `export type TypedCallParams<TSignature extends keyof ${name}['methods'] | undefined> = {`;
|
|
72
82
|
yield writer_1.IncIndent;
|
|
73
83
|
yield 'method: TSignature';
|
|
74
|
-
yield 'methodArgs: TSignature extends undefined ? undefined : ABIAppCallArg
|
|
84
|
+
yield 'methodArgs: TSignature extends undefined ? undefined : Array<ABIAppCallArg | undefined>';
|
|
75
85
|
yield writer_1.DecIndent;
|
|
76
86
|
yield '} & AppClientCallCoreParams & CoreAppCallArgs';
|
|
77
87
|
yield* (0, writer_1.jsDoc)('Defines the arguments required for a bare call');
|
package/client/app-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-types.js","sourceRoot":"","sources":["../../src/client/app-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAsH;AACtH,2EAA4D;AAC5D,uEAAiE;AACjE,uDAAqH;AAErH,QAAe,CAAC,CAAC,QAAQ,CAAC,GAAqB;;IAC7C,MAAM,EAAE,GAAG,EAAE,2BAA2B,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;IACtD,KAAK,CAAC,CAAC,IAAA,cAAK,EAAC,yDAAyD,IAAI,kBAAkB,CAAC,CAAA;IAC7F,MAAM,eAAe,IAAI,MAAM,CAAA;IAC/B,MAAM,kBAAS,CAAA;IACf,KAAK,CAAC,CAAC,IAAA,cAAK,EAAC,oEAAoE,CAAC,CAAA;IAClF,MAAM,UAAU,CAAA;IAChB,MAAM,kBAAS,CAAA;IACf,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QACvD,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAA;QACzD,MAAM,aAAa,SAAS,IAAI,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAA;QACzF,MAAM,kBAAS,CAAA;QACf,MAAM,YAAY,CAAA;QAClB,MAAM,kBAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"app-types.js","sourceRoot":"","sources":["../../src/client/app-types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"main": "index.js",
|
|
3
3
|
"types": "index.d.ts",
|
|
4
4
|
"name": "@algorandfoundation/algokit-client-generator",
|
|
5
|
-
"version": "2.0.0-beta.
|
|
5
|
+
"version": "2.0.0-beta.4",
|
|
6
6
|
"description": "Generates a TypeScript client for interacting with, and deploying ARC-0032 smart contracts on the Algorand Blockchain.",
|
|
7
7
|
"private": false,
|
|
8
8
|
"bin": {
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"definitions": {
|
|
31
31
|
"AVMType": {
|
|
32
|
+
"description": "AVM data type",
|
|
32
33
|
"enum": ["uint64", "bytes"]
|
|
33
34
|
},
|
|
34
35
|
"DeclaredSchemaValueSpec": {
|
|
@@ -229,27 +230,84 @@
|
|
|
229
230
|
]
|
|
230
231
|
},
|
|
231
232
|
"DefaultArgument": {
|
|
232
|
-
"
|
|
233
|
-
|
|
234
|
-
|
|
233
|
+
"description": "Defines a strategy for obtaining a default value for a given ABI arg.",
|
|
234
|
+
"oneOf": [
|
|
235
|
+
{
|
|
236
|
+
"type": "object",
|
|
237
|
+
"required": ["source", "data"],
|
|
238
|
+
"additionalProperties": false,
|
|
239
|
+
"properties": {
|
|
240
|
+
"source": {
|
|
241
|
+
"description": "The default value should be fetched by invoking an ABI method",
|
|
242
|
+
"enum": ["abi-method"]
|
|
243
|
+
},
|
|
244
|
+
"data": {
|
|
245
|
+
"description": "The contract of the ABI method to invoke.",
|
|
246
|
+
"$ref": "contract.schema.json#/definitions/ContractMethod"
|
|
247
|
+
}
|
|
248
|
+
}
|
|
235
249
|
},
|
|
236
|
-
|
|
237
|
-
"
|
|
238
|
-
|
|
250
|
+
{
|
|
251
|
+
"type": "object",
|
|
252
|
+
"required": ["source", "data"],
|
|
253
|
+
"additionalProperties": false,
|
|
254
|
+
"properties": {
|
|
255
|
+
"source": {
|
|
256
|
+
"description": "The default value should be fetched from global state",
|
|
257
|
+
"enum": ["global-state"]
|
|
258
|
+
},
|
|
259
|
+
"data": {
|
|
260
|
+
"description": "The key of the state variable",
|
|
239
261
|
"type": "string"
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"type": "object",
|
|
267
|
+
"required": ["source", "data"],
|
|
268
|
+
"additionalProperties": false,
|
|
269
|
+
"properties": {
|
|
270
|
+
"source": {
|
|
271
|
+
"description": "The default value should be fetched from the local state of the sender user",
|
|
272
|
+
"enum": ["local-state"]
|
|
240
273
|
},
|
|
241
|
-
{
|
|
242
|
-
"
|
|
274
|
+
"data": {
|
|
275
|
+
"description": "The key of the state variable",
|
|
276
|
+
"type": "string"
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"type": "object",
|
|
282
|
+
"required": [
|
|
283
|
+
"source",
|
|
284
|
+
"data"
|
|
285
|
+
],
|
|
286
|
+
"additionalProperties": false,
|
|
287
|
+
"properties": {
|
|
288
|
+
"source": {
|
|
289
|
+
"description": "The default value is a constant.",
|
|
290
|
+
"enum": [
|
|
291
|
+
"constant"
|
|
292
|
+
]
|
|
243
293
|
},
|
|
244
|
-
{
|
|
245
|
-
"
|
|
294
|
+
"data": {
|
|
295
|
+
"description": "The static default value to use.",
|
|
296
|
+
"oneOf": [
|
|
297
|
+
{
|
|
298
|
+
"type": "string"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"type": "number"
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"type": "integer"
|
|
305
|
+
}
|
|
306
|
+
]
|
|
246
307
|
}
|
|
247
|
-
|
|
308
|
+
}
|
|
248
309
|
}
|
|
249
|
-
|
|
250
|
-
},
|
|
251
|
-
"ArgumentSource": {
|
|
252
|
-
"enum": ["global-state", "local-state", "abi-method", "constant"]
|
|
310
|
+
]
|
|
253
311
|
}
|
|
254
312
|
}
|
|
255
313
|
}
|