@algorandfoundation/puya-ts 1.2.0-beta.35 → 1.2.0-beta.36

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-B0DpIecU.js → analyser-service-C1sYEdlC.js} +3 -3
  2. package/{analyser-service-B0DpIecU.js.map → analyser-service-C1sYEdlC.js.map} +1 -1
  3. package/analyserService.mjs +3 -3
  4. package/{arc4-clientgen-Dd2qW-1d.js → arc4-clientgen-BBdFxRUs.js} +2 -2
  5. package/{arc4-clientgen-Dd2qW-1d.js.map → arc4-clientgen-BBdFxRUs.js.map} +1 -1
  6. package/awst_build/context/awst-build-context.d.ts +1 -1
  7. package/awst_build/ptypes/index.d.ts +64 -87
  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-Df1hdewH.js → check-node-version-jdAtH-rx.js} +3 -3
  12. package/{check-node-version-Df1hdewH.js.map → check-node-version-jdAtH-rx.js.map} +1 -1
  13. package/cli.mjs +8 -8
  14. package/{compile-DGk1ftqu.js → compile-DbGGbErI.js} +6 -6
  15. package/{compile-DGk1ftqu.js.map → compile-DbGGbErI.js.map} +1 -1
  16. package/{contract-class-model-cK8F4WVM.js → contract-class-model-CkfUf4wT.js} +108 -174
  17. package/contract-class-model-CkfUf4wT.js.map +1 -0
  18. package/index.mjs +8 -8
  19. package/{options-sBHEIhey.js → options-BMqysQHP.js} +72 -78
  20. package/options-BMqysQHP.js.map +1 -0
  21. package/package.json +2 -2
  22. package/{resolve-puya-path-Bgh6DuRP.js → resolve-puya-path-C4sw8aVH.js} +4 -4
  23. package/{resolve-puya-path-Bgh6DuRP.js.map → resolve-puya-path-C4sw8aVH.js.map} +1 -1
  24. package/{semver-T4bO0VEo.js → semver-BcvZGdLN.js} +2 -2
  25. package/{semver-T4bO0VEo.js.map → semver-BcvZGdLN.js.map} +1 -1
  26. package/{util-CA3Q0W2C.js → util-DgN3iON1.js} +2 -2
  27. package/{util-CA3Q0W2C.js.map → util-DgN3iON1.js.map} +1 -1
  28. package/contract-class-model-cK8F4WVM.js.map +0 -1
  29. package/options-sBHEIhey.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"compile-DGk1ftqu.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-DbGGbErI.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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"}
@@ -1491,6 +1491,21 @@ class StorageProxyPType extends PType {
1491
1491
  this.contentType = props.content;
1492
1492
  }
1493
1493
  }
1494
+ class StateProxyPType extends StorageProxyPType {
1495
+ module;
1496
+ kind;
1497
+ constructor(props) {
1498
+ super({ content: props.content, keyWType: wtypes.stateKeyWType });
1499
+ this.module = Constants.moduleNames.algoTs.state;
1500
+ this.kind = props.kind;
1501
+ }
1502
+ get name() {
1503
+ return `${this.kind}<${this.contentType.name}>`;
1504
+ }
1505
+ get fullName() {
1506
+ return `${this.module}::${this.kind}<${this.contentType.fullName}>`;
1507
+ }
1508
+ }
1494
1509
  const GlobalStateGeneric = new GenericPType({
1495
1510
  name: 'GlobalState',
1496
1511
  module: Constants.moduleNames.algoTs.state,
@@ -1501,24 +1516,32 @@ const GlobalStateGeneric = new GenericPType({
1501
1516
  });
1502
1517
  },
1503
1518
  });
