@algorandfoundation/puya-ts 1.2.0-beta.37 → 1.2.0-beta.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/{analyser-service-Bk9GEtDA.js → analyser-service-Cj7WmqeW.js} +3 -3
  2. package/{analyser-service-Bk9GEtDA.js.map → analyser-service-Cj7WmqeW.js.map} +1 -1
  3. package/analyserService.mjs +3 -3
  4. package/{arc4-clientgen-qBTlCOIm.js → arc4-clientgen-7yQnFyxH.js} +2 -2
  5. package/{arc4-clientgen-qBTlCOIm.js.map → arc4-clientgen-7yQnFyxH.js.map} +1 -1
  6. package/awst_build/ptypes/arc4-types.d.ts +3 -3
  7. package/awst_build/ptypes/index.d.ts +12 -12
  8. package/bin/puyats-clientgen.mjs +5 -5
  9. package/bin/puyats-ls.mjs +6 -6
  10. package/bin/run-cli.mjs +8 -8
  11. package/{check-node-version-CLFFTDHN.js → check-node-version-B3GLfQ0t.js} +3 -3
  12. package/{check-node-version-CLFFTDHN.js.map → check-node-version-B3GLfQ0t.js.map} +1 -1
  13. package/cli.mjs +8 -8
  14. package/{compile-ycpMcgmJ.js → compile-DnShUPv7.js} +6 -6
  15. package/{compile-ycpMcgmJ.js.map → compile-DnShUPv7.js.map} +1 -1
  16. package/{contract-class-model-BZeEDGw0.js → contract-class-model-D-NUE8Zg.js} +31 -31
  17. package/contract-class-model-D-NUE8Zg.js.map +1 -0
  18. package/index.mjs +23 -23
  19. package/{options-DD9MApH4.js → options-DLmtdJgF.js} +59 -59
  20. package/options-DLmtdJgF.js.map +1 -0
  21. package/package.json +2 -2
  22. package/{resolve-puya-path-Ba54kz9o.js → resolve-puya-path-CzSo6yHU.js} +4 -4
  23. package/{resolve-puya-path-Ba54kz9o.js.map → resolve-puya-path-CzSo6yHU.js.map} +1 -1
  24. package/{semver-B0p_0XuH.js → semver-DPkkKoZb.js} +2 -2
  25. package/{semver-B0p_0XuH.js.map → semver-DPkkKoZb.js.map} +1 -1
  26. package/{util-Aa8RgOmt.js → util-dcGns5-2.js} +2 -2
  27. package/{util-Aa8RgOmt.js.map → util-dcGns5-2.js.map} +1 -1
  28. package/contract-class-model-BZeEDGw0.js.map +0 -1
  29. package/options-DD9MApH4.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import 'crypto';
2
2
  import 'node:worker_threads';
3
- export { c as createAnalyserService } from './analyser-service-Bk9GEtDA.js';
4
- import './contract-class-model-BZeEDGw0.js';
5
- import './options-DD9MApH4.js';
3
+ export { c as createAnalyserService } from './analyser-service-Cj7WmqeW.js';
4
+ import './contract-class-model-D-NUE8Zg.js';
5
+ import './options-DLmtdJgF.js';
6
6
  import 'pathe';
7
7
  import 'typescript';
8
8
  import 'node:util';
@@ -1,7 +1,7 @@
1
1
  import * as abi from '@algorandfoundation/algokit-utils/abi';
2
2
  import { existsSync } from 'fs';
3
3
  import { writeFile, readFile } from 'fs/promises';
4
- import { C as ContractReference, b as ContractClassModel, A as AbsolutePath, l as logger, c as CodeError, d as Constants, I as InternalError, e as accountPType, f as applicationPType, g as assetPType, v as voidPType, h as anyGtxnType, p as paymentGtxnType, k as keyRegistrationGtxnType, i as assetConfigGtxnType, j as assetTransferGtxnType, m as assetFreezeGtxnType, n as applicationCallGtxnType, O as OnCompletionAction } from './contract-class-model-BZeEDGw0.js';
4
+ import { C as ContractReference, b as ContractClassModel, A as AbsolutePath, l as logger, c as CodeError, d as Constants, I as InternalError, e as accountPType, f as applicationPType, g as assetPType, v as voidPType, h as anyGtxnType, p as paymentGtxnType, k as keyRegistrationGtxnType, i as assetConfigGtxnType, j as assetTransferGtxnType, m as assetFreezeGtxnType, n as applicationCallGtxnType, O as OnCompletionAction } from './contract-class-model-D-NUE8Zg.js';
5
5
 
6
6
  const AUTO_GENERATED_COMMENT = '// This file is auto-generated, do not modify';
7
7
  const DISABLE_ESLINT_PRAGMA = '/* eslint-disable */';
@@ -321,4 +321,4 @@ function generateClientFor(contract) {
321
321
  }
322
322
 
323
323
  export { writeARC4Clients as a, writeARC4Client as w };
