@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.
Files changed (140) hide show
  1. package/bin/cli.mjs +4 -0
  2. package/cli.d.ts +0 -1
  3. package/cli.js +47 -49
  4. package/cli.js.map +1 -1
  5. package/cli.mjs +56 -0
  6. package/cli.mjs.map +1 -0
  7. package/client/app-types.d.ts +0 -1
  8. package/client/app-types.js +92 -97
  9. package/client/app-types.js.map +1 -1
  10. package/client/app-types.mjs +135 -0
  11. package/client/app-types.mjs.map +1 -0
  12. package/client/call-client.d.ts +0 -1
  13. package/client/call-client.js +145 -143
  14. package/client/call-client.js.map +1 -1
  15. package/client/call-client.mjs +320 -0
  16. package/client/call-client.mjs.map +1 -0
  17. package/client/call-composer-types.d.ts +0 -1
  18. package/client/call-composer-types.js +60 -62
  19. package/client/call-composer-types.js.map +1 -1
  20. package/client/call-composer-types.mjs +122 -0
  21. package/client/call-composer-types.mjs.map +1 -0
  22. package/client/call-composer.d.ts +0 -1
  23. package/client/call-composer.js +76 -78
  24. package/client/call-composer.js.map +1 -1
  25. package/client/call-composer.mjs +128 -0
  26. package/client/call-composer.mjs.map +1 -0
  27. package/client/call-factory.d.ts +0 -1
  28. package/client/call-factory.js +62 -62
  29. package/client/call-factory.js.map +1 -1
  30. package/client/call-factory.mjs +121 -0
  31. package/client/call-factory.mjs.map +1 -0
  32. package/client/deploy-types.d.ts +1 -2
  33. package/client/deploy-types.js +42 -40
  34. package/client/deploy-types.js.map +1 -1
  35. package/client/deploy-types.mjs +94 -0
  36. package/client/deploy-types.mjs.map +1 -0
  37. package/client/generate.d.ts +2 -2
  38. package/client/generate.js +28 -27
  39. package/client/generate.js.map +1 -1
  40. package/client/generate.mjs +36 -0
  41. package/client/generate.mjs.map +1 -0
  42. package/client/generator-context.d.ts +7 -2
  43. package/client/generator-context.js +39 -38
  44. package/client/generator-context.js.map +1 -1
  45. package/client/generator-context.mjs +21 -0
  46. package/client/generator-context.mjs.map +1 -0
  47. package/client/helpers/get-call-config-summary.d.ts +1 -2
  48. package/client/helpers/get-call-config-summary.js +8 -25
  49. package/client/helpers/get-call-config-summary.js.map +1 -1
  50. package/client/helpers/get-call-config-summary.mjs +55 -0
  51. package/client/helpers/get-call-config-summary.mjs.map +1 -0
  52. package/client/helpers/get-equivalent-type.d.ts +0 -1
  53. package/client/helpers/get-equivalent-type.js +21 -20
  54. package/client/helpers/get-equivalent-type.js.map +1 -1
  55. package/client/helpers/get-equivalent-type.mjs +57 -0
  56. package/client/helpers/get-equivalent-type.mjs.map +1 -0
  57. package/client/imports.d.ts +0 -1
  58. package/client/imports.js +4 -4
  59. package/client/imports.js.map +1 -1
  60. package/client/imports.mjs +28 -0
  61. package/client/imports.mjs.map +1 -0
  62. package/client/utility-types.d.ts +0 -1
  63. package/client/utility-types.js +27 -25
  64. package/client/utility-types.js.map +1 -1
  65. package/client/utility-types.mjs +48 -0
  66. package/client/utility-types.mjs.map +1 -0
  67. package/dev.d.ts +0 -1
  68. package/index.d.ts +0 -1
  69. package/index.js +14 -12
  70. package/index.js.map +1 -1
  71. package/index.mjs +4 -0
  72. package/index.mjs.map +1 -0
  73. package/output/writer.d.ts +0 -1
  74. package/output/writer.js +45 -38
  75. package/output/writer.js.map +1 -1
  76. package/output/writer.mjs +140 -0
  77. package/output/writer.mjs.map +1 -0
  78. package/package.json +9 -4
  79. package/schema/application.schema.json.js +375 -0
  80. package/schema/application.schema.json.js.map +1 -0
  81. package/schema/application.schema.json.mjs +364 -0
  82. package/schema/application.schema.json.mjs.map +1 -0
  83. package/schema/contract.schema.json.js +160 -0
  84. package/schema/contract.schema.json.js.map +1 -0
  85. package/schema/contract.schema.json.mjs +149 -0
  86. package/schema/contract.schema.json.mjs.map +1 -0
  87. package/schema/load.d.ts +0 -1
  88. package/schema/load.js +16 -41
  89. package/schema/load.js.map +1 -1
  90. package/schema/load.mjs +23 -0
  91. package/schema/load.mjs.map +1 -0
  92. package/tests/approval-tests.spec.d.ts +0 -1
  93. package/tests/util.d.ts +1 -0
  94. package/util/boom.d.ts +0 -1
  95. package/util/boom.js +4 -4
  96. package/util/boom.js.map +1 -1
  97. package/util/boom.mjs +6 -0
  98. package/util/boom.mjs.map +1 -0
  99. package/util/color-console.d.ts +0 -1
  100. package/util/color-console.js +12 -13
  101. package/util/color-console.js.map +1 -1
  102. package/util/color-console.mjs +17 -0
  103. package/util/color-console.mjs.map +1 -0
  104. package/util/not-falsy.d.ts +0 -1
  105. package/util/sanitization.d.ts +12 -6
  106. package/util/sanitization.js +54 -15
  107. package/util/sanitization.js.map +1 -1
  108. package/util/sanitization.mjs +54 -0
  109. package/util/sanitization.mjs.map +1 -0
  110. package/bin/cli.js +0 -4
  111. package/cli.d.ts.map +0 -1
  112. package/client/app-types.d.ts.map +0 -1
  113. package/client/call-client.d.ts.map +0 -1
  114. package/client/call-composer-types.d.ts.map +0 -1
  115. package/client/call-composer.d.ts.map +0 -1
  116. package/client/call-factory.d.ts.map +0 -1
  117. package/client/deploy-types.d.ts.map +0 -1
  118. package/client/generate.d.ts.map +0 -1
  119. package/client/generator-context.d.ts.map +0 -1
  120. package/client/helpers/get-call-config-summary.d.ts.map +0 -1
  121. package/client/helpers/get-equivalent-type.d.ts.map +0 -1
  122. package/client/imports.d.ts.map +0 -1
  123. package/client/utility-types.d.ts.map +0 -1
  124. package/dev.d.ts.map +0 -1
  125. package/dev.js +0 -5
  126. package/dev.js.map +0 -1
  127. package/index.d.ts.map +0 -1
  128. package/output/writer.d.ts.map +0 -1
  129. package/schema/application.schema.json +0 -354
  130. package/schema/contract.schema.json +0 -139
  131. package/schema/load.d.ts.map +0 -1
  132. package/tests/approval-tests.spec.d.ts.map +0 -1
  133. package/tests/approval-tests.spec.js +0 -24
  134. package/tests/approval-tests.spec.js.map +0 -1
  135. package/util/boom.d.ts.map +0 -1
  136. package/util/color-console.d.ts.map +0 -1
  137. package/util/not-falsy.d.ts.map +0 -1
  138. package/util/not-falsy.js +0 -6
  139. package/util/not-falsy.js.map +0 -1
  140. 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":"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"}
