@algorandfoundation/puya-ts 1.2.0-beta.2 → 1.2.0-beta.21

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 (67) hide show
  1. package/README.md +7 -5
  2. package/{analyser-service-DSK9g7zQ.js → analyser-service-CGprVWba.js} +409 -372
  3. package/analyser-service-CGprVWba.js.map +1 -0
  4. package/analyserService.mjs +7 -6
  5. package/analyserService.mjs.map +1 -1
  6. package/arc4-clientgen-C7FQSt3R.js +324 -0
  7. package/arc4-clientgen-C7FQSt3R.js.map +1 -0
  8. package/arc4-clientgen.d.ts +6 -0
  9. package/awst/intrinsic-factory.d.ts +4 -2
  10. package/awst/node-factory.d.ts +1 -0
  11. package/awst/nodes.d.ts +22 -2
  12. package/awst/to-code-visitor.d.ts +2 -0
  13. package/awst/validation/awst-traverser.d.ts +3 -1
  14. package/awst/wtypes.d.ts +8 -1
  15. package/awst_build/arc4-util.d.ts +1 -38
  16. package/awst_build/ast-visitors/contract-method-visitor.d.ts +0 -2
  17. package/awst_build/eb/arc28/arc-28-emit-function-builder.d.ts +1 -2
  18. package/awst_build/eb/arc4/uintn.d.ts +1 -1
  19. package/awst_build/eb/arc4/util.d.ts +1 -0
  20. package/awst_build/eb/array-like/util.d.ts +0 -1
  21. package/awst_build/eb/logged-error-builder.d.ts +11 -0
  22. package/awst_build/models/decorator-data.d.ts +1 -0
  23. package/awst_build/ptypes/for-export.d.ts +0 -1
  24. package/awst_build/ptypes/index.d.ts +2 -0
  25. package/bin/puyats-clientgen.d.ts +2 -0
  26. package/bin/puyats-clientgen.mjs +101 -0
  27. package/bin/puyats-clientgen.mjs.map +1 -0
  28. package/bin/puyats-ls.mjs +21 -46
  29. package/bin/puyats-ls.mjs.map +1 -1
  30. package/bin/run-cli.mjs +18 -12
  31. package/bin/run-cli.mjs.map +1 -1
  32. package/{check-node-version-BtcNqlid.js → check-node-version-DcMVGPC-.js} +3 -3
  33. package/{check-node-version-BtcNqlid.js.map → check-node-version-DcMVGPC-.js.map} +1 -1
  34. package/cli/build-command.d.ts +2 -0
  35. package/cli.mjs +36 -76
  36. package/cli.mjs.map +1 -1
  37. package/clientgen.d.ts +1 -0
  38. package/code-fix/{invalid-non-null-assertion.d.ts → no-op-non-null-assertion.d.ts} +1 -1
  39. package/{compile-Cj7vjDbw.js → compile-D0CpLiRh.js} +13 -4
  40. package/compile-D0CpLiRh.js.map +1 -0
  41. package/compile.d.ts +1 -1
  42. package/constants.d.ts +1 -1
  43. package/contract-class-model-CLKobHyV.js +5574 -0
  44. package/contract-class-model-CLKobHyV.js.map +1 -0
  45. package/index.d.ts +1 -1
  46. package/index.mjs +17 -10
  47. package/index.mjs.map +1 -1
  48. package/logger/index.d.ts +1 -0
  49. package/{options-Cbipn6vL.js → options-B93nVWrL.js} +2419 -8288
  50. package/options-B93nVWrL.js.map +1 -0
  51. package/options.d.ts +4 -0
  52. package/package.json +13 -12
  53. package/puya/puya-service.d.ts +5 -1
  54. package/{resolve-puya-path-CsuzbFH2.js → resolve-puya-path-D7qDcdPx.js} +9 -45
  55. package/resolve-puya-path-D7qDcdPx.js.map +1 -0
  56. package/semver-BPw8lYGI.js +45 -0
  57. package/semver-BPw8lYGI.js.map +1 -0
  58. package/util/typed-message-port.d.ts +2 -2
  59. package/util-BhM5b2cL.js +63 -0
  60. package/util-BhM5b2cL.js.map +1 -0
  61. package/visitor/syntax-names.d.ts +190 -190
  62. package/analyser-service-DSK9g7zQ.js.map +0 -1
  63. package/compile-Cj7vjDbw.js.map +0 -1
  64. package/options-Cbipn6vL.js.map +0 -1
  65. package/puya/index.d.ts +0 -14
  66. package/resolve-puya-path-CsuzbFH2.js.map +0 -1
  67. package/util/arc4-signature-parser.d.ts +0 -14
package/bin/run-cli.mjs CHANGED
@@ -1,15 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
  import '../cli.mjs';
3
- import '../options-Cbipn6vL.js';
4
- import 'arcsecond';
3
+ import '../contract-class-model-CLKobHyV.js';
4
+ import 'typescript';
5
5
  import 'node:fs';
6
6
  import 'node:util';
7
7
  import 'pathe';
8
- import 'tslib';
9
- import 'node:buffer';
10
- import 'typescript';
11
8
  import 'node:crypto';
9
+ import 'polytype';
12
10
  import 'node:async_hooks';
11
+ import 'argparse';
12
+ import '../semver-BPw8lYGI.js';
13
+ import 'fs';
14
+ import 'node:url';
15
+ import '../compile-D0CpLiRh.js';
16
+ import '../arc4-clientgen-C7FQSt3R.js';
17
+ import '@algorandfoundation/algokit-utils/abi';
18
+ import 'fs/promises';
19
+ import '../options-B93nVWrL.js';
20
+ import 'arcsecond';
21
+ import 'tslib';
22
+ import 'node:buffer';
13
23
  import 'cross-spawn';
14
24
  import 'util';
15
25
  import 'path';
@@ -17,17 +27,13 @@ import 'os';
17
27
  import 'crypto';
18
28
  import 'net';
19
29
  import 'change-case';
20
- import 'polytype';
21
30
  import 'glob';
22
31
  import 'minimatch';
23
- import 'argparse';
24
- import '../resolve-puya-path-CsuzbFH2.js';
25
- import 'fs';
26
- import 'node:url';
32
+ import '../resolve-puya-path-D7qDcdPx.js';
27
33
  import 'signal-exit';
28
34
  import 'tar';
29
35
  import 'node:zlib';
30
- import '../compile-Cj7vjDbw.js';
36
+ import '../util-BhM5b2cL.js';
31
37
  import 'chalk';
32
- import '../check-node-version-BtcNqlid.js';
38
+ import '../check-node-version-DcMVGPC-.js';
33
39
  //# sourceMappingURL=run-cli.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-cli.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"run-cli.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { C as Constants } from './options-Cbipn6vL.js';