1504
- class GlobalStateType extends StorageProxyPType {
1519
+ class GlobalStateType extends StateProxyPType {
1505
1520
  [PType.IdSymbol] = 'GlobalStateType';
1506
- static baseName = 'GlobalState';
1507
- static baseFullName = `${Constants.moduleNames.algoTs.state}::${GlobalStateType.baseName}`;
1508
- module = Constants.moduleNames.algoTs.state;
1509
- get name() {
1510
- return `${GlobalStateType.baseName}<${this.contentType.name}>`;
1511
- }
1512
- get fullName() {
1513
- return `${GlobalStateType.baseFullName}<${this.contentType.fullName}>`;
1514
- }
1515
1521
  constructor(props) {
1516
- super({ ...props, keyWType: wtypes.stateKeyWType });
1522
+ super({ ...props, kind: 'GlobalState' });
1517
1523
  }
1518
1524
  accept(visitor) {
1519
1525
  return visitor.visitGlobalStateType(this);
1520
1526
  }
1521
1527
  }
1528
+ class StateMapProxyPType extends StorageProxyPType {
1529
+ module;
1530
+ kind;
1531
+ keyType;
1532
+ constructor(props) {
1533
+ super({ content: props.content, keyWType: wtypes.stateKeyWType });
1534
+ this.module = Constants.moduleNames.algoTs.state;
1535
+ this.kind = props.kind;
1536
+ this.keyType = props.keyType;
1537
+ }
1538
+ get name() {
1539
+ return `${this.kind}<${this.keyType.name}, ${this.contentType.name}>`;
1540
+ }
1541
+ get fullName() {
1542
+ return `${this.module}::${this.kind}<${this.keyType.name}, ${this.contentType.fullName}>`;
1543
+ }
1544
+ }
1522
1545
  const GlobalMapGeneric = new GenericPType({
1523
1546
  name: 'GlobalMap',
1524
1547
  module: Constants.moduleNames.algoTs.state,
@@ -1530,19 +1553,10 @@ const GlobalMapGeneric = new GenericPType({
1530
1553
  });
1531
1554
  },
1532
1555
  });
1533
- class GlobalMapType extends StorageProxyPType {
1556
+ class GlobalMapType extends StateMapProxyPType {
1534
1557
  [PType.IdSymbol] = 'GlobalMapType';
1535
- module = Constants.moduleNames.algoTs.state;
1536
- get name() {
1537
- return `GlobalMap<${this.keyType.name}, ${this.contentType.name}>`;
1538
- }
1539
- get fullName() {
1540
- return `${this.module}::${this.name}<${this.keyType.name}, ${this.contentType.fullName}>`;
1541
- }
1542
- keyType;
1543
1558
  constructor(props) {
1544
- super({ ...props, keyWType: wtypes.stateKeyWType });
1545
- this.keyType = props.keyType;
1559
+ super({ ...props, kind: 'GlobalMap' });
1546
1560
  }
1547
1561
  accept(visitor) {
1548
1562
  return visitor.visitGlobalMapType(this);
@@ -1558,25 +1572,10 @@ const LocalStateGeneric = new GenericPType({
1558
1572
  });
1559
1573
  },
1560
1574
  });
1561
- class LocalStateType extends StorageProxyPType {
1575
+ class LocalStateType extends StateProxyPType {
1562
1576
  [PType.IdSymbol] = 'LocalStateType';
1563
- static baseName = 'LocalState';
1564
- static baseFullName = `${Constants.moduleNames.algoTs.state}::${LocalStateType.baseName}`;
1565
- module = Constants.moduleNames.algoTs.state;
1566
- get name() {
1567
- return `${LocalStateType.baseName}<${this.contentType.name}>`;
1568
- }
1569
- get fullName() {
1570
- return `${LocalStateType.baseFullName}<${this.contentType.fullName}>`;
1571
- }
1572
1577
  constructor(props) {
1573
- super({ ...props, keyWType: wtypes.stateKeyWType });
1574
- }
1575
- static parameterise(typeArgs) {
1576
- codeInvariant(typeArgs.length === 1, 'LocalState type expects exactly one type parameter');
1577
- return new LocalStateType({
1578
- content: typeArgs[0],
1579
- });
1578
+ super({ ...props, kind: 'LocalState' });
1580
1579
  }
1581
1580
  accept(visitor) {
1582
1581
  return visitor.visitLocalStateType(this);
@@ -1593,19 +1592,10 @@ const LocalMapGeneric = new GenericPType({
1593
1592
  });
1594
1593
  },
1595
1594
  });