@@ -1,4 +1,4 @@
1
1
  import { DocumentParts } from '../output/writer';
2
2
  import { AlgoAppSpec } from '../schema/application';
3
- export declare function generate(app: AlgoAppSpec): DocumentParts;
4
- //# sourceMappingURL=generate.d.ts.map
3
+ import { GeneratorOptions } from './generator-context';
4
+ export declare function generate(app: AlgoAppSpec, options?: GeneratorOptions): DocumentParts;
@@ -1,37 +1,38 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generate = void 0;
4
- const writer_1 = require("../output/writer");
5
- const call_factory_1 = require("./call-factory");
6
- const call_client_1 = require("./call-client");
7
- const deploy_types_1 = require("./deploy-types");
8
- const utility_types_1 = require("./utility-types");
9
- const imports_1 = require("./imports");
10
- const generator_context_1 = require("./generator-context");
11
- const app_types_1 = require("./app-types");
12
- const call_composer_types_1 = require("./call-composer-types");
13
- function* generate(app) {
14
- const ctx = (0, generator_context_1.createGeneratorContext)(app);
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* (0, imports_1.imports)();
22
- yield* (0, writer_1.inline)('export const APP_SPEC: AppSpec = ', JSON.stringify(app, undefined, 2));
23
- yield writer_1.NewLine;
24
- yield* (0, utility_types_1.utilityTypes)();
25
- yield writer_1.NewLine;
26
- yield* (0, app_types_1.appTypes)(ctx);
27
- yield* (0, deploy_types_1.deployTypes)(ctx);
28
- yield writer_1.NewLine;
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* (0, call_factory_1.callFactory)(ctx);
31
- yield writer_1.NewLine;
30
+ yield* callFactory.callFactory(ctx);
31
+ yield writer.NewLine;
32
32
  // Write a client
33
- yield* (0, call_client_1.callClient)(ctx);
34
- yield* (0, call_composer_types_1.callComposerType)(ctx);
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
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/client/generate.ts"],"names":[],"mappings":";;;AAAA,6CAAiE;AAEjE,iDAA4C;AAC5C,+CAA0C;AAC1C,iDAA4C;AAC5C,mDAA8C;AAC9C,uCAAmC;AACnC,2DAA4D;AAC5D,2CAAsC;AACtC,+DAAwD;AAExD,QAAe,CAAC,CAAC,QAAQ,CAAC,GAAgB;IACxC,MAAM,GAAG,GAAG,IAAA,0CAAsB,EAAC,GAAG,CAAC,CAAA;IACvC,MAAM,sBAAsB,CAAA;IAC5B,MAAM,KAAK,CAAA;IACX,MAAM,2FAA2F,CAAA;IACjG,MAAM,8BAA8B,CAAA;IACpC,MAAM,oDAAoD,CAAA;IAC1D,MAAM,KAAK,CAAA;IAEX,KAAK,CAAC,CAAC,IAAA,iBAAO,GAAE,CAAA;IAChB,KAAK,CAAC,CAAC,IAAA,eAAM,EAAC,mCAAmC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IACrF,MAAM,gBAAO,CAAA;IAEb,KAAK,CAAC,CAAC,IAAA,4BAAY,GAAE,CAAA;IACrB,MAAM,gBAAO,CAAA;IACb,KAAK,CAAC,CAAC,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAA;IACpB,KAAK,CAAC,CAAC,IAAA,0BAAW,EAAC,GAAG,CAAC,CAAA;IACvB,MAAM,gBAAO,CAAA;IAEb,uBAAuB;IACvB,KAAK,CAAC,CAAC,IAAA,0BAAW,EAAC,GAAG,CAAC,CAAA;IACvB,MAAM,gBAAO,CAAA;IACb,iBAAiB;IACjB,KAAK,CAAC,CAAC,IAAA,wBAAU,EAAC,GAAG,CAAC,CAAA;IAEtB,KAAK,CAAC,CAAC,IAAA,sCAAgB,EAAC,GAAG,CAAC,CAAA;AAC9B,CAAC;AA1BD,4BA0BC"}
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 declare const createGeneratorContext: (app: AlgoAppSpec) => {
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
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = 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]; } };
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
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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
- Object.defineProperty(exports, "__esModule", { value: true });
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","sourceRoot":"","sources":["../../src/client/generator-context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+EAA2F;AAC3F,uDAA6D;AAC7D,2EAA4D;AASrD,MAAM,sBAAsB,GAAG,CAAC,GAAgB,EAAE,EAAE,CAAC,CAAC;IAC3D,GAAG;IACH,IAAI,EAAE,IAAA,qCAAsB,EAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/C,UAAU,EAAE,IAAA,8CAAoB,EAAC,GAAG,CAAC;IACrC,2BAA2B,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CACtD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,MAAM,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;QACpD,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;QAC1G,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAA4B,CAC7B;CACF,CAAC,CAAA;AAZW,QAAA,sBAAsB,0BAYjC"}
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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCreateOnComplete = exports.getCallConfigSummary = exports.BARE_CALL = void 0;
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, exports.BARE_CALL, app.bare_call_config);
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
- //# sourceMappingURL=get-call-config-summary.js.map
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","sourceRoot":"","sources":["../../../src/client/helpers/get-call-config-summary.ts"],"names":[],"mappings":"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"}
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;;;;"}
@@ -1,2 +1 @@
1
1
  export declare function getEquivalentType(abiTypeStr: string, ioType: 'input' | 'output'): string;
2
- //# sourceMappingURL=get-equivalent-type.d.ts.map