324
- //# sourceMappingURL=arc4-clientgen-qBTlCOIm.js.map
324
+ //# sourceMappingURL=arc4-clientgen-7yQnFyxH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arc4-clientgen-qBTlCOIm.js","sources":["../src/arc4-clientgen.ts"],"sourcesContent":["import * as abi from '@algorandfoundation/algokit-utils/abi'\nimport { existsSync } from 'fs'\nimport { readFile, writeFile } from 'fs/promises'\nimport { ContractReference, OnCompletionAction } from './awst/models'\nimport type { CompilationSet } from './awst_build/models/contract-class-model'\nimport { ContractClassModel } from './awst_build/models/contract-class-model'\nimport type { ABICompatiblePType } from './awst_build/ptypes'\nimport * as ptype from './awst_build/ptypes'\nimport { Constants } from './constants'\nimport { CodeError, InternalError } from './errors'\nimport { logger } from './logger'\nimport type { AlgoFile } from './options'\nimport { AbsolutePath } from './util/absolute-path'\n\ntype Arc56Arg = abi.Arc56Method['args'][number]\n\ntype ClientTask = {\n spec: abi.Arc56Contract\n outFile: AbsolutePath\n}\n\nconst AUTO_GENERATED_COMMENT = '// This file is auto-generated, do not modify'\nconst DISABLE_ESLINT_PRAGMA = '/* eslint-disable */'\n\nconst ARC4_PYTYPE_MAPPING = new Map<string, ABICompatiblePType>([\n ['account', ptype.accountPType],\n ['application', ptype.applicationPType],\n ['asset', ptype.assetPType],\n ['void', ptype.voidPType],\n ['txn', ptype.anyGtxnType],\n ['pay', ptype.paymentGtxnType],\n ['keyreg', ptype.keyRegistrationGtxnType],\n ['acfg', ptype.assetConfigGtxnType],\n ['axfer', ptype.assetTransferGtxnType],\n ['afrz', ptype.assetFreezeGtxnType],\n ['appl', ptype.applicationCallGtxnType],\n])\n\nfunction resolveClients(\n compilationSet: CompilationSet,\n filePaths: AlgoFile[],\n arc56Contracts: Record<string, abi.Arc56Contract>,\n): ClientTask[] {\n const sourceFileToOutDir = new Map<string, AbsolutePath>()\n for (const { sourceFile, outDir } of filePaths) {\n sourceFileToOutDir.set(sourceFile.toString(), outDir)\n }\n\n const arc56Files = []\n for (const ref of compilationSet.compilationOutputSet) {\n if (!(ref instanceof ContractReference)) {\n continue\n }\n const model = compilationSet.get(ref)\n if (!(model instanceof ContractClassModel)) {\n continue\n }\n if (!model.type.isARC4) {\n continue\n }\n\n const sourceFile = AbsolutePath.resolve({ path: ref.moduleName })\n const outDir = sourceFileToOutDir.get(sourceFile.toString())\n if (outDir === undefined) {\n logger.error(undefined, `Could not find a source file for the contract ${ref.className} at ${ref.moduleName}`)\n continue\n }\n\n const spec = arc56Contracts[ref.id]\n if (spec === undefined) {\n logger.error(undefined, `Could not find a generated spec for the contract ${ref.className} at ${ref.moduleName}`)\n continue\n }\n\n const name = model.options?.name || model.name\n arc56Files.push({\n spec,\n outFile: outDir.join(`${name}.client.ts`),\n })\n }\n return arc56Files\n}\n\nexport function writeARC4Clients(compilationSet: CompilationSet, filePaths: AlgoFile[], arc56Contracts: Record<string, abi.Arc56Contract>) {\n const clientFiles = resolveClients(compilationSet, filePaths, arc56Contracts)\n return Promise.all(\n clientFiles.map(async (clientTask) => {\n await writeARC4Client(clientTask.spec, clientTask.outFile)\n }),\n )\n}\n\nexport async function writeARC4Client(spec: abi.Arc56Contract, outFile: AbsolutePath) {\n if (await shouldWriteFile(outFile)) {\n logger.info(undefined, `Writing ${outFile.relativeTo('.')}`)\n const typescriptClient = generateClientFor(spec)\n await writeFile(outFile.toString(), typescriptClient, { encoding: 'utf-8' })\n } else {\n logger.error(undefined, `Not outputting ${outFile.relativeTo('.')} since content does not appear to be auto-generated`)\n }\n}\n\nasync function shouldWriteFile(outFile: AbsolutePath): Promise<boolean> {\n const filePath = outFile.toString()\n // FIXME: There's a TOCTOU bug here...\n if (!existsSync(filePath)) {\n return true\n }\n const contents = await readFile(filePath, { encoding: 'utf-8' })\n return contents.startsWith(AUTO_GENERATED_COMMENT)\n}\n\nfunction generateClientFor(contract: abi.Arc56Contract): string {\n const typeImports = new Set<string>()\n const imports = new Set<string>()\n const structToClass = new Map<string, string>()\n const reservedClassNames = new Set<string>()\n const reservedMethodNames = new Set<string>()\n const classDecls: string[] = []\n\n function useImport(name: string, asValue: boolean) {\n if (asValue) {\n if (typeImports.has(name)) typeImports.delete(name)\n imports.add(name)\n } else if (!imports.has(name)) {\n typeImports.add(name)\n }\n }\n function indent(...texts: string[]): string {\n const INDENT = ' '\n return INDENT + texts.join('\\n').replaceAll(/\\n+/g, `$&${INDENT}`)\n }\n\n function classNameFor(name: string): string {\n const base_name = name\n let seq = 1\n while (reservedClassNames.has(name)) {\n seq++\n name = `${base_name}${seq}`\n }\n\n reservedClassNames.add(name)\n return name\n }\n\n function methodNameFor(name: string): string {\n const base_name = name\n let seq = 1\n while (reservedMethodNames.has(name)) {\n seq++\n name = `${base_name}${seq}`\n }\n\n reservedMethodNames.add(name)\n return name\n }\n\n function typeNameToAlgoTSName(typeName: string): string {\n const knownMapping = ARC4_PYTYPE_MAPPING.get(typeName)\n if (knownMapping !== undefined) {\n const { name, module } = knownMapping\n if (module === Constants.moduleNames.algoTs.gtxn) {\n useImport('gtxn', false)\n return `gtxn.${name}`\n } else if (module === Constants.moduleNames.algoTs.reference) {\n useImport(name, false)\n return name\n } else if (module === Constants.moduleNames.tslib) {\n // The TypeScript prelude is always imported\n return name\n }\n\n throw new InternalError(`Cannot import ${name}: The module ${module} is unsupported`)\n }\n return ARC4ToAlgoTSName(abi.ABIType.from(typeName))\n }\n\n function ARC4ToAlgoTSName(type: abi.ABIType): string {\n useImport('arc4', false)\n if (type instanceof abi.ABIBoolType) return 'arc4.Bool'\n if (type instanceof abi.ABIStringType) return 'arc4.Str'\n if (type instanceof abi.ABIAddressType) return 'arc4.Address'\n if (type instanceof abi.ABIByteType) return 'arc4.Byte'\n if (type instanceof abi.ABIUintType) return `arc4.Uint<${type.bitSize}>`\n if (type instanceof abi.ABIUfixedType) return `arc4.UFixed<${type.bitSize}, ${type.precision}>`\n if (type instanceof abi.ABIArrayStaticType) {\n const elementType = ARC4ToAlgoTSName(type.childType)\n return `arc4.StaticArray<${elementType}, ${type.length}>`\n }\n if (type instanceof abi.ABIArrayDynamicType) {\n if (type.childType instanceof abi.ABIByteType) return 'arc4.DynamicBytes'\n\n const elementType = ARC4ToAlgoTSName(type.childType)\n return `arc4.DynamicArray<${elementType}>`\n }\n if (type instanceof abi.ABITupleType) {\n const tupleTypes = type.childTypes.map(ARC4ToAlgoTSName)\n return `arc4.Tuple<readonly [${tupleTypes.join(', ')}]>`\n }\n throw new CodeError(`unknown ARC-4 type '${type}'`)\n }\n\n function getClientType(type: string): string {\n // map ABI / AVM type to algots type\n if (type === 'AVMUint64') {\n useImport('uint64', false)\n return 'uint64'\n } else if (type === 'AVMBytes') {\n useImport('bytes', false)\n return 'bytes'\n } else if (type in contract.structs) {\n return structToClass.get(type) || prepareStructClass(type, contract.structs[type])\n } else {\n return typeNameToAlgoTSName(type)\n }\n }\n\n function prepareStructClass(name: string, fields: abi.StructField[]) {\n useImport('arc4', true)\n\n const className = classNameFor(name)\n structToClass.set(name, className)\n const lines = ['', `export class ${className} extends arc4.Struct<{`]\n for (const field of fields) {\n let type: string\n if (typeof field.type === 'string') {\n type = getClientType(field.type)\n } else {\n // generate anonymous struct type\n const anonStruct = `${name}_${field.name}`\n type = prepareStructClass(anonStruct, field.type)\n }\n lines.push(indent(`${field.name}: ${type}`))\n }\n lines.push('}> {}')\n classDecls.push(...lines)\n return className\n }\n\n function tsdoc(description: string | undefined | null): string[] {\n if (description === undefined || description === null) {\n return []\n }\n return ['/**', ` * ${description.replaceAll(/\\n+/g, '$& * ')}`, ' */']\n }\n\n function compatibleActions(create: string[], call: string[]): boolean {\n if (create.length === 0) {\n return true\n }\n if (call.length === 0) {\n return true\n }\n // if both collections are present, then they are compatible if everything in\n // create is also in call\n const createSet = new Set(create)\n const callSet = new Set(call)\n return createSet.symmetricDifference(callSet).size === 0\n }\n\n function ARC4MethodToTSDecorator(name: string, method: abi.Arc56Method): string {\n useImport('abimethod', true)\n\n const abimethodArgs: string[] = []\n if (method.name !== name) {\n abimethodArgs.push(`name: '${method.name}'`)\n }\n if (method.readonly) {\n abimethodArgs.push('readonly: true')\n }\n // if any alias types are encountered, force index encoding\n const argTypes = new Set(method.args.map((v) => v.type))\n const aliasTypes = new Set(['asset', 'application', 'account'])\n if (argTypes.intersection(aliasTypes).size !== 0) {\n abimethodArgs.push(\"resourceEncoding: 'index'\")\n }\n if (!compatibleActions(method.actions.create, method.actions.call)) {\n // TODO: support this, once decorators support it\n throw new CodeError(`unsupported on completion combination for generating an ARC-4 client for method: ${method.name}`)\n }\n const actions = [...method.actions.create, ...method.actions.call]\n actions.sort((a, b) => OnCompletionAction[a] - OnCompletionAction[b])\n const uniqueActions = new Set(actions)\n\n if (!(uniqueActions.size === 1 && uniqueActions.has('NoOp'))) {\n abimethodArgs.push(`allowActions: [${actions.map((v) => `'${v}'`).join(', ')}]`)\n }\n if (method.actions.create.length !== 0 && method.actions.call.length !== 0) {\n abimethodArgs.push(\"onCreate: 'allow'\")\n } else if (method.actions.create.length !== 0) {\n abimethodArgs.push(\"onCreate: 'require'\")\n } else {\n // disallow is default\n }\n const args = abimethodArgs.length === 0 ? '' : `{ ${abimethodArgs.join(', ')} }`\n return `@abimethod(${args})`\n }\n\n function genArg(arg: Arc56Arg): string {\n const argType = getClientType(arg.struct || arg.type)\n return `${arg.name}: ${argType},`\n }\n\n function genMethod(method: abi.Arc56Method): string {\n useImport('err', true)\n\n const return_type = getClientType(method.returns.struct || method.returns.type)\n const method_name = methodNameFor(method.name)\n const args = method.args.map(genArg)\n let arglist: string\n if (args.length === 0) {\n // No args -> inline arglist\n arglist = '()'\n } else if (args.length === 1) {\n // One arg -> inline arglist (remove trailing comma)\n arglist = `(${args[0].slice(0, -1)})`\n } else {\n // At least two args -> multiline arglist\n arglist = `(\\n${indent(...args)}\\n)`\n }\n\n return indent(\n ...tsdoc(method.desc),\n ARC4MethodToTSDecorator(method_name, method),\n `${method_name}${arglist}: ${return_type} {`,\n indent(\"err('stub only')\"),\n '}',\n )\n }\n\n function genMethods(): string[] {\n const methods = []\n if (contract.methods.length !== 0) {\n methods.push(genMethod(contract.methods[0]))\n }\n for (const method of contract.methods.slice(1)) {\n methods.push(`\\n${genMethod(method)}`)\n }\n return methods\n }\n\n // generate class definitions for any referenced structs in methods\n // don't generate from self.contract.structs as it may contain other struct definitions\n const clientClass = classNameFor(contract.name)\n const docs = tsdoc(contract.desc)\n const methods = genMethods()\n useImport('Contract', true)\n\n const sortedTypeImports = [...typeImports].toSorted().join(', ')\n const sortedImports = [...imports].toSorted().join(', ')\n const lines = []\n // Header\n lines.push(AUTO_GENERATED_COMMENT)\n lines.push(DISABLE_ESLINT_PRAGMA)\n if (sortedTypeImports.length !== 0) lines.push(`import type { ${sortedTypeImports} } from '@algorandfoundation/algorand-typescript'`)\n if (sortedImports.length !== 0) lines.push(`import { ${sortedImports} } from '@algorandfoundation/algorand-typescript'`)\n\n lines.push(\n // Struct declarations\n ...classDecls,\n '',\n // Contract definition\n ...docs,\n `export abstract class ${clientClass} extends Contract {`,\n ...methods,\n '}',\n '',\n )\n return lines.join('\\n')\n}\n"],"names":["ptype.accountPType","ptype.applicationPType","ptype.assetPType","ptype.voidPType","ptype.anyGtxnType","ptype.paymentGtxnType","ptype.keyRegistrationGtxnType","ptype.assetConfigGtxnType","ptype.assetTransferGtxnType","ptype.assetFreezeGtxnType","ptype.applicationCallGtxnType"],"mappings":"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"}
1
+ {"version":3,"file":"arc4-clientgen-7yQnFyxH.js","sources":["../src/arc4-clientgen.ts"],"sourcesContent":["import * as abi from '@algorandfoundation/algokit-utils/abi'\nimport { existsSync } from 'fs'\nimport { readFile, writeFile } from 'fs/promises'\nimport { ContractReference, OnCompletionAction } from './awst/models'\nimport type { CompilationSet } from './awst_build/models/contract-class-model'\nimport { ContractClassModel } from './awst_build/models/contract-class-model'\nimport type { ABICompatiblePType } from './awst_build/ptypes'\nimport * as ptype from './awst_build/ptypes'\nimport { Constants } from './constants'\nimport { CodeError, InternalError } from './errors'\nimport { logger } from './logger'\nimport type { AlgoFile } from './options'\nimport { AbsolutePath } from './util/absolute-path'\n\ntype Arc56Arg = abi.Arc56Method['args'][number]\n\ntype ClientTask = {\n spec: abi.Arc56Contract\n outFile: AbsolutePath\n}\n\nconst AUTO_GENERATED_COMMENT = '// This file is auto-generated, do not modify'\nconst DISABLE_ESLINT_PRAGMA = '/* eslint-disable */'\n\nconst ARC4_PYTYPE_MAPPING = new Map<string, ABICompatiblePType>([\n ['account', ptype.accountPType],\n ['application', ptype.applicationPType],\n ['asset', ptype.assetPType],\n ['void', ptype.voidPType],\n ['txn', ptype.anyGtxnType],\n ['pay', ptype.paymentGtxnType],\n ['keyreg', ptype.keyRegistrationGtxnType],\n ['acfg', ptype.assetConfigGtxnType],\n ['axfer', ptype.assetTransferGtxnType],\n ['afrz', ptype.assetFreezeGtxnType],\n ['appl', ptype.applicationCallGtxnType],\n])\n\nfunction resolveClients(\n compilationSet: CompilationSet,\n filePaths: AlgoFile[],\n arc56Contracts: Record<string, abi.Arc56Contract>,\n): ClientTask[] {\n const sourceFileToOutDir = new Map<string, AbsolutePath>()\n for (const { sourceFile, outDir } of filePaths) {\n sourceFileToOutDir.set(sourceFile.toString(), outDir)\n }\n\n const arc56Files = []\n for (const ref of compilationSet.compilationOutputSet) {\n if (!(ref instanceof ContractReference)) {\n continue\n }\n const model = compilationSet.get(ref)\n if (!(model instanceof ContractClassModel)) {\n continue\n }\n if (!model.type.isARC4) {\n continue\n }\n\n const sourceFile = AbsolutePath.resolve({ path: ref.moduleName })\n const outDir = sourceFileToOutDir.get(sourceFile.toString())\n if (outDir === undefined) {\n logger.error(undefined, `Could not find a source file for the contract ${ref.className} at ${ref.moduleName}`)\n continue\n }\n\n const spec = arc56Contracts[ref.id]\n if (spec === undefined) {\n logger.error(undefined, `Could not find a generated spec for the contract ${ref.className} at ${ref.moduleName}`)\n continue\n }\n\n const name = model.options?.name || model.name\n arc56Files.push({\n spec,\n outFile: outDir.join(`${name}.client.ts`),\n })\n }\n return arc56Files\n}\n\nexport function writeARC4Clients(compilationSet: CompilationSet, filePaths: AlgoFile[], arc56Contracts: Record<string, abi.Arc56Contract>) {\n const clientFiles = resolveClients(compilationSet, filePaths, arc56Contracts)\n return Promise.all(\n clientFiles.map(async (clientTask) => {\n await writeARC4Client(clientTask.spec, clientTask.outFile)\n }),\n )\n}\n\nexport async function writeARC4Client(spec: abi.Arc56Contract, outFile: AbsolutePath) {\n if (await shouldWriteFile(outFile)) {\n logger.info(undefined, `Writing ${outFile.relativeTo('.')}`)\n const typescriptClient = generateClientFor(spec)\n await writeFile(outFile.toString(), typescriptClient, { encoding: 'utf-8' })\n } else {\n logger.error(undefined, `Not outputting ${outFile.relativeTo('.')} since content does not appear to be auto-generated`)\n }\n}\n\nasync function shouldWriteFile(outFile: AbsolutePath): Promise<boolean> {\n const filePath = outFile.toString()\n // FIXME: There's a TOCTOU bug here...\n if (!existsSync(filePath)) {\n return true\n }\n const contents = await readFile(filePath, { encoding: 'utf-8' })\n return contents.startsWith(AUTO_GENERATED_COMMENT)\n}\n\nfunction generateClientFor(contract: abi.Arc56Contract): string {\n const typeImports = new Set<string>()\n const imports = new Set<string>()\n const structToClass = new Map<string, string>()\n const reservedClassNames = new Set<string>()\n const reservedMethodNames = new Set<string>()\n const classDecls: string[] = []\n\n function useImport(name: string, asValue: boolean) {\n if (asValue) {\n if (typeImports.has(name)) typeImports.delete(name)\n imports.add(name)\n } else if (!imports.has(name)) {\n typeImports.add(name)\n }\n }\n function indent(...texts: string[]): string {\n const INDENT = ' '\n return INDENT + texts.join('\\n').replaceAll(/\\n+/g, `$&${INDENT}`)\n }\n\n function classNameFor(name: string): string {\n const base_name = name\n let seq = 1\n while (reservedClassNames.has(name)) {\n seq++\n name = `${base_name}${seq}`\n }\n\n reservedClassNames.add(name)\n return name\n }\n\n function methodNameFor(name: string): string {\n const base_name = name\n let seq = 1\n while (reservedMethodNames.has(name)) {\n seq++\n name = `${base_name}${seq}`\n }\n\n reservedMethodNames.add(name)\n return name\n }\n\n function typeNameToAlgoTSName(typeName: string): string {\n const knownMapping = ARC4_PYTYPE_MAPPING.get(typeName)\n if (knownMapping !== undefined) {\n const { name, module } = knownMapping\n if (module === Constants.moduleNames.algoTs.gtxn) {\n useImport('gtxn', false)\n return `gtxn.${name}`\n } else if (module === Constants.moduleNames.algoTs.reference) {\n useImport(name, false)\n return name\n } else if (module === Constants.moduleNames.tslib) {\n // The TypeScript prelude is always imported\n return name\n }\n\n throw new InternalError(`Cannot import ${name}: The module ${module} is unsupported`)\n }\n return ARC4ToAlgoTSName(abi.ABIType.from(typeName))\n }\n\n function ARC4ToAlgoTSName(type: abi.ABIType): string {\n useImport('arc4', false)\n if (type instanceof abi.ABIBoolType) return 'arc4.Bool'\n if (type instanceof abi.ABIStringType) return 'arc4.Str'\n if (type instanceof abi.ABIAddressType) return 'arc4.Address'\n if (type instanceof abi.ABIByteType) return 'arc4.Byte'\n if (type instanceof abi.ABIUintType) return `arc4.Uint<${type.bitSize}>`\n if (type instanceof abi.ABIUfixedType) return `arc4.UFixed<${type.bitSize}, ${type.precision}>`\n if (type instanceof abi.ABIArrayStaticType) {\n const elementType = ARC4ToAlgoTSName(type.childType)\n return `arc4.StaticArray<${elementType}, ${type.length}>`\n }\n if (type instanceof abi.ABIArrayDynamicType) {\n if (type.childType instanceof abi.ABIByteType) return 'arc4.DynamicBytes'\n\n const elementType = ARC4ToAlgoTSName(type.childType)\n return `arc4.DynamicArray<${elementType}>`\n }\n if (type instanceof abi.ABITupleType) {\n const tupleTypes = type.childTypes.map(ARC4ToAlgoTSName)\n return `arc4.Tuple<readonly [${tupleTypes.join(', ')}]>`\n }\n throw new CodeError(`unknown ARC-4 type '${type}'`)\n }\n\n function getClientType(type: string): string {\n // map ABI / AVM type to algots type\n if (type === 'AVMUint64') {\n useImport('uint64', false)\n return 'uint64'\n } else if (type === 'AVMBytes') {\n useImport('bytes', false)\n return 'bytes'\n } else if (type in contract.structs) {\n return structToClass.get(type) || prepareStructClass(type, contract.structs[type])\n } else {\n return typeNameToAlgoTSName(type)\n }\n }\n\n function prepareStructClass(name: string, fields: abi.StructField[]) {\n useImport('arc4', true)\n\n const className = classNameFor(name)\n structToClass.set(name, className)\n const lines = ['', `export class ${className} extends arc4.Struct<{`]\n for (const field of fields) {\n let type: string\n if (typeof field.type === 'string') {\n type = getClientType(field.type)\n } else {\n // generate anonymous struct type\n const anonStruct = `${name}_${field.name}`\n type = prepareStructClass(anonStruct, field.type)\n }\n lines.push(indent(`${field.name}: ${type}`))\n }\n lines.push('}> {}')\n classDecls.push(...lines)\n return className\n }\n\n function tsdoc(description: string | undefined | null): string[] {\n if (description === undefined || description === null) {\n return []\n }\n return ['/**', ` * ${description.replaceAll(/\\n+/g, '$& * ')}`, ' */']\n }\n\n function compatibleActions(create: string[], call: string[]): boolean {\n if (create.length === 0) {\n return true\n }\n if (call.length === 0) {\n return true\n }\n // if both collections are present, then they are compatible if everything in\n // create is also in call\n const createSet = new Set(create)\n const callSet = new Set(call)\n return createSet.symmetricDifference(callSet).size === 0\n }\n\n function ARC4MethodToTSDecorator(name: string, method: abi.Arc56Method): string {\n useImport('abimethod', true)\n\n const abimethodArgs: string[] = []\n if (method.name !== name) {\n abimethodArgs.push(`name: '${method.name}'`)\n }\n if (method.readonly) {\n abimethodArgs.push('readonly: true')\n }\n // if any alias types are encountered, force index encoding\n const argTypes = new Set(method.args.map((v) => v.type))\n const aliasTypes = new Set(['asset', 'application', 'account'])\n if (argTypes.intersection(aliasTypes).size !== 0) {\n abimethodArgs.push(\"resourceEncoding: 'index'\")\n }\n if (!compatibleActions(method.actions.create, method.actions.call)) {\n // TODO: support this, once decorators support it\n throw new CodeError(`unsupported on completion combination for generating an ARC-4 client for method: ${method.name}`)\n }\n const actions = [...method.actions.create, ...method.actions.call]\n actions.sort((a, b) => OnCompletionAction[a] - OnCompletionAction[b])\n const uniqueActions = new Set(actions)\n\n if (!(uniqueActions.size === 1 && uniqueActions.has('NoOp'))) {\n abimethodArgs.push(`allowActions: [${actions.map((v) => `'${v}'`).join(', ')}]`)\n }\n if (method.actions.create.length !== 0 && method.actions.call.length !== 0) {\n abimethodArgs.push(\"onCreate: 'allow'\")\n } else if (method.actions.create.length !== 0) {\n abimethodArgs.push(\"onCreate: 'require'\")\n } else {\n // disallow is default\n }\n const args = abimethodArgs.length === 0 ? '' : `{ ${abimethodArgs.join(', ')} }`\n return `@abimethod(${args})`\n }\n\n function genArg(arg: Arc56Arg): string {\n const argType = getClientType(arg.struct || arg.type)\n return `${arg.name}: ${argType},`\n }\n\n function genMethod(method: abi.Arc56Method): string {\n useImport('err', true)\n\n const return_type = getClientType(method.returns.struct || method.returns.type)\n const method_name = methodNameFor(method.name)\n const args = method.args.map(genArg)\n let arglist: string\n if (args.length === 0) {\n // No args -> inline arglist\n arglist = '()'\n } else if (args.length === 1) {\n // One arg -> inline arglist (remove trailing comma)\n arglist = `(${args[0].slice(0, -1)})`\n } else {\n // At least two args -> multiline arglist\n arglist = `(\\n${indent(...args)}\\n)`\n }\n\n return indent(\n ...tsdoc(method.desc),\n ARC4MethodToTSDecorator(method_name, method),\n `${method_name}${arglist}: ${return_type} {`,\n indent(\"err('stub only')\"),\n '}',\n )\n }\n\n function genMethods(): string[] {\n const methods = []\n if (contract.methods.length !== 0) {\n methods.push(genMethod(contract.methods[0]))\n }\n for (const method of contract.methods.slice(1)) {\n methods.push(`\\n${genMethod(method)}`)\n }\n return methods\n }\n\n // generate class definitions for any referenced structs in methods\n // don't generate from self.contract.structs as it may contain other struct definitions\n const clientClass = classNameFor(contract.name)\n const docs = tsdoc(contract.desc)\n const methods = genMethods()\n useImport('Contract', true)\n\n const sortedTypeImports = [...typeImports].toSorted().join(', ')\n const sortedImports = [...imports].toSorted().join(', ')\n const lines = []\n // Header\n lines.push(AUTO_GENERATED_COMMENT)\n lines.push(DISABLE_ESLINT_PRAGMA)\n if (sortedTypeImports.length !== 0) lines.push(`import type { ${sortedTypeImports} } from '@algorandfoundation/algorand-typescript'`)\n if (sortedImports.length !== 0) lines.push(`import { ${sortedImports} } from '@algorandfoundation/algorand-typescript'`)\n\n lines.push(\n // Struct declarations\n ...classDecls,\n '',\n // Contract definition\n ...docs,\n `export abstract class ${clientClass} extends Contract {`,\n ...methods,\n '}',\n '',\n )\n return lines.join('\\n')\n}\n"],"names":["ptype.accountPType","ptype.applicationPType","ptype.assetPType","ptype.voidPType","ptype.anyGtxnType","ptype.paymentGtxnType","ptype.keyRegistrationGtxnType","ptype.assetConfigGtxnType","ptype.assetTransferGtxnType","ptype.assetFreezeGtxnType","ptype.applicationCallGtxnType"],"mappings":"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"}
@@ -87,7 +87,7 @@ export declare class ARC4StructType extends ARC4EncodedType {
87
87
  accept<T>(visitor: PTypeVisitor<T>): T;
88
88
  }