1596
- class LocalMapType extends StorageProxyPType {
1595
+ class LocalMapType extends StateMapProxyPType {
1597
1596
  [PType.IdSymbol] = 'LocalMapType';
1598
- module = Constants.moduleNames.algoTs.state;
1599
- get name() {
1600
- return `LocalMap<${this.keyType.name}, ${this.contentType.name}>`;
1601
- }
1602
- get fullName() {
1603
- return `${this.module}::${this.name}<${this.keyType.name}, ${this.contentType.fullName}>`;
1604
- }
1605
- keyType;
1606
1597
  constructor(props) {
1607
- super({ ...props, keyWType: wtypes.stateKeyWType });
1608
- this.keyType = props.keyType;
1598
+ super({ ...props, kind: 'LocalMap' });
1609
1599
  }
1610
1600
  accept(visitor) {
1611
1601
  return visitor.visitLocalMapType(this);
@@ -1655,7 +1645,7 @@ class BoxMapPType extends StorageProxyPType {
1655
1645
  return `BoxMap<${this.keyType.name}, ${this.contentType.name}>`;
1656
1646
  }
1657
1647
  get fullName() {
1658
- return `${this.module}::${this.name}<${this.keyType.name}, ${this.contentType.fullName}>`;
1648
+ return `${this.module}::${this.name}`;
1659
1649
  }
1660
1650
  keyType;
1661
1651
  constructor(props) {
@@ -1742,8 +1732,7 @@ class ABICompatibleInstanceType extends InstanceType {
1742
1732
  this.abiTypeSignature = abiTypeSignature;
1743
1733
  }
1744
1734
  }
1745
- class LibFunctionType extends PType {
1746
- [PType.IdSymbol] = 'LibFunctionType';
1735
+ class LibPType extends PType {
1747
1736
  wtype;
1748
1737
  name;
1749
1738
  module;
@@ -1753,92 +1742,58 @@ class LibFunctionType extends PType {
1753
1742
  this.name = name;
1754
1743
  this.module = module;
1755
1744
  }
1745
+ }
1746
+ class LibFunctionType extends LibPType {
1747
+ [PType.IdSymbol] = 'LibFunctionType';
1756
1748
  accept(visitor) {
1757
1749
  return visitor.visitLibFunctionType(this);
1758
1750
  }
1759
1751
  }
1760
- class LibClassType extends PType {
1752
+ class LibClassType extends LibPType {
1761
1753
  [PType.IdSymbol] = 'LibClassType';
1762
- wtype;
1763
- name;
1764
- module;
1765
- singleton = true;
1766
- constructor({ name, module }) {
1767
- super();
1768
- this.name = name;
1769
- this.module = module;
1770
- }
1771
1754
  accept(visitor) {
1772
1755
  return visitor.visitLibClassType(this);
1773
1756
  }
1774
1757
  }
1775
- class LibObjType extends PType {
1758
+ class LibObjType extends LibPType {
1776
1759
  [PType.IdSymbol] = 'LibObjType';
1777
- wtype;
1778
- name;
1779
- module;
1780
- singleton = true;
1781
- constructor({ name, module }) {
1782
- super();
1783
- this.name = name;
1784
- this.module = module;
1785
- }
1786
1760
  accept(visitor) {
1787
1761
  return visitor.visitLibObjType(this);
1788
1762
  }
1789
1763
  }
1790
- class IntrinsicFunctionGroupType extends PType {
1791
- [PType.IdSymbol] = 'IntrinsicFunctionGroupType';
1764
+ class IntrinsicOpPType extends PType {
1792
1765
  wtype;
1793
1766
  name;
1794
1767
  module = Constants.moduleNames.algoTs.op;
1795
- singleton = true;
1796
1768
  constructor({ name }) {
1797
1769
  super();
1798
1770
  this.name = name;
1799
1771
  }
1772
+ }
1773
+ class IntrinsicFunctionGroupType extends IntrinsicOpPType {
1774
+ [PType.IdSymbol] = 'IntrinsicFunctionGroupType';
1775
+ singleton = true;
1800
1776
  accept(visitor) {
1801
1777
  return visitor.visitIntrinsicFunctionGroupType(this);
1802
1778
  }
1803
1779
  }
1804
- class IntrinsicFunctionGroupTypeType extends PType {
1780
+ class IntrinsicFunctionGroupTypeType extends IntrinsicOpPType {
1805
1781
  [PType.IdSymbol] = 'IntrinsicFunctionGroupTypeType';
1806
- wtype;
1807
- name;
1808
- module = Constants.moduleNames.algoTs.op;
1809
1782
  singleton = false;
1810
- constructor({ name }) {
1811
- super();
1812
- this.name = name;
1813
- }
1814
1783
  accept(visitor) {
1815
1784
  return visitor.visitIntrinsicFunctionGroupTypeType(this);
1816
1785
  }
1817
1786
  }
1818
- class IntrinsicFunctionType extends PType {
1787
+ class IntrinsicFunctionType extends IntrinsicOpPType {
1819
1788
  [PType.IdSymbol] = 'IntrinsicFunctionType';
1820
- wtype;
1821
- name;
1822
- module = Constants.moduleNames.algoTs.op;
1823
1789
  singleton = true;
1824
- constructor({ name }) {
1825
- super();
1826
- this.name = name;
1827
- }
1828
1790
  accept(visitor) {
1829
1791
  return visitor.visitIntrinsicFunctionType(this);
1830
1792
  }
1831
1793
  }
1832
- class IntrinsicFunctionTypeType extends PType {
1794
+ class IntrinsicFunctionTypeType extends IntrinsicOpPType {
1833
1795
  [PType.IdSymbol] = 'IntrinsicFunctionTypeType';
1834
- wtype;
1835
- name;
1836
- module = Constants.moduleNames.algoTs.op;
1837
1796
  singleton = false;
1838
- constructor({ name }) {
1839
- super();
1840
- this.name = name;
1841
- }
1842
1797
  accept(visitor) {
1843
1798
  return visitor.visitIntrinsicFunctionTypeType(this);
1844
1799
  }
@@ -1929,20 +1884,27 @@ class ArrayLiteralPType extends PType {
1929
1884
  });
1930
1885
  }
1931
1886
  }
1932
- class MutableTuplePType extends PType {
1933
- [PType.IdSymbol] = 'MutableTuplePType';
1887
+ class TupleBasePType extends PType {
1888
+ items;
1889
+ singleton = false;
1934
1890
  module = Constants.moduleNames.tslib;
1891
+ namePrefix;
1892
+ constructor(props) {
1893
+ super();
1894
+ this.items = props.items;
1895
+ this.namePrefix = props.immutable ? 'readonly ' : '';
1896
+ }
1935
1897
  get name() {
1936
- return `[${this.items.map((i) => i.name).join(', ')}]`;
1898
+ return `${this.namePrefix}[${this.items.map((i) => i.name).join(', ')}]`;
1937
1899
  }
1938
1900
  get fullName() {
1939
- return `${this.module}::[${this.items.map((i) => i.fullName).join(', ')}]`;
1901
+ return `${this.module}::${this.namePrefix}[${this.items.map((i) => i.fullName).join(', ')}]`;
1940
1902
  }
1941
- items;
1942
- singleton = false;
1903
+ }
1904
+ class MutableTuplePType extends TupleBasePType {
1905
+ [PType.IdSymbol] = 'MutableTuplePType';
1943
1906
  constructor(props) {
1944
- super();
1945
- this.items = props.items;
1907
+ super({ ...props });
1946
1908
  }
1947
1909
  get wtype() {
1948
1910
  return new wtypes.ARC4Tuple({
@@ -1954,20 +1916,10 @@ class MutableTuplePType extends PType {
1954
1916
  return visitor.visitMutableTuplePType(this);
1955
1917
  }
1956
1918
  }
1957
- class ReadonlyTuplePType extends PType {
1919
+ class ReadonlyTuplePType extends TupleBasePType {
1958
1920
  [PType.IdSymbol] = 'ReadonlyTuplePType';
1959
- module = Constants.moduleNames.tslib;
1960
- get name() {
1961
- return `readonly [${this.items.map((i) => i.name).join(', ')}]`;
1962
- }
1963
- get fullName() {
1964
- return `${this.module}::readonly [${this.items.map((i) => i.fullName).join(', ')}]`;
1965
- }
1966
- items;
1967
- singleton = false;
1968
1921
  constructor(props) {
1969
- super();
1970
- this.items = props.items;
1922
+ super({ ...props, immutable: true });
1971
1923
  }
1972
1924
  get wtype() {
1973
1925
  return new wtypes.WTuple({
@@ -1986,20 +1938,22 @@ const ArrayGeneric = new GenericPType({
1986
1938
  return new ArrayPType({ elementType: typeArgs[0] });
1987
1939
  },
1988
1940
  });
1989
- class ArrayPType extends PType {
1990
- [PType.IdSymbol] = 'ArrayPType';
1941
+ class DynamicArrayBasePType extends PType {
1991
1942
  elementType;
1992
- immutable = false;
1943
+ immutable;
1993
1944
  singleton = false;
1994
1945
  name;
1995
1946
  module = Constants.moduleNames.typescript.es5;
1996
- get fullName() {
1997
- return `${this.module}::Array<${this.elementType.fullName}>`;
1998
- }
1947
+ kind;
1999
1948
  constructor(props) {
2000
1949
  super();
2001
- this.name = `Array<${props.elementType.name}>`;
2002
1950
  this.elementType = props.elementType;
1951
+ this.immutable = props.immutable;
1952
+ this.kind = props.immutable ? 'ReadonlyArray' : 'Array';
1953
+ this.name = `${this.kind}<${props.elementType.name}>`;
1954
+ }
1955
+ get fullName() {
1956
+ return `${this.module}::${this.kind}<${this.elementType.fullName}>`;
2003
1957
  }
2004
1958
  get wtype() {
2005
1959
  return new wtypes.ARC4DynamicArray({
@@ -2007,6 +1961,12 @@ class ArrayPType extends PType {
2007
1961
  immutable: this.immutable,
2008
1962
  });
2009
1963
  }
1964
+ }
1965
+ class ArrayPType extends DynamicArrayBasePType {
1966
+ [PType.IdSymbol] = 'ArrayPType';
1967
+ constructor(props) {
1968
+ super({ ...props, immutable: false });
1969
+ }
2010
1970
  accept(visitor) {
2011
1971
  return visitor.visitArrayPType(this);
2012
1972
  }
@@ -2019,26 +1979,10 @@ const ReadonlyArrayGeneric = new GenericPType({
2019
1979
  return new ReadonlyArrayPType({ elementType: typeArgs[0] });
2020
1980
  },
2021
1981
  });
2022
- class ReadonlyArrayPType extends PType {
1982
+ class ReadonlyArrayPType extends DynamicArrayBasePType {
2023
1983
  [PType.IdSymbol] = 'ReadonlyArrayPType';
2024
- elementType;
2025
- singleton = false;
2026
- immutable = true;
2027
- name;
2028
- module = Constants.moduleNames.typescript.es5;
2029
- get fullName() {
2030
- return `${this.module}::ReadonlyArray<${this.elementType.fullName}>`;
2031
- }
2032
1984
  constructor(props) {
2033
- super();
2034
- this.elementType = props.elementType;
2035
- this.name = `ReadonlyArray<${props.elementType.name}>`;
2036
- }
2037
- get wtype() {
2038
- return new wtypes.ARC4DynamicArray({
2039
- elementType: this.elementType.wtypeOrThrow,
2040
- immutable: this.immutable,
2041
- });
1985
+ super({ ...props, immutable: true });
2042
1986
  }
2043
1987
  accept(visitor) {
2044
1988
  return visitor.visitReadonlyArrayPType(this);
@@ -2118,6 +2062,22 @@ class ObjectPType extends PType {
2118
2062
  hasSameStructure(other) {
2119
2063
  return zipStrict(this.properties, other.properties).every(([left, right]) => left.name === right.name && left.ptype.equals(right.ptype));
2120
2064
  }
2065
+ toWTuple(fallbackName) {
2066
+ const tupleTypes = [];
2067
+ const tupleNames = [];
2068
+ for (const { name, ptype } of this.properties) {
2069
+ if (ptype instanceof TransientType) {
2070
+ throw new CodeError(`Property '${name}' of ${this.name} has an unsupported type: ${ptype.typeMessage}`);
2071
+ }
2072
+ tupleTypes.push(ptype.wtypeOrThrow);
2073
+ tupleNames.push(name);
2074
+ }
2075
+ return new wtypes.WTuple({
2076
+ name: this.alias?.fullName ?? fallbackName,
2077
+ names: tupleNames,
2078
+ types: tupleTypes,
2079
+ });
2080
+ }
2121
2081
  }
2122
2082
  class ObjectLiteralPType extends ObjectPType {
2123
2083
  [PType.IdSymbol] = 'ObjectLiteralPType';
@@ -2146,20 +2106,7 @@ class ObjectLiteralPType extends ObjectPType {
2146
2106
  });
2147
2107
  }
2148
2108
  get wtype() {
2149
- const tupleTypes = [];
2150
- const tupleNames = [];
2151
- for (const { name, ptype } of this.properties) {
2152
- if (ptype instanceof TransientType) {
2153
- throw new CodeError(`Property '${name}' of ${this.name} has an unsupported type: ${ptype.typeMessage}`);
2154
- }
2155
- tupleTypes.push(ptype.wtypeOrThrow);
2156
- tupleNames.push(name);
2157
- }
2158
- return new wtypes.WTuple({
2159
- name: this.alias?.fullName ?? this.toString(),
2160
- names: tupleNames,
2161
- types: tupleTypes,
2162
- });
2109
+ return this.toWTuple(this.toString());
2163
2110
  }
2164
2111
  }
2165
2112
  class ImmutableObjectPType extends ObjectPType {
@@ -2172,20 +2119,7 @@ class ImmutableObjectPType extends ObjectPType {
2172
2119
  });
2173
2120
  }
2174
2121
  get wtype() {
2175
- const tupleTypes = [];
2176
- const tupleNames = [];
2177
- for (const { name, ptype } of this.properties) {
2178
- if (ptype instanceof TransientType) {
2179
- throw new CodeError(`Property '${name}' of ${this.name} has an unsupported type: ${ptype.typeMessage}`);
2180
- }
2181
- tupleTypes.push(ptype.wtypeOrThrow);
2182
- tupleNames.push(name);
2183
- }
2184
- return new wtypes.WTuple({
2185
- name: this.alias?.fullName ?? this.name,
2186
- names: tupleNames,
2187
- types: tupleTypes,
2188
- });
2122
+ return this.toWTuple(this.name);
2189
2123
  }
2190
2124
  accept(visitor) {
2191
2125
  return visitor.visitImmutableObjectPType(this);
@@ -5588,4 +5522,4 @@ class CompilationSet extends CustomKeyMap {
5588
5522
  }
5589
5523
 
5590
5524
  export { FixedArrayGeneric as $, AbsolutePath as A, AssetConfigTxnFunction as B, ContractReference as C, AssetFreezeTxnFunction as D, AssetFunction as E, AssetTransferTxnFunction as F, BaseContractClassType as G, BigIntLiteralPType as H, InternalError as I, BigIntPType as J, BigUintFunction as K, LogLevel as L, BooleanFunction as M, BoxGeneric as N, OnCompletionAction as O, PuyaError as P, BoxMapGeneric as Q, BoxMapPType as R, BoxPType as S, BytesFunction as T, BytesGeneric as U, BytesPType as V, ClassMethodDecoratorContext as W, ClearStateProgram as X, ClusteredContractClassType as Y, ClusteredPrototype as Z, ContractClassPType as _, LoggingContext as a, UnsupportedType as a$, FixedArrayPType as a0, FunctionPType as a1, GeneratorGeneric as a2, GeneratorType as a3, GenericPType as a4, GlobalMapGeneric as a5, GlobalMapType as a6, GlobalStateGeneric as a7, GlobalStateType as a8, GroupTransactionPType as a9, NumericLiteralPType as aA, ObjectLiteralPType as aB, ObjectWithOptionalFieldsType as aC, PType as aD, PaymentTxnFunction as aE, PolytypeClassMethodHelper as aF, PromiseGeneric as aG, PromiseType as aH, ReadonlyArrayGeneric as aI, ReadonlyArrayPType as aJ, ReadonlyGeneric as aK, ReadonlyTuplePType as aL, ReferenceArrayGeneric as aM, ReferenceArrayType as aN, StringFunction as aO, SuperPrototypeSelector as aP, SuperPrototypeSelectorGeneric as aQ, TemplateVarFunction as aR, TransactionFunction as aS, TransactionFunctionType as aT, TransientType as aU, TypeParameterType as aV, Uint64EnumMemberLiteralType as aW, Uint64EnumMemberType as aX, Uint64EnumType as aY, Uint64Function as aZ, UnionPType as a_, ImmutableObjectPType as aa, InnerTransactionPType as ab, InstanceType as ac, InternalType as ad, IntersectionPType as ae, IntrinsicEnumType as af, IntrinsicFunctionGroupType as ag, IntrinsicFunctionGroupTypeType as ah, IntrinsicFunctionType as ai, IntrinsicFunctionTypeType as aj, IterableIteratorGeneric as ak, IterableIteratorType as al, ItxnParamsPType as am, KeyRegistrationTxnFunction as an, LibClassType as ao, LibFunctionType as ap, LibObjType as aq, LocalMapGeneric as ar, LocalMapType as as, LocalStateGeneric as at, LocalStateType as au, LogicSigPType as av, MutableObjectPType as aw, MutableTuplePType as ax, NamespacePType as ay, NumberPType as az, ContractClassModel as b, stringPType as b$, anyItxnParamsType as b0, anyItxnType as b1, anyPType as b2, applicationCallItxnFn as b3, applicationCallItxnParamsType as b4, applicationItxnType as b5, arc28EmitFunction as b6, arc4AbiMethodDecorator as b7, arc4BareMethodDecorator as b8, arc4BaseContractType as b9, errFunction as bA, esSymbol as bB, inputOnlyObjects as bC, isArrayType as bD, isObjectType as bE, isTupleLike as bF, itoaMethod as bG, itxnComposePType as bH, keyRegistrationItxnFn as bI, keyRegistrationItxnParamsType as bJ, keyRegistrationItxnType as bK, logFunction as bL, loggedAssertFunction as bM, loggedErrFunction as bN, logicSigBaseType as bO, logicSigOptionsDecorator as bP, matchFunction as bQ, mimcConfigurationsPType as bR, neverPType as bS, nullPType as bT, numberPType as bU, onCompleteActionType as bV, opUpFeeSourceType as bW, paymentItxnFn as bX, paymentItxnParamsType as bY, paymentItxnType as bZ, readonlyDecorator as b_, assertFunction as ba, assertMatchFunction as bb, assetConfigItxnFn as bc, assetConfigItxnParamsType as bd, assetConfigItxnType as be, assetFreezeItxnFn as bf, assetFreezeItxnParamsType as bg, assetFreezeItxnType as bh, assetTransferItxnFn as bi, assetTransferItxnParamsType as bj, assetTransferItxnType as bk, base64PType as bl, baseContractType as bm, bigIntPType as bn, biguintPType as bo, boolPType as bp, bytesPType as bq, bzeroFunction as br, cloneFunctionPType as bs, compileFunctionType as bt, compiledContractType as bu, compiledLogicSigType as bv, contractOptionsDecorator as bw, ecPType as bx, ecdsaPType as by, ensureBudgetFunction as bz, CodeError as c, UInt64BinaryOperator as c$, submitGroupItxnFunction as c0, transactionTypeType as c1, uint64PType as c2, undefinedPType as c3, unknownPType as c4, urangeFunction as c5, validateEncodingFunctionPType as c6, vrfVerifyPType as c7, uint8ArrayToBigInt as c8, uint8ArrayToBase64 as c9, instanceOfAny as cA, SingleEvaluation as cB, VarExpression as cC, nodeFactory as cD, NotSupported as cE, TupleItemExpression as cF, FieldExpression as cG, IndexExpression as cH, TupleExpression as cI, AppStateExpression as cJ, AppAccountStateExpression as cK, BoxValueExpression as cL, StateGetEx as cM, StateGet as cN, hasFlags as cO, BinaryBooleanOperator as cP, SymbolName as cQ, intersectsFlags as cR, extractModuleName as cS, toSubScript as cT, CompilationSet as cU, ARC4ABIMethodConfig as cV, EqualityComparison as cW, ARC4CreateOption as cX, NewArray as cY, BytesEncoding as cZ, FixableCodeError as c_, uint8ArrayToBase32 as ca, uint8ArrayToUtf8 as cb, base64ToUint8Array as cc, base32ToUint8Array as cd, bigIntToUint8Array as ce, utf8ToUint8Array as cf, LogSource as cg, SourceLocation as ch, isMinLevel as ci, enumFromValue as cj, mkDirIfNotExists as ck, distinct as cl, zipStrict as cm, isIn as cn, wtypes as co, codeInvariant as cp, invariant as cq, throwError as cr, StringConstant as cs, BytesConstant as ct, IntegerConstant as cu, BoolConstant as cv, AddressConstant as cw, MethodConstant as cx, DecimalConstant as cy, TemplateVar as cz, Constants as d, ReturnStatement as d$, tryConvertEnum as d0, NumericComparison as d1, UInt64UnaryOperator as d2, UInt64PostfixUnaryOperator as d3, wrapInCodeError as d4, TransactionKind as d5, LogicSigReference as d6, getInnerTransactionType as d7, getItxnParamsType as d8, CompiledContract as d9, StageInnerTransactions as dA, SubmitInnerTransaction as dB, AssignmentExpression as dC, CommaExpression as dD, NumericComparisonExpression as dE, BytesComparisonExpression as dF, PuyaLibCall as dG, UInt64UnaryOperation as dH, UInt64PostfixUnaryOperation as dI, BigUIntPostfixUnaryOperation as dJ, BytesUnaryOperation as dK, UInt64BinaryOperation as dL, BigUIntBinaryOperation as dM, BooleanBinaryOperation as dN, Not as dO, Emit as dP, Range as dQ, Enumeration as dR, Reversed as dS, StateExists as dT, ARC4Router as dU, MethodSignatureString as dV, SubroutineID as dW, ContractMethodTarget as dX, InstanceMethodTarget as dY, patchErrorLocation as dZ, Goto as d_, ARC4BareMethodConfig as da, MethodSignature as db, BigUIntBinaryOperator as dc, BigUIntPostfixUnaryOperator as dd, BytesBinaryOperator as de, IntrinsicCall as df, enumKeyFromValue as dg, BytesUnaryOperator as dh, PuyaLibFunction as di, Expression as dj, AppStorageKind as dk, transientTypeErrors as dl, getGroupTransactionType as dm, Contract as dn, InstanceSuperMethodTarget as dp, ExpressionStatement as dq, AssertExpression as dr, VoidConstant as ds, ArrayConcat as dt, ArrayPop as du, ArrayReplace as dv, ArrayLength as dw, SizeOf as dx, UpdateInnerTransaction as dy, CheckedMaybe as dz, accountPType as e, ContractMethod as e0, sameSets as e1, Subroutine as e2, LogicSigClassModel as e3, ptypeIn as e4, expandMaybeArray as e5, applicationPType as f, assetPType as g, anyGtxnType as h, assetConfigGtxnType as i, assetTransferGtxnType as j, keyRegistrationGtxnType as k, logger as l, assetFreezeGtxnType as m, applicationCallGtxnType as n, ABICompatibleInstanceType as o, paymentGtxnType as p, ALL_OP_ENUMS as q, AccountFunction as r, AnyPType as s, ApplicationFunctionType as t, ApplicationTxnFunction as u, voidPType as v, ApprovalProgram as w, ArrayGeneric as x, ArrayLiteralPType as y, ArrayPType as z };
5591
- //# sourceMappingURL=contract-class-model-cK8F4WVM.js.map
5525
+ //# sourceMappingURL=contract-class-model-CkfUf4wT.js.map