@algorandfoundation/algokit-client-generator 5.0.1-beta.4 → 5.0.1-beta.5
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/cli.js.map +1 -1
- package/cli.mjs.map +1 -1
- package/client/app-client.js.map +1 -1
- package/client/app-client.mjs +2 -2
- package/client/app-client.mjs.map +1 -1
- package/client/app-factory.js.map +1 -1
- package/client/app-factory.mjs.map +1 -1
- package/client/app-types.js.map +1 -1
- package/client/app-types.mjs.map +1 -1
- package/client/call-composer-types.js.map +1 -1
- package/client/call-composer-types.mjs.map +1 -1
- package/client/call-composer.js.map +1 -1
- package/client/call-composer.mjs.map +1 -1
- package/client/deploy-types.js.map +1 -1
- package/client/deploy-types.mjs.map +1 -1
- package/client/generate.js.map +1 -1
- package/client/generate.mjs.map +1 -1
- package/client/generator-context.js.map +1 -1
- package/client/generator-context.mjs.map +1 -1
- package/client/helpers/get-call-config-summary.js.map +1 -1
- package/client/helpers/get-call-config-summary.mjs.map +1 -1
- package/client/helpers/get-equivalent-type.js.map +1 -1
- package/client/helpers/get-equivalent-type.mjs.map +1 -1
- package/client/imports.js.map +1 -1
- package/client/imports.mjs.map +1 -1
- package/client/params-factory.js.map +1 -1
- package/client/params-factory.mjs.map +1 -1
- package/client/utility-types.js.map +1 -1
- package/client/utility-types.mjs.map +1 -1
- package/output/writer.d.ts +2 -2
- package/output/writer.js.map +1 -1
- package/output/writer.mjs.map +1 -1
- package/package.json +3 -3
- package/schema/load.js.map +1 -1
- package/schema/load.mjs.map +1 -1
- package/util/boom.js.map +1 -1
- package/util/boom.mjs.map +1 -1
- package/util/color-console.js.map +1 -1
- package/util/color-console.mjs.map +1 -1
- package/util/not-falsy.d.ts +1 -1
- package/util/sanitization.js.map +1 -1
- package/util/sanitization.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-types.js","sources":["../../src/client/deploy-types.ts"],"sourcesContent":["import { DecIndent, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\nimport { BARE_CALL, MethodIdentifier } from './helpers/get-call-config-summary'\nimport { GeneratorContext } from './generator-context'\nimport { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport function getCreateOnCompleteOptions(method: MethodIdentifier, app: Arc56Contract) {\n const validCreateOnCompletes =\n method === BARE_CALL ? app.bareActions.create : app.methods.find((m) => new ABIMethod(m).getSignature() === method)?.actions?.create\n const hasNoOp = validCreateOnCompletes?.includes('NoOp')\n const onCompleteType = validCreateOnCompletes\n ? `{onComplete${hasNoOp ? '?' : ''}: ${validCreateOnCompletes.map((oc) => `OnApplicationComplete.${oc}OC`).join(' | ')}}`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function getCallOnCompleteOptions(method: MethodIdentifier, app: Arc56Contract) {\n const validCallOnCompletes =\n method === BARE_CALL ? app.bareActions.call : app.methods.find((m) => new ABIMethod(m).getSignature() === method)?.actions?.call\n const hasNoOp = validCallOnCompletes?.includes('NoOp')\n const onCompleteType = validCallOnCompletes\n ? `{onComplete${hasNoOp ? '?' : ''}: ${validCallOnCompletes.map((oc) => `OnApplicationComplete.${oc}OC`).join(' | ')}}`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function* deployTypes({ app, callConfig, sanitizer, methodSignatureToUniqueName }: GeneratorContext): DocumentParts {\n const name = sanitizer.makeSafeTypeIdentifier(app.name)\n\n if (callConfig.createMethods.length > 0) {\n yield* jsDoc('Defines supported create method params 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 `| Expand<AppClientBareCallParams & {method?: never} & ${onComplete.type} & CreateSchema>`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n const uniqueName = methodSignatureToUniqueName[method]\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'} & ${onComplete.type} & CreateSchema>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'} & ${onComplete.type} & CreateSchema>`\n }\n }\n yield DecIndent\n }\n if (callConfig.updateMethods.length > 0) {\n yield* jsDoc('Defines supported update method params 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 `| Expand<AppClientBareCallParams> & {method?: never}`\n } else {\n const uniqueName = methodSignatureToUniqueName[method]\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'}>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'}>`\n }\n }\n yield DecIndent\n }\n\n if (callConfig.deleteMethods.length > 0) {\n yield* jsDoc('Defines supported delete method params 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 `| Expand<AppClientBareCallParams> & {method?: never}`\n } else {\n const uniqueName = methodSignatureToUniqueName[method]\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'}>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'}>`\n }\n }\n yield DecIndent\n }\n\n yield* jsDoc('Defines arguments required for the deploy method.')\n yield `export type ${name}DeployParams = Expand<Omit<AppFactoryDeployParams, 'createParams' | 'updateParams' | 'deleteParams'> & {`\n yield IncIndent\n if (callConfig.createMethods.length) {\n yield* jsDoc(\n 'Create transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `createParams?: ${name}CreateCallParams`\n }\n if (callConfig.updateMethods.length) {\n yield* jsDoc(\n 'Update transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `updateParams?: ${name}UpdateCallParams`\n }\n if (callConfig.deleteMethods.length) {\n yield* jsDoc(\n 'Delete transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `deleteParams?: ${name}DeleteCallParams`\n }\n yield DecIndent\n yield `}>`\n yield NewLine\n}\n"],"names":["BARE_CALL","ABIMethod","jsDoc","IncIndent","DecIndent","NewLine"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploy-types.js","sources":["../../src/client/deploy-types.ts"],"sourcesContent":["import { DecIndent, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\nimport { BARE_CALL, MethodIdentifier } from './helpers/get-call-config-summary'\nimport { GeneratorContext } from './generator-context'\nimport { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport function getCreateOnCompleteOptions(method: MethodIdentifier, app: Arc56Contract) {\n const validCreateOnCompletes =\n method === BARE_CALL ? app.bareActions.create : app.methods.find((m) => new ABIMethod(m).getSignature() === method)?.actions?.create\n const hasNoOp = validCreateOnCompletes?.includes('NoOp')\n const onCompleteType = validCreateOnCompletes\n ? `{onComplete${hasNoOp ? '?' : ''}: ${validCreateOnCompletes.map((oc) => `OnApplicationComplete.${oc}OC`).join(' | ')}}`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function getCallOnCompleteOptions(method: MethodIdentifier, app: Arc56Contract) {\n const validCallOnCompletes =\n method === BARE_CALL ? app.bareActions.call : app.methods.find((m) => new ABIMethod(m).getSignature() === method)?.actions?.call\n const hasNoOp = validCallOnCompletes?.includes('NoOp')\n const onCompleteType = validCallOnCompletes\n ? `{onComplete${hasNoOp ? '?' : ''}: ${validCallOnCompletes.map((oc) => `OnApplicationComplete.${oc}OC`).join(' | ')}}`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function* deployTypes({ app, callConfig, sanitizer, methodSignatureToUniqueName }: GeneratorContext): DocumentParts {\n const name = sanitizer.makeSafeTypeIdentifier(app.name)\n\n if (callConfig.createMethods.length > 0) {\n yield* jsDoc('Defines supported create method params 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 `| Expand<AppClientBareCallParams & {method?: never} & ${onComplete.type} & CreateSchema>`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n const uniqueName = methodSignatureToUniqueName[method]\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'} & ${onComplete.type} & CreateSchema>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'} & ${onComplete.type} & CreateSchema>`\n }\n }\n yield DecIndent\n }\n if (callConfig.updateMethods.length > 0) {\n yield* jsDoc('Defines supported update method params 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 `| Expand<AppClientBareCallParams> & {method?: never}`\n } else {\n const uniqueName = methodSignatureToUniqueName[method]\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'}>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'}>`\n }\n }\n yield DecIndent\n }\n\n if (callConfig.deleteMethods.length > 0) {\n yield* jsDoc('Defines supported delete method params 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 `| Expand<AppClientBareCallParams> & {method?: never}`\n } else {\n const uniqueName = methodSignatureToUniqueName[method]\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'}>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'}>`\n }\n }\n yield DecIndent\n }\n\n yield* jsDoc('Defines arguments required for the deploy method.')\n yield `export type ${name}DeployParams = Expand<Omit<AppFactoryDeployParams, 'createParams' | 'updateParams' | 'deleteParams'> & {`\n yield IncIndent\n if (callConfig.createMethods.length) {\n yield* jsDoc(\n 'Create transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `createParams?: ${name}CreateCallParams`\n }\n if (callConfig.updateMethods.length) {\n yield* jsDoc(\n 'Update transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `updateParams?: ${name}UpdateCallParams`\n }\n if (callConfig.deleteMethods.length) {\n yield* jsDoc(\n 'Delete transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `deleteParams?: ${name}DeleteCallParams`\n }\n yield DecIndent\n yield `}>`\n yield NewLine\n}\n"],"names":["BARE_CALL","ABIMethod","jsDoc","IncIndent","DecIndent","NewLine"],"mappings":";;;;;;AAMgB,SAAA,0BAA0B,CAAC,MAAwB,EAAE,GAAkB,EAAA;AACrF,IAAA,MAAM,sBAAsB,GAC1B,MAAM,KAAKA,8BAAS,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAIC,iBAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM;IACtI,MAAM,OAAO,GAAG,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC;IACxD,MAAM,cAAc,GAAG;AACrB,UAAE,CAAA,WAAA,EAAc,OAAO,GAAG,GAAG,GAAG,EAAE,CAAA,EAAA,EAAK,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAyB,sBAAA,EAAA,EAAE,CAAI,EAAA,CAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAG,CAAA;UACvH,EAAE;IACN,OAAO;AACL,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,UAAU,EAAE,OAAO;KACpB;AACH;AAEgB,SAAA,wBAAwB,CAAC,MAAwB,EAAE,GAAkB,EAAA;AACnF,IAAA,MAAM,oBAAoB,GACxB,MAAM,KAAKD,8BAAS,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAIC,iBAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI;IAClI,MAAM,OAAO,GAAG,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC;IACtD,MAAM,cAAc,GAAG;AACrB,UAAE,CAAA,WAAA,EAAc,OAAO,GAAG,GAAG,GAAG,EAAE,CAAA,EAAA,EAAK,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAyB,sBAAA,EAAA,EAAE,CAAI,EAAA,CAAA,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAG,CAAA;UACrH,EAAE;IACN,OAAO;AACL,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,UAAU,EAAE,OAAO;KACpB;AACH;AAEe,UAAE,WAAW,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,2BAA2B,EAAoB,EAAA;IACxG,MAAM,IAAI,GAAG,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;IAEvD,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,QAAA,OAAOC,YAAK,CAAC,gEAAgE,CAAC;QAC9E,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,kBAAA,CAAoB;AAC7C,QAAA,MAAMC,gBAAS;AACf,QAAA,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE;YAC7C,MAAM,UAAU,GAAG,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC;AAC1D,YAAA,IAAI,MAAM,KAAKH,8BAAS,EAAE;AACxB,gBAAA,MAAM,CAAyD,sDAAA,EAAA,UAAU,CAAC,IAAI,kBAAkB;;iBAC3F;gBACL,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC;AACjE,gBAAA,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC;AACtD,gBAAA,IAAI,UAAU,KAAK,MAAM,EAAE;oBACzB,MAAM,UAAU,GAAG,SAAS,CAAC,yBAAyB,CAAC,UAAU,CAAC;AAClE,oBAAA,MAAM,CAAuB,oBAAA,EAAA,IAAI,CAAgB,aAAA,EAAA,aAAa,QAAQ,IAAI,CAAA,eAAA,EAAkB,aAAa,CAAA,gBAAA,EAAmB,UAAU,CAAQ,KAAA,EAAA,UAAU,CAAC,IAAI,kBAAkB;;AAEjL,gBAAA,MAAM,CAAuB,oBAAA,EAAA,IAAI,CAAgB,aAAA,EAAA,aAAa,QAAQ,IAAI,CAAA,eAAA,EAAkB,aAAa,CAAA,gBAAA,EAAmB,aAAa,CAAQ,KAAA,EAAA,UAAU,CAAC,IAAI,kBAAkB;;;AAGtL,QAAA,MAAMI,gBAAS;;IAEjB,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,QAAA,OAAOF,YAAK,CAAC,gEAAgE,CAAC;QAC9E,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,kBAAA,CAAoB;AAC7C,QAAA,MAAMC,gBAAS;AACf,QAAA,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE;AAC7C,YAAA,IAAI,MAAM,KAAKH,8BAAS,EAAE;AACxB,gBAAA,MAAM,sDAAsD;;iBACvD;AACL,gBAAA,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC;gBACtD,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC;AACjE,gBAAA,IAAI,UAAU,KAAK,MAAM,EAAE;oBACzB,MAAM,UAAU,GAAG,SAAS,CAAC,yBAAyB,CAAC,UAAU,CAAC;oBAClE,MAAM,CAAA,oBAAA,EAAuB,IAAI,CAAA,aAAA,EAAgB,aAAa,CAAA,KAAA,EAAQ,IAAI,CAAA,eAAA,EAAkB,aAAa,CAAA,gBAAA,EAAmB,UAAU,CAAA,GAAA,CAAK;;gBAE7I,MAAM,CAAA,oBAAA,EAAuB,IAAI,CAAA,aAAA,EAAgB,aAAa,CAAA,KAAA,EAAQ,IAAI,CAAA,eAAA,EAAkB,aAAa,CAAA,gBAAA,EAAmB,aAAa,CAAA,GAAA,CAAK;;;AAGlJ,QAAA,MAAMI,gBAAS;;IAGjB,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,QAAA,OAAOF,YAAK,CAAC,gEAAgE,CAAC;QAC9E,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,kBAAA,CAAoB;AAC7C,QAAA,MAAMC,gBAAS;AACf,QAAA,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE;AAC7C,YAAA,IAAI,MAAM,KAAKH,8BAAS,EAAE;AACxB,gBAAA,MAAM,sDAAsD;;iBACvD;AACL,gBAAA,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC;gBACtD,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC;AACjE,gBAAA,IAAI,UAAU,KAAK,MAAM,EAAE;oBACzB,MAAM,UAAU,GAAG,SAAS,CAAC,yBAAyB,CAAC,UAAU,CAAC;oBAClE,MAAM,CAAA,oBAAA,EAAuB,IAAI,CAAA,aAAA,EAAgB,aAAa,CAAA,KAAA,EAAQ,IAAI,CAAA,eAAA,EAAkB,aAAa,CAAA,gBAAA,EAAmB,UAAU,CAAA,GAAA,CAAK;;gBAE7I,MAAM,CAAA,oBAAA,EAAuB,IAAI,CAAA,aAAA,EAAgB,aAAa,CAAA,KAAA,EAAQ,IAAI,CAAA,eAAA,EAAkB,aAAa,CAAA,gBAAA,EAAmB,aAAa,CAAA,GAAA,CAAK;;;AAGlJ,QAAA,MAAMI,gBAAS;;AAGjB,IAAA,OAAOF,YAAK,CAAC,mDAAmD,CAAC;IACjE,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,wGAAA,CAA0G;AACnI,IAAA,MAAMC,gBAAS;AACf,IAAA,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACnC,QAAA,OAAOD,YAAK,CACV,uLAAuL,CACxL;QACD,MAAM,CAAA,eAAA,EAAkB,IAAI,CAAA,gBAAA,CAAkB;;AAEhD,IAAA,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACnC,QAAA,OAAOA,YAAK,CACV,uLAAuL,CACxL;QACD,MAAM,CAAA,eAAA,EAAkB,IAAI,CAAA,gBAAA,CAAkB;;AAEhD,IAAA,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;AACnC,QAAA,OAAOA,YAAK,CACV,uLAAuL,CACxL;QACD,MAAM,CAAA,eAAA,EAAkB,IAAI,CAAA,gBAAA,CAAkB;;AAEhD,IAAA,MAAME,gBAAS;AACf,IAAA,MAAM,IAAI;AACV,IAAA,MAAMC,cAAO;AACf;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-types.mjs","sources":["../../src/client/deploy-types.ts"],"sourcesContent":["import { DecIndent, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\nimport { BARE_CALL, MethodIdentifier } from './helpers/get-call-config-summary'\nimport { GeneratorContext } from './generator-context'\nimport { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport function getCreateOnCompleteOptions(method: MethodIdentifier, app: Arc56Contract) {\n const validCreateOnCompletes =\n method === BARE_CALL ? app.bareActions.create : app.methods.find((m) => new ABIMethod(m).getSignature() === method)?.actions?.create\n const hasNoOp = validCreateOnCompletes?.includes('NoOp')\n const onCompleteType = validCreateOnCompletes\n ? `{onComplete${hasNoOp ? '?' : ''}: ${validCreateOnCompletes.map((oc) => `OnApplicationComplete.${oc}OC`).join(' | ')}}`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function getCallOnCompleteOptions(method: MethodIdentifier, app: Arc56Contract) {\n const validCallOnCompletes =\n method === BARE_CALL ? app.bareActions.call : app.methods.find((m) => new ABIMethod(m).getSignature() === method)?.actions?.call\n const hasNoOp = validCallOnCompletes?.includes('NoOp')\n const onCompleteType = validCallOnCompletes\n ? `{onComplete${hasNoOp ? '?' : ''}: ${validCallOnCompletes.map((oc) => `OnApplicationComplete.${oc}OC`).join(' | ')}}`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function* deployTypes({ app, callConfig, sanitizer, methodSignatureToUniqueName }: GeneratorContext): DocumentParts {\n const name = sanitizer.makeSafeTypeIdentifier(app.name)\n\n if (callConfig.createMethods.length > 0) {\n yield* jsDoc('Defines supported create method params 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 `| Expand<AppClientBareCallParams & {method?: never} & ${onComplete.type} & CreateSchema>`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n const uniqueName = methodSignatureToUniqueName[method]\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'} & ${onComplete.type} & CreateSchema>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'} & ${onComplete.type} & CreateSchema>`\n }\n }\n yield DecIndent\n }\n if (callConfig.updateMethods.length > 0) {\n yield* jsDoc('Defines supported update method params 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 `| Expand<AppClientBareCallParams> & {method?: never}`\n } else {\n const uniqueName = methodSignatureToUniqueName[method]\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'}>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'}>`\n }\n }\n yield DecIndent\n }\n\n if (callConfig.deleteMethods.length > 0) {\n yield* jsDoc('Defines supported delete method params 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 `| Expand<AppClientBareCallParams> & {method?: never}`\n } else {\n const uniqueName = methodSignatureToUniqueName[method]\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'}>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'}>`\n }\n }\n yield DecIndent\n }\n\n yield* jsDoc('Defines arguments required for the deploy method.')\n yield `export type ${name}DeployParams = Expand<Omit<AppFactoryDeployParams, 'createParams' | 'updateParams' | 'deleteParams'> & {`\n yield IncIndent\n if (callConfig.createMethods.length) {\n yield* jsDoc(\n 'Create transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `createParams?: ${name}CreateCallParams`\n }\n if (callConfig.updateMethods.length) {\n yield* jsDoc(\n 'Update transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `updateParams?: ${name}UpdateCallParams`\n }\n if (callConfig.deleteMethods.length) {\n yield* jsDoc(\n 'Delete transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `deleteParams?: ${name}DeleteCallParams`\n }\n yield DecIndent\n yield `}>`\n yield NewLine\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploy-types.mjs","sources":["../../src/client/deploy-types.ts"],"sourcesContent":["import { DecIndent, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\nimport { BARE_CALL, MethodIdentifier } from './helpers/get-call-config-summary'\nimport { GeneratorContext } from './generator-context'\nimport { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport function getCreateOnCompleteOptions(method: MethodIdentifier, app: Arc56Contract) {\n const validCreateOnCompletes =\n method === BARE_CALL ? app.bareActions.create : app.methods.find((m) => new ABIMethod(m).getSignature() === method)?.actions?.create\n const hasNoOp = validCreateOnCompletes?.includes('NoOp')\n const onCompleteType = validCreateOnCompletes\n ? `{onComplete${hasNoOp ? '?' : ''}: ${validCreateOnCompletes.map((oc) => `OnApplicationComplete.${oc}OC`).join(' | ')}}`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function getCallOnCompleteOptions(method: MethodIdentifier, app: Arc56Contract) {\n const validCallOnCompletes =\n method === BARE_CALL ? app.bareActions.call : app.methods.find((m) => new ABIMethod(m).getSignature() === method)?.actions?.call\n const hasNoOp = validCallOnCompletes?.includes('NoOp')\n const onCompleteType = validCallOnCompletes\n ? `{onComplete${hasNoOp ? '?' : ''}: ${validCallOnCompletes.map((oc) => `OnApplicationComplete.${oc}OC`).join(' | ')}}`\n : {}\n return {\n type: onCompleteType,\n isOptional: hasNoOp,\n }\n}\n\nexport function* deployTypes({ app, callConfig, sanitizer, methodSignatureToUniqueName }: GeneratorContext): DocumentParts {\n const name = sanitizer.makeSafeTypeIdentifier(app.name)\n\n if (callConfig.createMethods.length > 0) {\n yield* jsDoc('Defines supported create method params 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 `| Expand<AppClientBareCallParams & {method?: never} & ${onComplete.type} & CreateSchema>`\n } else {\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n const uniqueName = methodSignatureToUniqueName[method]\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'} & ${onComplete.type} & CreateSchema>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'} & ${onComplete.type} & CreateSchema>`\n }\n }\n yield DecIndent\n }\n if (callConfig.updateMethods.length > 0) {\n yield* jsDoc('Defines supported update method params 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 `| Expand<AppClientBareCallParams> & {method?: never}`\n } else {\n const uniqueName = methodSignatureToUniqueName[method]\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'}>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'}>`\n }\n }\n yield DecIndent\n }\n\n if (callConfig.deleteMethods.length > 0) {\n yield* jsDoc('Defines supported delete method params 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 `| Expand<AppClientBareCallParams> & {method?: never}`\n } else {\n const uniqueName = methodSignatureToUniqueName[method]\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(method)\n if (uniqueName !== method) {\n const methodName = sanitizer.makeSafeStringTypeLiteral(uniqueName)\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodName}'}>`\n }\n yield `| Expand<CallParams<${name}Args['obj']['${methodSigSafe}'] | ${name}Args['tuple']['${methodSigSafe}']> & {method: '${methodSigSafe}'}>`\n }\n }\n yield DecIndent\n }\n\n yield* jsDoc('Defines arguments required for the deploy method.')\n yield `export type ${name}DeployParams = Expand<Omit<AppFactoryDeployParams, 'createParams' | 'updateParams' | 'deleteParams'> & {`\n yield IncIndent\n if (callConfig.createMethods.length) {\n yield* jsDoc(\n 'Create transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `createParams?: ${name}CreateCallParams`\n }\n if (callConfig.updateMethods.length) {\n yield* jsDoc(\n 'Update transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `updateParams?: ${name}UpdateCallParams`\n }\n if (callConfig.deleteMethods.length) {\n yield* jsDoc(\n 'Delete transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)',\n )\n yield `deleteParams?: ${name}DeleteCallParams`\n }\n yield DecIndent\n yield `}>`\n yield NewLine\n}\n"],"names":[],"mappings":"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"}
|
package/client/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sources":["../../src/client/generate.ts"],"sourcesContent":["import { DocumentParts, inline, NewLine } from '../output/writer'\nimport { paramsFactory } from './params-factory'\nimport { appClient } from './app-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'\nimport { Arc56Contract, StructField } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { appFactory } from './app-factory'\nimport { Sanitizer } from '../util/sanitization'\n\nfunction convertStructs(s: StructField[], sanitizer: Sanitizer): StructField[] {\n return s.map(\n ({ name, type }) =>\n ({\n name: sanitizer.makeSafePropertyIdentifier(name),\n type: typeof type === 'string' ? type : convertStructs(type, sanitizer),\n }) satisfies StructField,\n )\n}\n\nexport function* generate(app: Arc56Contract, 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: ^7`\n yield ` */`\n\n yield* imports()\n // Change the structs definition to sanitize property names according to the defined rules\n // for instance, this may (unless you passed in --preserve-names) convert properties like my_prop to myProp\n app.structs = Object.fromEntries(Object.keys(app.structs).map((key) => [key, convertStructs(app.structs[key], ctx.sanitizer)]))\n yield* inline('export const APP_SPEC: Arc56Contract = ', JSON.stringify(app), ' as unknown as Arc56Contract')\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* paramsFactory(ctx)\n yield NewLine\n // Write a factory\n yield* appFactory(ctx)\n // Write a client\n yield* appClient(ctx)\n\n yield* callComposerType(ctx)\n}\n"],"names":["createGeneratorContext","imports","inline","NewLine","utilityTypes","appTypes","deployTypes","paramsFactory","appFactory","appClient","callComposerType"],"mappings":";;;;;;;;;;;;;AAaA,SAAS,cAAc,CAAC,CAAgB,EAAE,SAAoB,EAAA;AAC5D,IAAA,OAAO,CAAC,CAAC,GAAG,CACV,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MACZ;AACC,QAAA,IAAI,EAAE,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC;AAChD,QAAA,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;AACxE,KAAA,CAAuB,CAC3B
|
|
1
|
+
{"version":3,"file":"generate.js","sources":["../../src/client/generate.ts"],"sourcesContent":["import { DocumentParts, inline, NewLine } from '../output/writer'\nimport { paramsFactory } from './params-factory'\nimport { appClient } from './app-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'\nimport { Arc56Contract, StructField } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { appFactory } from './app-factory'\nimport { Sanitizer } from '../util/sanitization'\n\nfunction convertStructs(s: StructField[], sanitizer: Sanitizer): StructField[] {\n return s.map(\n ({ name, type }) =>\n ({\n name: sanitizer.makeSafePropertyIdentifier(name),\n type: typeof type === 'string' ? type : convertStructs(type, sanitizer),\n }) satisfies StructField,\n )\n}\n\nexport function* generate(app: Arc56Contract, 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: ^7`\n yield ` */`\n\n yield* imports()\n // Change the structs definition to sanitize property names according to the defined rules\n // for instance, this may (unless you passed in --preserve-names) convert properties like my_prop to myProp\n app.structs = Object.fromEntries(Object.keys(app.structs).map((key) => [key, convertStructs(app.structs[key], ctx.sanitizer)]))\n yield* inline('export const APP_SPEC: Arc56Contract = ', JSON.stringify(app), ' as unknown as Arc56Contract')\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* paramsFactory(ctx)\n yield NewLine\n // Write a factory\n yield* appFactory(ctx)\n // Write a client\n yield* appClient(ctx)\n\n yield* callComposerType(ctx)\n}\n"],"names":["createGeneratorContext","imports","inline","NewLine","utilityTypes","appTypes","deployTypes","paramsFactory","appFactory","appClient","callComposerType"],"mappings":";;;;;;;;;;;;;AAaA,SAAS,cAAc,CAAC,CAAgB,EAAE,SAAoB,EAAA;AAC5D,IAAA,OAAO,CAAC,CAAC,GAAG,CACV,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MACZ;AACC,QAAA,IAAI,EAAE,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC;AAChD,QAAA,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;AACxE,KAAA,CAAuB,CAC3B;AACH;AAEe,UAAE,QAAQ,CAAC,GAAkB,EAAE,OAAA,GAA4B,EAAE,aAAa,EAAE,KAAK,EAAE,EAAA;IAChG,MAAM,GAAG,GAAGA,uCAAsB,CAAC,GAAG,EAAE,OAAO,CAAC;AAChD,IAAA,MAAM,sBAAsB;AAC5B,IAAA,MAAM,KAAK;AACX,IAAA,MAAM,2FAA2F;AACjG,IAAA,MAAM,8BAA8B;AACpC,IAAA,MAAM,oDAAoD;AAC1D,IAAA,MAAM,KAAK;AAEX,IAAA,OAAOC,eAAO,EAAE;;;AAGhB,IAAA,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/H,IAAA,OAAOC,aAAM,CAAC,yCAAyC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,8BAA8B,CAAC;AAC7G,IAAA,MAAMC,cAAO;AAEb,IAAA,OAAOC,yBAAY,EAAE;AACrB,IAAA,MAAMD,cAAO;AACb,IAAA,OAAOE,iBAAQ,CAAC,GAAG,CAAC;AACpB,IAAA,OAAOC,uBAAW,CAAC,GAAG,CAAC;AACvB,IAAA,MAAMH,cAAO;;AAGb,IAAA,OAAOI,2BAAa,CAAC,GAAG,CAAC;AACzB,IAAA,MAAMJ,cAAO;;AAEb,IAAA,OAAOK,qBAAU,CAAC,GAAG,CAAC;;AAEtB,IAAA,OAAOC,mBAAS,CAAC,GAAG,CAAC;AAErB,IAAA,OAAOC,kCAAgB,CAAC,GAAG,CAAC;AAC9B;;;;"}
|
package/client/generate.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.mjs","sources":["../../src/client/generate.ts"],"sourcesContent":["import { DocumentParts, inline, NewLine } from '../output/writer'\nimport { paramsFactory } from './params-factory'\nimport { appClient } from './app-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'\nimport { Arc56Contract, StructField } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { appFactory } from './app-factory'\nimport { Sanitizer } from '../util/sanitization'\n\nfunction convertStructs(s: StructField[], sanitizer: Sanitizer): StructField[] {\n return s.map(\n ({ name, type }) =>\n ({\n name: sanitizer.makeSafePropertyIdentifier(name),\n type: typeof type === 'string' ? type : convertStructs(type, sanitizer),\n }) satisfies StructField,\n )\n}\n\nexport function* generate(app: Arc56Contract, 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: ^7`\n yield ` */`\n\n yield* imports()\n // Change the structs definition to sanitize property names according to the defined rules\n // for instance, this may (unless you passed in --preserve-names) convert properties like my_prop to myProp\n app.structs = Object.fromEntries(Object.keys(app.structs).map((key) => [key, convertStructs(app.structs[key], ctx.sanitizer)]))\n yield* inline('export const APP_SPEC: Arc56Contract = ', JSON.stringify(app), ' as unknown as Arc56Contract')\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* paramsFactory(ctx)\n yield NewLine\n // Write a factory\n yield* appFactory(ctx)\n // Write a client\n yield* appClient(ctx)\n\n yield* callComposerType(ctx)\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAaA,SAAS,cAAc,CAAC,CAAgB,EAAE,SAAoB,EAAA;AAC5D,IAAA,OAAO,CAAC,CAAC,GAAG,CACV,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MACZ;AACC,QAAA,IAAI,EAAE,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC;AAChD,QAAA,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;AACxE,KAAA,CAAuB,CAC3B
|
|
1
|
+
{"version":3,"file":"generate.mjs","sources":["../../src/client/generate.ts"],"sourcesContent":["import { DocumentParts, inline, NewLine } from '../output/writer'\nimport { paramsFactory } from './params-factory'\nimport { appClient } from './app-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'\nimport { Arc56Contract, StructField } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { appFactory } from './app-factory'\nimport { Sanitizer } from '../util/sanitization'\n\nfunction convertStructs(s: StructField[], sanitizer: Sanitizer): StructField[] {\n return s.map(\n ({ name, type }) =>\n ({\n name: sanitizer.makeSafePropertyIdentifier(name),\n type: typeof type === 'string' ? type : convertStructs(type, sanitizer),\n }) satisfies StructField,\n )\n}\n\nexport function* generate(app: Arc56Contract, 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: ^7`\n yield ` */`\n\n yield* imports()\n // Change the structs definition to sanitize property names according to the defined rules\n // for instance, this may (unless you passed in --preserve-names) convert properties like my_prop to myProp\n app.structs = Object.fromEntries(Object.keys(app.structs).map((key) => [key, convertStructs(app.structs[key], ctx.sanitizer)]))\n yield* inline('export const APP_SPEC: Arc56Contract = ', JSON.stringify(app), ' as unknown as Arc56Contract')\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* paramsFactory(ctx)\n yield NewLine\n // Write a factory\n yield* appFactory(ctx)\n // Write a client\n yield* appClient(ctx)\n\n yield* callComposerType(ctx)\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAaA,SAAS,cAAc,CAAC,CAAgB,EAAE,SAAoB,EAAA;AAC5D,IAAA,OAAO,CAAC,CAAC,GAAG,CACV,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MACZ;AACC,QAAA,IAAI,EAAE,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC;AAChD,QAAA,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;AACxE,KAAA,CAAuB,CAC3B;AACH;AAEe,UAAE,QAAQ,CAAC,GAAkB,EAAE,OAAA,GAA4B,EAAE,aAAa,EAAE,KAAK,EAAE,EAAA;IAChG,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC;AAChD,IAAA,MAAM,sBAAsB;AAC5B,IAAA,MAAM,KAAK;AACX,IAAA,MAAM,2FAA2F;AACjG,IAAA,MAAM,8BAA8B;AACpC,IAAA,MAAM,oDAAoD;AAC1D,IAAA,MAAM,KAAK;AAEX,IAAA,OAAO,OAAO,EAAE;;;AAGhB,IAAA,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/H,IAAA,OAAO,MAAM,CAAC,yCAAyC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,8BAA8B,CAAC;AAC7G,IAAA,MAAM,OAAO;AAEb,IAAA,OAAO,YAAY,EAAE;AACrB,IAAA,MAAM,OAAO;AACb,IAAA,OAAO,QAAQ,CAAC,GAAG,CAAC;AACpB,IAAA,OAAO,WAAW,CAAC,GAAG,CAAC;AACvB,IAAA,MAAM,OAAO;;AAGb,IAAA,OAAO,aAAa,CAAC,GAAG,CAAC;AACzB,IAAA,MAAM,OAAO;;AAEb,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC;;AAEtB,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC;AAErB,IAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC;AAC9B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator-context.js","sources":["../../src/client/generator-context.ts"],"sourcesContent":["import { CallConfigSummary, getCallConfigSummary } from './helpers/get-call-config-summary'\nimport { getSanitizer, Sanitizer } from '../util/sanitization'\nimport { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport type GeneratorContext = {\n app: Arc56Contract\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: Arc56Contract, options: GeneratorOptions) => {\n const sanitizer = getSanitizer(options)\n return {\n sanitizer,\n app,\n name: sanitizer.makeSafeTypeIdentifier(app.name),\n callConfig: getCallConfigSummary(app),\n methodSignatureToUniqueName: app.methods.reduce(\n (acc, cur) => {\n const signature = new ABIMethod(cur).getSignature()\n acc[signature] = app.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","ABIMethod"],"mappings":";;;;;;MAiBa,sBAAsB,GAAG,CAAC,GAAkB,EAAE,OAAyB,KAAI;AACtF,IAAA,MAAM,SAAS,GAAGA,yBAAY,CAAC,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"generator-context.js","sources":["../../src/client/generator-context.ts"],"sourcesContent":["import { CallConfigSummary, getCallConfigSummary } from './helpers/get-call-config-summary'\nimport { getSanitizer, Sanitizer } from '../util/sanitization'\nimport { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport type GeneratorContext = {\n app: Arc56Contract\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: Arc56Contract, options: GeneratorOptions) => {\n const sanitizer = getSanitizer(options)\n return {\n sanitizer,\n app,\n name: sanitizer.makeSafeTypeIdentifier(app.name),\n callConfig: getCallConfigSummary(app),\n methodSignatureToUniqueName: app.methods.reduce(\n (acc, cur) => {\n const signature = new ABIMethod(cur).getSignature()\n acc[signature] = app.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","ABIMethod"],"mappings":";;;;;;MAiBa,sBAAsB,GAAG,CAAC,GAAkB,EAAE,OAAyB,KAAI;AACtF,IAAA,MAAM,SAAS,GAAGA,yBAAY,CAAC,OAAO,CAAC;IACvC,OAAO;QACL,SAAS;QACT,GAAG;QACH,IAAI,EAAE,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;AAChD,QAAA,UAAU,EAAEC,yCAAoB,CAAC,GAAG,CAAC;AACrC,QAAA,2BAA2B,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,GAAG,KAAI;YACX,MAAM,SAAS,GAAG,IAAIC,iBAAS,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE;AACnD,YAAA,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,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;AACjG,YAAA,OAAO,GAAG;SACX,EACD,EAA4B,CAC7B;KACF;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator-context.mjs","sources":["../../src/client/generator-context.ts"],"sourcesContent":["import { CallConfigSummary, getCallConfigSummary } from './helpers/get-call-config-summary'\nimport { getSanitizer, Sanitizer } from '../util/sanitization'\nimport { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport type GeneratorContext = {\n app: Arc56Contract\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: Arc56Contract, options: GeneratorOptions) => {\n const sanitizer = getSanitizer(options)\n return {\n sanitizer,\n app,\n name: sanitizer.makeSafeTypeIdentifier(app.name),\n callConfig: getCallConfigSummary(app),\n methodSignatureToUniqueName: app.methods.reduce(\n (acc, cur) => {\n const signature = new ABIMethod(cur).getSignature()\n acc[signature] = app.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,GAAkB,EAAE,OAAyB,KAAI;AACtF,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"generator-context.mjs","sources":["../../src/client/generator-context.ts"],"sourcesContent":["import { CallConfigSummary, getCallConfigSummary } from './helpers/get-call-config-summary'\nimport { getSanitizer, Sanitizer } from '../util/sanitization'\nimport { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport type GeneratorContext = {\n app: Arc56Contract\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: Arc56Contract, options: GeneratorOptions) => {\n const sanitizer = getSanitizer(options)\n return {\n sanitizer,\n app,\n name: sanitizer.makeSafeTypeIdentifier(app.name),\n callConfig: getCallConfigSummary(app),\n methodSignatureToUniqueName: app.methods.reduce(\n (acc, cur) => {\n const signature = new ABIMethod(cur).getSignature()\n acc[signature] = app.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,GAAkB,EAAE,OAAyB,KAAI;AACtF,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;IACvC,OAAO;QACL,SAAS;QACT,GAAG;QACH,IAAI,EAAE,SAAS,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;AAChD,QAAA,UAAU,EAAE,oBAAoB,CAAC,GAAG,CAAC;AACrC,QAAA,2BAA2B,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,GAAG,KAAI;YACX,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE;AACnD,YAAA,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,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;AACjG,YAAA,OAAO,GAAG;SACX,EACD,EAA4B,CAC7B;KACF;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
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 { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport const BARE_CALL = Symbol('bare')\n\nexport type MethodIdentifier = string | typeof BARE_CALL\n\nexport type MethodList = Array<MethodIdentifier>\n\nexport type OnComplete = 'NoOp' | 'OptIn' | 'CloseOut' | 'ClearState' | 'UpdateApplication' | 'DeleteApplication'\n\nexport type Actions = {\n create: ('NoOp' | 'OptIn' | 'DeleteApplication')[]\n call: OnComplete[]\n}\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: Arc56Contract) => {\n const result: CallConfigSummary = {\n createMethods: [],\n callMethods: [],\n deleteMethods: [],\n updateMethods: [],\n optInMethods: [],\n closeOutMethods: [],\n }\n if (app.bareActions) {\n addToConfig(result, BARE_CALL, app.bareActions)\n }\n if (app.methods) {\n for (const m of app.methods) {\n if (m.actions) {\n addToConfig(result, new ABIMethod(m).getSignature(), m.actions)\n }\n }\n }\n return result\n}\n\nexport const getCreateOnComplete = (app: Arc56Contract, method: MethodIdentifier) => {\n const actions = method === BARE_CALL ? app.bareActions : app.methods?.find((m) => m.name === method)?.actions\n if (!actions) {\n return ''\n }\n const hasNoOp = actions.create.includes('NoOp')\n return `{ onCompleteAction${hasNoOp ? '?' : ''}: ${getCreateOnCompleteTypes(actions)} }`\n}\n\nconst getCreateOnCompleteTypes = (config: Actions) => {\n return config.create.map((oc) => `'${oc}' | OnApplicationComplete.${pascalCase(oc)}OC`).join(' | ')\n}\n\nconst addToConfig = (result: CallConfigSummary, method: MethodIdentifier, config: Actions) => {\n if (hasCall(config, 'NoOp')) {\n result.callMethods.push(method)\n }\n if (\n hasCreate(config, 'NoOp') ||\n hasCreate(config, 'OptIn') ||\n hasCreate(config, 'CloseOut') ||\n hasCreate(config, 'UpdateApplication') ||\n hasCreate(config, 'DeleteApplication')\n ) {\n result.createMethods.push(method)\n }\n if (hasCall(config, 'DeleteApplication')) {\n result.deleteMethods.push(method)\n }\n if (hasCall(config, 'UpdateApplication')) {\n result.updateMethods.push(method)\n }\n if (hasCall(config, 'OptIn')) {\n result.optInMethods.push(method)\n }\n if (hasCall(config, 'CloseOut')) {\n result.closeOutMethods.push(method)\n }\n}\n\nconst hasCall = (config: Actions | undefined, action: OnComplete) => {\n return config?.call.includes(action)\n}\nconst hasCreate = (config: Actions | undefined, action: OnComplete) => {\n return (config?.create as OnComplete[]).includes(action)\n}\n"],"names":["ABIMethod"],"mappings":";;;;MAIa,SAAS,GAAG,MAAM,CAAC,MAAM
|
|
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 { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport const BARE_CALL = Symbol('bare')\n\nexport type MethodIdentifier = string | typeof BARE_CALL\n\nexport type MethodList = Array<MethodIdentifier>\n\nexport type OnComplete = 'NoOp' | 'OptIn' | 'CloseOut' | 'ClearState' | 'UpdateApplication' | 'DeleteApplication'\n\nexport type Actions = {\n create: ('NoOp' | 'OptIn' | 'DeleteApplication')[]\n call: OnComplete[]\n}\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: Arc56Contract) => {\n const result: CallConfigSummary = {\n createMethods: [],\n callMethods: [],\n deleteMethods: [],\n updateMethods: [],\n optInMethods: [],\n closeOutMethods: [],\n }\n if (app.bareActions) {\n addToConfig(result, BARE_CALL, app.bareActions)\n }\n if (app.methods) {\n for (const m of app.methods) {\n if (m.actions) {\n addToConfig(result, new ABIMethod(m).getSignature(), m.actions)\n }\n }\n }\n return result\n}\n\nexport const getCreateOnComplete = (app: Arc56Contract, method: MethodIdentifier) => {\n const actions = method === BARE_CALL ? app.bareActions : app.methods?.find((m) => m.name === method)?.actions\n if (!actions) {\n return ''\n }\n const hasNoOp = actions.create.includes('NoOp')\n return `{ onCompleteAction${hasNoOp ? '?' : ''}: ${getCreateOnCompleteTypes(actions)} }`\n}\n\nconst getCreateOnCompleteTypes = (config: Actions) => {\n return config.create.map((oc) => `'${oc}' | OnApplicationComplete.${pascalCase(oc)}OC`).join(' | ')\n}\n\nconst addToConfig = (result: CallConfigSummary, method: MethodIdentifier, config: Actions) => {\n if (hasCall(config, 'NoOp')) {\n result.callMethods.push(method)\n }\n if (\n hasCreate(config, 'NoOp') ||\n hasCreate(config, 'OptIn') ||\n hasCreate(config, 'CloseOut') ||\n hasCreate(config, 'UpdateApplication') ||\n hasCreate(config, 'DeleteApplication')\n ) {\n result.createMethods.push(method)\n }\n if (hasCall(config, 'DeleteApplication')) {\n result.deleteMethods.push(method)\n }\n if (hasCall(config, 'UpdateApplication')) {\n result.updateMethods.push(method)\n }\n if (hasCall(config, 'OptIn')) {\n result.optInMethods.push(method)\n }\n if (hasCall(config, 'CloseOut')) {\n result.closeOutMethods.push(method)\n }\n}\n\nconst hasCall = (config: Actions | undefined, action: OnComplete) => {\n return config?.call.includes(action)\n}\nconst hasCreate = (config: Actions | undefined, action: OnComplete) => {\n return (config?.create as OnComplete[]).includes(action)\n}\n"],"names":["ABIMethod"],"mappings":";;;;MAIa,SAAS,GAAG,MAAM,CAAC,MAAM;AAqBzB,MAAA,oBAAoB,GAAG,CAAC,GAAkB,KAAI;AACzD,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;AACD,IAAA,IAAI,GAAG,CAAC,WAAW,EAAE;QACnB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC;;AAEjD,IAAA,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,QAAA,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,CAAC,OAAO,EAAE;AACb,gBAAA,WAAW,CAAC,MAAM,EAAE,IAAIA,iBAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC;;;;AAIrE,IAAA,OAAO,MAAM;AACf;AAeA,MAAM,WAAW,GAAG,CAAC,MAAyB,EAAE,MAAwB,EAAE,MAAe,KAAI;AAC3F,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;AAC3B,QAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEjC,IAAA,IACE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;AACzB,QAAA,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;AAC1B,QAAA,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;AAC7B,QAAA,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC;AACtC,QAAA,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACtC;AACA,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnC,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE;AACxC,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnC,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE;AACxC,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnC,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;AAC5B,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;;AAElC,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AAC/B,QAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEvC,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,MAA2B,EAAE,MAAkB,KAAI;IAClE,OAAO,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtC,CAAC;AACD,MAAM,SAAS,GAAG,CAAC,MAA2B,EAAE,MAAkB,KAAI;IACpE,OAAO,CAAC,MAAM,EAAE,MAAuB,EAAC,QAAQ,CAAC,MAAM,CAAC;AAC1D,CAAC;;;;;"}
|
|
@@ -1 +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 { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport const BARE_CALL = Symbol('bare')\n\nexport type MethodIdentifier = string | typeof BARE_CALL\n\nexport type MethodList = Array<MethodIdentifier>\n\nexport type OnComplete = 'NoOp' | 'OptIn' | 'CloseOut' | 'ClearState' | 'UpdateApplication' | 'DeleteApplication'\n\nexport type Actions = {\n create: ('NoOp' | 'OptIn' | 'DeleteApplication')[]\n call: OnComplete[]\n}\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: Arc56Contract) => {\n const result: CallConfigSummary = {\n createMethods: [],\n callMethods: [],\n deleteMethods: [],\n updateMethods: [],\n optInMethods: [],\n closeOutMethods: [],\n }\n if (app.bareActions) {\n addToConfig(result, BARE_CALL, app.bareActions)\n }\n if (app.methods) {\n for (const m of app.methods) {\n if (m.actions) {\n addToConfig(result, new ABIMethod(m).getSignature(), m.actions)\n }\n }\n }\n return result\n}\n\nexport const getCreateOnComplete = (app: Arc56Contract, method: MethodIdentifier) => {\n const actions = method === BARE_CALL ? app.bareActions : app.methods?.find((m) => m.name === method)?.actions\n if (!actions) {\n return ''\n }\n const hasNoOp = actions.create.includes('NoOp')\n return `{ onCompleteAction${hasNoOp ? '?' : ''}: ${getCreateOnCompleteTypes(actions)} }`\n}\n\nconst getCreateOnCompleteTypes = (config: Actions) => {\n return config.create.map((oc) => `'${oc}' | OnApplicationComplete.${pascalCase(oc)}OC`).join(' | ')\n}\n\nconst addToConfig = (result: CallConfigSummary, method: MethodIdentifier, config: Actions) => {\n if (hasCall(config, 'NoOp')) {\n result.callMethods.push(method)\n }\n if (\n hasCreate(config, 'NoOp') ||\n hasCreate(config, 'OptIn') ||\n hasCreate(config, 'CloseOut') ||\n hasCreate(config, 'UpdateApplication') ||\n hasCreate(config, 'DeleteApplication')\n ) {\n result.createMethods.push(method)\n }\n if (hasCall(config, 'DeleteApplication')) {\n result.deleteMethods.push(method)\n }\n if (hasCall(config, 'UpdateApplication')) {\n result.updateMethods.push(method)\n }\n if (hasCall(config, 'OptIn')) {\n result.optInMethods.push(method)\n }\n if (hasCall(config, 'CloseOut')) {\n result.closeOutMethods.push(method)\n }\n}\n\nconst hasCall = (config: Actions | undefined, action: OnComplete) => {\n return config?.call.includes(action)\n}\nconst hasCreate = (config: Actions | undefined, action: OnComplete) => {\n return (config?.create as OnComplete[]).includes(action)\n}\n"],"names":[],"mappings":";;MAIa,SAAS,GAAG,MAAM,CAAC,MAAM
|
|
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 { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport const BARE_CALL = Symbol('bare')\n\nexport type MethodIdentifier = string | typeof BARE_CALL\n\nexport type MethodList = Array<MethodIdentifier>\n\nexport type OnComplete = 'NoOp' | 'OptIn' | 'CloseOut' | 'ClearState' | 'UpdateApplication' | 'DeleteApplication'\n\nexport type Actions = {\n create: ('NoOp' | 'OptIn' | 'DeleteApplication')[]\n call: OnComplete[]\n}\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: Arc56Contract) => {\n const result: CallConfigSummary = {\n createMethods: [],\n callMethods: [],\n deleteMethods: [],\n updateMethods: [],\n optInMethods: [],\n closeOutMethods: [],\n }\n if (app.bareActions) {\n addToConfig(result, BARE_CALL, app.bareActions)\n }\n if (app.methods) {\n for (const m of app.methods) {\n if (m.actions) {\n addToConfig(result, new ABIMethod(m).getSignature(), m.actions)\n }\n }\n }\n return result\n}\n\nexport const getCreateOnComplete = (app: Arc56Contract, method: MethodIdentifier) => {\n const actions = method === BARE_CALL ? app.bareActions : app.methods?.find((m) => m.name === method)?.actions\n if (!actions) {\n return ''\n }\n const hasNoOp = actions.create.includes('NoOp')\n return `{ onCompleteAction${hasNoOp ? '?' : ''}: ${getCreateOnCompleteTypes(actions)} }`\n}\n\nconst getCreateOnCompleteTypes = (config: Actions) => {\n return config.create.map((oc) => `'${oc}' | OnApplicationComplete.${pascalCase(oc)}OC`).join(' | ')\n}\n\nconst addToConfig = (result: CallConfigSummary, method: MethodIdentifier, config: Actions) => {\n if (hasCall(config, 'NoOp')) {\n result.callMethods.push(method)\n }\n if (\n hasCreate(config, 'NoOp') ||\n hasCreate(config, 'OptIn') ||\n hasCreate(config, 'CloseOut') ||\n hasCreate(config, 'UpdateApplication') ||\n hasCreate(config, 'DeleteApplication')\n ) {\n result.createMethods.push(method)\n }\n if (hasCall(config, 'DeleteApplication')) {\n result.deleteMethods.push(method)\n }\n if (hasCall(config, 'UpdateApplication')) {\n result.updateMethods.push(method)\n }\n if (hasCall(config, 'OptIn')) {\n result.optInMethods.push(method)\n }\n if (hasCall(config, 'CloseOut')) {\n result.closeOutMethods.push(method)\n }\n}\n\nconst hasCall = (config: Actions | undefined, action: OnComplete) => {\n return config?.call.includes(action)\n}\nconst hasCreate = (config: Actions | undefined, action: OnComplete) => {\n return (config?.create as OnComplete[]).includes(action)\n}\n"],"names":[],"mappings":";;MAIa,SAAS,GAAG,MAAM,CAAC,MAAM;AAqBzB,MAAA,oBAAoB,GAAG,CAAC,GAAkB,KAAI;AACzD,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;AACD,IAAA,IAAI,GAAG,CAAC,WAAW,EAAE;QACnB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC;;AAEjD,IAAA,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,QAAA,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,CAAC,OAAO,EAAE;AACb,gBAAA,WAAW,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC;;;;AAIrE,IAAA,OAAO,MAAM;AACf;AAeA,MAAM,WAAW,GAAG,CAAC,MAAyB,EAAE,MAAwB,EAAE,MAAe,KAAI;AAC3F,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;AAC3B,QAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEjC,IAAA,IACE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;AACzB,QAAA,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;AAC1B,QAAA,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;AAC7B,QAAA,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC;AACtC,QAAA,SAAS,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACtC;AACA,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnC,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE;AACxC,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnC,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE;AACxC,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnC,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;AAC5B,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;;AAElC,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;AAC/B,QAAA,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEvC,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,MAA2B,EAAE,MAAkB,KAAI;IAClE,OAAO,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtC,CAAC;AACD,MAAM,SAAS,GAAG,CAAC,MAA2B,EAAE,MAAkB,KAAI;IACpE,OAAO,CAAC,MAAM,EAAE,MAAuB,EAAC,QAAQ,CAAC,MAAM,CAAC;AAC1D,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-equivalent-type.js","sources":["../../../src/client/helpers/get-equivalent-type.ts"],"sourcesContent":["import { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport {\n ABIAddressType,\n ABIArrayDynamicType,\n ABIArrayStaticType,\n ABIBoolType,\n ABIByteType,\n ABIReferenceType,\n ABIStringType,\n ABITupleType,\n ABIType,\n ABIUfixedType,\n ABIUintType,\n abiTypeIsTransaction,\n} from 'algosdk'\nimport { Sanitizer } from '../../util/sanitization'\n\nconst bigIntOrNumberType = 'bigint | number'\nconst bytesOrStringType = 'Uint8Array | string'\n\nexport function getEquivalentType(\n abiTypeStr: string,\n ioType: 'input' | 'output',\n ctx: { app: Arc56Contract; sanitizer: Sanitizer },\n): string {\n const { app, sanitizer } = ctx\n if (abiTypeStr == 'void') {\n return 'void'\n }\n if (abiTypeStr == 'AVMBytes') {\n return ioType === 'input' ? bytesOrStringType : 'Uint8Array'\n }\n if (abiTypeStr == 'AVMString') {\n return 'string'\n }\n if (abiTypeStr == 'AVMUint64') {\n return 'bigint'\n }\n if (abiTypeIsTransaction(abiTypeStr)) {\n return 'AppMethodCallTransactionArgument'\n }\n if (abiTypeStr == ABIReferenceType.account) {\n return bytesOrStringType\n }\n if (abiTypeStr == ABIReferenceType.application || abiTypeStr == ABIReferenceType.asset) {\n return 'bigint'\n }\n if (Object.keys(app.structs).includes(abiTypeStr)) {\n return sanitizer.makeSafeTypeIdentifier(abiTypeStr)\n }\n\n const abiType = ABIType.from(abiTypeStr)\n\n return abiTypeToTs(abiType, ioType)\n\n function abiTypeToTs(abiType: ABIType, ioType: 'input' | 'output'): string {\n if (abiType instanceof ABIUintType) {\n if (abiType.bitSize < 53) return ioType === 'input' ? bigIntOrNumberType : 'number'\n return ioType === 'input' ? bigIntOrNumberType : 'bigint'\n }\n if (abiType instanceof ABIArrayDynamicType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n\n const childTsType = abiTypeToTs(abiType.childType, ioType)\n if (childTsType === bigIntOrNumberType) {\n return 'bigint[] | number[]'\n } else if (childTsType === bytesOrStringType) {\n return 'Uint8Array[] | string[]'\n }\n\n return `${childTsType}[]`\n }\n if (abiType instanceof ABIArrayStaticType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n return `[${new Array(abiType.staticLength).fill(abiTypeToTs(abiType.childType, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIAddressType) {\n return 'string'\n }\n if (abiType instanceof ABIBoolType) {\n return 'boolean'\n }\n if (abiType instanceof ABIUfixedType) {\n return 'number'\n }\n if (abiType instanceof ABITupleType) {\n return `[${abiType.childTypes.map((c) => abiTypeToTs(c, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIByteType) {\n return 'number'\n }\n if (abiType instanceof ABIStringType) {\n return 'string'\n }\n return 'unknown'\n }\n}\n"],"names":["abiTypeIsTransaction","ABIReferenceType","ABIType","ABIUintType","ABIArrayDynamicType","ABIByteType","ABIArrayStaticType","ABIAddressType","ABIBoolType","ABIUfixedType","ABITupleType","ABIStringType"],"mappings":";;;;AAiBA,MAAM,kBAAkB,GAAG,iBAAiB
|
|
1
|
+
{"version":3,"file":"get-equivalent-type.js","sources":["../../../src/client/helpers/get-equivalent-type.ts"],"sourcesContent":["import { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport {\n ABIAddressType,\n ABIArrayDynamicType,\n ABIArrayStaticType,\n ABIBoolType,\n ABIByteType,\n ABIReferenceType,\n ABIStringType,\n ABITupleType,\n ABIType,\n ABIUfixedType,\n ABIUintType,\n abiTypeIsTransaction,\n} from 'algosdk'\nimport { Sanitizer } from '../../util/sanitization'\n\nconst bigIntOrNumberType = 'bigint | number'\nconst bytesOrStringType = 'Uint8Array | string'\n\nexport function getEquivalentType(\n abiTypeStr: string,\n ioType: 'input' | 'output',\n ctx: { app: Arc56Contract; sanitizer: Sanitizer },\n): string {\n const { app, sanitizer } = ctx\n if (abiTypeStr == 'void') {\n return 'void'\n }\n if (abiTypeStr == 'AVMBytes') {\n return ioType === 'input' ? bytesOrStringType : 'Uint8Array'\n }\n if (abiTypeStr == 'AVMString') {\n return 'string'\n }\n if (abiTypeStr == 'AVMUint64') {\n return 'bigint'\n }\n if (abiTypeIsTransaction(abiTypeStr)) {\n return 'AppMethodCallTransactionArgument'\n }\n if (abiTypeStr == ABIReferenceType.account) {\n return bytesOrStringType\n }\n if (abiTypeStr == ABIReferenceType.application || abiTypeStr == ABIReferenceType.asset) {\n return 'bigint'\n }\n if (Object.keys(app.structs).includes(abiTypeStr)) {\n return sanitizer.makeSafeTypeIdentifier(abiTypeStr)\n }\n\n const abiType = ABIType.from(abiTypeStr)\n\n return abiTypeToTs(abiType, ioType)\n\n function abiTypeToTs(abiType: ABIType, ioType: 'input' | 'output'): string {\n if (abiType instanceof ABIUintType) {\n if (abiType.bitSize < 53) return ioType === 'input' ? bigIntOrNumberType : 'number'\n return ioType === 'input' ? bigIntOrNumberType : 'bigint'\n }\n if (abiType instanceof ABIArrayDynamicType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n\n const childTsType = abiTypeToTs(abiType.childType, ioType)\n if (childTsType === bigIntOrNumberType) {\n return 'bigint[] | number[]'\n } else if (childTsType === bytesOrStringType) {\n return 'Uint8Array[] | string[]'\n }\n\n return `${childTsType}[]`\n }\n if (abiType instanceof ABIArrayStaticType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n return `[${new Array(abiType.staticLength).fill(abiTypeToTs(abiType.childType, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIAddressType) {\n return 'string'\n }\n if (abiType instanceof ABIBoolType) {\n return 'boolean'\n }\n if (abiType instanceof ABIUfixedType) {\n return 'number'\n }\n if (abiType instanceof ABITupleType) {\n return `[${abiType.childTypes.map((c) => abiTypeToTs(c, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIByteType) {\n return 'number'\n }\n if (abiType instanceof ABIStringType) {\n return 'string'\n }\n return 'unknown'\n }\n}\n"],"names":["abiTypeIsTransaction","ABIReferenceType","ABIType","ABIUintType","ABIArrayDynamicType","ABIByteType","ABIArrayStaticType","ABIAddressType","ABIBoolType","ABIUfixedType","ABITupleType","ABIStringType"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-equivalent-type.mjs","sources":["../../../src/client/helpers/get-equivalent-type.ts"],"sourcesContent":["import { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport {\n ABIAddressType,\n ABIArrayDynamicType,\n ABIArrayStaticType,\n ABIBoolType,\n ABIByteType,\n ABIReferenceType,\n ABIStringType,\n ABITupleType,\n ABIType,\n ABIUfixedType,\n ABIUintType,\n abiTypeIsTransaction,\n} from 'algosdk'\nimport { Sanitizer } from '../../util/sanitization'\n\nconst bigIntOrNumberType = 'bigint | number'\nconst bytesOrStringType = 'Uint8Array | string'\n\nexport function getEquivalentType(\n abiTypeStr: string,\n ioType: 'input' | 'output',\n ctx: { app: Arc56Contract; sanitizer: Sanitizer },\n): string {\n const { app, sanitizer } = ctx\n if (abiTypeStr == 'void') {\n return 'void'\n }\n if (abiTypeStr == 'AVMBytes') {\n return ioType === 'input' ? bytesOrStringType : 'Uint8Array'\n }\n if (abiTypeStr == 'AVMString') {\n return 'string'\n }\n if (abiTypeStr == 'AVMUint64') {\n return 'bigint'\n }\n if (abiTypeIsTransaction(abiTypeStr)) {\n return 'AppMethodCallTransactionArgument'\n }\n if (abiTypeStr == ABIReferenceType.account) {\n return bytesOrStringType\n }\n if (abiTypeStr == ABIReferenceType.application || abiTypeStr == ABIReferenceType.asset) {\n return 'bigint'\n }\n if (Object.keys(app.structs).includes(abiTypeStr)) {\n return sanitizer.makeSafeTypeIdentifier(abiTypeStr)\n }\n\n const abiType = ABIType.from(abiTypeStr)\n\n return abiTypeToTs(abiType, ioType)\n\n function abiTypeToTs(abiType: ABIType, ioType: 'input' | 'output'): string {\n if (abiType instanceof ABIUintType) {\n if (abiType.bitSize < 53) return ioType === 'input' ? bigIntOrNumberType : 'number'\n return ioType === 'input' ? bigIntOrNumberType : 'bigint'\n }\n if (abiType instanceof ABIArrayDynamicType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n\n const childTsType = abiTypeToTs(abiType.childType, ioType)\n if (childTsType === bigIntOrNumberType) {\n return 'bigint[] | number[]'\n } else if (childTsType === bytesOrStringType) {\n return 'Uint8Array[] | string[]'\n }\n\n return `${childTsType}[]`\n }\n if (abiType instanceof ABIArrayStaticType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n return `[${new Array(abiType.staticLength).fill(abiTypeToTs(abiType.childType, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIAddressType) {\n return 'string'\n }\n if (abiType instanceof ABIBoolType) {\n return 'boolean'\n }\n if (abiType instanceof ABIUfixedType) {\n return 'number'\n }\n if (abiType instanceof ABITupleType) {\n return `[${abiType.childTypes.map((c) => abiTypeToTs(c, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIByteType) {\n return 'number'\n }\n if (abiType instanceof ABIStringType) {\n return 'string'\n }\n return 'unknown'\n }\n}\n"],"names":[],"mappings":";;AAiBA,MAAM,kBAAkB,GAAG,iBAAiB
|
|
1
|
+
{"version":3,"file":"get-equivalent-type.mjs","sources":["../../../src/client/helpers/get-equivalent-type.ts"],"sourcesContent":["import { Arc56Contract } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport {\n ABIAddressType,\n ABIArrayDynamicType,\n ABIArrayStaticType,\n ABIBoolType,\n ABIByteType,\n ABIReferenceType,\n ABIStringType,\n ABITupleType,\n ABIType,\n ABIUfixedType,\n ABIUintType,\n abiTypeIsTransaction,\n} from 'algosdk'\nimport { Sanitizer } from '../../util/sanitization'\n\nconst bigIntOrNumberType = 'bigint | number'\nconst bytesOrStringType = 'Uint8Array | string'\n\nexport function getEquivalentType(\n abiTypeStr: string,\n ioType: 'input' | 'output',\n ctx: { app: Arc56Contract; sanitizer: Sanitizer },\n): string {\n const { app, sanitizer } = ctx\n if (abiTypeStr == 'void') {\n return 'void'\n }\n if (abiTypeStr == 'AVMBytes') {\n return ioType === 'input' ? bytesOrStringType : 'Uint8Array'\n }\n if (abiTypeStr == 'AVMString') {\n return 'string'\n }\n if (abiTypeStr == 'AVMUint64') {\n return 'bigint'\n }\n if (abiTypeIsTransaction(abiTypeStr)) {\n return 'AppMethodCallTransactionArgument'\n }\n if (abiTypeStr == ABIReferenceType.account) {\n return bytesOrStringType\n }\n if (abiTypeStr == ABIReferenceType.application || abiTypeStr == ABIReferenceType.asset) {\n return 'bigint'\n }\n if (Object.keys(app.structs).includes(abiTypeStr)) {\n return sanitizer.makeSafeTypeIdentifier(abiTypeStr)\n }\n\n const abiType = ABIType.from(abiTypeStr)\n\n return abiTypeToTs(abiType, ioType)\n\n function abiTypeToTs(abiType: ABIType, ioType: 'input' | 'output'): string {\n if (abiType instanceof ABIUintType) {\n if (abiType.bitSize < 53) return ioType === 'input' ? bigIntOrNumberType : 'number'\n return ioType === 'input' ? bigIntOrNumberType : 'bigint'\n }\n if (abiType instanceof ABIArrayDynamicType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n\n const childTsType = abiTypeToTs(abiType.childType, ioType)\n if (childTsType === bigIntOrNumberType) {\n return 'bigint[] | number[]'\n } else if (childTsType === bytesOrStringType) {\n return 'Uint8Array[] | string[]'\n }\n\n return `${childTsType}[]`\n }\n if (abiType instanceof ABIArrayStaticType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n return `[${new Array(abiType.staticLength).fill(abiTypeToTs(abiType.childType, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIAddressType) {\n return 'string'\n }\n if (abiType instanceof ABIBoolType) {\n return 'boolean'\n }\n if (abiType instanceof ABIUfixedType) {\n return 'number'\n }\n if (abiType instanceof ABITupleType) {\n return `[${abiType.childTypes.map((c) => abiTypeToTs(c, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIByteType) {\n return 'number'\n }\n if (abiType instanceof ABIStringType) {\n return 'string'\n }\n return 'unknown'\n }\n}\n"],"names":[],"mappings":"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"}
|
package/client/imports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.js","sources":["../../src/client/imports.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* imports(): DocumentParts {\n yield `\n import { type AlgorandClient } from '@algorandfoundation/algokit-utils/types/algorand-client'\n import { ABIReturn, AppReturn, SendAppTransactionResult } from '@algorandfoundation/algokit-utils/types/app'\n import { Arc56Contract, getArc56ReturnValue, getABIStructFromABITuple } from '@algorandfoundation/algokit-utils/types/app-arc56'\n import {\n AppClient as _AppClient,\n AppClientMethodCallParams,\n AppClientParams,\n AppClientBareCallParams,\n CallOnComplete,\n AppClientCompilationParams,\n ResolveAppClientByCreatorAndName,\n ResolveAppClientByNetwork,\n CloneAppClientParams,\n } from '@algorandfoundation/algokit-utils/types/app-client'\n import { AppFactory as _AppFactory, AppFactoryAppClientParams, AppFactoryResolveAppClientByCreatorAndNameParams, AppFactoryDeployParams, AppFactoryParams, CreateSchema } from '@algorandfoundation/algokit-utils/types/app-factory'\n import { TransactionComposer, AppCallMethodCall, AppMethodCallTransactionArgument, SimulateOptions, RawSimulateOptions, SkipSignaturesSimulateOptions } from '@algorandfoundation/algokit-utils/types/composer'\n import { SendParams, SendSingleTransactionResult, SendAtomicTransactionComposerResults } from '@algorandfoundation/algokit-utils/types/transaction'\n import { Address, encodeAddress, modelsv2, OnApplicationComplete, Transaction, TransactionSigner } from 'algosdk'\n import SimulateResponse = modelsv2.SimulateResponse\n `\n}\n"],"names":[],"mappings":";;AAEM,UAAW,OAAO,GAAA;IACtB,MAAM
|
|
1
|
+
{"version":3,"file":"imports.js","sources":["../../src/client/imports.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* imports(): DocumentParts {\n yield `\n import { type AlgorandClient } from '@algorandfoundation/algokit-utils/types/algorand-client'\n import { ABIReturn, AppReturn, SendAppTransactionResult } from '@algorandfoundation/algokit-utils/types/app'\n import { Arc56Contract, getArc56ReturnValue, getABIStructFromABITuple } from '@algorandfoundation/algokit-utils/types/app-arc56'\n import {\n AppClient as _AppClient,\n AppClientMethodCallParams,\n AppClientParams,\n AppClientBareCallParams,\n CallOnComplete,\n AppClientCompilationParams,\n ResolveAppClientByCreatorAndName,\n ResolveAppClientByNetwork,\n CloneAppClientParams,\n } from '@algorandfoundation/algokit-utils/types/app-client'\n import { AppFactory as _AppFactory, AppFactoryAppClientParams, AppFactoryResolveAppClientByCreatorAndNameParams, AppFactoryDeployParams, AppFactoryParams, CreateSchema } from '@algorandfoundation/algokit-utils/types/app-factory'\n import { TransactionComposer, AppCallMethodCall, AppMethodCallTransactionArgument, SimulateOptions, RawSimulateOptions, SkipSignaturesSimulateOptions } from '@algorandfoundation/algokit-utils/types/composer'\n import { SendParams, SendSingleTransactionResult, SendAtomicTransactionComposerResults } from '@algorandfoundation/algokit-utils/types/transaction'\n import { Address, encodeAddress, modelsv2, OnApplicationComplete, Transaction, TransactionSigner } from 'algosdk'\n import SimulateResponse = modelsv2.SimulateResponse\n `\n}\n"],"names":[],"mappings":";;AAEM,UAAW,OAAO,GAAA;IACtB,MAAM;;;;;;;;;;;;;;;;;;;;GAoBL;AACH;;;;"}
|
package/client/imports.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imports.mjs","sources":["../../src/client/imports.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* imports(): DocumentParts {\n yield `\n import { type AlgorandClient } from '@algorandfoundation/algokit-utils/types/algorand-client'\n import { ABIReturn, AppReturn, SendAppTransactionResult } from '@algorandfoundation/algokit-utils/types/app'\n import { Arc56Contract, getArc56ReturnValue, getABIStructFromABITuple } from '@algorandfoundation/algokit-utils/types/app-arc56'\n import {\n AppClient as _AppClient,\n AppClientMethodCallParams,\n AppClientParams,\n AppClientBareCallParams,\n CallOnComplete,\n AppClientCompilationParams,\n ResolveAppClientByCreatorAndName,\n ResolveAppClientByNetwork,\n CloneAppClientParams,\n } from '@algorandfoundation/algokit-utils/types/app-client'\n import { AppFactory as _AppFactory, AppFactoryAppClientParams, AppFactoryResolveAppClientByCreatorAndNameParams, AppFactoryDeployParams, AppFactoryParams, CreateSchema } from '@algorandfoundation/algokit-utils/types/app-factory'\n import { TransactionComposer, AppCallMethodCall, AppMethodCallTransactionArgument, SimulateOptions, RawSimulateOptions, SkipSignaturesSimulateOptions } from '@algorandfoundation/algokit-utils/types/composer'\n import { SendParams, SendSingleTransactionResult, SendAtomicTransactionComposerResults } from '@algorandfoundation/algokit-utils/types/transaction'\n import { Address, encodeAddress, modelsv2, OnApplicationComplete, Transaction, TransactionSigner } from 'algosdk'\n import SimulateResponse = modelsv2.SimulateResponse\n `\n}\n"],"names":[],"mappings":"AAEM,UAAW,OAAO,GAAA;IACtB,MAAM
|
|
1
|
+
{"version":3,"file":"imports.mjs","sources":["../../src/client/imports.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* imports(): DocumentParts {\n yield `\n import { type AlgorandClient } from '@algorandfoundation/algokit-utils/types/algorand-client'\n import { ABIReturn, AppReturn, SendAppTransactionResult } from '@algorandfoundation/algokit-utils/types/app'\n import { Arc56Contract, getArc56ReturnValue, getABIStructFromABITuple } from '@algorandfoundation/algokit-utils/types/app-arc56'\n import {\n AppClient as _AppClient,\n AppClientMethodCallParams,\n AppClientParams,\n AppClientBareCallParams,\n CallOnComplete,\n AppClientCompilationParams,\n ResolveAppClientByCreatorAndName,\n ResolveAppClientByNetwork,\n CloneAppClientParams,\n } from '@algorandfoundation/algokit-utils/types/app-client'\n import { AppFactory as _AppFactory, AppFactoryAppClientParams, AppFactoryResolveAppClientByCreatorAndNameParams, AppFactoryDeployParams, AppFactoryParams, CreateSchema } from '@algorandfoundation/algokit-utils/types/app-factory'\n import { TransactionComposer, AppCallMethodCall, AppMethodCallTransactionArgument, SimulateOptions, RawSimulateOptions, SkipSignaturesSimulateOptions } from '@algorandfoundation/algokit-utils/types/composer'\n import { SendParams, SendSingleTransactionResult, SendAtomicTransactionComposerResults } from '@algorandfoundation/algokit-utils/types/transaction'\n import { Address, encodeAddress, modelsv2, OnApplicationComplete, Transaction, TransactionSigner } from 'algosdk'\n import SimulateResponse = modelsv2.SimulateResponse\n `\n}\n"],"names":[],"mappings":"AAEM,UAAW,OAAO,GAAA;IACtB,MAAM;;;;;;;;;;;;;;;;;;;;GAoBL;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params-factory.js","sources":["../../src/client/params-factory.ts"],"sourcesContent":["import { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, indent, jsDoc, NewLine } from '../output/writer'\nimport { GeneratorContext } from './generator-context'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\nimport { Sanitizer } from '../util/sanitization'\nimport { Method } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport function* paramsFactory(ctx: GeneratorContext): DocumentParts {\n yield* jsDoc(`Exposes methods for constructing \\`AppClient\\` params objects for ABI calls to the ${ctx.name} smart contract`)\n yield `export abstract class ${ctx.name}ParamsFactory {`\n yield IncIndent\n\n yield* opMethods(ctx)\n\n for (const method of ctx.app.methods) {\n yield* callFactoryMethod(ctx, method)\n }\n\n yield DecIndent\n\n yield '}'\n}\n\nfunction* opMethods(ctx: GeneratorContext): DocumentParts {\n const { app, callConfig } = ctx\n\n yield* operationMethod(\n ctx,\n `Constructs create ABI call params for the ${app.name} smart contract`,\n callConfig.createMethods,\n 'create',\n true,\n )\n yield* operationMethod(\n ctx,\n `Constructs update ABI call params for the ${app.name} smart contract`,\n callConfig.updateMethods,\n 'update',\n true,\n )\n yield* operationMethod(ctx, `Constructs delete ABI call params for the ${app.name} smart contract`, callConfig.deleteMethods, 'delete')\n yield* operationMethod(ctx, `Constructs opt-in ABI call params for the ${app.name} smart contract`, callConfig.optInMethods, 'optIn')\n yield* operationMethod(\n ctx,\n `Constructs close out ABI call params for the ${app.name} smart contract`,\n callConfig.closeOutMethods,\n 'closeOut',\n )\n}\n\nfunction* operationMethod(\n ctx: GeneratorContext,\n description: string,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n const { app, methodSignatureToUniqueName, sanitizer, name } = ctx\n if (methods.length > 0 && methods.some((m) => m !== BARE_CALL)) {\n yield* jsDoc(`Gets available ${verb} ABI call param factories`)\n yield `static get ${verb}() {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n\n if (['create', 'update', 'delete'].includes(verb)) {\n yield `_resolveByMethod<TParams extends ${ctx.name}${verb[0].toUpperCase()}${verb.substring(1)}CallParams & {method: string}>(params: TParams) {`\n yield IncIndent\n yield `switch(params.method) {`\n yield IncIndent\n\n for (const methodSig of methods) {\n if (methodSig === BARE_CALL) continue\n\n const uniqueName = methodSignatureToUniqueName[methodSig]\n if (uniqueName !== methodSig) {\n yield `case '${sanitizer.makeSafeStringTypeLiteral(uniqueName)}':`\n }\n yield `case '${sanitizer.makeSafeStringTypeLiteral(methodSig)}':`\n yield* indent(\n `return ${ctx.name}ParamsFactory.${verb}${sanitizer.getSafeMemberAccessor(sanitizer.makeSafeMethodIdentifier(uniqueName))}(params)`,\n )\n }\n yield DecIndentAndCloseBlock\n\n // Ordinarily we'd pop in the params.method value, but we can't here since it knows at compile time the type of params.method is never\n yield `throw new Error(\\`Unknown ' + verb + ' method\\`)`\n yield DecIndent\n yield '},'\n yield NewLine\n }\n\n for (const methodSig of methods) {\n const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined\n if (methodSig !== BARE_CALL) {\n const method = app.methods.find((m) => new ABIMethod(m).getSignature() === methodSig)!\n const uniqueName = methodSignatureToUniqueName[methodSig]\n yield* jsDoc({\n description: `${description} using the ${methodSig} ABI method`,\n params: {\n params: `Parameters for the call`,\n },\n returns: 'An `AppClientMethodCallParams` object for the call',\n })\n yield* factoryMethod({\n isNested: true,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(uniqueName),\n signature: methodSig,\n args: method.args,\n additionalParamTypes: `${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }`,\n contractName: name,\n })\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n\nfunction* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer, name }: GeneratorContext, method: Method) {\n const methodSignature = new ABIMethod(method).getSignature()\n if (!callConfig.callMethods.includes(methodSignature)) return\n\n yield* jsDoc({\n description: `Constructs a no op call for the ${methodSignature} ABI method`,\n abiDescription: method.desc,\n params: {\n params: `Parameters for the call`,\n },\n returns: 'An `AppClientMethodCallParams` object for the call',\n })\n yield* factoryMethod({\n isNested: false,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),\n signature: methodSignature,\n args: method.args,\n additionalParamTypes: ' & CallOnComplete',\n contractName: name,\n })\n}\n\nfunction* factoryMethod(m: {\n isNested: boolean\n name?: string\n signature: string\n args: Array<{ name?: string }>\n additionalParamTypes?: string\n sanitizer: Sanitizer\n contractName: string\n}) {\n const { isNested, name, signature, args, additionalParamTypes, sanitizer, contractName } = m\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(signature)\n yield `${isNested ? '' : 'static '}${name}(params: CallParams<${contractName}Args['obj']['${methodSigSafe}'] | ${contractName}Args['tuple']['${methodSigSafe}']>${additionalParamTypes}): AppClientMethodCallParams${additionalParamTypes} {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n yield '...params,'\n yield `method: '${methodSigSafe}' as const,`\n yield `args: Array.isArray(params.args) ? params.args : [${args\n .map((a, i) => `params.args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name ?? `arg${i + 1}`))}`)\n .join(', ')}],`\n yield DecIndent\n yield '}'\n yield DecIndent\n yield `}${isNested ? ',' : ''}`\n}\n"],"names":["jsDoc","IncIndent","DecIndent","BARE_CALL","indent","DecIndentAndCloseBlock","NewLine","getCreateOnCompleteOptions","ABIMethod"],"mappings":";;;;;;;AAQe,UAAE,aAAa,CAAC,GAAqB,EAAA;IAClD,OAAOA,YAAK,CAAC,CAAA,mFAAA,EAAsF,GAAG,CAAC,IAAI,CAAiB,eAAA,CAAA,CAAC,CAAA;AAC7H,IAAA,MAAM,CAAyB,sBAAA,EAAA,GAAG,CAAC,IAAI,iBAAiB,CAAA;AACxD,IAAA,MAAMC,gBAAS,CAAA;AAEf,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;IAErB,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE;QACpC,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;KACtC;AAED,IAAA,MAAMC,gBAAS,CAAA;AAEf,IAAA,MAAM,GAAG,CAAA;AACX,CAAC;AAED,UAAU,SAAS,CAAC,GAAqB,EAAA;AACvC,IAAA,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;IAE/B,OAAO,eAAe,CACpB,GAAG,EACH,CAAA,0CAAA,EAA6C,GAAG,CAAC,IAAI,iBAAiB,EACtE,UAAU,CAAC,aAAa,EACxB,QAAQ,EACR,IAAI,CACL,CAAA;IACD,OAAO,eAAe,CACpB,GAAG,EACH,CAAA,0CAAA,EAA6C,GAAG,CAAC,IAAI,iBAAiB,EACtE,UAAU,CAAC,aAAa,EACxB,QAAQ,EACR,IAAI,CACL,CAAA;AACD,IAAA,OAAO,eAAe,CAAC,GAAG,EAAE,6CAA6C,GAAG,CAAC,IAAI,CAAA,eAAA,CAAiB,EAAE,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;AACvI,IAAA,OAAO,eAAe,CAAC,GAAG,EAAE,6CAA6C,GAAG,CAAC,IAAI,CAAA,eAAA,CAAiB,EAAE,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;AACrI,IAAA,OAAO,eAAe,CACpB,GAAG,EACH,gDAAgD,GAAG,CAAC,IAAI,CAAA,eAAA,CAAiB,EACzE,UAAU,CAAC,eAAe,EAC1B,UAAU,CACX,CAAA;AACH,CAAC;AAED,UAAU,eAAe,CACvB,GAAqB,EACrB,WAAmB,EACnB,OAAmB,EACnB,IAA2D,EAC3D,kBAA4B,EAAA;IAE5B,MAAM,EAAE,GAAG,EAAE,2BAA2B,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;IACjE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAKC,8BAAS,CAAC,EAAE;QAC9D,OAAOH,YAAK,CAAC,kBAAkB,IAAI,CAAA,yBAAA,CAA2B,CAAC,CAAA;QAC/D,MAAM,CAAA,WAAA,EAAc,IAAI,CAAA,IAAA,CAAM,CAAA;AAC9B,QAAA,MAAMC,gBAAS,CAAA;AACf,QAAA,MAAM,UAAU,CAAA;AAChB,QAAA,MAAMA,gBAAS,CAAA;AAEf,QAAA,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACjD,MAAM,CAAA,iCAAA,EAAoC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,mDAAmD,CAAA;AACjJ,YAAA,MAAMA,gBAAS,CAAA;AACf,YAAA,MAAM,yBAAyB,CAAA;AAC/B,YAAA,MAAMA,gBAAS,CAAA;AAEf,YAAA,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE;gBAC/B,IAAI,SAAS,KAAKE,8BAAS;oBAAE,SAAQ;AAErC,gBAAA,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAA;AACzD,gBAAA,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC5B,MAAM,CAAA,MAAA,EAAS,SAAS,CAAC,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAA;iBACnE;gBACD,MAAM,CAAA,MAAA,EAAS,SAAS,CAAC,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAA;gBACjE,OAAOC,aAAM,CACX,CAAA,OAAA,EAAU,GAAG,CAAC,IAAI,CAAiB,cAAA,EAAA,IAAI,CAAG,EAAA,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAU,QAAA,CAAA,CACpI,CAAA;aACF;AACD,YAAA,MAAMC,6BAAsB,CAAA;;AAG5B,YAAA,MAAM,kDAAkD,CAAA;AACxD,YAAA,MAAMH,gBAAS,CAAA;AACf,YAAA,MAAM,IAAI,CAAA;AACV,YAAA,MAAMI,cAAO,CAAA;SACd;AAED,QAAA,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE;AAC/B,YAAA,MAAM,UAAU,GAAG,IAAI,KAAK,QAAQ,GAAGC,sCAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;AAC7F,YAAA,IAAI,SAAS,KAAKJ,8BAAS,EAAE;gBAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAIK,iBAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,SAAS,CAAE,CAAA;AACtF,gBAAA,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAA;gBACzD,OAAOR,YAAK,CAAC;AACX,oBAAA,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,WAAA,EAAc,SAAS,CAAa,WAAA,CAAA;AAC/D,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EAAE,CAAyB,uBAAA,CAAA;AAClC,qBAAA;AACD,oBAAA,OAAO,EAAE,oDAAoD;AAC9D,iBAAA,CAAC,CAAA;gBACF,OAAO,aAAa,CAAC;AACnB,oBAAA,QAAQ,EAAE,IAAI;oBACd,SAAS;AACT,oBAAA,IAAI,EAAE,SAAS,CAAC,wBAAwB,CAAC,UAAU,CAAC;AACpD,oBAAA,SAAS,EAAE,SAAS;oBACpB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,oBAAoB,EAAE,CAAG,EAAA,kBAAkB,GAAG,+BAA+B,GAAG,EAAE,CAChF,EAAA,UAAU,EAAE,IAAI,GAAG,CAAA,GAAA,EAAM,UAAU,CAAC,IAAI,CAAA,CAAE,GAAG,EAC/C,CAAE,CAAA;AACF,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC,CAAA;aACH;SACF;AACD,QAAA,MAAMK,6BAAsB,CAAA;AAC5B,QAAA,MAAMA,6BAAsB,CAAA;AAC5B,QAAA,MAAMC,cAAO,CAAA;KACd;AACH,CAAC;AAED,UAAU,iBAAiB,CAAC,EAAE,2BAA2B,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAoB,EAAE,MAAc,EAAA;IACxH,MAAM,eAAe,GAAG,IAAIE,iBAAS,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAA;IAC5D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAM;IAE7D,OAAOR,YAAK,CAAC;QACX,WAAW,EAAE,CAAmC,gCAAA,EAAA,eAAe,CAAa,WAAA,CAAA;QAC5E,cAAc,EAAE,MAAM,CAAC,IAAI;AAC3B,QAAA,MAAM,EAAE;AACN,YAAA,MAAM,EAAE,CAAyB,uBAAA,CAAA;AAClC,SAAA;AACD,QAAA,OAAO,EAAE,oDAAoD;AAC9D,KAAA,CAAC,CAAA;IACF,OAAO,aAAa,CAAC;AACnB,QAAA,QAAQ,EAAE,KAAK;QACf,SAAS;QACT,IAAI,EAAE,SAAS,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC;AACtF,QAAA,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,QAAA,oBAAoB,EAAE,mBAAmB;AACzC,QAAA,YAAY,EAAE,IAAI;AACnB,KAAA,CAAC,CAAA;AACJ,CAAC;AAED,UAAU,aAAa,CAAC,CAQvB,EAAA;AACC,IAAA,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;IAC5F,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;IACpE,MAAM,CAAA,EAAG,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAG,EAAA,IAAI,uBAAuB,YAAY,CAAA,aAAA,EAAgB,aAAa,CAAA,KAAA,EAAQ,YAAY,CAAA,eAAA,EAAkB,aAAa,CAAA,GAAA,EAAM,oBAAoB,CAAA,4BAAA,EAA+B,oBAAoB,CAAA,EAAA,CAAI,CAAA;AAC7O,IAAA,MAAMC,gBAAS,CAAA;AACf,IAAA,MAAM,UAAU,CAAA;AAChB,IAAA,MAAMA,gBAAS,CAAA;AACf,IAAA,MAAM,YAAY,CAAA;IAClB,MAAM,CAAA,SAAA,EAAY,aAAa,CAAA,WAAA,CAAa,CAAA;AAC5C,IAAA,MAAM,qDAAqD,IAAI;AAC5D,SAAA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAc,WAAA,EAAA,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA,GAAA,EAAM,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC,CAAC,EAAE,CAAC;AAC7H,SAAA,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI,CAAA;AACjB,IAAA,MAAMC,gBAAS,CAAA;AACf,IAAA,MAAM,GAAG,CAAA;AACT,IAAA,MAAMA,gBAAS,CAAA;IACf,MAAM,CAAA,CAAA,EAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAA,CAAE,CAAA;AACjC;;;;"}
|
|
1
|
+
{"version":3,"file":"params-factory.js","sources":["../../src/client/params-factory.ts"],"sourcesContent":["import { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, indent, jsDoc, NewLine } from '../output/writer'\nimport { GeneratorContext } from './generator-context'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\nimport { Sanitizer } from '../util/sanitization'\nimport { Method } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport function* paramsFactory(ctx: GeneratorContext): DocumentParts {\n yield* jsDoc(`Exposes methods for constructing \\`AppClient\\` params objects for ABI calls to the ${ctx.name} smart contract`)\n yield `export abstract class ${ctx.name}ParamsFactory {`\n yield IncIndent\n\n yield* opMethods(ctx)\n\n for (const method of ctx.app.methods) {\n yield* callFactoryMethod(ctx, method)\n }\n\n yield DecIndent\n\n yield '}'\n}\n\nfunction* opMethods(ctx: GeneratorContext): DocumentParts {\n const { app, callConfig } = ctx\n\n yield* operationMethod(\n ctx,\n `Constructs create ABI call params for the ${app.name} smart contract`,\n callConfig.createMethods,\n 'create',\n true,\n )\n yield* operationMethod(\n ctx,\n `Constructs update ABI call params for the ${app.name} smart contract`,\n callConfig.updateMethods,\n 'update',\n true,\n )\n yield* operationMethod(ctx, `Constructs delete ABI call params for the ${app.name} smart contract`, callConfig.deleteMethods, 'delete')\n yield* operationMethod(ctx, `Constructs opt-in ABI call params for the ${app.name} smart contract`, callConfig.optInMethods, 'optIn')\n yield* operationMethod(\n ctx,\n `Constructs close out ABI call params for the ${app.name} smart contract`,\n callConfig.closeOutMethods,\n 'closeOut',\n )\n}\n\nfunction* operationMethod(\n ctx: GeneratorContext,\n description: string,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n const { app, methodSignatureToUniqueName, sanitizer, name } = ctx\n if (methods.length > 0 && methods.some((m) => m !== BARE_CALL)) {\n yield* jsDoc(`Gets available ${verb} ABI call param factories`)\n yield `static get ${verb}() {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n\n if (['create', 'update', 'delete'].includes(verb)) {\n yield `_resolveByMethod<TParams extends ${ctx.name}${verb[0].toUpperCase()}${verb.substring(1)}CallParams & {method: string}>(params: TParams) {`\n yield IncIndent\n yield `switch(params.method) {`\n yield IncIndent\n\n for (const methodSig of methods) {\n if (methodSig === BARE_CALL) continue\n\n const uniqueName = methodSignatureToUniqueName[methodSig]\n if (uniqueName !== methodSig) {\n yield `case '${sanitizer.makeSafeStringTypeLiteral(uniqueName)}':`\n }\n yield `case '${sanitizer.makeSafeStringTypeLiteral(methodSig)}':`\n yield* indent(\n `return ${ctx.name}ParamsFactory.${verb}${sanitizer.getSafeMemberAccessor(sanitizer.makeSafeMethodIdentifier(uniqueName))}(params)`,\n )\n }\n yield DecIndentAndCloseBlock\n\n // Ordinarily we'd pop in the params.method value, but we can't here since it knows at compile time the type of params.method is never\n yield `throw new Error(\\`Unknown ' + verb + ' method\\`)`\n yield DecIndent\n yield '},'\n yield NewLine\n }\n\n for (const methodSig of methods) {\n const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined\n if (methodSig !== BARE_CALL) {\n const method = app.methods.find((m) => new ABIMethod(m).getSignature() === methodSig)!\n const uniqueName = methodSignatureToUniqueName[methodSig]\n yield* jsDoc({\n description: `${description} using the ${methodSig} ABI method`,\n params: {\n params: `Parameters for the call`,\n },\n returns: 'An `AppClientMethodCallParams` object for the call',\n })\n yield* factoryMethod({\n isNested: true,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(uniqueName),\n signature: methodSig,\n args: method.args,\n additionalParamTypes: `${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }`,\n contractName: name,\n })\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n\nfunction* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer, name }: GeneratorContext, method: Method) {\n const methodSignature = new ABIMethod(method).getSignature()\n if (!callConfig.callMethods.includes(methodSignature)) return\n\n yield* jsDoc({\n description: `Constructs a no op call for the ${methodSignature} ABI method`,\n abiDescription: method.desc,\n params: {\n params: `Parameters for the call`,\n },\n returns: 'An `AppClientMethodCallParams` object for the call',\n })\n yield* factoryMethod({\n isNested: false,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),\n signature: methodSignature,\n args: method.args,\n additionalParamTypes: ' & CallOnComplete',\n contractName: name,\n })\n}\n\nfunction* factoryMethod(m: {\n isNested: boolean\n name?: string\n signature: string\n args: Array<{ name?: string }>\n additionalParamTypes?: string\n sanitizer: Sanitizer\n contractName: string\n}) {\n const { isNested, name, signature, args, additionalParamTypes, sanitizer, contractName } = m\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(signature)\n yield `${isNested ? '' : 'static '}${name}(params: CallParams<${contractName}Args['obj']['${methodSigSafe}'] | ${contractName}Args['tuple']['${methodSigSafe}']>${additionalParamTypes}): AppClientMethodCallParams${additionalParamTypes} {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n yield '...params,'\n yield `method: '${methodSigSafe}' as const,`\n yield `args: Array.isArray(params.args) ? params.args : [${args\n .map((a, i) => `params.args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name ?? `arg${i + 1}`))}`)\n .join(', ')}],`\n yield DecIndent\n yield '}'\n yield DecIndent\n yield `}${isNested ? ',' : ''}`\n}\n"],"names":["jsDoc","IncIndent","DecIndent","BARE_CALL","indent","DecIndentAndCloseBlock","NewLine","getCreateOnCompleteOptions","ABIMethod"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params-factory.mjs","sources":["../../src/client/params-factory.ts"],"sourcesContent":["import { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, indent, jsDoc, NewLine } from '../output/writer'\nimport { GeneratorContext } from './generator-context'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\nimport { Sanitizer } from '../util/sanitization'\nimport { Method } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport function* paramsFactory(ctx: GeneratorContext): DocumentParts {\n yield* jsDoc(`Exposes methods for constructing \\`AppClient\\` params objects for ABI calls to the ${ctx.name} smart contract`)\n yield `export abstract class ${ctx.name}ParamsFactory {`\n yield IncIndent\n\n yield* opMethods(ctx)\n\n for (const method of ctx.app.methods) {\n yield* callFactoryMethod(ctx, method)\n }\n\n yield DecIndent\n\n yield '}'\n}\n\nfunction* opMethods(ctx: GeneratorContext): DocumentParts {\n const { app, callConfig } = ctx\n\n yield* operationMethod(\n ctx,\n `Constructs create ABI call params for the ${app.name} smart contract`,\n callConfig.createMethods,\n 'create',\n true,\n )\n yield* operationMethod(\n ctx,\n `Constructs update ABI call params for the ${app.name} smart contract`,\n callConfig.updateMethods,\n 'update',\n true,\n )\n yield* operationMethod(ctx, `Constructs delete ABI call params for the ${app.name} smart contract`, callConfig.deleteMethods, 'delete')\n yield* operationMethod(ctx, `Constructs opt-in ABI call params for the ${app.name} smart contract`, callConfig.optInMethods, 'optIn')\n yield* operationMethod(\n ctx,\n `Constructs close out ABI call params for the ${app.name} smart contract`,\n callConfig.closeOutMethods,\n 'closeOut',\n )\n}\n\nfunction* operationMethod(\n ctx: GeneratorContext,\n description: string,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n const { app, methodSignatureToUniqueName, sanitizer, name } = ctx\n if (methods.length > 0 && methods.some((m) => m !== BARE_CALL)) {\n yield* jsDoc(`Gets available ${verb} ABI call param factories`)\n yield `static get ${verb}() {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n\n if (['create', 'update', 'delete'].includes(verb)) {\n yield `_resolveByMethod<TParams extends ${ctx.name}${verb[0].toUpperCase()}${verb.substring(1)}CallParams & {method: string}>(params: TParams) {`\n yield IncIndent\n yield `switch(params.method) {`\n yield IncIndent\n\n for (const methodSig of methods) {\n if (methodSig === BARE_CALL) continue\n\n const uniqueName = methodSignatureToUniqueName[methodSig]\n if (uniqueName !== methodSig) {\n yield `case '${sanitizer.makeSafeStringTypeLiteral(uniqueName)}':`\n }\n yield `case '${sanitizer.makeSafeStringTypeLiteral(methodSig)}':`\n yield* indent(\n `return ${ctx.name}ParamsFactory.${verb}${sanitizer.getSafeMemberAccessor(sanitizer.makeSafeMethodIdentifier(uniqueName))}(params)`,\n )\n }\n yield DecIndentAndCloseBlock\n\n // Ordinarily we'd pop in the params.method value, but we can't here since it knows at compile time the type of params.method is never\n yield `throw new Error(\\`Unknown ' + verb + ' method\\`)`\n yield DecIndent\n yield '},'\n yield NewLine\n }\n\n for (const methodSig of methods) {\n const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined\n if (methodSig !== BARE_CALL) {\n const method = app.methods.find((m) => new ABIMethod(m).getSignature() === methodSig)!\n const uniqueName = methodSignatureToUniqueName[methodSig]\n yield* jsDoc({\n description: `${description} using the ${methodSig} ABI method`,\n params: {\n params: `Parameters for the call`,\n },\n returns: 'An `AppClientMethodCallParams` object for the call',\n })\n yield* factoryMethod({\n isNested: true,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(uniqueName),\n signature: methodSig,\n args: method.args,\n additionalParamTypes: `${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }`,\n contractName: name,\n })\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n\nfunction* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer, name }: GeneratorContext, method: Method) {\n const methodSignature = new ABIMethod(method).getSignature()\n if (!callConfig.callMethods.includes(methodSignature)) return\n\n yield* jsDoc({\n description: `Constructs a no op call for the ${methodSignature} ABI method`,\n abiDescription: method.desc,\n params: {\n params: `Parameters for the call`,\n },\n returns: 'An `AppClientMethodCallParams` object for the call',\n })\n yield* factoryMethod({\n isNested: false,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),\n signature: methodSignature,\n args: method.args,\n additionalParamTypes: ' & CallOnComplete',\n contractName: name,\n })\n}\n\nfunction* factoryMethod(m: {\n isNested: boolean\n name?: string\n signature: string\n args: Array<{ name?: string }>\n additionalParamTypes?: string\n sanitizer: Sanitizer\n contractName: string\n}) {\n const { isNested, name, signature, args, additionalParamTypes, sanitizer, contractName } = m\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(signature)\n yield `${isNested ? '' : 'static '}${name}(params: CallParams<${contractName}Args['obj']['${methodSigSafe}'] | ${contractName}Args['tuple']['${methodSigSafe}']>${additionalParamTypes}): AppClientMethodCallParams${additionalParamTypes} {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n yield '...params,'\n yield `method: '${methodSigSafe}' as const,`\n yield `args: Array.isArray(params.args) ? params.args : [${args\n .map((a, i) => `params.args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name ?? `arg${i + 1}`))}`)\n .join(', ')}],`\n yield DecIndent\n yield '}'\n yield DecIndent\n yield `}${isNested ? ',' : ''}`\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"params-factory.mjs","sources":["../../src/client/params-factory.ts"],"sourcesContent":["import { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent, indent, jsDoc, NewLine } from '../output/writer'\nimport { GeneratorContext } from './generator-context'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\nimport { Sanitizer } from '../util/sanitization'\nimport { Method } from '@algorandfoundation/algokit-utils/types/app-arc56'\nimport { ABIMethod } from 'algosdk'\n\nexport function* paramsFactory(ctx: GeneratorContext): DocumentParts {\n yield* jsDoc(`Exposes methods for constructing \\`AppClient\\` params objects for ABI calls to the ${ctx.name} smart contract`)\n yield `export abstract class ${ctx.name}ParamsFactory {`\n yield IncIndent\n\n yield* opMethods(ctx)\n\n for (const method of ctx.app.methods) {\n yield* callFactoryMethod(ctx, method)\n }\n\n yield DecIndent\n\n yield '}'\n}\n\nfunction* opMethods(ctx: GeneratorContext): DocumentParts {\n const { app, callConfig } = ctx\n\n yield* operationMethod(\n ctx,\n `Constructs create ABI call params for the ${app.name} smart contract`,\n callConfig.createMethods,\n 'create',\n true,\n )\n yield* operationMethod(\n ctx,\n `Constructs update ABI call params for the ${app.name} smart contract`,\n callConfig.updateMethods,\n 'update',\n true,\n )\n yield* operationMethod(ctx, `Constructs delete ABI call params for the ${app.name} smart contract`, callConfig.deleteMethods, 'delete')\n yield* operationMethod(ctx, `Constructs opt-in ABI call params for the ${app.name} smart contract`, callConfig.optInMethods, 'optIn')\n yield* operationMethod(\n ctx,\n `Constructs close out ABI call params for the ${app.name} smart contract`,\n callConfig.closeOutMethods,\n 'closeOut',\n )\n}\n\nfunction* operationMethod(\n ctx: GeneratorContext,\n description: string,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n const { app, methodSignatureToUniqueName, sanitizer, name } = ctx\n if (methods.length > 0 && methods.some((m) => m !== BARE_CALL)) {\n yield* jsDoc(`Gets available ${verb} ABI call param factories`)\n yield `static get ${verb}() {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n\n if (['create', 'update', 'delete'].includes(verb)) {\n yield `_resolveByMethod<TParams extends ${ctx.name}${verb[0].toUpperCase()}${verb.substring(1)}CallParams & {method: string}>(params: TParams) {`\n yield IncIndent\n yield `switch(params.method) {`\n yield IncIndent\n\n for (const methodSig of methods) {\n if (methodSig === BARE_CALL) continue\n\n const uniqueName = methodSignatureToUniqueName[methodSig]\n if (uniqueName !== methodSig) {\n yield `case '${sanitizer.makeSafeStringTypeLiteral(uniqueName)}':`\n }\n yield `case '${sanitizer.makeSafeStringTypeLiteral(methodSig)}':`\n yield* indent(\n `return ${ctx.name}ParamsFactory.${verb}${sanitizer.getSafeMemberAccessor(sanitizer.makeSafeMethodIdentifier(uniqueName))}(params)`,\n )\n }\n yield DecIndentAndCloseBlock\n\n // Ordinarily we'd pop in the params.method value, but we can't here since it knows at compile time the type of params.method is never\n yield `throw new Error(\\`Unknown ' + verb + ' method\\`)`\n yield DecIndent\n yield '},'\n yield NewLine\n }\n\n for (const methodSig of methods) {\n const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined\n if (methodSig !== BARE_CALL) {\n const method = app.methods.find((m) => new ABIMethod(m).getSignature() === methodSig)!\n const uniqueName = methodSignatureToUniqueName[methodSig]\n yield* jsDoc({\n description: `${description} using the ${methodSig} ABI method`,\n params: {\n params: `Parameters for the call`,\n },\n returns: 'An `AppClientMethodCallParams` object for the call',\n })\n yield* factoryMethod({\n isNested: true,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(uniqueName),\n signature: methodSig,\n args: method.args,\n additionalParamTypes: `${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }`,\n contractName: name,\n })\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n\nfunction* callFactoryMethod({ methodSignatureToUniqueName, callConfig, sanitizer, name }: GeneratorContext, method: Method) {\n const methodSignature = new ABIMethod(method).getSignature()\n if (!callConfig.callMethods.includes(methodSignature)) return\n\n yield* jsDoc({\n description: `Constructs a no op call for the ${methodSignature} ABI method`,\n abiDescription: method.desc,\n params: {\n params: `Parameters for the call`,\n },\n returns: 'An `AppClientMethodCallParams` object for the call',\n })\n yield* factoryMethod({\n isNested: false,\n sanitizer,\n name: sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]),\n signature: methodSignature,\n args: method.args,\n additionalParamTypes: ' & CallOnComplete',\n contractName: name,\n })\n}\n\nfunction* factoryMethod(m: {\n isNested: boolean\n name?: string\n signature: string\n args: Array<{ name?: string }>\n additionalParamTypes?: string\n sanitizer: Sanitizer\n contractName: string\n}) {\n const { isNested, name, signature, args, additionalParamTypes, sanitizer, contractName } = m\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(signature)\n yield `${isNested ? '' : 'static '}${name}(params: CallParams<${contractName}Args['obj']['${methodSigSafe}'] | ${contractName}Args['tuple']['${methodSigSafe}']>${additionalParamTypes}): AppClientMethodCallParams${additionalParamTypes} {`\n yield IncIndent\n yield `return {`\n yield IncIndent\n yield '...params,'\n yield `method: '${methodSigSafe}' as const,`\n yield `args: Array.isArray(params.args) ? params.args : [${args\n .map((a, i) => `params.args${sanitizer.getSafeMemberAccessor(sanitizer.makeSafePropertyIdentifier(a.name ?? `arg${i + 1}`))}`)\n .join(', ')}],`\n yield DecIndent\n yield '}'\n yield DecIndent\n yield `}${isNested ? ',' : ''}`\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility-types.js","sources":["../../src/client/utility-types.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* utilityTypes(): DocumentParts {\n yield `\n /**\n * A state record containing binary data\n */\n export interface BinaryState {\n /**\n * Gets the state value as a Uint8Array\n */\n asByteArray(): Uint8Array | undefined\n /**\n * Gets the state value as a string\n */\n asString(): string | undefined\n }\n\n class BinaryStateValue implements BinaryState {\n constructor(private value: Uint8Array | undefined) {}\n\n asByteArray(): Uint8Array | undefined {\n return this.value\n }\n\n asString(): string | undefined {\n return this.value !== undefined ? Buffer.from(this.value).toString('utf-8') : undefined\n }\n }\n\n /**\n * Expands types for IntelliSense so they are more human readable\n * See https://stackoverflow.com/a/69288824\n */\n export type Expand<T> = T extends (...args: infer A) => infer R\n ? (...args: Expand<A>) => Expand<R>\n : T extends infer O\n ? { [K in keyof O]: O[K] }\n : never\n `\n}\n"],"names":[],"mappings":";;AAEM,UAAW,YAAY,GAAA;IAC3B,MAAM
|
|
1
|
+
{"version":3,"file":"utility-types.js","sources":["../../src/client/utility-types.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* utilityTypes(): DocumentParts {\n yield `\n /**\n * A state record containing binary data\n */\n export interface BinaryState {\n /**\n * Gets the state value as a Uint8Array\n */\n asByteArray(): Uint8Array | undefined\n /**\n * Gets the state value as a string\n */\n asString(): string | undefined\n }\n\n class BinaryStateValue implements BinaryState {\n constructor(private value: Uint8Array | undefined) {}\n\n asByteArray(): Uint8Array | undefined {\n return this.value\n }\n\n asString(): string | undefined {\n return this.value !== undefined ? Buffer.from(this.value).toString('utf-8') : undefined\n }\n }\n\n /**\n * Expands types for IntelliSense so they are more human readable\n * See https://stackoverflow.com/a/69288824\n */\n export type Expand<T> = T extends (...args: infer A) => infer R\n ? (...args: Expand<A>) => Expand<R>\n : T extends infer O\n ? { [K in keyof O]: O[K] }\n : never\n `\n}\n"],"names":[],"mappings":";;AAEM,UAAW,YAAY,GAAA;IAC3B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCL;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility-types.mjs","sources":["../../src/client/utility-types.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* utilityTypes(): DocumentParts {\n yield `\n /**\n * A state record containing binary data\n */\n export interface BinaryState {\n /**\n * Gets the state value as a Uint8Array\n */\n asByteArray(): Uint8Array | undefined\n /**\n * Gets the state value as a string\n */\n asString(): string | undefined\n }\n\n class BinaryStateValue implements BinaryState {\n constructor(private value: Uint8Array | undefined) {}\n\n asByteArray(): Uint8Array | undefined {\n return this.value\n }\n\n asString(): string | undefined {\n return this.value !== undefined ? Buffer.from(this.value).toString('utf-8') : undefined\n }\n }\n\n /**\n * Expands types for IntelliSense so they are more human readable\n * See https://stackoverflow.com/a/69288824\n */\n export type Expand<T> = T extends (...args: infer A) => infer R\n ? (...args: Expand<A>) => Expand<R>\n : T extends infer O\n ? { [K in keyof O]: O[K] }\n : never\n `\n}\n"],"names":[],"mappings":"AAEM,UAAW,YAAY,GAAA;IAC3B,MAAM
|
|
1
|
+
{"version":3,"file":"utility-types.mjs","sources":["../../src/client/utility-types.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* utilityTypes(): DocumentParts {\n yield `\n /**\n * A state record containing binary data\n */\n export interface BinaryState {\n /**\n * Gets the state value as a Uint8Array\n */\n asByteArray(): Uint8Array | undefined\n /**\n * Gets the state value as a string\n */\n asString(): string | undefined\n }\n\n class BinaryStateValue implements BinaryState {\n constructor(private value: Uint8Array | undefined) {}\n\n asByteArray(): Uint8Array | undefined {\n return this.value\n }\n\n asString(): string | undefined {\n return this.value !== undefined ? Buffer.from(this.value).toString('utf-8') : undefined\n }\n }\n\n /**\n * Expands types for IntelliSense so they are more human readable\n * See https://stackoverflow.com/a/69288824\n */\n export type Expand<T> = T extends (...args: infer A) => infer R\n ? (...args: Expand<A>) => Expand<R>\n : T extends infer O\n ? { [K in keyof O]: O[K] }\n : never\n `\n}\n"],"names":[],"mappings":"AAEM,UAAW,YAAY,GAAA;IAC3B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCL;AACH;;;;"}
|
package/output/writer.d.ts
CHANGED
|
@@ -17,8 +17,8 @@ export declare function writeDocumentPartsToStream(document: DocumentParts, stre
|
|
|
17
17
|
write(chunk: string): void;
|
|
18
18
|
}, options?: WriteOptions): void;
|
|
19
19
|
export declare function writeDocumentPartsToString(document: DocumentParts, options?: WriteOptions): string;
|
|
20
|
-
export declare function inline(...parts: Array<Part | DocumentParts>): Generator<Part, void,
|
|
21
|
-
export declare function indent(...parts: Array<Part | DocumentParts>): Generator<Part, void,
|
|
20
|
+
export declare function inline(...parts: Array<Part | DocumentParts>): Generator<Part, void, any>;
|
|
21
|
+
export declare function indent(...parts: Array<Part | DocumentParts>): Generator<Part, void, any>;
|
|
22
22
|
export declare function jsDoc(docs: string | string[] | {
|
|
23
23
|
description: string | string[];
|
|
24
24
|
abiDescription?: string;
|
package/output/writer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sources":["../../src/output/writer.ts"],"sourcesContent":["export const IncIndent = Symbol('Increase Indent')\nexport const DecIndent = Symbol('Decrease Indent')\nexport const DecIndentAndCloseBlock = Symbol('Decrease Indent and write a closing brace')\nexport const NewLineMode = Symbol('New Line Mode')\nexport const RestoreLineMode = Symbol('Restore Line Mode')\nexport const PropertyDelimiter = Symbol('Property Delimiter')\nexport const InlineMode = Symbol('Inline Mode')\nexport const NewLine = Symbol('New Line')\n\nexport type Part =\n | string\n | typeof IncIndent\n | typeof DecIndent\n | typeof NewLineMode\n | typeof DecIndentAndCloseBlock\n | typeof InlineMode\n | typeof NewLine\n | typeof RestoreLineMode\n | typeof PropertyDelimiter\nexport type DocumentParts = Generator<Part, void>\n\nexport type WriteOptions = {\n indent?: string\n disableEslint?: boolean\n header?: string\n}\n\ninterface StringWriter {\n write(value: string): void\n get last(): string\n}\n\nexport function writeDocumentPartsToStream(document: DocumentParts, stream: { write(chunk: string): void }, options: WriteOptions = {}) {\n const writer = {\n _last: '',\n write(val: string) {\n this._last = val\n stream.write(val)\n },\n get last() {\n return this._last\n },\n }\n writeDocumentPartsTo(document, options, writer)\n}\n\nexport function writeDocumentPartsToString(document: DocumentParts, options: WriteOptions = {}) {\n const writer = {\n result: [] as string[],\n _last: '',\n write(val: string) {\n this._last = val\n this.result.push(val)\n },\n get last() {\n return this._last\n },\n toString() {\n return this.result.join('')\n },\n }\n writeDocumentPartsTo(document, options, writer)\n return writer.toString()\n}\n\nexport function* inline(...parts: Array<Part | DocumentParts>) {\n yield InlineMode\n for (const part of parts) {\n if (typeof part === 'string' || typeof part === 'symbol') yield part\n else yield* part\n }\n yield RestoreLineMode\n}\n\nexport function* indent(...parts: Array<Part | DocumentParts>) {\n yield IncIndent\n for (const part of parts) {\n if (typeof part === 'string' || typeof part === 'symbol') yield part\n else yield* part\n }\n yield DecIndent\n}\n\nexport function* jsDoc(\n docs: string | string[] | { description: string | string[]; abiDescription?: string; params?: Record<string, string>; returns?: string },\n) {\n yield `/**`\n if (typeof docs === 'string' || Array.isArray(docs)) {\n const description = typeof docs === 'string' ? [docs] : docs\n for (const line of description) {\n yield ` * ${line}`\n }\n } else {\n const description = typeof docs.description === 'string' ? [docs.description] : docs.description\n for (const line of description) {\n yield ` * ${line}`\n }\n if (docs.abiDescription) {\n yield ' *'\n yield ` * ${docs.abiDescription}`\n }\n if (docs.params || docs.returns) {\n yield ' *'\n }\n for (const [paramName, paramDesc] of Object.entries(docs.params ?? {})) {\n yield ` * @param ${paramName} ${paramDesc}`\n }\n if (docs.returns) yield ` * @returns ${docs.returns}`\n }\n yield ' */'\n}\n\nfunction writeDocumentPartsTo(document: DocumentParts, { indent = ' ', ...options }: WriteOptions, writer: StringWriter): void {\n if (options.header) writer.write(`${options.header}\\n`)\n if (options.disableEslint) writer.write('/* eslint-disable */\\n')\n\n const lineModes = [NewLineMode]\n const currentLineMode = () => lineModes.at(-1) ?? NewLineMode\n\n let curIndent = ''\n for (const part of document) {\n switch (part) {\n case IncIndent:\n curIndent += indent\n break\n case DecIndent:\n curIndent = curIndent.slice(0, -indent.length)\n break\n case DecIndentAndCloseBlock:\n curIndent = curIndent.slice(0, -indent.length)\n writer.write(`${curIndent}}\\n`)\n break\n case NewLineMode:\n lineModes.push(NewLineMode)\n if (writer.last.slice(-1)[0] !== '\\n') {\n writer.write('\\n')\n }\n break\n case InlineMode:\n lineModes.push(InlineMode)\n break\n case RestoreLineMode:\n lineModes.pop()\n\n if (currentLineMode() === NewLineMode && writer.last.slice(-1)[0] !== '\\n') {\n writer.write('\\n')\n }\n break\n case PropertyDelimiter:\n if (currentLineMode() === NewLineMode) {\n writer.write('\\n')\n } else {\n writer.write(', ')\n }\n break\n case NewLine:\n writer.write('\\n')\n break\n default:\n // Multi-line\n if (part.includes('\\n') || part.includes('\\r')) {\n if (writer.last.slice(-1)[0] !== '\\n') writer.write('\\n')\n const normalisedLineEndings = part.replaceAll(/\\r\\n/g, '\\n').replaceAll(/\\r/g, '\\n').replace(/^\\n/, '').trimEnd()\n const lines = normalisedLineEndings.split('\\n')\n const baseIndent = lines[0].match(/^\\s+/)?.[0] ?? ''\n for (const line of lines) {\n writer.write(curIndent + line.replace(new RegExp(`^${baseIndent}`, ''), '').trimEnd())\n writer.write('\\n')\n }\n } else {\n if (writer.last.slice(-1)[0] === '\\n') writer.write(curIndent)\n writer.write(part)\n }\n if (currentLineMode() === NewLineMode) writer.write('\\n')\n break\n }\n }\n}\n"],"names":[],"mappings":";;MAAa,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAC;MACrC,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAC;MACrC,sBAAsB,GAAG,MAAM,CAAC,2CAA2C,EAAC;MAC5E,WAAW,GAAG,MAAM,CAAC,eAAe,EAAC;MACrC,eAAe,GAAG,MAAM,CAAC,mBAAmB,EAAC;MAC7C,iBAAiB,GAAG,MAAM,CAAC,oBAAoB,EAAC;MAChD,UAAU,GAAG,MAAM,CAAC,aAAa,EAAC;MAClC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAC;AAyBnC,SAAU,0BAA0B,CAAC,QAAuB,EAAE,MAAsC,EAAE,UAAwB,EAAE,EAAA;AACpI,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,KAAK,CAAC,GAAW,EAAA;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;AAChB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;SAClB;AACD,QAAA,IAAI,IAAI,GAAA;YACN,OAAO,IAAI,CAAC,KAAK,CAAA;SAClB;KACF,CAAA;AACD,IAAA,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AACjD,CAAC;SAEe,0BAA0B,CAAC,QAAuB,EAAE,UAAwB,EAAE,EAAA;AAC5F,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,MAAM,EAAE,EAAc;AACtB,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,KAAK,CAAC,GAAW,EAAA;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;AAChB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACtB;AACD,QAAA,IAAI,IAAI,GAAA;YACN,OAAO,IAAI,CAAC,KAAK,CAAA;SAClB;QACD,QAAQ,GAAA;YACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SAC5B;KACF,CAAA;AACD,IAAA,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAC/C,IAAA,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;AAC1B,CAAC;UAEgB,MAAM,CAAC,GAAG,KAAkC,EAAA;AAC3D,IAAA,MAAM,UAAU,CAAA;AAChB,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;AAAE,YAAA,MAAM,IAAI,CAAA;;YAC/D,OAAO,IAAI,CAAA;KACjB;AACD,IAAA,MAAM,eAAe,CAAA;AACvB,CAAC;UAEgB,MAAM,CAAC,GAAG,KAAkC,EAAA;AAC3D,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;AAAE,YAAA,MAAM,IAAI,CAAA;;YAC/D,OAAO,IAAI,CAAA;KACjB;AACD,IAAA,MAAM,SAAS,CAAA;AACjB,CAAC;AAEc,UAAE,KAAK,CACpB,IAAwI,EAAA;AAExI,IAAA,MAAM,KAAK,CAAA;AACX,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACnD,QAAA,MAAM,WAAW,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAC5D,QAAA,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;YAC9B,MAAM,CAAA,GAAA,EAAM,IAAI,CAAA,CAAE,CAAA;SACnB;KACF;SAAM;QACL,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CAAA;AAChG,QAAA,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;YAC9B,MAAM,CAAA,GAAA,EAAM,IAAI,CAAA,CAAE,CAAA;SACnB;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,MAAM,IAAI,CAAA;AACV,YAAA,MAAM,CAAM,GAAA,EAAA,IAAI,CAAC,cAAc,EAAE,CAAA;SAClC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AAC/B,YAAA,MAAM,IAAI,CAAA;SACX;AACD,QAAA,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;AACtE,YAAA,MAAM,CAAa,UAAA,EAAA,SAAS,CAAI,CAAA,EAAA,SAAS,EAAE,CAAA;SAC5C;QACD,IAAI,IAAI,CAAC,OAAO;AAAE,YAAA,MAAM,CAAe,YAAA,EAAA,IAAI,CAAC,OAAO,EAAE,CAAA;KACtD;AACD,IAAA,MAAM,KAAK,CAAA;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAuB,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO,EAAgB,EAAE,MAAoB,EAAA;IACtH,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,KAAK,CAAC,CAAA,EAAG,OAAO,CAAC,MAAM,CAAI,EAAA,CAAA,CAAC,CAAA;IACvD,IAAI,OAAO,CAAC,aAAa;AAAE,QAAA,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;AAEjE,IAAA,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,CAAA;AAC/B,IAAA,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAA;IAE7D,IAAI,SAAS,GAAG,EAAE,CAAA;AAClB,IAAA,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;QAC3B,QAAQ,IAAI;AACV,YAAA,KAAK,SAAS;gBACZ,SAAS,IAAI,MAAM,CAAA;gBACnB,MAAK;AACP,YAAA,KAAK,SAAS;AACZ,gBAAA,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAC9C,MAAK;AACP,YAAA,KAAK,sBAAsB;AACzB,gBAAA,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC9C,gBAAA,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA,GAAA,CAAK,CAAC,CAAA;gBAC/B,MAAK;AACP,YAAA,KAAK,WAAW;AACd,gBAAA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC3B,gBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACrC,oBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;iBACnB;gBACD,MAAK;AACP,YAAA,KAAK,UAAU;AACb,gBAAA,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC1B,MAAK;AACP,YAAA,KAAK,eAAe;gBAClB,SAAS,CAAC,GAAG,EAAE,CAAA;gBAEf,IAAI,eAAe,EAAE,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AAC1E,oBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;iBACnB;gBACD,MAAK;AACP,YAAA,KAAK,iBAAiB;AACpB,gBAAA,IAAI,eAAe,EAAE,KAAK,WAAW,EAAE;AACrC,oBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;iBACnB;qBAAM;AACL,oBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;iBACnB;gBACD,MAAK;AACP,YAAA,KAAK,OAAO;AACV,gBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAClB,MAAK;AACP,YAAA;;AAEE,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC9C,oBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;AAAE,wBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBACzD,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;oBACjH,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC/C,oBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AACpD,oBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;wBACxB,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,UAAU,CAAA,CAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AACtF,wBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;qBACnB;iBACF;qBAAM;AACL,oBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;AAAE,wBAAA,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAC9D,oBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;iBACnB;gBACD,IAAI,eAAe,EAAE,KAAK,WAAW;AAAE,oBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACzD,MAAK;SACR;KACF;AACH;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"writer.js","sources":["../../src/output/writer.ts"],"sourcesContent":["export const IncIndent = Symbol('Increase Indent')\nexport const DecIndent = Symbol('Decrease Indent')\nexport const DecIndentAndCloseBlock = Symbol('Decrease Indent and write a closing brace')\nexport const NewLineMode = Symbol('New Line Mode')\nexport const RestoreLineMode = Symbol('Restore Line Mode')\nexport const PropertyDelimiter = Symbol('Property Delimiter')\nexport const InlineMode = Symbol('Inline Mode')\nexport const NewLine = Symbol('New Line')\n\nexport type Part =\n | string\n | typeof IncIndent\n | typeof DecIndent\n | typeof NewLineMode\n | typeof DecIndentAndCloseBlock\n | typeof InlineMode\n | typeof NewLine\n | typeof RestoreLineMode\n | typeof PropertyDelimiter\nexport type DocumentParts = Generator<Part, void>\n\nexport type WriteOptions = {\n indent?: string\n disableEslint?: boolean\n header?: string\n}\n\ninterface StringWriter {\n write(value: string): void\n get last(): string\n}\n\nexport function writeDocumentPartsToStream(document: DocumentParts, stream: { write(chunk: string): void }, options: WriteOptions = {}) {\n const writer = {\n _last: '',\n write(val: string) {\n this._last = val\n stream.write(val)\n },\n get last() {\n return this._last\n },\n }\n writeDocumentPartsTo(document, options, writer)\n}\n\nexport function writeDocumentPartsToString(document: DocumentParts, options: WriteOptions = {}) {\n const writer = {\n result: [] as string[],\n _last: '',\n write(val: string) {\n this._last = val\n this.result.push(val)\n },\n get last() {\n return this._last\n },\n toString() {\n return this.result.join('')\n },\n }\n writeDocumentPartsTo(document, options, writer)\n return writer.toString()\n}\n\nexport function* inline(...parts: Array<Part | DocumentParts>) {\n yield InlineMode\n for (const part of parts) {\n if (typeof part === 'string' || typeof part === 'symbol') yield part\n else yield* part\n }\n yield RestoreLineMode\n}\n\nexport function* indent(...parts: Array<Part | DocumentParts>) {\n yield IncIndent\n for (const part of parts) {\n if (typeof part === 'string' || typeof part === 'symbol') yield part\n else yield* part\n }\n yield DecIndent\n}\n\nexport function* jsDoc(\n docs: string | string[] | { description: string | string[]; abiDescription?: string; params?: Record<string, string>; returns?: string },\n) {\n yield `/**`\n if (typeof docs === 'string' || Array.isArray(docs)) {\n const description = typeof docs === 'string' ? [docs] : docs\n for (const line of description) {\n yield ` * ${line}`\n }\n } else {\n const description = typeof docs.description === 'string' ? [docs.description] : docs.description\n for (const line of description) {\n yield ` * ${line}`\n }\n if (docs.abiDescription) {\n yield ' *'\n yield ` * ${docs.abiDescription}`\n }\n if (docs.params || docs.returns) {\n yield ' *'\n }\n for (const [paramName, paramDesc] of Object.entries(docs.params ?? {})) {\n yield ` * @param ${paramName} ${paramDesc}`\n }\n if (docs.returns) yield ` * @returns ${docs.returns}`\n }\n yield ' */'\n}\n\nfunction writeDocumentPartsTo(document: DocumentParts, { indent = ' ', ...options }: WriteOptions, writer: StringWriter): void {\n if (options.header) writer.write(`${options.header}\\n`)\n if (options.disableEslint) writer.write('/* eslint-disable */\\n')\n\n const lineModes = [NewLineMode]\n const currentLineMode = () => lineModes.at(-1) ?? NewLineMode\n\n let curIndent = ''\n for (const part of document) {\n switch (part) {\n case IncIndent:\n curIndent += indent\n break\n case DecIndent:\n curIndent = curIndent.slice(0, -indent.length)\n break\n case DecIndentAndCloseBlock:\n curIndent = curIndent.slice(0, -indent.length)\n writer.write(`${curIndent}}\\n`)\n break\n case NewLineMode:\n lineModes.push(NewLineMode)\n if (writer.last.slice(-1)[0] !== '\\n') {\n writer.write('\\n')\n }\n break\n case InlineMode:\n lineModes.push(InlineMode)\n break\n case RestoreLineMode:\n lineModes.pop()\n\n if (currentLineMode() === NewLineMode && writer.last.slice(-1)[0] !== '\\n') {\n writer.write('\\n')\n }\n break\n case PropertyDelimiter:\n if (currentLineMode() === NewLineMode) {\n writer.write('\\n')\n } else {\n writer.write(', ')\n }\n break\n case NewLine:\n writer.write('\\n')\n break\n default:\n // Multi-line\n if (part.includes('\\n') || part.includes('\\r')) {\n if (writer.last.slice(-1)[0] !== '\\n') writer.write('\\n')\n const normalisedLineEndings = part.replaceAll(/\\r\\n/g, '\\n').replaceAll(/\\r/g, '\\n').replace(/^\\n/, '').trimEnd()\n const lines = normalisedLineEndings.split('\\n')\n const baseIndent = lines[0].match(/^\\s+/)?.[0] ?? ''\n for (const line of lines) {\n writer.write(curIndent + line.replace(new RegExp(`^${baseIndent}`, ''), '').trimEnd())\n writer.write('\\n')\n }\n } else {\n if (writer.last.slice(-1)[0] === '\\n') writer.write(curIndent)\n writer.write(part)\n }\n if (currentLineMode() === NewLineMode) writer.write('\\n')\n break\n }\n }\n}\n"],"names":[],"mappings":"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"}
|