@algorandfoundation/algokit-client-generator 2.6.0 → 3.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/bin/cli.mjs +4 -0
- package/cli.d.ts +0 -1
- package/cli.js +47 -49
- package/cli.js.map +1 -1
- package/cli.mjs +56 -0
- package/cli.mjs.map +1 -0
- package/client/app-types.d.ts +0 -1
- package/client/app-types.js +92 -97
- package/client/app-types.js.map +1 -1
- package/client/app-types.mjs +135 -0
- package/client/app-types.mjs.map +1 -0
- package/client/call-client.d.ts +0 -1
- package/client/call-client.js +145 -143
- package/client/call-client.js.map +1 -1
- package/client/call-client.mjs +320 -0
- package/client/call-client.mjs.map +1 -0
- package/client/call-composer-types.d.ts +0 -1
- package/client/call-composer-types.js +60 -62
- package/client/call-composer-types.js.map +1 -1
- package/client/call-composer-types.mjs +122 -0
- package/client/call-composer-types.mjs.map +1 -0
- package/client/call-composer.d.ts +0 -1
- package/client/call-composer.js +76 -78
- package/client/call-composer.js.map +1 -1
- package/client/call-composer.mjs +128 -0
- package/client/call-composer.mjs.map +1 -0
- package/client/call-factory.d.ts +0 -1
- package/client/call-factory.js +62 -62
- package/client/call-factory.js.map +1 -1
- package/client/call-factory.mjs +121 -0
- package/client/call-factory.mjs.map +1 -0
- package/client/deploy-types.d.ts +1 -2
- package/client/deploy-types.js +42 -40
- package/client/deploy-types.js.map +1 -1
- package/client/deploy-types.mjs +94 -0
- package/client/deploy-types.mjs.map +1 -0
- package/client/generate.d.ts +2 -2
- package/client/generate.js +28 -27
- package/client/generate.js.map +1 -1
- package/client/generate.mjs +36 -0
- package/client/generate.mjs.map +1 -0
- package/client/generator-context.d.ts +7 -2
- package/client/generator-context.js +39 -38
- package/client/generator-context.js.map +1 -1
- package/client/generator-context.mjs +21 -0
- package/client/generator-context.mjs.map +1 -0
- package/client/helpers/get-call-config-summary.d.ts +1 -2
- package/client/helpers/get-call-config-summary.js +8 -25
- package/client/helpers/get-call-config-summary.js.map +1 -1
- package/client/helpers/get-call-config-summary.mjs +55 -0
- package/client/helpers/get-call-config-summary.mjs.map +1 -0
- package/client/helpers/get-equivalent-type.d.ts +0 -1
- package/client/helpers/get-equivalent-type.js +21 -20
- package/client/helpers/get-equivalent-type.js.map +1 -1
- package/client/helpers/get-equivalent-type.mjs +57 -0
- package/client/helpers/get-equivalent-type.mjs.map +1 -0
- package/client/imports.d.ts +0 -1
- package/client/imports.js +4 -4
- package/client/imports.js.map +1 -1
- package/client/imports.mjs +28 -0
- package/client/imports.mjs.map +1 -0
- package/client/utility-types.d.ts +0 -1
- package/client/utility-types.js +27 -25
- package/client/utility-types.js.map +1 -1
- package/client/utility-types.mjs +48 -0
- package/client/utility-types.mjs.map +1 -0
- package/dev.d.ts +0 -1
- package/index.d.ts +0 -1
- package/index.js +14 -12
- package/index.js.map +1 -1
- package/index.mjs +4 -0
- package/index.mjs.map +1 -0
- package/output/writer.d.ts +0 -1
- package/output/writer.js +45 -38
- package/output/writer.js.map +1 -1
- package/output/writer.mjs +140 -0
- package/output/writer.mjs.map +1 -0
- package/package.json +9 -4
- package/schema/application.schema.json.js +375 -0
- package/schema/application.schema.json.js.map +1 -0
- package/schema/application.schema.json.mjs +364 -0
- package/schema/application.schema.json.mjs.map +1 -0
- package/schema/contract.schema.json.js +160 -0
- package/schema/contract.schema.json.js.map +1 -0
- package/schema/contract.schema.json.mjs +149 -0
- package/schema/contract.schema.json.mjs.map +1 -0
- package/schema/load.d.ts +0 -1
- package/schema/load.js +16 -41
- package/schema/load.js.map +1 -1
- package/schema/load.mjs +23 -0
- package/schema/load.mjs.map +1 -0
- package/tests/approval-tests.spec.d.ts +0 -1
- package/tests/util.d.ts +1 -0
- package/util/boom.d.ts +0 -1
- package/util/boom.js +4 -4
- package/util/boom.js.map +1 -1
- package/util/boom.mjs +6 -0
- package/util/boom.mjs.map +1 -0
- package/util/color-console.d.ts +0 -1
- package/util/color-console.js +12 -13
- package/util/color-console.js.map +1 -1
- package/util/color-console.mjs +17 -0
- package/util/color-console.mjs.map +1 -0
- package/util/not-falsy.d.ts +0 -1
- package/util/sanitization.d.ts +12 -6
- package/util/sanitization.js +54 -15
- package/util/sanitization.js.map +1 -1
- package/util/sanitization.mjs +54 -0
- package/util/sanitization.mjs.map +1 -0
- package/bin/cli.js +0 -4
- package/cli.d.ts.map +0 -1
- package/client/app-types.d.ts.map +0 -1
- package/client/call-client.d.ts.map +0 -1
- package/client/call-composer-types.d.ts.map +0 -1
- package/client/call-composer.d.ts.map +0 -1
- package/client/call-factory.d.ts.map +0 -1
- package/client/deploy-types.d.ts.map +0 -1
- package/client/generate.d.ts.map +0 -1
- package/client/generator-context.d.ts.map +0 -1
- package/client/helpers/get-call-config-summary.d.ts.map +0 -1
- package/client/helpers/get-equivalent-type.d.ts.map +0 -1
- package/client/imports.d.ts.map +0 -1
- package/client/utility-types.d.ts.map +0 -1
- package/dev.d.ts.map +0 -1
- package/dev.js +0 -5
- package/dev.js.map +0 -1
- package/index.d.ts.map +0 -1
- package/output/writer.d.ts.map +0 -1
- package/schema/application.schema.json +0 -354
- package/schema/contract.schema.json +0 -139
- package/schema/load.d.ts.map +0 -1
- package/tests/approval-tests.spec.d.ts.map +0 -1
- package/tests/approval-tests.spec.js +0 -24
- package/tests/approval-tests.spec.js.map +0 -1
- package/util/boom.d.ts.map +0 -1
- package/util/color-console.d.ts.map +0 -1
- package/util/not-falsy.d.ts.map +0 -1
- package/util/not-falsy.js +0 -6
- package/util/not-falsy.js.map +0 -1
- package/util/sanitization.d.ts.map +0 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsDoc, IncIndent, DecIndent, DecIndentAndCloseBlock, NewLine } from '../output/writer.mjs';
|
|
2
|
+
import { BARE_CALL } from './helpers/get-call-config-summary.mjs';
|
|
3
|
+
import { OnCompleteCodeMap } from './utility-types.mjs';
|
|
4
|
+
|
|
5
|
+
function getCreateOnCompleteOptions(method, app) {
|
|
6
|
+
const callConfig = method === BARE_CALL ? app.bare_call_config : app.hints?.[method]?.call_config;
|
|
7
|
+
const hasNoOp = callConfig?.no_op === 'ALL' || callConfig?.no_op === 'CREATE';
|
|
8
|
+
const onCompleteType = callConfig
|
|
9
|
+
? `(${Object.entries(callConfig)
|
|
10
|
+
.filter(([_, value]) => value === 'ALL' || value === 'CREATE')
|
|
11
|
+
.map(([oc]) => OnCompleteCodeMap[oc])
|
|
12
|
+
.join(' | ')})`
|
|
13
|
+
: {};
|
|
14
|
+
return {
|
|
15
|
+
type: onCompleteType,
|
|
16
|
+
isOptional: hasNoOp,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function* deployTypes({ app, callConfig, sanitizer }) {
|
|
20
|
+
const name = sanitizer.makeSafeTypeIdentifier(app.contract.name);
|
|
21
|
+
if (callConfig.createMethods.length > 0) {
|
|
22
|
+
yield* jsDoc(`A factory for available 'create' calls`);
|
|
23
|
+
yield `export type ${name}CreateCalls = (typeof ${name}CallFactory)['create']`;
|
|
24
|
+
yield* jsDoc('Defines supported create methods for this smart contract');
|
|
25
|
+
yield `export type ${name}CreateCallParams =`;
|
|
26
|
+
yield IncIndent;
|
|
27
|
+
for (const method of callConfig.createMethods) {
|
|
28
|
+
const onComplete = getCreateOnCompleteOptions(method, app);
|
|
29
|
+
if (method === BARE_CALL) {
|
|
30
|
+
yield `| (TypedCallParams<undefined> & ${onComplete.type})`;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method);
|
|
34
|
+
yield `| (TypedCallParams<'${methodSigSafe}'> & ${onComplete.type})`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
yield DecIndent;
|
|
38
|
+
}
|
|
39
|
+
if (callConfig.updateMethods.length > 0) {
|
|
40
|
+
yield* jsDoc(`A factory for available 'update' calls`);
|
|
41
|
+
yield `export type ${name}UpdateCalls = (typeof ${name}CallFactory)['update']`;
|
|
42
|
+
yield* jsDoc('Defines supported update methods for this smart contract');
|
|
43
|
+
yield `export type ${name}UpdateCallParams =`;
|
|
44
|
+
yield IncIndent;
|
|
45
|
+
for (const method of callConfig.updateMethods) {
|
|
46
|
+
if (method === BARE_CALL) {
|
|
47
|
+
yield `| TypedCallParams<undefined>`;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method);
|
|
51
|
+
yield `| TypedCallParams<'${methodSigSafe}'>`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
yield DecIndent;
|
|
55
|
+
}
|
|
56
|
+
if (callConfig.deleteMethods.length > 0) {
|
|
57
|
+
yield* jsDoc(`A factory for available 'delete' calls`);
|
|
58
|
+
yield `export type ${name}DeleteCalls = (typeof ${name}CallFactory)['delete']`;
|
|
59
|
+
yield* jsDoc('Defines supported delete methods for this smart contract');
|
|
60
|
+
yield `export type ${name}DeleteCallParams =`;
|
|
61
|
+
yield IncIndent;
|
|
62
|
+
for (const method of callConfig.deleteMethods) {
|
|
63
|
+
if (method === BARE_CALL) {
|
|
64
|
+
yield `| TypedCallParams<undefined>`;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method);
|
|
68
|
+
yield `| TypedCallParams<'${methodSigSafe}'>`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
yield DecIndent;
|
|
72
|
+
}
|
|
73
|
+
yield* jsDoc('Defines arguments required for the deploy method.');
|
|
74
|
+
yield `export type ${name}DeployArgs = {`;
|
|
75
|
+
yield IncIndent;
|
|
76
|
+
yield `deployTimeParams?: TealTemplateParams`;
|
|
77
|
+
if (callConfig.createMethods.length) {
|
|
78
|
+
yield* jsDoc('A delegate which takes a create call factory and returns the create call params for this smart contract');
|
|
79
|
+
yield `createCall?: (callFactory: ${name}CreateCalls) => ${name}CreateCallParams`;
|
|
80
|
+
}
|
|
81
|
+
if (callConfig.updateMethods.length) {
|
|
82
|
+
yield* jsDoc('A delegate which takes a update call factory and returns the update call params for this smart contract');
|
|
83
|
+
yield `updateCall?: (callFactory: ${name}UpdateCalls) => ${name}UpdateCallParams`;
|
|
84
|
+
}
|
|
85
|
+
if (callConfig.deleteMethods.length) {
|
|
86
|
+
yield* jsDoc('A delegate which takes a delete call factory and returns the delete call params for this smart contract');
|
|
87
|
+
yield `deleteCall?: (callFactory: ${name}DeleteCalls) => ${name}DeleteCallParams`;
|
|
88
|
+
}
|
|
89
|
+
yield DecIndentAndCloseBlock;
|
|
90
|
+
yield NewLine;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export { deployTypes, getCreateOnCompleteOptions };
|
|
94
|
+
//# sourceMappingURL=deploy-types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-types.mjs","sources":["../../src/client/deploy-types.ts"],"sourcesContent":["import { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\n\nimport { BARE_CALL, MethodIdentifier } from './helpers/get-call-config-summary'\nimport { GeneratorContext } from './generator-context'\nimport { AlgoAppSpec, CallConfig } from '../schema/application'\nimport { OnCompleteCodeMap } from './utility-types'\n\nexport function getCreateOnCompleteOptions(method: MethodIdentifier, app: AlgoAppSpec) {\n const callConfig = method === BARE_CALL ? app.bare_call_config : app.hints?.[method]?.call_config\n const hasNoOp = callConfig?.no_op === 'ALL' || callConfig?.no_op === 'CREATE'\n const onCompleteType = callConfig\n ? `(${Object.entries(callConfig)\n .filter(([_, value]) => value === 'ALL' || value === 'CREATE')\n .map(([oc]) => OnCompleteCodeMap[oc as keyof CallConfig])\n .join(' | ')})`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function* deployTypes({ app, callConfig, sanitizer }: GeneratorContext): DocumentParts {\n const name = sanitizer.makeSafeTypeIdentifier(app.contract.name)\n\n if (callConfig.createMethods.length > 0) {\n yield* jsDoc(`A factory for available 'create' calls`)\n yield `export type ${name}CreateCalls = (typeof ${name}CallFactory)['create']`\n yield* jsDoc('Defines supported create methods for this smart contract')\n yield `export type ${name}CreateCallParams =`\n yield IncIndent\n for (const method of callConfig.createMethods) {\n const onComplete = getCreateOnCompleteOptions(method, app)\n if (method === BARE_CALL) {\n yield `| (TypedCallParams<undefined> & ${onComplete.type})`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n yield `| (TypedCallParams<'${methodSigSafe}'> & ${onComplete.type})`\n }\n }\n yield DecIndent\n }\n if (callConfig.updateMethods.length > 0) {\n yield* jsDoc(`A factory for available 'update' calls`)\n\n yield `export type ${name}UpdateCalls = (typeof ${name}CallFactory)['update']`\n yield* jsDoc('Defines supported update methods for this smart contract')\n yield `export type ${name}UpdateCallParams =`\n yield IncIndent\n for (const method of callConfig.updateMethods) {\n if (method === BARE_CALL) {\n yield `| TypedCallParams<undefined>`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n\n yield `| TypedCallParams<'${methodSigSafe}'>`\n }\n }\n yield DecIndent\n }\n\n if (callConfig.deleteMethods.length > 0) {\n yield* jsDoc(`A factory for available 'delete' calls`)\n\n yield `export type ${name}DeleteCalls = (typeof ${name}CallFactory)['delete']`\n\n yield* jsDoc('Defines supported delete methods for this smart contract')\n yield `export type ${name}DeleteCallParams =`\n yield IncIndent\n for (const method of callConfig.deleteMethods) {\n if (method === BARE_CALL) {\n yield `| TypedCallParams<undefined>`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n\n yield `| TypedCallParams<'${methodSigSafe}'>`\n }\n }\n yield DecIndent\n }\n\n yield* jsDoc('Defines arguments required for the deploy method.')\n yield `export type ${name}DeployArgs = {`\n yield IncIndent\n yield `deployTimeParams?: TealTemplateParams`\n if (callConfig.createMethods.length) {\n yield* jsDoc('A delegate which takes a create call factory and returns the create call params for this smart contract')\n yield `createCall?: (callFactory: ${name}CreateCalls) => ${name}CreateCallParams`\n }\n if (callConfig.updateMethods.length) {\n yield* jsDoc('A delegate which takes a update call factory and returns the update call params for this smart contract')\n yield `updateCall?: (callFactory: ${name}UpdateCalls) => ${name}UpdateCallParams`\n }\n if (callConfig.deleteMethods.length) {\n yield* jsDoc('A delegate which takes a delete call factory and returns the delete call params for this smart contract')\n yield `deleteCall?: (callFactory: ${name}DeleteCalls) => ${name}DeleteCallParams`\n }\n yield DecIndentAndCloseBlock\n yield NewLine\n}\n"],"names":[],"mappings":";;;;AAOgB,SAAA,0BAA0B,CAAC,MAAwB,EAAE,GAAgB,EAAA;IACnF,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS,GAAG,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,WAAW,CAAA;AACjG,IAAA,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK,KAAK,KAAK,IAAI,UAAU,EAAE,KAAK,KAAK,QAAQ,CAAA;IAC7E,MAAM,cAAc,GAAG,UAAU;AAC/B,UAAE,CAAI,CAAA,EAAA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;AAC3B,aAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC;AAC7D,aAAA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,iBAAiB,CAAC,EAAsB,CAAC,CAAC;aACxD,IAAI,CAAC,KAAK,CAAC,CAAG,CAAA,CAAA;UACjB,EAAE,CAAA;IACN,OAAO;AACL,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,UAAU,EAAE,OAAO;KACpB,CAAA;AACH,CAAC;AAEK,UAAW,WAAW,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAoB,EAAA;AAC3E,IAAA,MAAM,IAAI,GAAG,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEhE,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,QAAA,OAAO,KAAK,CAAC,CAAA,sCAAA,CAAwC,CAAC,CAAA;AACtD,QAAA,MAAM,CAAe,YAAA,EAAA,IAAI,CAAyB,sBAAA,EAAA,IAAI,wBAAwB,CAAA;AAC9E,QAAA,OAAO,KAAK,CAAC,0DAA0D,CAAC,CAAA;QACxE,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,kBAAA,CAAoB,CAAA;AAC7C,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE;YAC7C,MAAM,UAAU,GAAG,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAC1D,YAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,gBAAA,MAAM,CAAmC,gCAAA,EAAA,UAAU,CAAC,IAAI,GAAG,CAAA;aAC5D;iBAAM;gBACL,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAA;AACjE,gBAAA,MAAM,uBAAuB,aAAa,CAAA,KAAA,EAAQ,UAAU,CAAC,IAAI,GAAG,CAAA;aACrE;SACF;AACD,QAAA,MAAM,SAAS,CAAA;KAChB;IACD,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,QAAA,OAAO,KAAK,CAAC,CAAA,sCAAA,CAAwC,CAAC,CAAA;AAEtD,QAAA,MAAM,CAAe,YAAA,EAAA,IAAI,CAAyB,sBAAA,EAAA,IAAI,wBAAwB,CAAA;AAC9E,QAAA,OAAO,KAAK,CAAC,0DAA0D,CAAC,CAAA;QACxE,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,kBAAA,CAAoB,CAAA;AAC7C,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE;AAC7C,YAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,gBAAA,MAAM,8BAA8B,CAAA;aACrC;iBAAM;gBACL,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAA;gBAEjE,MAAM,CAAA,mBAAA,EAAsB,aAAa,CAAA,EAAA,CAAI,CAAA;aAC9C;SACF;AACD,QAAA,MAAM,SAAS,CAAA;KAChB;IAED,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,QAAA,OAAO,KAAK,CAAC,CAAA,sCAAA,CAAwC,CAAC,CAAA;AAEtD,QAAA,MAAM,CAAe,YAAA,EAAA,IAAI,CAAyB,sBAAA,EAAA,IAAI,wBAAwB,CAAA;AAE9E,QAAA,OAAO,KAAK,CAAC,0DAA0D,CAAC,CAAA;QACxE,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,kBAAA,CAAoB,CAAA;AAC7C,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE;AAC7C,YAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,gBAAA,MAAM,8BAA8B,CAAA;aACrC;iBAAM;gBACL,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAA;gBAEjE,MAAM,CAAA,mBAAA,EAAsB,aAAa,CAAA,EAAA,CAAI,CAAA;aAC9C;SACF;AACD,QAAA,MAAM,SAAS,CAAA;KAChB;AAED,IAAA,OAAO,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACjE,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,cAAA,CAAgB,CAAA;AACzC,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,uCAAuC,CAAA;AAC7C,IAAA,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACnC,QAAA,OAAO,KAAK,CAAC,yGAAyG,CAAC,CAAA;AACvH,QAAA,MAAM,CAA8B,2BAAA,EAAA,IAAI,CAAmB,gBAAA,EAAA,IAAI,kBAAkB,CAAA;KAClF;AACD,IAAA,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACnC,QAAA,OAAO,KAAK,CAAC,yGAAyG,CAAC,CAAA;AACvH,QAAA,MAAM,CAA8B,2BAAA,EAAA,IAAI,CAAmB,gBAAA,EAAA,IAAI,kBAAkB,CAAA;KAClF;AACD,IAAA,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACnC,QAAA,OAAO,KAAK,CAAC,yGAAyG,CAAC,CAAA;AACvH,QAAA,MAAM,CAA8B,2BAAA,EAAA,IAAI,CAAmB,gBAAA,EAAA,IAAI,kBAAkB,CAAA;KAClF;AACD,IAAA,MAAM,sBAAsB,CAAA;AAC5B,IAAA,MAAM,OAAO,CAAA;AACf;;;;"}
|
package/client/generate.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { DocumentParts } from '../output/writer';
|
|
2
2
|
import { AlgoAppSpec } from '../schema/application';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { GeneratorOptions } from './generator-context';
|
|
4
|
+
export declare function generate(app: AlgoAppSpec, options?: GeneratorOptions): DocumentParts;
|
package/client/generate.js
CHANGED
|
@@ -1,37 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
function* generate(app) {
|
|
14
|
-
const ctx =
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var writer = require('../output/writer.js');
|
|
4
|
+
var callFactory = require('./call-factory.js');
|
|
5
|
+
var callClient = require('./call-client.js');
|
|
6
|
+
var deployTypes = require('./deploy-types.js');
|
|
7
|
+
var utilityTypes = require('./utility-types.js');
|
|
8
|
+
var imports = require('./imports.js');
|
|
9
|
+
var generatorContext = require('./generator-context.js');
|
|
10
|
+
var appTypes = require('./app-types.js');
|
|
11
|
+
var callComposerTypes = require('./call-composer-types.js');
|
|
12
|
+
|
|
13
|
+
function* generate(app, options = { preserveNames: false }) {
|
|
14
|
+
const ctx = generatorContext.createGeneratorContext(app, options);
|
|
15
15
|
yield `/* eslint-disable */`;
|
|
16
16
|
yield `/**`;
|
|
17
17
|
yield ` * This file was automatically generated by @algorandfoundation/algokit-client-generator.`;
|
|
18
18
|
yield ` * DO NOT MODIFY IT BY HAND.`;
|
|
19
19
|
yield ` * requires: @algorandfoundation/algokit-utils: ^2`;
|
|
20
20
|
yield ` */`;
|
|
21
|
-
yield*
|
|
22
|
-
yield*
|
|
23
|
-
yield
|
|
24
|
-
yield*
|
|
25
|
-
yield
|
|
26
|
-
yield*
|
|
27
|
-
yield*
|
|
28
|
-
yield
|
|
21
|
+
yield* imports.imports();
|
|
22
|
+
yield* writer.inline('export const APP_SPEC: AppSpec = ', JSON.stringify(app, undefined, 2));
|
|
23
|
+
yield writer.NewLine;
|
|
24
|
+
yield* utilityTypes.utilityTypes();
|
|
25
|
+
yield writer.NewLine;
|
|
26
|
+
yield* appTypes.appTypes(ctx);
|
|
27
|
+
yield* deployTypes.deployTypes(ctx);
|
|
28
|
+
yield writer.NewLine;
|
|
29
29
|
// Write a call factory
|
|
30
|
-
yield*
|
|
31
|
-
yield
|
|
30
|
+
yield* callFactory.callFactory(ctx);
|
|
31
|
+
yield writer.NewLine;
|
|
32
32
|
// Write a client
|
|
33
|
-
yield*
|
|
34
|
-
yield*
|
|
33
|
+
yield* callClient.callClient(ctx);
|
|
34
|
+
yield* callComposerTypes.callComposerType(ctx);
|
|
35
35
|
}
|
|
36
|
+
|
|
36
37
|
exports.generate = generate;
|
|
37
|
-
//# sourceMappingURL=generate.js.map
|
|
38
|
+
//# sourceMappingURL=generate.js.map
|
package/client/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","
|
|
1
|
+
{"version":3,"file":"generate.js","sources":["../../src/client/generate.ts"],"sourcesContent":["import { DocumentParts, inline, NewLine } from '../output/writer'\nimport { AlgoAppSpec } from '../schema/application'\nimport { callFactory } from './call-factory'\nimport { callClient } from './call-client'\nimport { deployTypes } from './deploy-types'\nimport { utilityTypes } from './utility-types'\nimport { imports } from './imports'\nimport { createGeneratorContext, GeneratorOptions } from './generator-context'\nimport { appTypes } from './app-types'\nimport { callComposerType } from './call-composer-types'\n\nexport function* generate(app: AlgoAppSpec, options: GeneratorOptions = { preserveNames: false }): DocumentParts {\n const ctx = createGeneratorContext(app, options)\n yield `/* eslint-disable */`\n yield `/**`\n yield ` * This file was automatically generated by @algorandfoundation/algokit-client-generator.`\n yield ` * DO NOT MODIFY IT BY HAND.`\n yield ` * requires: @algorandfoundation/algokit-utils: ^2`\n yield ` */`\n\n yield* imports()\n yield* inline('export const APP_SPEC: AppSpec = ', JSON.stringify(app, undefined, 2))\n yield NewLine\n\n yield* utilityTypes()\n yield NewLine\n yield* appTypes(ctx)\n yield* deployTypes(ctx)\n yield NewLine\n\n // Write a call factory\n yield* callFactory(ctx)\n yield NewLine\n // Write a client\n yield* callClient(ctx)\n\n yield* callComposerType(ctx)\n}\n"],"names":["createGeneratorContext","imports","inline","NewLine","utilityTypes","appTypes","deployTypes","callFactory","callClient","callComposerType"],"mappings":";;;;;;;;;;;;AAWe,UAAE,QAAQ,CAAC,GAAgB,EAAE,OAAA,GAA4B,EAAE,aAAa,EAAE,KAAK,EAAE,EAAA;IAC9F,MAAM,GAAG,GAAGA,uCAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AAChD,IAAA,MAAM,sBAAsB,CAAA;AAC5B,IAAA,MAAM,KAAK,CAAA;AACX,IAAA,MAAM,2FAA2F,CAAA;AACjG,IAAA,MAAM,8BAA8B,CAAA;AACpC,IAAA,MAAM,oDAAoD,CAAA;AAC1D,IAAA,MAAM,KAAK,CAAA;AAEX,IAAA,OAAOC,eAAO,EAAE,CAAA;AAChB,IAAA,OAAOC,aAAM,CAAC,mCAAmC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;AACrF,IAAA,MAAMC,cAAO,CAAA;AAEb,IAAA,OAAOC,yBAAY,EAAE,CAAA;AACrB,IAAA,MAAMD,cAAO,CAAA;AACb,IAAA,OAAOE,iBAAQ,CAAC,GAAG,CAAC,CAAA;AACpB,IAAA,OAAOC,uBAAW,CAAC,GAAG,CAAC,CAAA;AACvB,IAAA,MAAMH,cAAO,CAAA;;AAGb,IAAA,OAAOI,uBAAW,CAAC,GAAG,CAAC,CAAA;AACvB,IAAA,MAAMJ,cAAO,CAAA;;AAEb,IAAA,OAAOK,qBAAU,CAAC,GAAG,CAAC,CAAA;AAEtB,IAAA,OAAOC,kCAAgB,CAAC,GAAG,CAAC,CAAA;AAC9B;;;;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { inline, NewLine } from '../output/writer.mjs';
|
|
2
|
+
import { callFactory } from './call-factory.mjs';
|
|
3
|
+
import { callClient } from './call-client.mjs';
|
|
4
|
+
import { deployTypes } from './deploy-types.mjs';
|
|
5
|
+
import { utilityTypes } from './utility-types.mjs';
|
|
6
|
+
import { imports } from './imports.mjs';
|
|
7
|
+
import { createGeneratorContext } from './generator-context.mjs';
|
|
8
|
+
import { appTypes } from './app-types.mjs';
|
|
9
|
+
import { callComposerType } from './call-composer-types.mjs';
|
|
10
|
+
|
|
11
|
+
function* generate(app, options = { preserveNames: false }) {
|
|
12
|
+
const ctx = createGeneratorContext(app, options);
|
|
13
|
+
yield `/* eslint-disable */`;
|
|
14
|
+
yield `/**`;
|
|
15
|
+
yield ` * This file was automatically generated by @algorandfoundation/algokit-client-generator.`;
|
|
16
|
+
yield ` * DO NOT MODIFY IT BY HAND.`;
|
|
17
|
+
yield ` * requires: @algorandfoundation/algokit-utils: ^2`;
|
|
18
|
+
yield ` */`;
|
|
19
|
+
yield* imports();
|
|
20
|
+
yield* inline('export const APP_SPEC: AppSpec = ', JSON.stringify(app, undefined, 2));
|
|
21
|
+
yield NewLine;
|
|
22
|
+
yield* utilityTypes();
|
|
23
|
+
yield NewLine;
|
|
24
|
+
yield* appTypes(ctx);
|
|
25
|
+
yield* deployTypes(ctx);
|
|
26
|
+
yield NewLine;
|
|
27
|
+
// Write a call factory
|
|
28
|
+
yield* callFactory(ctx);
|
|
29
|
+
yield NewLine;
|
|
30
|
+
// Write a client
|
|
31
|
+
yield* callClient(ctx);
|
|
32
|
+
yield* callComposerType(ctx);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { generate };
|
|
36
|
+
//# sourceMappingURL=generate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.mjs","sources":["../../src/client/generate.ts"],"sourcesContent":["import { DocumentParts, inline, NewLine } from '../output/writer'\nimport { AlgoAppSpec } from '../schema/application'\nimport { callFactory } from './call-factory'\nimport { callClient } from './call-client'\nimport { deployTypes } from './deploy-types'\nimport { utilityTypes } from './utility-types'\nimport { imports } from './imports'\nimport { createGeneratorContext, GeneratorOptions } from './generator-context'\nimport { appTypes } from './app-types'\nimport { callComposerType } from './call-composer-types'\n\nexport function* generate(app: AlgoAppSpec, options: GeneratorOptions = { preserveNames: false }): DocumentParts {\n const ctx = createGeneratorContext(app, options)\n yield `/* eslint-disable */`\n yield `/**`\n yield ` * This file was automatically generated by @algorandfoundation/algokit-client-generator.`\n yield ` * DO NOT MODIFY IT BY HAND.`\n yield ` * requires: @algorandfoundation/algokit-utils: ^2`\n yield ` */`\n\n yield* imports()\n yield* inline('export const APP_SPEC: AppSpec = ', JSON.stringify(app, undefined, 2))\n yield NewLine\n\n yield* utilityTypes()\n yield NewLine\n yield* appTypes(ctx)\n yield* deployTypes(ctx)\n yield NewLine\n\n // Write a call factory\n yield* callFactory(ctx)\n yield NewLine\n // Write a client\n yield* callClient(ctx)\n\n yield* callComposerType(ctx)\n}\n"],"names":[],"mappings":";;;;;;;;;;AAWe,UAAE,QAAQ,CAAC,GAAgB,EAAE,OAAA,GAA4B,EAAE,aAAa,EAAE,KAAK,EAAE,EAAA;IAC9F,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AAChD,IAAA,MAAM,sBAAsB,CAAA;AAC5B,IAAA,MAAM,KAAK,CAAA;AACX,IAAA,MAAM,2FAA2F,CAAA;AACjG,IAAA,MAAM,8BAA8B,CAAA;AACpC,IAAA,MAAM,oDAAoD,CAAA;AAC1D,IAAA,MAAM,KAAK,CAAA;AAEX,IAAA,OAAO,OAAO,EAAE,CAAA;AAChB,IAAA,OAAO,MAAM,CAAC,mCAAmC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;AACrF,IAAA,MAAM,OAAO,CAAA;AAEb,IAAA,OAAO,YAAY,EAAE,CAAA;AACrB,IAAA,MAAM,OAAO,CAAA;AACb,IAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;AACpB,IAAA,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;AACvB,IAAA,MAAM,OAAO,CAAA;;AAGb,IAAA,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;AACvB,IAAA,MAAM,OAAO,CAAA;;AAEb,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;AAEtB,IAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;AAC9B;;;;"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { AlgoAppSpec } from '../schema/application';
|
|
2
2
|
import { CallConfigSummary } from './helpers/get-call-config-summary';
|
|
3
|
+
import { Sanitizer } from '../util/sanitization';
|
|
3
4
|
export type GeneratorContext = {
|
|
4
5
|
app: AlgoAppSpec;
|
|
5
6
|
name: string;
|
|
6
7
|
callConfig: CallConfigSummary;
|
|
7
8
|
methodSignatureToUniqueName: Record<string, string>;
|
|
9
|
+
sanitizer: Sanitizer;
|
|
8
10
|
};
|
|
9
|
-
export
|
|
11
|
+
export type GeneratorOptions = {
|
|
12
|
+
preserveNames: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare const createGeneratorContext: (app: AlgoAppSpec, options: GeneratorOptions) => {
|
|
15
|
+
sanitizer: Sanitizer;
|
|
10
16
|
app: AlgoAppSpec;
|
|
11
17
|
name: string;
|
|
12
18
|
callConfig: CallConfigSummary;
|
|
13
19
|
methodSignatureToUniqueName: Record<string, string>;
|
|
14
20
|
};
|
|
15
|
-
//# sourceMappingURL=generator-context.d.ts.map
|
|
@@ -1,41 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var getCallConfigSummary = require('./helpers/get-call-config-summary.js');
|
|
4
|
+
var sanitization = require('../util/sanitization.js');
|
|
5
|
+
var algokit = require('@algorandfoundation/algokit-utils');
|
|
6
|
+
|
|
7
|
+
function _interopNamespaceDefault(e) {
|
|
8
|
+
var n = Object.create(null);
|
|
9
|
+
if (e) {
|
|
10
|
+
Object.keys(e).forEach(function (k) {
|
|
11
|
+
if (k !== 'default') {
|
|
12
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
13
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return e[k]; }
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
7
19
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
n.default = e;
|
|
21
|
+
return Object.freeze(n);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
var algokit__namespace = /*#__PURE__*/_interopNamespaceDefault(algokit);
|
|
25
|
+
|
|
26
|
+
const createGeneratorContext = (app, options) => {
|
|
27
|
+
const sanitizer = sanitization.getSanitizer(options);
|
|
28
|
+
return {
|
|
29
|
+
sanitizer,
|
|
30
|
+
app,
|
|
31
|
+
name: sanitizer.makeSafeTypeIdentifier(app.contract.name),
|
|
32
|
+
callConfig: getCallConfigSummary.getCallConfigSummary(app),
|
|
33
|
+
methodSignatureToUniqueName: app.contract.methods.reduce((acc, cur) => {
|
|
34
|
+
const signature = algokit__namespace.getABIMethodSignature(cur);
|
|
35
|
+
acc[signature] = app.contract.methods.some((m) => m.name === cur.name && m !== cur) ? signature : cur.name;
|
|
36
|
+
return acc;
|
|
37
|
+
}, {}),
|
|
38
|
+
};
|
|
24
39
|
};
|
|
25
|
-
|
|
26
|
-
exports.createGeneratorContext = void 0;
|
|
27
|
-
const get_call_config_summary_1 = require("./helpers/get-call-config-summary");
|
|
28
|
-
const sanitization_1 = require("../util/sanitization");
|
|
29
|
-
const algokit = __importStar(require("@algorandfoundation/algokit-utils"));
|
|
30
|
-
const createGeneratorContext = (app) => ({
|
|
31
|
-
app,
|
|
32
|
-
name: (0, sanitization_1.makeSafeTypeIdentifier)(app.contract.name),
|
|
33
|
-
callConfig: (0, get_call_config_summary_1.getCallConfigSummary)(app),
|
|
34
|
-
methodSignatureToUniqueName: app.contract.methods.reduce((acc, cur) => {
|
|
35
|
-
const signature = algokit.getABIMethodSignature(cur);
|
|
36
|
-
acc[signature] = app.contract.methods.some((m) => m.name === cur.name && m !== cur) ? signature : cur.name;
|
|
37
|
-
return acc;
|
|
38
|
-
}, {}),
|
|
39
|
-
});
|
|
40
|
+
|
|
40
41
|
exports.createGeneratorContext = createGeneratorContext;
|
|
41
|
-
//# sourceMappingURL=generator-context.js.map
|
|
42
|
+
//# sourceMappingURL=generator-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator-context.js","
|
|
1
|
+
{"version":3,"file":"generator-context.js","sources":["../../src/client/generator-context.ts"],"sourcesContent":["import { AlgoAppSpec } from '../schema/application'\nimport { CallConfigSummary, getCallConfigSummary } from './helpers/get-call-config-summary'\nimport { getSanitizer, Sanitizer } from '../util/sanitization'\nimport * as algokit from '@algorandfoundation/algokit-utils'\n\nexport type GeneratorContext = {\n app: AlgoAppSpec\n name: string\n callConfig: CallConfigSummary\n methodSignatureToUniqueName: Record<string, string>\n sanitizer: Sanitizer\n}\n\nexport type GeneratorOptions = {\n preserveNames: boolean\n}\n\nexport const createGeneratorContext = (app: AlgoAppSpec, options: GeneratorOptions) => {\n const sanitizer = getSanitizer(options)\n return {\n sanitizer,\n app,\n name: sanitizer.makeSafeTypeIdentifier(app.contract.name),\n callConfig: getCallConfigSummary(app),\n methodSignatureToUniqueName: app.contract.methods.reduce(\n (acc, cur) => {\n const signature = algokit.getABIMethodSignature(cur)\n acc[signature] = app.contract.methods.some((m) => m.name === cur.name && m !== cur) ? signature : cur.name\n return acc\n },\n {} as Record<string, string>,\n ),\n }\n}\n"],"names":["getSanitizer","getCallConfigSummary","algokit"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;MAiBa,sBAAsB,GAAG,CAAC,GAAgB,EAAE,OAAyB,KAAI;AACpF,IAAA,MAAM,SAAS,GAAGA,yBAAY,CAAC,OAAO,CAAC,CAAA;IACvC,OAAO;QACL,SAAS;QACT,GAAG;QACH,IAAI,EAAE,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzD,QAAA,UAAU,EAAEC,yCAAoB,CAAC,GAAG,CAAC;AACrC,QAAA,2BAA2B,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CACtD,CAAC,GAAG,EAAE,GAAG,KAAI;YACX,MAAM,SAAS,GAAGC,kBAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;AACpD,YAAA,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,IAAI,CAAA;AAC1G,YAAA,OAAO,GAAG,CAAA;SACX,EACD,EAA4B,CAC7B;KACF,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getCallConfigSummary } from './helpers/get-call-config-summary.mjs';
|
|
2
|
+
import { getSanitizer } from '../util/sanitization.mjs';
|
|
3
|
+
import * as algokit from '@algorandfoundation/algokit-utils';
|
|
4
|
+
|
|
5
|
+
const createGeneratorContext = (app, options) => {
|
|
6
|
+
const sanitizer = getSanitizer(options);
|
|
7
|
+
return {
|
|
8
|
+
sanitizer,
|
|
9
|
+
app,
|
|
10
|
+
name: sanitizer.makeSafeTypeIdentifier(app.contract.name),
|
|
11
|
+
callConfig: getCallConfigSummary(app),
|
|
12
|
+
methodSignatureToUniqueName: app.contract.methods.reduce((acc, cur) => {
|
|
13
|
+
const signature = algokit.getABIMethodSignature(cur);
|
|
14
|
+
acc[signature] = app.contract.methods.some((m) => m.name === cur.name && m !== cur) ? signature : cur.name;
|
|
15
|
+
return acc;
|
|
16
|
+
}, {}),
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export { createGeneratorContext };
|
|
21
|
+
//# sourceMappingURL=generator-context.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator-context.mjs","sources":["../../src/client/generator-context.ts"],"sourcesContent":["import { AlgoAppSpec } from '../schema/application'\nimport { CallConfigSummary, getCallConfigSummary } from './helpers/get-call-config-summary'\nimport { getSanitizer, Sanitizer } from '../util/sanitization'\nimport * as algokit from '@algorandfoundation/algokit-utils'\n\nexport type GeneratorContext = {\n app: AlgoAppSpec\n name: string\n callConfig: CallConfigSummary\n methodSignatureToUniqueName: Record<string, string>\n sanitizer: Sanitizer\n}\n\nexport type GeneratorOptions = {\n preserveNames: boolean\n}\n\nexport const createGeneratorContext = (app: AlgoAppSpec, options: GeneratorOptions) => {\n const sanitizer = getSanitizer(options)\n return {\n sanitizer,\n app,\n name: sanitizer.makeSafeTypeIdentifier(app.contract.name),\n callConfig: getCallConfigSummary(app),\n methodSignatureToUniqueName: app.contract.methods.reduce(\n (acc, cur) => {\n const signature = algokit.getABIMethodSignature(cur)\n acc[signature] = app.contract.methods.some((m) => m.name === cur.name && m !== cur) ? signature : cur.name\n return acc\n },\n {} as Record<string, string>,\n ),\n }\n}\n"],"names":[],"mappings":";;;;MAiBa,sBAAsB,GAAG,CAAC,GAAgB,EAAE,OAAyB,KAAI;AACpF,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACvC,OAAO;QACL,SAAS;QACT,GAAG;QACH,IAAI,EAAE,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzD,QAAA,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC;AACrC,QAAA,2BAA2B,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CACtD,CAAC,GAAG,EAAE,GAAG,KAAI;YACX,MAAM,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;AACpD,YAAA,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,IAAI,CAAA;AAC1G,YAAA,OAAO,GAAG,CAAA;SACX,EACD,EAA4B,CAC7B;KACF,CAAA;AACH;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AlgoAppSpec } from '../../schema/application';
|
|
1
|
+
import { AlgoAppSpec } from '../../schema/application.js';
|
|
2
2
|
export declare const BARE_CALL: unique symbol;
|
|
3
3
|
export type MethodIdentifier = string | typeof BARE_CALL;
|
|
4
4
|
export type MethodList = Array<MethodIdentifier>;
|
|
@@ -12,4 +12,3 @@ export type CallConfigSummary = {
|
|
|
12
12
|
};
|
|
13
13
|
export declare const getCallConfigSummary: (app: AlgoAppSpec) => CallConfigSummary;
|
|
14
14
|
export declare const getCreateOnComplete: (app: AlgoAppSpec, method: MethodIdentifier) => string;
|
|
15
|
-
//# sourceMappingURL=get-call-config-summary.d.ts.map
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const change_case_1 = require("change-case");
|
|
5
|
-
exports.BARE_CALL = Symbol('bare');
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const BARE_CALL = Symbol('bare');
|
|
6
4
|
const getCallConfigSummary = (app) => {
|
|
7
5
|
const result = {
|
|
8
6
|
createMethods: [],
|
|
@@ -13,7 +11,7 @@ const getCallConfigSummary = (app) => {
|
|
|
13
11
|
closeOutMethods: [],
|
|
14
12
|
};
|
|
15
13
|
if (app.bare_call_config) {
|
|
16
|
-
addToConfig(result,
|
|
14
|
+
addToConfig(result, BARE_CALL, app.bare_call_config);
|
|
17
15
|
}
|
|
18
16
|
if (app.hints) {
|
|
19
17
|
for (const [method, hints] of Object.entries(app.hints)) {
|
|
@@ -24,24 +22,6 @@ const getCallConfigSummary = (app) => {
|
|
|
24
22
|
}
|
|
25
23
|
return result;
|
|
26
24
|
};
|
|
27
|
-
exports.getCallConfigSummary = getCallConfigSummary;
|
|
28
|
-
const getCreateOnComplete = (app, method) => {
|
|
29
|
-
var _a, _b;
|
|
30
|
-
const callConfig = method === exports.BARE_CALL ? app.bare_call_config : (_b = (_a = app.hints) === null || _a === void 0 ? void 0 : _a[method]) === null || _b === void 0 ? void 0 : _b.call_config;
|
|
31
|
-
if (!callConfig) {
|
|
32
|
-
return '';
|
|
33
|
-
}
|
|
34
|
-
const hasNoOp = callConfig.no_op === 'ALL' || callConfig.no_op === 'CREATE';
|
|
35
|
-
return `{ onCompleteAction${hasNoOp ? '?' : ''}: ${getCreateOnCompleteTypes(callConfig)} }`;
|
|
36
|
-
};
|
|
37
|
-
exports.getCreateOnComplete = getCreateOnComplete;
|
|
38
|
-
const getCreateOnCompleteTypes = (config) => {
|
|
39
|
-
return Object.keys(config)
|
|
40
|
-
.map((oc) => oc)
|
|
41
|
-
.filter((oc) => config[oc] === 'ALL' || config[oc] === 'CREATE')
|
|
42
|
-
.map((oc) => `'${oc}' | OnApplicationComplete.${(0, change_case_1.pascalCase)(oc)}OC`)
|
|
43
|
-
.join(' | ');
|
|
44
|
-
};
|
|
45
25
|
const addToConfig = (result, method, config) => {
|
|
46
26
|
if (hasCall(config.no_op)) {
|
|
47
27
|
result.callMethods.push(method);
|
|
@@ -72,4 +52,7 @@ const hasCall = (config) => {
|
|
|
72
52
|
const hasCreate = (config) => {
|
|
73
53
|
return config === 'CREATE' || config === 'ALL';
|
|
74
54
|
};
|
|
75
|
-
|
|
55
|
+
|
|
56
|
+
exports.BARE_CALL = BARE_CALL;
|
|
57
|
+
exports.getCallConfigSummary = getCallConfigSummary;
|
|
58
|
+
//# sourceMappingURL=get-call-config-summary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-call-config-summary.js","
|
|
1
|
+
{"version":3,"file":"get-call-config-summary.js","sources":["../../../src/client/helpers/get-call-config-summary.ts"],"sourcesContent":["import { pascalCase } from 'change-case'\nimport { AlgoAppSpec, CallConfig, CallConfigValue } from '../../schema/application.js'\n\nexport const BARE_CALL = Symbol('bare')\n\nexport type MethodIdentifier = string | typeof BARE_CALL\n\nexport type MethodList = Array<MethodIdentifier>\n\nexport type CallConfigSummary = {\n createMethods: MethodList\n callMethods: MethodList\n deleteMethods: MethodList\n updateMethods: MethodList\n optInMethods: MethodList\n closeOutMethods: MethodList\n}\nexport const getCallConfigSummary = (app: AlgoAppSpec) => {\n const result: CallConfigSummary = {\n createMethods: [],\n callMethods: [],\n deleteMethods: [],\n updateMethods: [],\n optInMethods: [],\n closeOutMethods: [],\n }\n if (app.bare_call_config) {\n addToConfig(result, BARE_CALL, app.bare_call_config)\n }\n if (app.hints) {\n for (const [method, hints] of Object.entries(app.hints)) {\n if (hints.call_config) {\n addToConfig(result, method, hints.call_config)\n }\n }\n }\n return result\n}\n\nexport const getCreateOnComplete = (app: AlgoAppSpec, method: MethodIdentifier) => {\n const callConfig = method === BARE_CALL ? app.bare_call_config : app.hints?.[method]?.call_config\n if (!callConfig) {\n return ''\n }\n const hasNoOp = callConfig.no_op === 'ALL' || callConfig.no_op === 'CREATE'\n return `{ onCompleteAction${hasNoOp ? '?' : ''}: ${getCreateOnCompleteTypes(callConfig)} }`\n}\n\nconst getCreateOnCompleteTypes = (config: CallConfig) => {\n return Object.keys(config)\n .map((oc) => oc as keyof CallConfig)\n .filter((oc) => config[oc] === 'ALL' || config[oc] === 'CREATE')\n .map((oc) => `'${oc}' | OnApplicationComplete.${pascalCase(oc)}OC`)\n .join(' | ')\n}\n\nconst addToConfig = (result: CallConfigSummary, method: MethodIdentifier, config: CallConfig) => {\n if (hasCall(config.no_op)) {\n result.callMethods.push(method)\n }\n if (\n hasCreate(config.no_op) ||\n hasCreate(config.opt_in) ||\n hasCreate(config.close_out) ||\n hasCreate(config.update_application) ||\n hasCreate(config.delete_application)\n ) {\n result.createMethods.push(method)\n }\n if (hasCall(config.delete_application)) {\n result.deleteMethods.push(method)\n }\n if (hasCall(config.update_application)) {\n result.updateMethods.push(method)\n }\n if (hasCall(config.opt_in)) {\n result.optInMethods.push(method)\n }\n if (hasCall(config.close_out)) {\n result.closeOutMethods.push(method)\n }\n}\n\nconst hasCall = (config: CallConfigValue | undefined) => {\n return config === 'CALL' || config === 'ALL'\n}\nconst hasCreate = (config: CallConfigValue | undefined) => {\n return config === 'CREATE' || config === 'ALL'\n}\n"],"names":[],"mappings":";;MAGa,SAAS,GAAG,MAAM,CAAC,MAAM,EAAC;AAc1B,MAAA,oBAAoB,GAAG,CAAC,GAAgB,KAAI;AACvD,IAAA,MAAM,MAAM,GAAsB;AAChC,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,YAAY,EAAE,EAAE;AAChB,QAAA,eAAe,EAAE,EAAE;KACpB,CAAA;AACD,IAAA,IAAI,GAAG,CAAC,gBAAgB,EAAE;QACxB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;KACrD;AACD,IAAA,IAAI,GAAG,CAAC,KAAK,EAAE;AACb,QAAA,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACvD,YAAA,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;aAC/C;SACF;KACF;AACD,IAAA,OAAO,MAAM,CAAA;AACf,EAAC;AAmBD,MAAM,WAAW,GAAG,CAAC,MAAyB,EAAE,MAAwB,EAAE,MAAkB,KAAI;AAC9F,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACzB,QAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAChC;AACD,IAAA,IACE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACvB,QAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AACxB,QAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;AAC3B,QAAA,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC;AACpC,QAAA,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,EACpC;AACA,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAClC;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;AACtC,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAClC;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;AACtC,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAClC;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAC1B,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACjC;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AAC7B,QAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACpC;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,MAAmC,KAAI;AACtD,IAAA,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,CAAA;AAC9C,CAAC,CAAA;AACD,MAAM,SAAS,GAAG,CAAC,MAAmC,KAAI;AACxD,IAAA,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAA;AAChD,CAAC;;;;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const BARE_CALL = Symbol('bare');
|
|
2
|
+
const getCallConfigSummary = (app) => {
|
|
3
|
+
const result = {
|
|
4
|
+
createMethods: [],
|
|
5
|
+
callMethods: [],
|
|
6
|
+
deleteMethods: [],
|
|
7
|
+
updateMethods: [],
|
|
8
|
+
optInMethods: [],
|
|
9
|
+
closeOutMethods: [],
|
|
10
|
+
};
|
|
11
|
+
if (app.bare_call_config) {
|
|
12
|
+
addToConfig(result, BARE_CALL, app.bare_call_config);
|
|
13
|
+
}
|
|
14
|
+
if (app.hints) {
|
|
15
|
+
for (const [method, hints] of Object.entries(app.hints)) {
|
|
16
|
+
if (hints.call_config) {
|
|
17
|
+
addToConfig(result, method, hints.call_config);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
};
|
|
23
|
+
const addToConfig = (result, method, config) => {
|
|
24
|
+
if (hasCall(config.no_op)) {
|
|
25
|
+
result.callMethods.push(method);
|
|
26
|
+
}
|
|
27
|
+
if (hasCreate(config.no_op) ||
|
|
28
|
+
hasCreate(config.opt_in) ||
|
|
29
|
+
hasCreate(config.close_out) ||
|
|
30
|
+
hasCreate(config.update_application) ||
|
|
31
|
+
hasCreate(config.delete_application)) {
|
|
32
|
+
result.createMethods.push(method);
|
|
33
|
+
}
|
|
34
|
+
if (hasCall(config.delete_application)) {
|
|
35
|
+
result.deleteMethods.push(method);
|
|
36
|
+
}
|
|
37
|
+
if (hasCall(config.update_application)) {
|
|
38
|
+
result.updateMethods.push(method);
|
|
39
|
+
}
|
|
40
|
+
if (hasCall(config.opt_in)) {
|
|
41
|
+
result.optInMethods.push(method);
|
|
42
|
+
}
|
|
43
|
+
if (hasCall(config.close_out)) {
|
|
44
|
+
result.closeOutMethods.push(method);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const hasCall = (config) => {
|
|
48
|
+
return config === 'CALL' || config === 'ALL';
|
|
49
|
+
};
|
|
50
|
+
const hasCreate = (config) => {
|
|
51
|
+
return config === 'CREATE' || config === 'ALL';
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export { BARE_CALL, getCallConfigSummary };
|
|
55
|
+
//# sourceMappingURL=get-call-config-summary.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-call-config-summary.mjs","sources":["../../../src/client/helpers/get-call-config-summary.ts"],"sourcesContent":["import { pascalCase } from 'change-case'\nimport { AlgoAppSpec, CallConfig, CallConfigValue } from '../../schema/application.js'\n\nexport const BARE_CALL = Symbol('bare')\n\nexport type MethodIdentifier = string | typeof BARE_CALL\n\nexport type MethodList = Array<MethodIdentifier>\n\nexport type CallConfigSummary = {\n createMethods: MethodList\n callMethods: MethodList\n deleteMethods: MethodList\n updateMethods: MethodList\n optInMethods: MethodList\n closeOutMethods: MethodList\n}\nexport const getCallConfigSummary = (app: AlgoAppSpec) => {\n const result: CallConfigSummary = {\n createMethods: [],\n callMethods: [],\n deleteMethods: [],\n updateMethods: [],\n optInMethods: [],\n closeOutMethods: [],\n }\n if (app.bare_call_config) {\n addToConfig(result, BARE_CALL, app.bare_call_config)\n }\n if (app.hints) {\n for (const [method, hints] of Object.entries(app.hints)) {\n if (hints.call_config) {\n addToConfig(result, method, hints.call_config)\n }\n }\n }\n return result\n}\n\nexport const getCreateOnComplete = (app: AlgoAppSpec, method: MethodIdentifier) => {\n const callConfig = method === BARE_CALL ? app.bare_call_config : app.hints?.[method]?.call_config\n if (!callConfig) {\n return ''\n }\n const hasNoOp = callConfig.no_op === 'ALL' || callConfig.no_op === 'CREATE'\n return `{ onCompleteAction${hasNoOp ? '?' : ''}: ${getCreateOnCompleteTypes(callConfig)} }`\n}\n\nconst getCreateOnCompleteTypes = (config: CallConfig) => {\n return Object.keys(config)\n .map((oc) => oc as keyof CallConfig)\n .filter((oc) => config[oc] === 'ALL' || config[oc] === 'CREATE')\n .map((oc) => `'${oc}' | OnApplicationComplete.${pascalCase(oc)}OC`)\n .join(' | ')\n}\n\nconst addToConfig = (result: CallConfigSummary, method: MethodIdentifier, config: CallConfig) => {\n if (hasCall(config.no_op)) {\n result.callMethods.push(method)\n }\n if (\n hasCreate(config.no_op) ||\n hasCreate(config.opt_in) ||\n hasCreate(config.close_out) ||\n hasCreate(config.update_application) ||\n hasCreate(config.delete_application)\n ) {\n result.createMethods.push(method)\n }\n if (hasCall(config.delete_application)) {\n result.deleteMethods.push(method)\n }\n if (hasCall(config.update_application)) {\n result.updateMethods.push(method)\n }\n if (hasCall(config.opt_in)) {\n result.optInMethods.push(method)\n }\n if (hasCall(config.close_out)) {\n result.closeOutMethods.push(method)\n }\n}\n\nconst hasCall = (config: CallConfigValue | undefined) => {\n return config === 'CALL' || config === 'ALL'\n}\nconst hasCreate = (config: CallConfigValue | undefined) => {\n return config === 'CREATE' || config === 'ALL'\n}\n"],"names":[],"mappings":"MAGa,SAAS,GAAG,MAAM,CAAC,MAAM,EAAC;AAc1B,MAAA,oBAAoB,GAAG,CAAC,GAAgB,KAAI;AACvD,IAAA,MAAM,MAAM,GAAsB;AAChC,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,YAAY,EAAE,EAAE;AAChB,QAAA,eAAe,EAAE,EAAE;KACpB,CAAA;AACD,IAAA,IAAI,GAAG,CAAC,gBAAgB,EAAE;QACxB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;KACrD;AACD,IAAA,IAAI,GAAG,CAAC,KAAK,EAAE;AACb,QAAA,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACvD,YAAA,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;aAC/C;SACF;KACF;AACD,IAAA,OAAO,MAAM,CAAA;AACf,EAAC;AAmBD,MAAM,WAAW,GAAG,CAAC,MAAyB,EAAE,MAAwB,EAAE,MAAkB,KAAI;AAC9F,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACzB,QAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAChC;AACD,IAAA,IACE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;AACvB,QAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;AACxB,QAAA,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;AAC3B,QAAA,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC;AACpC,QAAA,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,EACpC;AACA,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAClC;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;AACtC,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAClC;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;AACtC,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAClC;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAC1B,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACjC;AACD,IAAA,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AAC7B,QAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACpC;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,MAAmC,KAAI;AACtD,IAAA,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,CAAA;AAC9C,CAAC,CAAA;AACD,MAAM,SAAS,GAAG,CAAC,MAAmC,KAAI;AACxD,IAAA,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAA;AAChD,CAAC;;;;"}
|