89
89
  export declare const arc4StructBaseType: ARC4StructType;
90
- export declare const Arc4TupleGeneric: GenericPType<ARC4TupleType>;
90
+ export declare const ARC4TupleGeneric: GenericPType<ARC4TupleType>;
91
91
  export declare class ARC4TupleType extends ARC4EncodedType {
92
92
  readonly [PType.IdSymbol] = "ARC4TupleType";
93
93
  readonly name: string;
@@ -191,8 +191,8 @@ export declare class StaticBytesType extends StaticArrayType {
191
191
  length: bigint;
192
192
  });
193
193
  }
194
- export declare const DynamicBytesConstructor: LibClassType;
195
- export declare const DynamicBytesType: DynamicArrayType;
194
+ export declare const DynamicBytesClass: LibClassType;
195
+ export declare const dynamicBytesType: DynamicArrayType;
196
196
  export declare const convertBytesFunction: LibFunctionType;
197
197
  export declare const encodeArc4Function: LibFunctionType;
198
198
  export declare const sizeOfFunction: LibFunctionType;
@@ -582,7 +582,7 @@ export declare const AssetFunction: LibFunctionType;
582
582
  export declare const accountPType: ABICompatibleInstanceType;
583
583
  export declare const AccountFunction: LibFunctionType;
