@algorandfoundation/algokit-client-generator 3.0.6 → 4.0.0-beta.1
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 +4 -2
- package/cli.js +1 -1
- package/cli.js.map +1 -1
- package/cli.mjs +1 -1
- package/cli.mjs.map +1 -1
- package/client/{call-factory.d.ts → app-client.d.ts} +1 -1
- package/client/app-client.js +288 -0
- package/client/app-client.js.map +1 -0
- package/client/app-client.mjs +286 -0
- package/client/app-client.mjs.map +1 -0
- package/client/{call-client.d.ts → app-factory.d.ts} +1 -1
- package/client/app-factory.js +238 -0
- package/client/app-factory.js.map +1 -0
- package/client/app-factory.mjs +236 -0
- package/client/app-factory.mjs.map +1 -0
- package/client/app-types.js +196 -98
- package/client/app-types.js.map +1 -1
- package/client/app-types.mjs +196 -79
- package/client/app-types.mjs.map +1 -1
- package/client/call-composer-types.js +23 -53
- package/client/call-composer-types.js.map +1 -1
- package/client/call-composer-types.mjs +23 -34
- package/client/call-composer-types.mjs.map +1 -1
- package/client/call-composer.js +43 -57
- package/client/call-composer.js.map +1 -1
- package/client/call-composer.mjs +45 -40
- package/client/call-composer.mjs.map +1 -1
- package/client/deploy-types.d.ts +8 -4
- package/client/deploy-types.js +52 -34
- package/client/deploy-types.js.map +1 -1
- package/client/deploy-types.mjs +53 -36
- package/client/deploy-types.mjs.map +1 -1
- package/client/generate.d.ts +2 -2
- package/client/generate.js +18 -6
- package/client/generate.js.map +1 -1
- package/client/generate.mjs +18 -6
- package/client/generate.mjs.map +1 -1
- package/client/generator-context.d.ts +4 -4
- package/client/generator-context.js +5 -24
- package/client/generator-context.js.map +1 -1
- package/client/generator-context.mjs +5 -5
- package/client/generator-context.mjs.map +1 -1
- package/client/helpers/get-call-config-summary.d.ts +8 -3
- package/client/helpers/get-call-config-summary.js +22 -20
- package/client/helpers/get-call-config-summary.js.map +1 -1
- package/client/helpers/get-call-config-summary.mjs +22 -20
- package/client/helpers/get-call-config-summary.mjs.map +1 -1
- package/client/helpers/get-equivalent-type.d.ts +6 -1
- package/client/helpers/get-equivalent-type.js +10 -6
- package/client/helpers/get-equivalent-type.js.map +1 -1
- package/client/helpers/get-equivalent-type.mjs +10 -6
- package/client/helpers/get-equivalent-type.mjs.map +1 -1
- package/client/imports.js +18 -24
- package/client/imports.js.map +1 -1
- package/client/imports.mjs +18 -24
- package/client/imports.mjs.map +1 -1
- package/client/params-factory.d.ts +3 -0
- package/client/params-factory.js +126 -0
- package/client/params-factory.js.map +1 -0
- package/client/params-factory.mjs +124 -0
- package/client/params-factory.mjs.map +1 -0
- package/client/utility-types.d.ts +0 -7
- package/client/utility-types.js +37 -50
- package/client/utility-types.js.map +1 -1
- package/client/utility-types.mjs +38 -50
- package/client/utility-types.mjs.map +1 -1
- package/output/writer.js +17 -3
- package/output/writer.js.map +1 -1
- package/output/writer.mjs +17 -3
- package/output/writer.mjs.map +1 -1
- package/package.json +4 -3
- package/schema/application.schema.json.js +2 -2
- package/schema/application.schema.json.mjs +2 -2
- package/schema/arc56.schema.json.js +787 -0
- package/schema/arc56.schema.json.js.map +1 -0
- package/schema/arc56.schema.json.mjs +780 -0
- package/schema/arc56.schema.json.mjs.map +1 -0
- package/schema/load.d.ts +3 -3
- package/schema/load.js +21 -7
- package/schema/load.js.map +1 -1
- package/schema/load.mjs +22 -8
- package/schema/load.mjs.map +1 -1
- package/client/call-client.js +0 -341
- package/client/call-client.js.map +0 -1
- package/client/call-client.mjs +0 -320
- package/client/call-client.mjs.map +0 -1
- package/client/call-factory.js +0 -142
- package/client/call-factory.js.map +0 -1
- package/client/call-factory.mjs +0 -121
- package/client/call-factory.mjs.map +0 -1
package/client/call-factory.mjs
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { jsDoc, IncIndent, DecIndent, DecIndentAndCloseBlock, NewLine } from '../output/writer.mjs';
|
|
2
|
-
import * as algokit from '@algorandfoundation/algokit-utils';
|
|
3
|
-
import { BARE_CALL } from './helpers/get-call-config-summary.mjs';
|
|
4
|
-
import { getCreateOnCompleteOptions } from './deploy-types.mjs';
|
|
5
|
-
|
|
6
|
-
function* callFactory(ctx) {
|
|
7
|
-
yield* jsDoc('Exposes methods for constructing all available smart contract calls');
|
|
8
|
-
yield `export abstract class ${ctx.name}CallFactory {`;
|
|
9
|
-
yield IncIndent;
|
|
10
|
-
yield* opMethods(ctx);
|
|
11
|
-
for (const method of ctx.app.contract.methods) {
|
|
12
|
-
yield* callFactoryMethod(ctx, method);
|
|
13
|
-
}
|
|
14
|
-
yield DecIndent;
|
|
15
|
-
yield '}';
|
|
16
|
-
}
|
|
17
|
-
function* opMethods(ctx) {
|
|
18
|
-
const { app, callConfig } = ctx;
|
|
19
|
-
yield* operationMethod(ctx, `Constructs a create call for the ${app.contract.name} smart contract`, callConfig.createMethods, 'create', true);
|
|
20
|
-
yield* operationMethod(ctx, `Constructs an update call for the ${app.contract.name} smart contract`, callConfig.updateMethods, 'update', true);
|
|
21
|
-
yield* operationMethod(ctx, `Constructs a delete call for the ${app.contract.name} smart contract`, callConfig.deleteMethods, 'delete');
|
|
22
|
-
yield* operationMethod(ctx, `Constructs an opt in call for the ${app.contract.name} smart contract`, callConfig.optInMethods, 'optIn');
|
|
23
|
-
yield* operationMethod(ctx, `Constructs a close out call for the ${app.contract.name} smart contract`, callConfig.closeOutMethods, 'closeOut');
|
|
24
|
-
}
|
|
25
|
-
function* operationMethod({ app, methodSignatureToUniqueName, sanitizer }, description, methods, verb, includeCompilation) {
|
|
26
|
-
if (methods.length) {
|
|
27
|
-
yield* jsDoc(`Gets available ${verb} call factories`);
|
|
28
|
-
yield `static get ${verb}() {`;
|
|
29
|
-
yield IncIndent;
|
|
30
|
-
yield `return {`;
|
|
31
|
-
yield IncIndent;
|
|
32
|
-
for (const methodSig of methods) {
|
|
33
|
-
const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined;
|
|
34
|
-
if (methodSig === BARE_CALL) {
|
|
35
|
-
yield* jsDoc({
|
|
36
|
-
description: `${description} using a bare call`,
|
|
37
|
-
params: {
|
|
38
|
-
params: `Any parameters for the call`,
|
|
39
|
-
},
|
|
40
|
-
returns: `A TypedCallParams object for the call`,
|
|
41
|
-
});
|
|
42
|
-
yield* factoryMethod({
|
|
43
|
-
isNested: true,
|
|
44
|
-
name: 'bare',
|
|
45
|
-
sanitizer,
|
|
46
|
-
paramTypes: `BareCallArgs & AppClientCallCoreParams & CoreAppCallArgs${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}`,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
const method = app.contract.methods.find((m) => algokit.getABIMethodSignature(m) === methodSig);
|
|
51
|
-
const uniqueName = methodSignatureToUniqueName[methodSig];
|
|
52
|
-
yield* jsDoc({
|
|
53
|
-
description: `${description} using the ${methodSig} ABI method`,
|
|
54
|
-
params: {
|
|
55
|
-
args: `Any args for the contract call`,
|
|
56
|
-
params: `Any additional parameters for the call`,
|
|
57
|
-
},
|
|
58
|
-
returns: `A TypedCallParams object for the call`,
|
|
59
|
-
});
|
|
60
|
-
yield* factoryMethod({
|
|
61
|
-
isNested: true,
|
|
62
|
-
sanitizer,
|
|
63
|
-
name: sanitizer.makeSafeMethodIdentifier(uniqueName),
|
|
64
|
-
signature: methodSig,
|
|
65
|
-
args: method.args,
|
|
66
|
-
paramTypes: `AppClientCallCoreParams & CoreAppCallArgs${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}`,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
yield DecIndentAndCloseBlock;
|
|
71
|
-
yield DecIndentAndCloseBlock;
|
|
72
|
-
yield NewLine;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
function* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer }, method) {
|
|
76
|
-
const methodSignature = algokit.getABIMethodSignature(method);
|
|
77
|
-
if (!callConfig.callMethods.includes(methodSignature))
|
|
78
|
-
return;
|
|
79
|
-
yield* jsDoc({
|
|
80
|
-
description: `Constructs a no op call for the ${methodSignature} ABI method`,
|
|
81
|
-
abiDescription: method.desc,
|
|
82
|
-
params: {
|
|
83
|
-
args: `Any args for the contract call`,
|
|
84
|
-
params: `Any additional parameters for the call`,
|
|
85
|
-
},
|
|
86
|
-
returns: `A TypedCallParams object for the call`,
|
|
87
|
-
});
|
|
88
|
-
yield* factoryMethod({
|
|
89
|
-
isNested: false,
|
|
90
|
-
sanitizer,
|
|
91
|
-
name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),
|
|
92
|
-
signature: methodSignature,
|
|
93
|
-
args: method.args,
|
|
94
|
-
paramTypes: 'AppClientCallCoreParams & CoreAppCallArgs',
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
function* factoryMethod({ isNested, name, signature, args, paramTypes, sanitizer, }) {
|
|
98
|
-
const signatureSafe = signature && sanitizer.makeSafeStringTypeLiteral(signature);
|
|
99
|
-
yield `${isNested ? '' : 'static '}${name}(${signature === undefined ? '' : `args: MethodArgs<'${signatureSafe}'>, `}params: ${paramTypes}) {`;
|
|
100
|
-
yield IncIndent;
|
|
101
|
-
yield `return {`;
|
|
102
|
-
yield IncIndent;
|
|
103
|
-
if (signature) {
|
|
104
|
-
yield `method: '${signatureSafe}' as const,`;
|
|
105
|
-
yield `methodArgs: Array.isArray(args) ? args : [${args
|
|
106
|
-
.map((a) => `args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name))}`)
|
|
107
|
-
.join(', ')}],`;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
yield `method: undefined,`;
|
|
111
|
-
yield `methodArgs: undefined,`;
|
|
112
|
-
}
|
|
113
|
-
yield '...params,';
|
|
114
|
-
yield DecIndent;
|
|
115
|
-
yield '}';
|
|
116
|
-
yield DecIndent;
|
|
117
|
-
yield `}${isNested ? ',' : ''}`;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
export { callFactory };
|
|
121
|
-
//# sourceMappingURL=call-factory.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"call-factory.mjs","sources":["../../src/client/call-factory.ts"],"sourcesContent":["import { ContractMethod } from '../schema/application'\nimport { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\nimport * as algokit from '@algorandfoundation/algokit-utils'\nimport { GeneratorContext } from './generator-context'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\nimport { Sanitizer } from '../util/sanitization'\n\nexport function* callFactory(ctx: GeneratorContext): DocumentParts {\n yield* jsDoc('Exposes methods for constructing all available smart contract calls')\n yield `export abstract class ${ctx.name}CallFactory {`\n yield IncIndent\n\n yield* opMethods(ctx)\n\n for (const method of ctx.app.contract.methods) {\n yield* callFactoryMethod(ctx, method)\n }\n\n yield DecIndent\n\n yield '}'\n}\n\nfunction* opMethods(ctx: GeneratorContext): DocumentParts {\n const { app, callConfig } = ctx\n\n yield* operationMethod(\n ctx,\n `Constructs a create call for the ${app.contract.name} smart contract`,\n callConfig.createMethods,\n 'create',\n true,\n )\n yield* operationMethod(\n ctx,\n `Constructs an update call for the ${app.contract.name} smart contract`,\n callConfig.updateMethods,\n 'update',\n true,\n )\n yield* operationMethod(ctx, `Constructs a delete call for the ${app.contract.name} smart contract`, callConfig.deleteMethods, 'delete')\n yield* operationMethod(ctx, `Constructs an opt in call for the ${app.contract.name} smart contract`, callConfig.optInMethods, 'optIn')\n yield* operationMethod(\n ctx,\n `Constructs a close out call for the ${app.contract.name} smart contract`,\n callConfig.closeOutMethods,\n 'closeOut',\n )\n}\n\nfunction* operationMethod(\n { app, methodSignatureToUniqueName, sanitizer }: GeneratorContext,\n description: string,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n if (methods.length) {\n yield* jsDoc(`Gets available ${verb} call factories`)\n yield `static get ${verb}() {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n for (const methodSig of methods) {\n const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined\n if (methodSig === BARE_CALL) {\n yield* jsDoc({\n description: `${description} using a bare call`,\n params: {\n params: `Any parameters for the call`,\n },\n returns: `A TypedCallParams object for the call`,\n })\n yield* factoryMethod({\n isNested: true,\n name: 'bare',\n sanitizer,\n paramTypes: `BareCallArgs & AppClientCallCoreParams & CoreAppCallArgs${\n includeCompilation ? ' & AppClientCompilationParams' : ''\n }${onComplete?.type ? ` & ${onComplete.type}` : ''}${onComplete?.isOptional !== false ? ' = {}' : ''}`,\n })\n } else {\n const method = app.contract.methods.find((m) => algokit.getABIMethodSignature(m) === methodSig)!\n const uniqueName = methodSignatureToUniqueName[methodSig]\n yield* jsDoc({\n description: `${description} using the ${methodSig} ABI method`,\n params: {\n args: `Any args for the contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `A TypedCallParams object for the call`,\n })\n yield* factoryMethod({\n isNested: true,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(uniqueName),\n signature: methodSig,\n args: method.args,\n paramTypes: `AppClientCallCoreParams & CoreAppCallArgs${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }${onComplete?.isOptional !== false ? ' = {}' : ''}`,\n })\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n\nfunction* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer }: GeneratorContext, method: ContractMethod) {\n const methodSignature = algokit.getABIMethodSignature(method)\n if (!callConfig.callMethods.includes(methodSignature)) return\n\n yield* jsDoc({\n description: `Constructs a no op call for the ${methodSignature} ABI method`,\n abiDescription: method.desc,\n params: {\n args: `Any args for the contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `A TypedCallParams object for the call`,\n })\n yield* factoryMethod({\n isNested: false,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),\n signature: methodSignature,\n args: method.args,\n paramTypes: 'AppClientCallCoreParams & CoreAppCallArgs',\n })\n}\n\nfunction* factoryMethod({\n isNested,\n name,\n signature,\n args,\n paramTypes,\n sanitizer,\n}:\n | {\n isNested: boolean\n name?: string\n signature?: undefined\n args?: undefined\n paramTypes: string\n sanitizer: Sanitizer\n }\n | {\n isNested: boolean\n name?: string\n signature: string\n args: Array<{ name: string }>\n paramTypes: string\n sanitizer: Sanitizer\n }) {\n const signatureSafe = signature && sanitizer.makeSafeStringTypeLiteral(signature)\n yield `${isNested ? '' : 'static '}${name}(${signature === undefined ? '' : `args: MethodArgs<'${signatureSafe}'>, `}params: ${paramTypes}) {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n if (signature) {\n yield `method: '${signatureSafe}' as const,`\n yield `methodArgs: Array.isArray(args) ? args : [${args\n .map((a) => `args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name))}`)\n .join(', ')}],`\n } else {\n yield `method: undefined,`\n yield `methodArgs: undefined,`\n }\n\n yield '...params,'\n yield DecIndent\n yield '}'\n yield DecIndent\n yield `}${isNested ? ',' : ''}`\n}\n"],"names":[],"mappings":"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"}
|