3
- import { p as parseSemVer } from './resolve-puya-path-CsuzbFH2.js';
2
+ import { d as Constants } from './contract-class-model-CLKobHyV.js';
3
+ import { p as parseSemVer } from './semver-BPw8lYGI.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-BtcNqlid.js.map
20
+ //# sourceMappingURL=check-node-version-DcMVGPC-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-node-version-BtcNqlid.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-DcMVGPC-.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;;;;"}
@@ -12,6 +12,7 @@ export interface BuildCommandArgs {
12
12
  output_source_map: boolean;
13
13
  output_arc32: boolean;
14
14
  output_arc56: boolean;
15
+ output_client: boolean;
15
16
  output_ssa_ir: boolean;
16
17
  output_optimization_ir: boolean;
17
18
  output_destructured_ir: boolean;
@@ -20,6 +21,7 @@ export interface BuildCommandArgs {
20
21
  out_dir: string;
21
22
  debug_level: string;
22
23
  optimization_level: string;
24
+ treat_warnings_as_errors: boolean;
23
25
  target_avm_version: string;
24
26
  cli_template_definitions: string[];
25
27
  validate_abi_args: boolean;
package/cli.mjs CHANGED
@@ -1,91 +1,39 @@
1
- import { d1 as isMinLevel, cY as LogLevel, cS as LoggingContext, d2 as enumFromValue, d3 as defaultPuyaOptions, cZ as logger, cU as AbsolutePath, cR as processInputPaths, cT as CompileOptions, d4 as parseCliTemplateVar, d5 as LocalsCoalescingStrategy } from './options-Cbipn6vL.js';
1
+ import { l as logger, A as AbsolutePath, a as LoggingContext, L as LogLevel } from './contract-class-model-CLKobHyV.js';
2
2
  import { BooleanOptionalAction, ArgumentParser } from 'argparse';
3
- import { a as appVersion } from './resolve-puya-path-CsuzbFH2.js';
4
- import { c as compile } from './compile-Cj7vjDbw.js';
5
- import chalk from 'chalk';
6
- import { c as checkNodeVersion } from './check-node-version-BtcNqlid.js';
7
- import 'arcsecond';
3
+ import { a as appVersion } from './semver-BPw8lYGI.js';
4
+ import { c as compile } from './compile-D0CpLiRh.js';
5
+ import { $ as defaultPuyaOptions, Y as processInputPaths, W as CompileOptions, a0 as parseCliTemplateVar, a1 as LocalsCoalescingStrategy } from './options-B93nVWrL.js';
6
+ import { a as addEnumArg, C as ConsoleLogSink, c as convertInt } from './util-BhM5b2cL.js';
7
+ import { c as checkNodeVersion } from './check-node-version-DcMVGPC-.js';
8
+ import 'typescript';
8
9
  import 'node:fs';
9
10
  import 'node:util';
10
11
  import 'pathe';
11
- import 'tslib';
12
- import 'node:buffer';
13
- import 'typescript';
14
12
  import 'node:crypto';
13
+ import 'polytype';
15
14
  import 'node:async_hooks';
15
+ import 'fs';
16
+ import 'node:url';
17
+ import './arc4-clientgen-C7FQSt3R.js';
18
+ import '@algorandfoundation/algokit-utils/abi';
19
+ import 'fs/promises';
20
+ import './resolve-puya-path-D7qDcdPx.js';
21
+ import 'tslib';
22
+ import 'signal-exit';
16
23
  import 'cross-spawn';
17
- import 'util';
24
+ import 'crypto';
18
25
  import 'path';
26
+ import 'tar';
27
+ import 'glob';
28
+ import 'node:zlib';
19
29
  import 'os';
20
- import 'crypto';
30
+ import 'arcsecond';
31
+ import 'node:buffer';
32
+ import 'util';
21
33
  import 'net';
22
34
  import 'change-case';
23
- import 'polytype';
24
- import 'glob';
25
35
  import 'minimatch';
26
- import 'fs';
27
- import 'node:url';
28
- import 'signal-exit';
29
- import 'tar';
30
- import 'node:zlib';
31
-
32
- const levelConfig = {
33
- /* eslint-disable no-console */
34
- debug: { colorFn: chalk.green, writeFn: console.debug },
35
- info: { colorFn: chalk.green, writeFn: console.info },
36
- warning: { colorFn: chalk.yellow, writeFn: console.warn },
37
- error: { colorFn: chalk.red, writeFn: console.error },
38
- critical: { colorFn: chalk.red, writeFn: console.error },
39
- /* eslint-enable no-console */
40
- };
41
- class ConsoleLogSink {
42
- minLogLevel;
43
- pathsRelativeTo;
44
- constructor(minLogLevel, pathsRelativeTo) {
45
- this.minLogLevel = minLogLevel;
46
- this.pathsRelativeTo = pathsRelativeTo;
47
- }
48
- add(logEvent) {
49
- const config = levelConfig[logEvent.level];
50
- let logText = `${config.colorFn(logEvent.level)}: ${logEvent.message}`;
51
- if (logEvent.sourceLocation) {
52
- const sourceLocationText = logEvent.sourceLocation.toString({ pathsRelativeTo: this.pathsRelativeTo });
53
- const indentSize = sourceLocationText.length + logEvent.level.length + 4;
54
- const sourceSummary = isMinLevel(logEvent.level, LogLevel.Warning) ? this.getSourceSummary(logEvent.sourceLocation, indentSize) : '';
55
- logText = `${sourceLocationText} ${logText}${sourceSummary}`;
56
- }
57
- if (isMinLevel(LogLevel.Debug, this.minLogLevel) && logEvent.stack) {
58
- logText += `\n ${logEvent.stack}`;
59
- }
60
- config.writeFn(logText);
61
- }
62
- getSourceSummary(sourceLocation, indent) {
63
- const sourceFile = sourceLocation.file && LoggingContext.current.sourcesByPath[sourceLocation.file.toString()];
64
- if (!sourceFile || sourceLocation.scope === 'file')
65
- return '';
66
- const line = sourceFile[sourceLocation.line - 1];
67
- const trimmedLine = line.trimStart();
68
- const marker = `${''.padStart(sourceLocation.column - (line.length - trimmedLine.length))}^${''.padStart(Math.max(sourceLocation.endColumn - sourceLocation.column - 1, 0), '~')}`;
69
- const indentChars = ''.padStart(indent, ' ');
70
- return `\n${indentChars}${trimmedLine}\n${indentChars}${marker}`;
71
- }
72
- }
73
-
74
- function addEnumArg(parser, { name, enumType, default: defaultValue, help }) {
75
- parser.add_argument(name, {
76
- type: (v) => enumFromValue(v, enumType),
77
- choices: Array.from(Object.values(enumType)),
78
- default: defaultValue,
79
- help,
80
- });
81
- }
82
- function convertInt(val) {
83
- const res = Number(val);
84
- if (isNaN(res) || Math.round(res) !== res) {
85
- throw new Error(`'${val}' could not be converted to a number`);
86
- }
87
- return res;
88
- }
36
+ import 'chalk';
89
37
 
90
38
  function addBuildCommand(parser) {
91
39
  addEnumArg(parser, {
@@ -134,6 +82,11 @@ function addBuildCommand(parser) {
134
82
  help: 'Output {contract}.arc56.json ARC-56 app spec file. Only applicable to ARC4 contracts ',
135
83
  default: defaultPuyaOptions.outputArc56,
136
84
  });
85
+ parser.add_argument('--output-client', {
86
+ action: BooleanOptionalAction,
87
+ help: 'Output {contract}.client.ts Algorand TypeScript contract client for typed ARC-4 ABI calls. Only applicable to ARC4 contracts ',
88
+ default: defaultPuyaOptions.outputClient,
89
+ });
137
90
  parser.add_argument('--output-ssa-ir', {
138
91
  action: BooleanOptionalAction,
139
92
  help: 'Output IR (in SSA form) before optimisations',
@@ -174,6 +127,11 @@ function addBuildCommand(parser) {
174
127
  choices: ['0', '1', '2'],
175
128
  help: 'Set optimization level of output TEAL / AVM bytecode, 0 = none, 1 = normal, 2 = intensive',
176
129
  });
130
+ parser.add_argument('--treat-warnings-as-errors', {
131
+ action: BooleanOptionalAction,
132
+ default: defaultPuyaOptions.treatWarningsAsErrors,
133
+ help: 'Report and treat all warnings emitted by the compiler as errors',
134
+ });
177
135
  parser.add_argument('--target-avm-version', {
178
136
  default: defaultPuyaOptions.targetAvmVersion.toString(),
179
137
  choices: ['10', '11', '12', '13'],
@@ -230,6 +188,7 @@ async function buildCommand(args) {
230
188
  outputTeal: args.output_teal,
231
189
  outputArc32: args.output_arc32,
232
190
  outputArc56: args.output_arc56,
191
+ outputClient: args.output_client,
233
192
  outputSsaIr: args.output_ssa_ir,
234
193
  outputOptimizationIr: args.output_optimization_ir,
235
194
  outputDestructuredIr: args.output_destructured_ir,
@@ -238,6 +197,7 @@ async function buildCommand(args) {
238
197
  outputSourceMap: args.output_source_map,
239
198
  debugLevel: convertInt(args.debug_level),
240
199
  optimizationLevel: convertInt(args.optimization_level),
200
+ treatWarningsAsErrors: args.treat_warnings_as_errors,
241
201
  targetAvmVersion: convertInt(args.target_avm_version),
242
202
  cliTemplateDefinitions: Object.fromEntries(args.cli_template_definitions?.map(parseCliTemplateVar) ?? []),
243
203
  templateVarsPrefix: args.template_vars_prefix,
package/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.mjs","sources":["../src/logger/sinks/console-log-sink.ts","../src/cli/util.ts","../src/cli/build-command.ts","../src/cli/parse.ts","../src/cli.ts"],"sourcesContent":["import chalk from 'chalk'\nimport type { SourceLocation } from '../../awst/source-location'\nimport type { LogEvent } from '../index'\nimport { isMinLevel, LoggingContext, LogLevel } from '../index'\nimport type { LogSink } from './index'\nimport type { AbsolutePath } from '../../util/absolute-path'\n\ntype ColorFn = (text: string) => string\nconst levelConfig: Record<LogEvent['level'], { colorFn: ColorFn; writeFn: (...args: unknown[]) => void }> = {\n /* eslint-disable no-console */\n debug: { colorFn: chalk.green, writeFn: console.debug },\n info: { colorFn: chalk.green, writeFn: console.info },\n warning: { colorFn: chalk.yellow, writeFn: console.warn },\n error: { colorFn: chalk.red, writeFn: console.error },\n critical: { colorFn: chalk.red, writeFn: console.error },\n /* eslint-enable no-console */\n}\n\nexport class ConsoleLogSink implements LogSink {\n constructor(\n public readonly minLogLevel: LogLevel,\n private readonly pathsRelativeTo?: AbsolutePath,\n ) {}\n\n add(logEvent: LogEvent): void {\n const config = levelConfig[logEvent.level]\n\n let logText = `${config.colorFn(logEvent.level)}: ${logEvent.message}`\n if (logEvent.sourceLocation) {\n const sourceLocationText = logEvent.sourceLocation.toString({ pathsRelativeTo: this.pathsRelativeTo })\n const indentSize = sourceLocationText.length + logEvent.level.length + 4\n\n const sourceSummary = isMinLevel(logEvent.level, LogLevel.Warning) ? this.getSourceSummary(logEvent.sourceLocation, indentSize) : ''\n logText = `${sourceLocationText} ${logText}${sourceSummary}`\n }\n if (isMinLevel(LogLevel.Debug, this.minLogLevel) && logEvent.stack) {\n logText += `\\n ${logEvent.stack}`\n }\n config.writeFn(logText)\n }\n\n getSourceSummary(sourceLocation: SourceLocation, indent: number): string {\n const sourceFile = sourceLocation.file && LoggingContext.current.sourcesByPath[sourceLocation.file.toString()]\n if (!sourceFile || sourceLocation.scope === 'file') return ''\n\n const line = sourceFile[sourceLocation.line - 1]\n const trimmedLine = line.trimStart()\n const marker = `${''.padStart(sourceLocation.column - (line.length - trimmedLine.length))}^${''.padStart(Math.max(sourceLocation.endColumn - sourceLocation.column - 1, 0), '~')}`\n const indentChars = ''.padStart(indent, ' ')\n return `\\n${indentChars}${trimmedLine}\\n${indentChars}${marker}`\n }\n}\n","import type { ArgumentParser } from 'argparse'\nimport { enumFromValue } from '../util'\n\nexport function addEnumArg<T>(\n parser: ArgumentParser,\n { name, enumType, default: defaultValue, help }: { name: string; enumType: Record<string, string>; default?: T; help: string },\n) {\n parser.add_argument(name, {\n type: (v: string) => enumFromValue(v, enumType),\n choices: Array.from(Object.values(enumType)),\n default: defaultValue,\n help,\n })\n}\n\nexport function convertInt(val: string) {\n const res = Number(val)\n if (isNaN(res) || Math.round(res) !== res) {\n throw new Error(`'${val}' could not be converted to a number`)\n }\n return res\n}\n","import type { ArgumentParser } from 'argparse'\nimport { BooleanOptionalAction } from 'argparse'\nimport { compile } from '../compile'\nimport { processInputPaths } from '../input-paths/process-input-paths'\nimport { logger, LoggingContext, LogLevel } from '../logger'\nimport { ConsoleLogSink } from '../logger/sinks/console-log-sink'\nimport { CompileOptions, defaultPuyaOptions, LocalsCoalescingStrategy } from '../options'\n\nimport { parseCliTemplateVar } from '../util/template-var-cli-parser'\nimport { addEnumArg, convertInt } from './util'\nimport { AbsolutePath } from '../util/absolute-path'\n\nexport interface BuildCommandArgs {\n command: 'build'\n log_level: LogLevel\n output_awst: boolean\n output_awst_json: boolean\n dry_run: boolean\n skip_version_check: boolean\n output_teal: boolean\n output_source_map: boolean\n output_arc32: boolean\n output_arc56: boolean\n output_ssa_ir: boolean\n output_optimization_ir: boolean\n output_destructured_ir: boolean\n output_memory_ir: boolean\n output_bytecode: boolean\n out_dir: string\n debug_level: string\n optimization_level: string\n target_avm_version: string\n cli_template_definitions: string[]\n validate_abi_args: boolean\n validate_abi_return: boolean\n template_vars_prefix: string\n locals_coalescing_strategy: LocalsCoalescingStrategy\n paths: string[]\n puya_path: string\n}\n\nexport function addBuildCommand(parser: ArgumentParser) {\n addEnumArg(parser, {\n name: '--log-level',\n default: LogLevel.Info,\n enumType: LogLevel,\n help: 'The minimum log level to output',\n })\n\n parser.add_argument('--output-awst', {\n help: 'Output debugging awst file per parsed file',\n default: false,\n action: BooleanOptionalAction,\n })\n\n parser.add_argument('--output-awst-json', {\n action: BooleanOptionalAction,\n default: false,\n help: 'Output debugging awst json file per parsed file',\n })\n\n parser.add_argument('--dry-run', {\n action: BooleanOptionalAction,\n default: false,\n help: \"Just parse typescript files, don't invoke puya compiler\",\n })\n parser.add_argument('--skip-version-check', {\n action: BooleanOptionalAction,\n default: false,\n help: \"Don't verify installed puya compiler version matches targeted version\",\n })\n parser.add_argument('--output-teal', {\n action: BooleanOptionalAction,\n help: 'Output TEAL code',\n default: defaultPuyaOptions.outputTeal,\n })\n parser.add_argument('--output-source-map', {\n action: BooleanOptionalAction,\n help: 'Output debug source maps ',\n default: defaultPuyaOptions.outputSourceMap,\n })\n parser.add_argument('--output-arc32', {\n action: BooleanOptionalAction,\n help: 'Output {contract}.arc32.json ARC-32 app spec file. Only applicable to ARC4 contracts ',\n default: defaultPuyaOptions.outputArc32,\n })\n parser.add_argument('--output-arc56', {\n action: BooleanOptionalAction,\n help: 'Output {contract}.arc56.json ARC-56 app spec file. Only applicable to ARC4 contracts ',\n default: defaultPuyaOptions.outputArc56,\n })\n parser.add_argument('--output-ssa-ir', {\n action: BooleanOptionalAction,\n help: 'Output IR (in SSA form) before optimisations',\n default: defaultPuyaOptions.outputSsaIr,\n })\n parser.add_argument('--output-optimization-ir', {\n action: BooleanOptionalAction,\n help: 'Output IR after each optimization',\n default: defaultPuyaOptions.outputOptimizationIr,\n })\n parser.add_argument('--output-destructured-ir', {\n action: BooleanOptionalAction,\n help: 'Output IR after SSA destructuring and before MIR',\n default: defaultPuyaOptions.outputDestructuredIr,\n })\n parser.add_argument('--output-memory-ir', {\n action: BooleanOptionalAction,\n help: 'Output MIR before lowering to TealOps',\n default: defaultPuyaOptions.outputMemoryIr,\n })\n parser.add_argument('--output-bytecode', {\n action: BooleanOptionalAction,\n help: 'Output AVM bytecode',\n default: defaultPuyaOptions.outputBytecode,\n })\n\n parser.add_argument('--out-dir', {\n action: 'store',\n help: 'Where to output builder artifacts. Can use [name] placeholder to include contract name in path',\n default: 'out',\n })\n\n parser.add_argument('--debug-level', {\n default: defaultPuyaOptions.debugLevel.toString(),\n choices: ['0', '1', '2'],\n help: 'Output debug information level, 0 = none, 1 = debug, 2 = reserved for future use',\n })\n parser.add_argument('--optimization-level', {\n default: defaultPuyaOptions.optimizationLevel.toString(),\n choices: ['0', '1', '2'],\n help: 'Set optimization level of output TEAL / AVM bytecode, 0 = none, 1 = normal, 2 = intensive',\n })\n parser.add_argument('--target-avm-version', {\n default: defaultPuyaOptions.targetAvmVersion.toString(),\n choices: ['10', '11', '12', '13'],\n help: 'Select the targeted AVM version for compilation output',\n })\n\n parser.add_argument('--cli-template-definitions', {\n metavar: 'VAR=VALUE',\n nargs: '+',\n help: 'Define template vars for use when assembling via --output-bytecode, should be specified without the prefix (see --template-vars-prefix)',\n })\n\n parser.add_argument('--validate-abi-args', {\n action: BooleanOptionalAction,\n default: defaultPuyaOptions.validateAbiArgs,\n help: 'Validates ABI transaction arguments by ensuring they are encoded correctly',\n })\n\n parser.add_argument('--validate-abi-return', {\n action: BooleanOptionalAction,\n default: defaultPuyaOptions.validateAbiReturn,\n help: \"Validates encoding of ABI return values when using convertBytes with 'log' `prefix` option, arc4.abiCall, and strongly typed contract to contract calls\",\n })\n\n parser.add_argument('--template-vars-prefix', {\n help: 'Define the prefix to use with --template-var',\n default: defaultPuyaOptions.templateVarsPrefix,\n })\n\n addEnumArg(parser, {\n name: '--locals-coalescing-strategy',\n enumType: LocalsCoalescingStrategy,\n help: 'Strategy choice for out-of-ssa local variable coalescing. The best choice for your app is best determined through experimentation',\n default: defaultPuyaOptions.localsCoalescingStrategy,\n })\n\n parser.add_argument('paths', {\n metavar: 'PATHS',\n nargs: '*',\n help: 'The path, or paths to search for compatible .algo.ts files',\n default: ['.'],\n })\n\n parser.add_argument('--puya-path', {\n help: 'The path to Puya. If not provided, puya-ts will automatically download the appropriate binary for your system',\n })\n}\n\nexport async function buildCommand(args: BuildCommandArgs) {\n const logCtx = LoggingContext.create()\n return logCtx.run(async () => {\n logger.configure([new ConsoleLogSink(args.log_level, AbsolutePath.resolve({ path: '' }))])\n try {\n const filePaths = processInputPaths({ paths: args.paths, outDir: args.out_dir })\n\n await compile(\n new CompileOptions({\n filePaths,\n outputAwst: args.output_awst,\n outputAwstJson: args.output_awst_json,\n\n skipVersionCheck: args.skip_version_check,\n dryRun: args.dry_run,\n logLevel: args.log_level,\n\n outputTeal: args.output_teal,\n outputArc32: args.output_arc32,\n outputArc56: args.output_arc56,\n outputSsaIr: args.output_ssa_ir,\n outputOptimizationIr: args.output_optimization_ir,\n outputDestructuredIr: args.output_destructured_ir,\n outputMemoryIr: args.output_memory_ir,\n outputBytecode: args.output_bytecode,\n outputSourceMap: args.output_source_map,\n debugLevel: convertInt(args.debug_level),\n optimizationLevel: convertInt(args.optimization_level),\n targetAvmVersion: convertInt(args.target_avm_version),\n cliTemplateDefinitions: Object.fromEntries(args.cli_template_definitions?.map(parseCliTemplateVar) ?? []),\n templateVarsPrefix: args.template_vars_prefix,\n localsCoalescingStrategy: args.locals_coalescing_strategy,\n customPuyaPath: args.puya_path,\n validateAbiArgs: args.validate_abi_args,\n validateAbiReturn: args.validate_abi_return,\n }),\n )\n logCtx.exitIfErrors()\n } catch (e) {\n if (e instanceof Error) {\n logger.error(e)\n } else {\n throw e\n }\n }\n })\n}\n","import { ArgumentParser } from 'argparse'\nimport { appVersion } from './app-version'\nimport type { BuildCommandArgs } from './build-command'\nimport { addBuildCommand, buildCommand } from './build-command'\nimport { checkNodeVersion } from './check-node-version'\n\nexport async function parseCliArguments() {\n checkNodeVersion()\n const parser = new ArgumentParser({\n prog: 'puya-ts',\n })\n\n parser.add_argument('--version', {\n action: 'store_const',\n help: 'Show application version',\n const: 'version',\n dest: 'command',\n })\n parser.set_defaults({\n command: 'build',\n })\n addBuildCommand(parser)\n const result: PuyaTsCommand = parser.parse_args()\n switch (result.command) {\n case 'build':\n await buildCommand(result)\n break\n case 'version':\n /* eslint-disable-next-line no-console */\n console.log(appVersion())\n break\n default:\n parser.print_help()\n break\n }\n}\n\ntype PuyaTsCommand = NoCommandArgs | BuildCommandArgs | VersionCommand\ninterface NoCommandArgs {\n command: 'none'\n}\ninterface VersionCommand {\n command: 'version'\n}\n","import './util/polyfills'\nimport { parseCliArguments } from './cli/parse'\n\nvoid parseCliArguments()\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,WAAW,GAA2F;;AAE1G,IAAA,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE;AACvD,IAAA,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;AACrD,IAAA,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;AACzD,IAAA,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE;AACrD,IAAA,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE;;CAEzD;MAEY,cAAc,CAAA;AAEP,IAAA,WAAA;AACC,IAAA,eAAA;IAFnB,WAAA,CACkB,WAAqB,EACpB,eAA8B,EAAA;QAD/B,IAAA,CAAA,WAAW,GAAX,WAAW;QACV,IAAA,CAAA,eAAe,GAAf,eAAe;IAC/B;AAEH,IAAA,GAAG,CAAC,QAAkB,EAAA;QACpB,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;AAE1C,QAAA,IAAI,OAAO,GAAG,CAAA,EAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,QAAQ,CAAC,OAAO,EAAE;AACtE,QAAA,IAAI,QAAQ,CAAC,cAAc,EAAE;AAC3B,YAAA,MAAM,kBAAkB,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AACtG,YAAA,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AAExE,YAAA,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG,EAAE;YACpI,OAAO,GAAG,GAAG,kBAAkB,CAAA,CAAA,EAAI,OAAO,CAAA,EAAG,aAAa,EAAE;QAC9D;AACA,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClE,YAAA,OAAO,IAAI,CAAA,GAAA,EAAM,QAAQ,CAAC,KAAK,EAAE;QACnC;AACA,QAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IACzB;IAEA,gBAAgB,CAAC,cAA8B,EAAE,MAAc,EAAA;AAC7D,QAAA,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,IAAI,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9G,QAAA,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC,KAAK,KAAK,MAAM;AAAE,YAAA,OAAO,EAAE;QAE7D,MAAM,IAAI,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC;AAChD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE;QACpC,MAAM,MAAM,GAAG,CAAA,EAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA,CAAA,EAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAE;QAClL,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;QAC5C,OAAO,CAAA,EAAA,EAAK,WAAW,CAAA,EAAG,WAAW,KAAK,WAAW,CAAA,EAAG,MAAM,CAAA,CAAE;IAClE;AACD;;AChDK,SAAU,UAAU,CACxB,MAAsB,EACtB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAiF,EAAA;AAE9H,IAAA,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE;QACxB,IAAI,EAAE,CAAC,CAAS,KAAK,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC/C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5C,QAAA,OAAO,EAAE,YAAY;QACrB,IAAI;AACL,KAAA,CAAC;AACJ;AAEM,SAAU,UAAU,CAAC,GAAW,EAAA;AACpC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AACvB,IAAA,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AACzC,QAAA,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,CAAA,oCAAA,CAAsC,CAAC;IAChE;AACA,IAAA,OAAO,GAAG;AACZ;;ACoBM,SAAU,eAAe,CAAC,MAAsB,EAAA;IACpD,UAAU,CAAC,MAAM,EAAE;AACjB,QAAA,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,QAAQ,CAAC,IAAI;AACtB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,IAAI,EAAE,iCAAiC;AACxC,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;AACnC,QAAA,IAAI,EAAE,4CAA4C;AAClD,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,MAAM,EAAE,qBAAqB;AAC9B,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE;AACxC,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,IAAI,EAAE,iDAAiD;AACxD,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,IAAI,EAAE,yDAAyD;AAChE,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,sBAAsB,EAAE;AAC1C,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,IAAI,EAAE,uEAAuE;AAC9E,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;AACnC,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,kBAAkB,CAAC,UAAU;AACvC,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE;AACzC,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,kBAAkB,CAAC,eAAe;AAC5C,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE;AACpC,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,IAAI,EAAE,uFAAuF;QAC7F,OAAO,EAAE,kBAAkB,CAAC,WAAW;AACxC,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE;AACpC,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,IAAI,EAAE,uFAAuF;QAC7F,OAAO,EAAE,kBAAkB,CAAC,WAAW;AACxC,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE;AACrC,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,IAAI,EAAE,8CAA8C;QACpD,OAAO,EAAE,kBAAkB,CAAC,WAAW;AACxC,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE;AAC9C,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE,kBAAkB,CAAC,oBAAoB;AACjD,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE;AAC9C,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,IAAI,EAAE,kDAAkD;QACxD,OAAO,EAAE,kBAAkB,CAAC,oBAAoB;AACjD,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE;AACxC,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,IAAI,EAAE,uCAAuC;QAC7C,OAAO,EAAE,kBAAkB,CAAC,cAAc;AAC3C,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,mBAAmB,EAAE;AACvC,QAAA,MAAM,EAAE,qBAAqB;AAC7B,QAAA,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,kBAAkB,CAAC,cAAc;AAC3C,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,IAAI,EAAE,gGAAgG;AACtG,QAAA,OAAO,EAAE,KAAK;AACf,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE;AACnC,QAAA,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,QAAQ,EAAE;AACjD,QAAA,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxB,QAAA,IAAI,EAAE,kFAAkF;AACzF,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,sBAAsB,EAAE;AAC1C,QAAA,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AACxD,QAAA,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACxB,QAAA,IAAI,EAAE,2FAA2F;AAClG,KAAA,CAAC;AACF,IAAA,MAAM,CAAC,YAAY,CAAC,sBAAsB,EAAE;AAC1C,QAAA,OAAO,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,EAAE;QACvD,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACjC,QAAA,IAAI,EAAE,wDAAwD;AAC/D,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,4BAA4B,EAAE;AAChD,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,KAAK,EAAE,GAAG;AACV,QAAA,IAAI,EAAE,yIAAyI;AAChJ,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE;AACzC,QAAA,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,kBAAkB,CAAC,eAAe;AAC3C,QAAA,IAAI,EAAE,4EAA4E;AACnF,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE;AAC3C,QAAA,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,kBAAkB,CAAC,iBAAiB;AAC7C,QAAA,IAAI,EAAE,yJAAyJ;AAChK,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE;AAC5C,QAAA,IAAI,EAAE,8CAA8C;QACpD,OAAO,EAAE,kBAAkB,CAAC,kBAAkB;AAC/C,KAAA,CAAC;IAEF,UAAU,CAAC,MAAM,EAAE;AACjB,QAAA,IAAI,EAAE,8BAA8B;AACpC,QAAA,QAAQ,EAAE,wBAAwB;AAClC,QAAA,IAAI,EAAE,mIAAmI;QACzI,OAAO,EAAE,kBAAkB,CAAC,wBAAwB;AACrD,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3B,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,GAAG;AACV,QAAA,IAAI,EAAE,4DAA4D;QAClE,OAAO,EAAE,CAAC,GAAG,CAAC;AACf,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,aAAa,EAAE;AACjC,QAAA,IAAI,EAAE,+GAA+G;AACtH,KAAA,CAAC;AACJ;AAEO,eAAe,YAAY,CAAC,IAAsB,EAAA;AACvD,IAAA,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE;AACtC,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,YAAW;QAC3B,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,QAAA,IAAI;AACF,YAAA,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAEhF,YAAA,MAAM,OAAO,CACX,IAAI,cAAc,CAAC;gBACjB,SAAS;gBACT,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,cAAc,EAAE,IAAI,CAAC,gBAAgB;gBAErC,gBAAgB,EAAE,IAAI,CAAC,kBAAkB;gBACzC,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,QAAQ,EAAE,IAAI,CAAC,SAAS;gBAExB,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,WAAW,EAAE,IAAI,CAAC,aAAa;gBAC/B,oBAAoB,EAAE,IAAI,CAAC,sBAAsB;gBACjD,oBAAoB,EAAE,IAAI,CAAC,sBAAsB;gBACjD,cAAc,EAAE,IAAI,CAAC,gBAAgB;gBACrC,cAAc,EAAE,IAAI,CAAC,eAAe;gBACpC,eAAe,EAAE,IAAI,CAAC,iBAAiB;AACvC,gBAAA,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AACxC,gBAAA,iBAAiB,EAAE,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACtD,gBAAA,gBAAgB,EAAE,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACrD,gBAAA,sBAAsB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;gBACzG,kBAAkB,EAAE,IAAI,CAAC,oBAAoB;gBAC7C,wBAAwB,EAAE,IAAI,CAAC,0BAA0B;gBACzD,cAAc,EAAE,IAAI,CAAC,SAAS;gBAC9B,eAAe,EAAE,IAAI,CAAC,iBAAiB;gBACvC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB;AAC5C,aAAA,CAAC,CACH;YACD,MAAM,CAAC,YAAY,EAAE;QACvB;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,YAAY,KAAK,EAAE;AACtB,gBAAA,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACjB;iBAAO;AACL,gBAAA,MAAM,CAAC;YACT;QACF;AACF,IAAA,CAAC,CAAC;AACJ;;AC7NO,eAAe,iBAAiB,GAAA;AACrC,IAAA,gBAAgB,EAAE;AAClB,IAAA,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AAChC,QAAA,IAAI,EAAE,SAAS;AAChB,KAAA,CAAC;AAEF,IAAA,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,QAAA,MAAM,EAAE,aAAa;AACrB,QAAA,IAAI,EAAE,0BAA0B;AAChC,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,SAAS;AAChB,KAAA,CAAC;IACF,MAAM,CAAC,YAAY,CAAC;AAClB,QAAA,OAAO,EAAE,OAAO;AACjB,KAAA,CAAC;IACF,eAAe,CAAC,MAAM,CAAC;AACvB,IAAA,MAAM,MAAM,GAAkB,MAAM,CAAC,UAAU,EAAE;AACjD,IAAA,QAAQ,MAAM,CAAC,OAAO;AACpB,QAAA,KAAK,OAAO;AACV,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC;YAC1B;AACF,QAAA,KAAK,SAAS;;AAEZ,YAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACzB;AACF,QAAA;YACE,MAAM,CAAC,UAAU,EAAE;YACnB;;AAEN;;AChCA,KAAK,iBAAiB,EAAE"}
1
+ {"version":3,"file":"cli.mjs","sources":["../src/cli/build-command.ts","../src/cli/parse.ts","../src/cli.ts"],"sourcesContent":["import type { ArgumentParser } from 'argparse'\nimport { BooleanOptionalAction } from 'argparse'\nimport { compile } from '../compile'\nimport { processInputPaths } from '../input-paths/process-input-paths'\nimport { logger, LoggingContext, LogLevel } from '../logger'\nimport { ConsoleLogSink } from '../logger/sinks/console-log-sink'\nimport { CompileOptions, defaultPuyaOptions, LocalsCoalescingStrategy } from '../options'\n\nimport { AbsolutePath } from '../util/absolute-path'\nimport { parseCliTemplateVar } from '../util/template-var-cli-parser'\nimport { addEnumArg, convertInt } from './util'\n\nexport interface BuildCommandArgs {\n command: 'build'\n log_level: LogLevel\n output_awst: boolean\n output_awst_json: boolean\n dry_run: boolean\n skip_version_check: boolean\n output_teal: boolean\n output_source_map: boolean\n output_arc32: boolean\n output_arc56: boolean\n output_client: boolean\n output_ssa_ir: boolean\n output_optimization_ir: boolean\n output_destructured_ir: boolean\n output_memory_ir: boolean\n output_bytecode: boolean\n out_dir: string\n debug_level: string\n optimization_level: string\n treat_warnings_as_errors: boolean\n target_avm_version: string\n cli_template_definitions: string[]\n validate_abi_args: boolean\n validate_abi_return: boolean\n template_vars_prefix: string\n locals_coalescing_strategy: LocalsCoalescingStrategy\n paths: string[]\n puya_path: string\n}\n\nexport function addBuildCommand(parser: ArgumentParser) {\n addEnumArg(parser, {\n name: '--log-level',\n default: LogLevel.Info,\n enumType: LogLevel,\n help: 'The minimum log level to output',\n })\n\n parser.add_argument('--output-awst', {\n help: 'Output debugging awst file per parsed file',\n default: false,\n action: BooleanOptionalAction,\n })\n\n parser.add_argument('--output-awst-json', {\n action: BooleanOptionalAction,\n default: false,\n help: 'Output debugging awst json file per parsed file',\n })\n\n parser.add_argument('--dry-run', {\n action: BooleanOptionalAction,\n default: false,\n help: \"Just parse typescript files, don't invoke puya compiler\",\n })\n parser.add_argument('--skip-version-check', {\n action: BooleanOptionalAction,\n default: false,\n help: \"Don't verify installed puya compiler version matches targeted version\",\n })\n parser.add_argument('--output-teal', {\n action: BooleanOptionalAction,\n help: 'Output TEAL code',\n default: defaultPuyaOptions.outputTeal,\n })\n parser.add_argument('--output-source-map', {\n action: BooleanOptionalAction,\n help: 'Output debug source maps ',\n default: defaultPuyaOptions.outputSourceMap,\n })\n parser.add_argument('--output-arc32', {\n action: BooleanOptionalAction,\n help: 'Output {contract}.arc32.json ARC-32 app spec file. Only applicable to ARC4 contracts ',\n default: defaultPuyaOptions.outputArc32,\n })\n parser.add_argument('--output-arc56', {\n action: BooleanOptionalAction,\n help: 'Output {contract}.arc56.json ARC-56 app spec file. Only applicable to ARC4 contracts ',\n default: defaultPuyaOptions.outputArc56,\n })\n parser.add_argument('--output-client', {\n action: BooleanOptionalAction,\n help: 'Output {contract}.client.ts Algorand TypeScript contract client for typed ARC-4 ABI calls. Only applicable to ARC4 contracts ',\n default: defaultPuyaOptions.outputClient,\n })\n parser.add_argument('--output-ssa-ir', {\n action: BooleanOptionalAction,\n help: 'Output IR (in SSA form) before optimisations',\n default: defaultPuyaOptions.outputSsaIr,\n })\n parser.add_argument('--output-optimization-ir', {\n action: BooleanOptionalAction,\n help: 'Output IR after each optimization',\n default: defaultPuyaOptions.outputOptimizationIr,\n })\n parser.add_argument('--output-destructured-ir', {\n action: BooleanOptionalAction,\n help: 'Output IR after SSA destructuring and before MIR',\n default: defaultPuyaOptions.outputDestructuredIr,\n })\n parser.add_argument('--output-memory-ir', {\n action: BooleanOptionalAction,\n help: 'Output MIR before lowering to TealOps',\n default: defaultPuyaOptions.outputMemoryIr,\n })\n parser.add_argument('--output-bytecode', {\n action: BooleanOptionalAction,\n help: 'Output AVM bytecode',\n default: defaultPuyaOptions.outputBytecode,\n })\n\n parser.add_argument('--out-dir', {\n action: 'store',\n help: 'Where to output builder artifacts. Can use [name] placeholder to include contract name in path',\n default: 'out',\n })\n\n parser.add_argument('--debug-level', {\n default: defaultPuyaOptions.debugLevel.toString(),\n choices: ['0', '1', '2'],\n help: 'Output debug information level, 0 = none, 1 = debug, 2 = reserved for future use',\n })\n parser.add_argument('--optimization-level', {\n default: defaultPuyaOptions.optimizationLevel.toString(),\n choices: ['0', '1', '2'],\n help: 'Set optimization level of output TEAL / AVM bytecode, 0 = none, 1 = normal, 2 = intensive',\n })\n parser.add_argument('--treat-warnings-as-errors', {\n action: BooleanOptionalAction,\n default: defaultPuyaOptions.treatWarningsAsErrors,\n help: 'Report and treat all warnings emitted by the compiler as errors',\n })\n parser.add_argument('--target-avm-version', {\n default: defaultPuyaOptions.targetAvmVersion.toString(),\n choices: ['10', '11', '12', '13'],\n help: 'Select the targeted AVM version for compilation output',\n })\n\n parser.add_argument('--cli-template-definitions', {\n metavar: 'VAR=VALUE',\n nargs: '+',\n help: 'Define template vars for use when assembling via --output-bytecode, should be specified without the prefix (see --template-vars-prefix)',\n })\n\n parser.add_argument('--validate-abi-args', {\n action: BooleanOptionalAction,\n default: defaultPuyaOptions.validateAbiArgs,\n help: 'Validates ABI transaction arguments by ensuring they are encoded correctly',\n })\n\n parser.add_argument('--validate-abi-return', {\n action: BooleanOptionalAction,\n default: defaultPuyaOptions.validateAbiReturn,\n help: \"Validates encoding of ABI return values when using convertBytes with 'log' `prefix` option, arc4.abiCall, and strongly typed contract to contract calls\",\n })\n\n parser.add_argument('--template-vars-prefix', {\n help: 'Define the prefix to use with --template-var',\n default: defaultPuyaOptions.templateVarsPrefix,\n })\n\n addEnumArg(parser, {\n name: '--locals-coalescing-strategy',\n enumType: LocalsCoalescingStrategy,\n help: 'Strategy choice for out-of-ssa local variable coalescing. The best choice for your app is best determined through experimentation',\n default: defaultPuyaOptions.localsCoalescingStrategy,\n })\n\n parser.add_argument('paths', {\n metavar: 'PATHS',\n nargs: '*',\n help: 'The path, or paths to search for compatible .algo.ts files',\n default: ['.'],\n })\n\n parser.add_argument('--puya-path', {\n help: 'The path to Puya. If not provided, puya-ts will automatically download the appropriate binary for your system',\n })\n}\n\nexport async function buildCommand(args: BuildCommandArgs) {\n const logCtx = LoggingContext.create()\n return logCtx.run(async () => {\n logger.configure([new ConsoleLogSink(args.log_level, AbsolutePath.resolve({ path: '' }))])\n try {\n const filePaths = processInputPaths({ paths: args.paths, outDir: args.out_dir })\n\n await compile(\n new CompileOptions({\n filePaths,\n outputAwst: args.output_awst,\n outputAwstJson: args.output_awst_json,\n\n skipVersionCheck: args.skip_version_check,\n dryRun: args.dry_run,\n logLevel: args.log_level,\n\n outputTeal: args.output_teal,\n outputArc32: args.output_arc32,\n outputArc56: args.output_arc56,\n outputClient: args.output_client,\n outputSsaIr: args.output_ssa_ir,\n outputOptimizationIr: args.output_optimization_ir,\n outputDestructuredIr: args.output_destructured_ir,\n outputMemoryIr: args.output_memory_ir,\n outputBytecode: args.output_bytecode,\n outputSourceMap: args.output_source_map,\n debugLevel: convertInt(args.debug_level),\n optimizationLevel: convertInt(args.optimization_level),\n treatWarningsAsErrors: args.treat_warnings_as_errors,\n targetAvmVersion: convertInt(args.target_avm_version),\n cliTemplateDefinitions: Object.fromEntries(args.cli_template_definitions?.map(parseCliTemplateVar) ?? []),\n templateVarsPrefix: args.template_vars_prefix,\n localsCoalescingStrategy: args.locals_coalescing_strategy,\n customPuyaPath: args.puya_path,\n validateAbiArgs: args.validate_abi_args,\n validateAbiReturn: args.validate_abi_return,\n }),\n )\n logCtx.exitIfErrors()\n } catch (e) {\n if (e instanceof Error) {\n logger.error(e)\n } else {\n throw e\n }\n }\n })\n}\n","import { ArgumentParser } from 'argparse'\nimport { appVersion } from './app-version'\nimport type { BuildCommandArgs } from './build-command'\nimport { addBuildCommand, buildCommand } from './build-command'\nimport { checkNodeVersion } from './check-node-version'\n\nexport async function parseCliArguments() {\n checkNodeVersion()\n const parser = new ArgumentParser({\n prog: 'puya-ts',\n })\n\n parser.add_argument('--version', {\n action: 'store_const',\n help: 'Show application version',\n const: 'version',\n dest: 'command',\n })\n parser.set_defaults({\n command: 'build',\n })\n addBuildCommand(parser)\n const result: PuyaTsCommand = parser.parse_args()\n switch (result.command) {\n case 'build':\n await buildCommand(result)\n break\n case 'version':\n /* eslint-disable-next-line no-console */\n console.log(appVersion())\n break\n default:\n parser.print_help()\n break\n }\n}\n\ntype PuyaTsCommand = NoCommandArgs | BuildCommandArgs | VersionCommand\ninterface NoCommandArgs {\n command: 'none'\n}\ninterface VersionCommand {\n command: 'version'\n}\n","import './util/polyfills'\nimport { parseCliArguments } from './cli/parse'\n\nvoid parseCliArguments()\n"],"names":[],"mappings":"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"}
package/clientgen.d.ts ADDED
@@ -0,0 +1 @@
1
+ import './util/polyfills';
@@ -2,7 +2,7 @@ import type ts from 'typescript';
2
2
  import type { SourceLocation } from '../awst/source-location';
3
3
  import type { TextEdit } from '../text-edit';
4
4
  import { CodeFix } from './code-fix';
5
- export declare class InvalidNonNullAssertion extends CodeFix {
5
+ export declare class NoOpNonNullAssertion extends CodeFix {
6
6
  constructor({ sourceLocation }: {
7
7
  sourceLocation: SourceLocation<ts.NonNullExpression>;
8
8
  });
@@ -1,6 +1,9 @@
1
- import { cV as mkDirIfNotExists, cW as PuyaService, cX as deserializeAndLog, cY as LogLevel, cO as registerPTypes, cZ as logger, c_ as createTsProgram, cS as LoggingContext, c$ as buildAwst, d0 as validateAwst, cP as typeRegistry } from './options-Cbipn6vL.js';
2
- import { r as resolvePuyaPath, a as appVersion } from './resolve-puya-path-CsuzbFH2.js';
1
+ import { a as writeARC4Clients } from './arc4-clientgen-C7FQSt3R.js';
2
+ import { a2 as PuyaService, a3 as deserializeAndLog, Z as registerPTypes, a4 as createTsProgram, a5 as buildAwst, a6 as validateAwst, _ as typeRegistry } from './options-B93nVWrL.js';
3
+ import { a as appVersion } from './semver-BPw8lYGI.js';
4
+ import { cg as mkDirIfNotExists, L as LogLevel, a as LoggingContext, l as logger } from './contract-class-model-CLKobHyV.js';
3
5
  import ts from 'typescript';
6
+ import { r as resolvePuyaPath } from './resolve-puya-path-D7qDcdPx.js';
4
7
 
5
8
  function buildCompilationSetMapping({ awst, inputPaths, compilationSet, }) {
6
9
  const setIds = new Set(compilationSet.compilationOutputSet.map((s) => s.id));
@@ -37,6 +40,7 @@ async function puyaCompile({ moduleAwst, programDirectory, sourceFiles, options,
37
40
  for (const log of response.logs) {
38
41
  deserializeAndLog(log);
39
42
  }
43
+ return response;
40
44
  }
41
45
  function getPuyaLogLevel(logLevel) {
42
46
  switch (logLevel) {
@@ -61,6 +65,8 @@ function getSourceFileContents(sourceFiles) {
61
65
 
62
66
  async function compile(options, puyaService) {
63
67
  const loggerCtx = LoggingContext.current;
68
+ if (options.treatWarningsAsErrors)
69
+ loggerCtx.treatWarningsAsErrors = true;
64
70
  registerPTypes(typeRegistry);
65
71
  logger.info(undefined, appVersion({ withAVMVersion: false }));
66
72
  const programResult = createTsProgram(options);
@@ -83,7 +89,7 @@ async function compile(options, puyaService) {
83
89
  };
84
90
  }
85
91
  if (!options.dryRun) {
86
- await puyaCompile({
92
+ const compileResult = await puyaCompile({
87
93
  options,
88
94
  moduleAwst,
89
95
  programDirectory: programResult.programDirectory,
@@ -91,6 +97,9 @@ async function compile(options, puyaService) {
91
97
  sourceFiles: programResult.sourceFiles,
92
98
  puyaService,
93
99
  });
100
+ if (options.outputClient) {
101
+ await writeARC4Clients(compilationSet, options.filePaths, compileResult.arc56);
102
+ }
94
103
  }
95
104
  return {
96
105
  programDirectory: programResult.programDirectory,
@@ -101,4 +110,4 @@ async function compile(options, puyaService) {
101
110
  }
102
111
 
103
112
  export { compile as c };
104
- //# sourceMappingURL=compile-Cj7vjDbw.js.map
113
+ //# sourceMappingURL=compile-D0CpLiRh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-D0CpLiRh.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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"}
package/compile.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type ts from 'typescript';
2
2
  import type { AWST } from './awst/nodes';
3
- import type { CompilationSet } from './awst_build/models/contract-class-model';
3
+ import { type CompilationSet } from './awst_build/models/contract-class-model';
4
4
  import type { CompileOptions } from './options';
5
5
  import type { PuyaService } from './puya/puya-service';
6
6
  import type { AbsolutePath } from './util/absolute-path';
package/constants.d.ts CHANGED
@@ -61,7 +61,7 @@ export declare const Constants: {
61
61
  readonly zeroAddressB32: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ";
62
62
  };
63
63
  readonly supportedAvmVersions: readonly [10n, 11n, 12n, 13n];
64
- readonly targetedPuyaVersion: "5.7.1";
64
+ readonly targetedPuyaVersion: "5.8.0-rc.2";
65
65
  readonly puyaGithubRepo: "algorandfoundation/puya";
66
66
  readonly minNodeVersion: "20.11.1";
67
67
  readonly languageServerSource: "puyats";