584
584
  export declare const applicationPType: ABICompatibleInstanceType;
585
- export declare const ApplicationFunctionType: LibFunctionType;
585
+ export declare const ApplicationFunction: LibFunctionType;
586
586
  export declare const ClearStateProgram: FunctionPType;
587
587
  export declare const ApprovalProgram: FunctionPType;
588
588
  export declare const baseContractType: BaseContractClassType;
@@ -626,7 +626,7 @@ export declare const AssetTransferTxnFunction: TransactionFunctionType;
626
626
  export declare const assetFreezeGtxnType: GroupTransactionPType;
627
627
  export declare const AssetFreezeTxnFunction: TransactionFunctionType;
628
628
  export declare const applicationCallGtxnType: GroupTransactionPType;
629
- export declare const ApplicationTxnFunction: TransactionFunctionType;
629
+ export declare const ApplicationCallTxnFunction: TransactionFunctionType;
630
630
  export declare const anyGtxnType: GroupTransactionPType;
631
631
  export declare const TransactionFunction: TransactionFunctionType;
632
632
  export declare const assertMatchFunction: LibFunctionType;
@@ -690,12 +690,12 @@ export declare class GeneratorType extends UnsupportedType {
690
690
  nextType: PType;
691
691
  });
692
692
  }
693
- export declare const paymentItxnFn: TransactionFunctionType;
694
- export declare const keyRegistrationItxnFn: TransactionFunctionType;
695
- export declare const assetConfigItxnFn: TransactionFunctionType;
696
- export declare const assetTransferItxnFn: TransactionFunctionType;
697
- export declare const assetFreezeItxnFn: TransactionFunctionType;
698
- export declare const applicationCallItxnFn: TransactionFunctionType;
693
+ export declare const paymentItxnFunction: TransactionFunctionType;
694
+ export declare const keyRegistrationItxnFunction: TransactionFunctionType;
695
+ export declare const assetConfigItxnFunction: TransactionFunctionType;
696
+ export declare const assetTransferItxnFunction: TransactionFunctionType;
697
+ export declare const assetFreezeItxnFunction: TransactionFunctionType;
698
+ export declare const applicationCallItxnFunction: TransactionFunctionType;
699
699
  export declare class InnerTransactionPType extends PType {
700
700
  readonly [PType.IdSymbol] = "InnerTransactionPType";
701
701
  get wtype(): wtypes.WInnerTransaction;
@@ -733,13 +733,13 @@ export declare const assetTransferItxnType: InnerTransactionPType;
733
733
  export declare const assetFreezeItxnParamsType: ItxnParamsPType;
734
734
  export declare const assetFreezeItxnType: InnerTransactionPType;
735
735
  export declare const applicationCallItxnParamsType: ItxnParamsPType;
736
- export declare const applicationItxnType: InnerTransactionPType;
736
+ export declare const applicationCallItxnType: InnerTransactionPType;
737
737
  export declare const anyItxnParamsType: ItxnParamsPType;
738
738
  export declare const anyItxnType: InnerTransactionPType;
739
739
  export declare const inputOnlyObjects: ObjectWithOptionalFieldsType[];
740
740
  export declare const submitGroupItxnFunction: LibFunctionType;
741
741
  export declare const TemplateVarFunction: LibFunctionType;
742
- export declare const compileFunctionType: LibFunctionType;
742
+ export declare const compileFunction: LibFunctionType;
743
743
  export declare const compiledContractType: ImmutableObjectPType;
744
744
  export declare const compiledLogicSigType: ImmutableObjectPType;
745
745
  export declare const arc28EmitFunction: LibFunctionType;
@@ -775,5 +775,5 @@ export declare class ReferenceArrayType extends PType {
775
775
  accept<T>(visitor: PTypeVisitor<T>): T;
776
776
  }
777
777
  export declare const itxnComposePType: LibObjType;
778
- export declare const cloneFunctionPType: LibFunctionType;
779
- export declare const validateEncodingFunctionPType: LibFunctionType;
778
+ export declare const cloneFunction: LibFunctionType;
779
+ export declare const validateEncodingFunction: LibFunctionType;
@@ -2,11 +2,11 @@
2
2
  import { arc32ToArc56 } from '@algorandfoundation/algokit-utils/app-spec';
3
3
  import { ArgumentParser } from 'argparse';
4
4
  import { readFile } from 'fs/promises';
5
- import { w as writeARC4Client } from '../arc4-clientgen-qBTlCOIm.js';
6
- import { a as appVersion } from '../semver-B0p_0XuH.js';
7
- import { c as checkNodeVersion } from '../check-node-version-CLFFTDHN.js';
8
- import { a as addEnumArg, C as ConsoleLogSink } from '../util-Aa8RgOmt.js';
9
- import { L as LogLevel, l as logger, A as AbsolutePath, P as PuyaError, a as LoggingContext } from '../contract-class-model-BZeEDGw0.js';
5
+ import { w as writeARC4Client } from '../arc4-clientgen-7yQnFyxH.js';
6
+ import { a as appVersion } from '../semver-DPkkKoZb.js';
7
+ import { c as checkNodeVersion } from '../check-node-version-B3GLfQ0t.js';
8
+ import { a as addEnumArg, C as ConsoleLogSink } from '../util-dcGns5-2.js';
9
+ import { L as LogLevel, l as logger, A as AbsolutePath, P as PuyaError, a as LoggingContext } from '../contract-class-model-D-NUE8Zg.js';
10
10
  import '@algorandfoundation/algokit-utils/abi';
11
11
  import 'fs';
12
12
  import 'node:url';
package/bin/puyats-ls.mjs CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { ArgumentParser, BooleanOptionalAction } from 'argparse';
3
- import { b as packageVersion, a as appVersion } from '../semver-B0p_0XuH.js';
4
- import { c as checkNodeVersion } from '../check-node-version-CLFFTDHN.js';
3
+ import { b as packageVersion, a as appVersion } from '../semver-DPkkKoZb.js';
4
+ import { c as checkNodeVersion } from '../check-node-version-B3GLfQ0t.js';
5
5
  import { __esDecorate, __runInitializers } from 'tslib';
6
- import { r as requireMain, l as logCaughtExpression, L as LogExceptions, c as createAnalyserService, a as createNormalisedTextDocumentConnection, n as normalisedUri, i as isCodeFixData } from '../analyser-service-Bk9GEtDA.js';
7
- import { L as LogLevel, cl as distinct, l as logger, cm as zipStrict, d as Constants } from '../contract-class-model-BZeEDGw0.js';
8
- import { r as resolvePuyaPath } from '../resolve-puya-path-Ba54kz9o.js';
6
+ import { r as requireMain, l as logCaughtExpression, L as LogExceptions, c as createAnalyserService, a as createNormalisedTextDocumentConnection, n as normalisedUri, i as isCodeFixData } from '../analyser-service-Cj7WmqeW.js';
7
+ import { L as LogLevel, cl as distinct, l as logger, cm as zipStrict, d as Constants } from '../contract-class-model-D-NUE8Zg.js';
8
+ import { r as resolvePuyaPath } from '../resolve-puya-path-CzSo6yHU.js';
9
9
  import EventEmitter from 'node:events';
10
- import { a7 as DefaultMap } from '../options-DD9MApH4.js';
10
+ import { a7 as DefaultMap } from '../options-DLmtdJgF.js';
11
11
  import 'fs';
12
12
  import 'node:url';
13
13
  import 'pathe';
package/bin/run-cli.mjs CHANGED
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import '../cli.mjs';
3
3
  import 'argparse';
4
- import '../semver-B0p_0XuH.js';
4
+ import '../semver-DPkkKoZb.js';
5
5
  import 'fs';
6
6
  import 'node:url';
7
7
  import 'pathe';
8
- import '../contract-class-model-BZeEDGw0.js';
8
+ import '../contract-class-model-D-NUE8Zg.js';
9
9
  import 'typescript';
10
10
  import 'node:fs';
11
11
  import 'node:util';
12
12
  import 'node:crypto';
13
13
  import 'polytype';
14
14
  import 'node:async_hooks';
15
- import '../compile-ycpMcgmJ.js';
16
- import '../arc4-clientgen-qBTlCOIm.js';
15
+ import '../compile-DnShUPv7.js';
16
+ import '../arc4-clientgen-7yQnFyxH.js';
17
17
  import '@algorandfoundation/algokit-utils/abi';
18
18
  import 'fs/promises';
19
- import '../options-DD9MApH4.js';
19
+ import '../options-DLmtdJgF.js';
20
20
  import 'arcsecond';
21
21
  import 'tslib';
22
22
  import 'node:buffer';
@@ -29,11 +29,11 @@ import 'net';
29
29
  import 'change-case';
30
30
  import 'glob';
31
31
  import 'minimatch';
32
- import '../resolve-puya-path-Ba54kz9o.js';
32
+ import '../resolve-puya-path-CzSo6yHU.js';
33
33
  import 'signal-exit';
34
34
  import 'tar';
35
35
  import 'node:zlib';
36
- import '../util-Aa8RgOmt.js';
36
+ import '../util-dcGns5-2.js';
37
37
  import 'chalk';
38
- import '../check-node-version-CLFFTDHN.js';
38
+ import '../check-node-version-B3GLfQ0t.js';
39
39
  //# sourceMappingURL=run-cli.mjs.map
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { d as Constants } from './contract-class-model-BZeEDGw0.js';
3
- import { p as parseSemVer } from './semver-B0p_0XuH.js';
2
+ import { d as Constants } from './contract-class-model-D-NUE8Zg.js';
3
+ import { p as parseSemVer } from './semver-DPkkKoZb.js';
4
4
 
5
5
  function writeError(text) {
6
6
  // eslint-disable-next-line no-console
@@ -17,4 +17,4 @@ function checkNodeVersion() {
17
17
  }
18
18
 
19
19
  export { checkNodeVersion as c };
20
- //# sourceMappingURL=check-node-version-CLFFTDHN.js.map
20
+ //# sourceMappingURL=check-node-version-B3GLfQ0t.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-node-version-CLFFTDHN.js","sources":["../src/cli/check-node-version.ts"],"sourcesContent":["import chalk from 'chalk'\nimport { Constants } from '../constants'\nimport { parseSemVer } from '../puya/semver'\n\nfunction writeError(text: string) {\n // eslint-disable-next-line no-console\n console.error(chalk.red(text))\n}\n\nexport function checkNodeVersion() {\n const min = parseSemVer(Constants.minNodeVersion)\n const actual = parseSemVer(process.versions.node)\n\n if (\n actual.major < min.major ||\n (actual.major === min.major && actual.minor < min.minor) ||\n (actual.major === min.major && actual.minor === min.minor && actual.rev < min.rev)\n ) {\n writeError(\n `Installed node version ${process.versions.node} is older than the minimum required version ${Constants.minNodeVersion}. You may experience compatibility issues.`,\n )\n }\n}\n"],"names":[],"mappings":";;;;AAIA,SAAS,UAAU,CAAC,IAAY,EAAA;;IAE9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC;SAEgB,gBAAgB,GAAA;IAC9B,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEjD,IAAA,IACE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;AACxB,SAAC,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;SACvD,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAClF;AACA,QAAA,UAAU,CACR,CAAA,uBAAA,EAA0B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAA,4CAAA,EAA+C,SAAS,CAAC,cAAc,CAAA,0CAAA,CAA4C,CACnK;IACH;AACF;;;;"}
1
+ {"version":3,"file":"check-node-version-B3GLfQ0t.js","sources":["../src/cli/check-node-version.ts"],"sourcesContent":["import chalk from 'chalk'\nimport { Constants } from '../constants'\nimport { parseSemVer } from '../puya/semver'\n\nfunction writeError(text: string) {\n // eslint-disable-next-line no-console\n console.error(chalk.red(text))\n}\n\nexport function checkNodeVersion() {\n const min = parseSemVer(Constants.minNodeVersion)\n const actual = parseSemVer(process.versions.node)\n\n if (\n actual.major < min.major ||\n (actual.major === min.major && actual.minor < min.minor) ||\n (actual.major === min.major && actual.minor === min.minor && actual.rev < min.rev)\n ) {\n writeError(\n `Installed node version ${process.versions.node} is older than the minimum required version ${Constants.minNodeVersion}. You may experience compatibility issues.`,\n )\n }\n}\n"],"names":[],"mappings":";;;;AAIA,SAAS,UAAU,CAAC,IAAY,EAAA;;IAE9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC;SAEgB,gBAAgB,GAAA;IAC9B,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEjD,IAAA,IACE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;AACxB,SAAC,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;SACvD,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAClF;AACA,QAAA,UAAU,CACR,CAAA,uBAAA,EAA0B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAA,4CAAA,EAA+C,SAAS,CAAC,cAAc,CAAA,0CAAA,CAA4C,CACnK;IACH;AACF;;;;"}
package/cli.mjs CHANGED
@@ -1,18 +1,18 @@
1
1
  import { BooleanOptionalAction, ArgumentParser } from 'argparse';
2
- import { a as appVersion } from './semver-B0p_0XuH.js';
3
- import { c as compile } from './compile-ycpMcgmJ.js';
4
- import { _ as defaultPuyaOptions, X as processInputPaths, V as CompileOptions, $ as parseCliTemplateVar, a0 as LocalsCoalescingStrategy } from './options-DD9MApH4.js';
5
- import { l as logger, A as AbsolutePath, a as LoggingContext, L as LogLevel } from './contract-class-model-BZeEDGw0.js';
6
- import { a as addEnumArg, C as ConsoleLogSink, c as convertInt } from './util-Aa8RgOmt.js';
7
- import { c as checkNodeVersion } from './check-node-version-CLFFTDHN.js';
2
+ import { a as appVersion } from './semver-DPkkKoZb.js';
3
+ import { c as compile } from './compile-DnShUPv7.js';
4
+ import { _ as defaultPuyaOptions, X as processInputPaths, V as CompileOptions, $ as parseCliTemplateVar, a0 as LocalsCoalescingStrategy } from './options-DLmtdJgF.js';
5
+ import { l as logger, A as AbsolutePath, a as LoggingContext, L as LogLevel } from './contract-class-model-D-NUE8Zg.js';
6
+ import { a as addEnumArg, C as ConsoleLogSink, c as convertInt } from './util-dcGns5-2.js';
7
+ import { c as checkNodeVersion } from './check-node-version-B3GLfQ0t.js';
8
8
  import 'fs';
9
9
  import 'node:url';
10
10
  import 'pathe';
11
- import './arc4-clientgen-qBTlCOIm.js';
11
+ import './arc4-clientgen-7yQnFyxH.js';
12
12
  import '@algorandfoundation/algokit-utils/abi';
13
13
  import 'fs/promises';
14
14
  import 'typescript';
15
- import './resolve-puya-path-Ba54kz9o.js';
15
+ import './resolve-puya-path-CzSo6yHU.js';
16
16
  import 'tslib';
17
17
  import 'signal-exit';
18
18
  import 'cross-spawn';
@@ -1,9 +1,9 @@
1
- import { a as writeARC4Clients } from './arc4-clientgen-qBTlCOIm.js';
2
- import { a1 as PuyaService, a2 as deserializeAndLog, Y as registerPTypes, a3 as createTsProgram, a4 as buildAwst, a5 as validateAwst, Z as typeRegistry } from './options-DD9MApH4.js';
3
- import { a as appVersion } from './semver-B0p_0XuH.js';
4
- import { ck as mkDirIfNotExists, L as LogLevel, a as LoggingContext, l as logger } from './contract-class-model-BZeEDGw0.js';
1
+ import { a as writeARC4Clients } from './arc4-clientgen-7yQnFyxH.js';
2
+ import { a1 as PuyaService, a2 as deserializeAndLog, Y as registerPTypes, a3 as createTsProgram, a4 as buildAwst, a5 as validateAwst, Z as typeRegistry } from './options-DLmtdJgF.js';
3
+ import { a as appVersion } from './semver-DPkkKoZb.js';
4
+ import { ck as mkDirIfNotExists, L as LogLevel, a as LoggingContext, l as logger } from './contract-class-model-D-NUE8Zg.js';
5
5
  import ts from 'typescript';
6
- import { r as resolvePuyaPath } from './resolve-puya-path-Ba54kz9o.js';
6
+ import { r as resolvePuyaPath } from './resolve-puya-path-CzSo6yHU.js';
7
7
 
8
8
  function buildCompilationSetMapping({ awst, inputPaths, compilationSet, }) {
9
9
  const setIds = new Set(compilationSet.compilationOutputSet.map((s) => s.id));
@@ -110,4 +110,4 @@ async function compile(options, puyaService) {
110
110
  }
111
111
 
112
112
  export { compile as c };
113
- //# sourceMappingURL=compile-ycpMcgmJ.js.map
113
+ //# sourceMappingURL=compile-DnShUPv7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile-ycpMcgmJ.js","sources":["../src/puya/build-compilation-set-mapping.ts","../src/puya/index.ts","../src/compile.ts"],"sourcesContent":["import type { AWST } from '../awst/nodes'\nimport type { CompilationSet } from '../awst_build/models/contract-class-model'\nimport type { AlgoFile, CompilationSetMapping } from '../options'\nimport { mkDirIfNotExists } from '../util'\n\nexport function buildCompilationSetMapping({\n awst,\n inputPaths,\n compilationSet,\n}: {\n awst: AWST[]\n inputPaths: AlgoFile[]\n compilationSet: CompilationSet\n}): CompilationSetMapping {\n const setIds = new Set(compilationSet.compilationOutputSet.map((s) => s.id))\n\n return awst.reduce((acc, cur) => {\n if (setIds.has(cur.id.toString())) {\n const matchedPath = inputPaths.find((p) => cur.sourceLocation.file && p.sourceFile.equals(cur.sourceLocation.file))\n if (matchedPath) {\n mkDirIfNotExists(matchedPath.outDir.toString())\n acc[cur.id.toString()] = matchedPath.outDir.toString()\n }\n }\n return acc\n }, {} as CompilationSetMapping)\n}\n","import ts from 'typescript'\nimport type { AWST } from '../awst/nodes'\nimport type { CompilationSet } from '../awst_build/models/contract-class-model'\nimport { LogLevel } from '../logger'\nimport type { CompileOptions } from '../options'\nimport type { SourceFileMapping } from '../parser'\nimport type { AbsolutePath } from '../util/absolute-path'\nimport { buildCompilationSetMapping } from './build-compilation-set-mapping'\nimport { deserializeAndLog } from './log-deserializer'\nimport { PuyaService } from './puya-service'\nimport { resolvePuyaPath } from './resolve-puya-path'\n\nexport async function puyaCompile({\n moduleAwst,\n programDirectory,\n sourceFiles,\n options,\n compilationSet,\n puyaService,\n}: {\n moduleAwst: AWST[]\n programDirectory: AbsolutePath\n sourceFiles: SourceFileMapping\n options: CompileOptions\n compilationSet: CompilationSet\n puyaService?: PuyaService\n}) {\n const puyaPath = await resolvePuyaPath(options)\n const localPuyaService = puyaService ?? new PuyaService({ puyaPath })\n const puyaOptions = options.buildPuyaOptions(\n buildCompilationSetMapping({\n awst: moduleAwst,\n inputPaths: options.filePaths,\n compilationSet,\n }),\n )\n\n const response = await localPuyaService.compile({\n awst: moduleAwst,\n options: puyaOptions,\n base_path: programDirectory.toString(),\n log_level: getPuyaLogLevel(options.logLevel),\n source_annotations: getSourceFileContents(sourceFiles),\n })\n // Shutdown service if we created it locally\n if (puyaService === undefined) await localPuyaService.shutdown()\n for (const log of response.logs) {\n deserializeAndLog(log)\n }\n\n return response\n}\n\nfunction getPuyaLogLevel(logLevel: LogLevel): string {\n switch (logLevel) {\n case LogLevel.Debug:\n return 'debug'\n case LogLevel.Info:\n return 'info'\n case LogLevel.Warning:\n return 'warning'\n case LogLevel.Error:\n return 'error'\n case LogLevel.Critical:\n return 'critical'\n }\n}\nfunction getSourceFileContents(sourceFiles: SourceFileMapping) {\n return Object.fromEntries(\n Object.entries(sourceFiles).map(([key, value]) => {\n const source = ts.isSourceFile(value) ? value.getFullText().replace(/\\r\\n/g, '\\n').split(/\\n/g) : value\n return [key, source] as const\n }),\n )\n}\n","import type ts from 'typescript'\nimport { writeARC4Clients } from './arc4-clientgen'\nimport type { AWST } from './awst/nodes'\nimport { validateAwst } from './awst/validation'\nimport { buildAwst } from './awst_build'\nimport { type CompilationSet } from './awst_build/models/contract-class-model'\nimport { registerPTypes } from './awst_build/ptypes/register'\nimport { typeRegistry } from './awst_build/type-registry'\nimport { appVersion } from './cli/app-version'\nimport { logger, LoggingContext } from './logger'\nimport type { CompileOptions } from './options'\nimport { createTsProgram } from './parser'\nimport { puyaCompile } from './puya'\nimport type { PuyaService } from './puya/puya-service'\nimport type { AbsolutePath } from './util/absolute-path'\n\nexport type CompileResult = {\n programDirectory: AbsolutePath\n awst?: AWST[]\n ast?: Record<string, ts.SourceFile>\n compilationSet?: CompilationSet\n}\n\nexport async function compile(options: CompileOptions, puyaService?: PuyaService): Promise<CompileResult> {\n const loggerCtx = LoggingContext.current\n if (options.treatWarningsAsErrors) loggerCtx.treatWarningsAsErrors = true\n\n registerPTypes(typeRegistry)\n logger.info(undefined, appVersion({ withAVMVersion: false }))\n const programResult = createTsProgram(options)\n if (loggerCtx.hasErrors()) {\n logger.info(undefined, 'Compilation halted due to parse errors')\n return {\n programDirectory: programResult.programDirectory,\n ast: programResult.sourceFiles,\n }\n }\n const { moduleAwst, compilationSet } = buildAwst(programResult, options)\n validateAwst(moduleAwst)\n\n if (loggerCtx.hasErrors()) {\n logger.info(undefined, 'Compilation halted due to errors')\n return {\n programDirectory: programResult.programDirectory,\n awst: moduleAwst,\n ast: programResult.sourceFiles,\n compilationSet,\n }\n }\n if (!options.dryRun) {\n const compileResult = await puyaCompile({\n options,\n moduleAwst,\n programDirectory: programResult.programDirectory,\n compilationSet,\n sourceFiles: programResult.sourceFiles,\n puyaService,\n })\n\n if (options.outputClient) {\n await writeARC4Clients(compilationSet, options.filePaths, compileResult.arc56)\n }\n }\n\n return {\n programDirectory: programResult.programDirectory,\n awst: moduleAwst,\n ast: programResult.sourceFiles,\n compilationSet,\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile-DnShUPv7.js","sources":["../src/puya/build-compilation-set-mapping.ts","../src/puya/index.ts","../src/compile.ts"],"sourcesContent":["import type { AWST } from '../awst/nodes'\nimport type { CompilationSet } from '../awst_build/models/contract-class-model'\nimport type { AlgoFile, CompilationSetMapping } from '../options'\nimport { mkDirIfNotExists } from '../util'\n\nexport function buildCompilationSetMapping({\n awst,\n inputPaths,\n compilationSet,\n}: {\n awst: AWST[]\n inputPaths: AlgoFile[]\n compilationSet: CompilationSet\n}): CompilationSetMapping {\n const setIds = new Set(compilationSet.compilationOutputSet.map((s) => s.id))\n\n return awst.reduce((acc, cur) => {\n if (setIds.has(cur.id.toString())) {\n const matchedPath = inputPaths.find((p) => cur.sourceLocation.file && p.sourceFile.equals(cur.sourceLocation.file))\n if (matchedPath) {\n mkDirIfNotExists(matchedPath.outDir.toString())\n acc[cur.id.toString()] = matchedPath.outDir.toString()\n }\n }\n return acc\n }, {} as CompilationSetMapping)\n}\n","import ts from 'typescript'\nimport type { AWST } from '../awst/nodes'\nimport type { CompilationSet } from '../awst_build/models/contract-class-model'\nimport { LogLevel } from '../logger'\nimport type { CompileOptions } from '../options'\nimport type { SourceFileMapping } from '../parser'\nimport type { AbsolutePath } from '../util/absolute-path'\nimport { buildCompilationSetMapping } from './build-compilation-set-mapping'\nimport { deserializeAndLog } from './log-deserializer'\nimport { PuyaService } from './puya-service'\nimport { resolvePuyaPath } from './resolve-puya-path'\n\nexport async function puyaCompile({\n moduleAwst,\n programDirectory,\n sourceFiles,\n options,\n compilationSet,\n puyaService,\n}: {\n moduleAwst: AWST[]\n programDirectory: AbsolutePath\n sourceFiles: SourceFileMapping\n options: CompileOptions\n compilationSet: CompilationSet\n puyaService?: PuyaService\n}) {\n const puyaPath = await resolvePuyaPath(options)\n const localPuyaService = puyaService ?? new PuyaService({ puyaPath })\n const puyaOptions = options.buildPuyaOptions(\n buildCompilationSetMapping({\n awst: moduleAwst,\n inputPaths: options.filePaths,\n compilationSet,\n }),\n )\n\n const response = await localPuyaService.compile({\n awst: moduleAwst,\n options: puyaOptions,\n base_path: programDirectory.toString(),\n log_level: getPuyaLogLevel(options.logLevel),\n source_annotations: getSourceFileContents(sourceFiles),\n })\n // Shutdown service if we created it locally\n if (puyaService === undefined) await localPuyaService.shutdown()\n for (const log of response.logs) {\n deserializeAndLog(log)\n }\n\n return response\n}\n\nfunction getPuyaLogLevel(logLevel: LogLevel): string {\n switch (logLevel) {\n case LogLevel.Debug:\n return 'debug'\n case LogLevel.Info:\n return 'info'\n case LogLevel.Warning:\n return 'warning'\n case LogLevel.Error:\n return 'error'\n case LogLevel.Critical:\n return 'critical'\n }\n}\nfunction getSourceFileContents(sourceFiles: SourceFileMapping) {\n return Object.fromEntries(\n Object.entries(sourceFiles).map(([key, value]) => {\n const source = ts.isSourceFile(value) ? value.getFullText().replace(/\\r\\n/g, '\\n').split(/\\n/g) : value\n return [key, source] as const\n }),\n )\n}\n","import type ts from 'typescript'\nimport { writeARC4Clients } from './arc4-clientgen'\nimport type { AWST } from './awst/nodes'\nimport { validateAwst } from './awst/validation'\nimport { buildAwst } from './awst_build'\nimport { type CompilationSet } from './awst_build/models/contract-class-model'\nimport { registerPTypes } from './awst_build/ptypes/register'\nimport { typeRegistry } from './awst_build/type-registry'\nimport { appVersion } from './cli/app-version'\nimport { logger, LoggingContext } from './logger'\nimport type { CompileOptions } from './options'\nimport { createTsProgram } from './parser'\nimport { puyaCompile } from './puya'\nimport type { PuyaService } from './puya/puya-service'\nimport type { AbsolutePath } from './util/absolute-path'\n\nexport type CompileResult = {\n programDirectory: AbsolutePath\n awst?: AWST[]\n ast?: Record<string, ts.SourceFile>\n compilationSet?: CompilationSet\n}\n\nexport async function compile(options: CompileOptions, puyaService?: PuyaService): Promise<CompileResult> {\n const loggerCtx = LoggingContext.current\n if (options.treatWarningsAsErrors) loggerCtx.treatWarningsAsErrors = true\n\n registerPTypes(typeRegistry)\n logger.info(undefined, appVersion({ withAVMVersion: false }))\n const programResult = createTsProgram(options)\n if (loggerCtx.hasErrors()) {\n logger.info(undefined, 'Compilation halted due to parse errors')\n return {\n programDirectory: programResult.programDirectory,\n ast: programResult.sourceFiles,\n }\n }\n const { moduleAwst, compilationSet } = buildAwst(programResult, options)\n validateAwst(moduleAwst)\n\n if (loggerCtx.hasErrors()) {\n logger.info(undefined, 'Compilation halted due to errors')\n return {\n programDirectory: programResult.programDirectory,\n awst: moduleAwst,\n ast: programResult.sourceFiles,\n compilationSet,\n }\n }\n if (!options.dryRun) {\n const compileResult = await puyaCompile({\n options,\n moduleAwst,\n programDirectory: programResult.programDirectory,\n compilationSet,\n sourceFiles: programResult.sourceFiles,\n puyaService,\n })\n\n if (options.outputClient) {\n await writeARC4Clients(compilationSet, options.filePaths, compileResult.arc56)\n }\n }\n\n return {\n programDirectory: programResult.programDirectory,\n awst: moduleAwst,\n ast: programResult.sourceFiles,\n compilationSet,\n }\n}\n"],"names":[],"mappings":";;;;;;;AAKM,SAAU,0BAA0B,CAAC,EACzC,IAAI,EACJ,UAAU,EACV,cAAc,GAKf,EAAA;IACC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5E,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC9B,QAAA,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE;AACjC,YAAA,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACnH,IAAI,WAAW,EAAE;gBACf,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC/C,gBAAA,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE;YACxD;QACF;AACA,QAAA,OAAO,GAAG;IACZ,CAAC,EAAE,EAA2B,CAAC;AACjC;;ACdO,eAAe,WAAW,CAAC,EAChC,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,cAAc,EACd,WAAW,GAQZ,EAAA;AACC,IAAA,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC;IAC/C,MAAM,gBAAgB,GAAG,WAAW,IAAI,IAAI,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;AACrE,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAC1C,0BAA0B,CAAC;AACzB,QAAA,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,cAAc;AACf,KAAA,CAAC,CACH;AAED,IAAA,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC;AAC9C,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE;AACtC,QAAA,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC5C,QAAA,kBAAkB,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACvD,KAAA,CAAC;;IAEF,IAAI,WAAW,KAAK,SAAS;AAAE,QAAA,MAAM,gBAAgB,CAAC,QAAQ,EAAE;AAChE,IAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE;QAC/B,iBAAiB,CAAC,GAAG,CAAC;IACxB;AAEA,IAAA,OAAO,QAAQ;AACjB;AAEA,SAAS,eAAe,CAAC,QAAkB,EAAA;IACzC,QAAQ,QAAQ;QACd,KAAK,QAAQ,CAAC,KAAK;AACjB,YAAA,OAAO,OAAO;QAChB,KAAK,QAAQ,CAAC,IAAI;AAChB,YAAA,OAAO,MAAM;QACf,KAAK,QAAQ,CAAC,OAAO;AACnB,YAAA,OAAO,SAAS;QAClB,KAAK,QAAQ,CAAC,KAAK;AACjB,YAAA,OAAO,OAAO;QAChB,KAAK,QAAQ,CAAC,QAAQ;AACpB,YAAA,OAAO,UAAU;;AAEvB;AACA,SAAS,qBAAqB,CAAC,WAA8B,EAAA;IAC3D,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC/C,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK;AACvG,QAAA,OAAO,CAAC,GAAG,EAAE,MAAM,CAAU;IAC/B,CAAC,CAAC,CACH;AACH;;ACnDO,eAAe,OAAO,CAAC,OAAuB,EAAE,WAAyB,EAAA;AAC9E,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO;IACxC,IAAI,OAAO,CAAC,qBAAqB;AAAE,QAAA,SAAS,CAAC,qBAAqB,GAAG,IAAI;IAEzE,cAAc,CAAC,YAAY,CAAC;AAC5B,IAAA,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,IAAA,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC;AAC9C,IAAA,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE;AACzB,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,wCAAwC,CAAC;QAChE,OAAO;YACL,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;YAChD,GAAG,EAAE,aAAa,CAAC,WAAW;SAC/B;IACH;AACA,IAAA,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;IACxE,YAAY,CAAC,UAAU,CAAC;AAExB,IAAA,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE;AACzB,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,kCAAkC,CAAC;QAC1D,OAAO;YACL,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;AAChD,YAAA,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,aAAa,CAAC,WAAW;YAC9B,cAAc;SACf;IACH;AACA,IAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACnB,QAAA,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC;YACtC,OAAO;YACP,UAAU;YACV,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;YAChD,cAAc;YACd,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,WAAW;AACZ,SAAA,CAAC;AAEF,QAAA,IAAI,OAAO,CAAC,YAAY,EAAE;AACxB,YAAA,MAAM,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC;QAChF;IACF;IAEA,OAAO;QACL,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;AAChD,QAAA,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,aAAa,CAAC,WAAW;QAC9B,cAAc;KACf;AACH;;;;"}