@aztec/bb-prover 0.40.1 → 0.42.0

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 (60) hide show
  1. package/dest/bb/cli.d.ts.map +1 -1
  2. package/dest/bb/cli.js +24 -2
  3. package/dest/bb/execute.d.ts +37 -2
  4. package/dest/bb/execute.d.ts.map +1 -1
  5. package/dest/bb/execute.js +276 -75
  6. package/dest/config.d.ts +9 -0
  7. package/dest/config.d.ts.map +1 -0
  8. package/dest/config.js +2 -0
  9. package/dest/index.d.ts +2 -0
  10. package/dest/index.d.ts.map +1 -1
  11. package/dest/index.js +3 -1
  12. package/dest/mappings/mappings.d.ts +1 -0
  13. package/dest/mappings/mappings.d.ts.map +1 -1
  14. package/dest/mappings/mappings.js +27 -8
  15. package/dest/prover/bb_native_proof_creator.d.ts +4 -9
  16. package/dest/prover/bb_native_proof_creator.d.ts.map +1 -1
  17. package/dest/prover/bb_native_proof_creator.js +77 -101
  18. package/dest/prover/bb_prover.d.ts +35 -23
  19. package/dest/prover/bb_prover.d.ts.map +1 -1
  20. package/dest/prover/bb_prover.js +247 -155
  21. package/dest/stats.d.ts +2 -5
  22. package/dest/stats.d.ts.map +1 -1
  23. package/dest/stats.js +27 -26
  24. package/dest/test/index.d.ts +1 -0
  25. package/dest/test/index.d.ts.map +1 -1
  26. package/dest/test/index.js +2 -1
  27. package/dest/test/test_circuit_prover.d.ts +9 -7
  28. package/dest/test/test_circuit_prover.d.ts.map +1 -1
  29. package/dest/test/test_circuit_prover.js +31 -15
  30. package/dest/test/test_verifier.d.ts +7 -0
  31. package/dest/test/test_verifier.d.ts.map +1 -0
  32. package/dest/test/test_verifier.js +10 -0
  33. package/dest/verification_key/verification_key_data.d.ts +8 -0
  34. package/dest/verification_key/verification_key_data.d.ts.map +1 -0
  35. package/dest/verification_key/verification_key_data.js +24 -0
  36. package/dest/verifier/bb_verifier.d.ts +18 -0
  37. package/dest/verifier/bb_verifier.d.ts.map +1 -0
  38. package/dest/verifier/bb_verifier.js +90 -0
  39. package/dest/verifier/index.d.ts +2 -0
  40. package/dest/verifier/index.d.ts.map +1 -0
  41. package/dest/verifier/index.js +2 -0
  42. package/package.json +6 -6
  43. package/src/bb/cli.ts +36 -1
  44. package/src/bb/execute.ts +371 -83
  45. package/src/config.ts +9 -0
  46. package/src/index.ts +2 -0
  47. package/src/mappings/mappings.ts +38 -12
  48. package/src/prover/bb_native_proof_creator.ts +139 -119
  49. package/src/prover/bb_prover.ts +454 -242
  50. package/src/stats.ts +30 -45
  51. package/src/test/index.ts +1 -0
  52. package/src/test/test_circuit_prover.ts +84 -21
  53. package/src/test/test_verifier.ts +12 -0
  54. package/src/verification_key/verification_key_data.ts +35 -0
  55. package/src/verifier/bb_verifier.ts +156 -0
  56. package/src/verifier/index.ts +1 -0
  57. package/dest/prover/verification_key_data.d.ts +0 -16
  58. package/dest/prover/verification_key_data.d.ts.map +0 -1
  59. package/dest/prover/verification_key_data.js +0 -5
  60. package/src/prover/verification_key_data.ts +0 -16
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bb/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CA4E9C"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bb/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CA+G9C"}
package/dest/bb/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ProtocolCircuitArtifacts } from '@aztec/noir-protocol-circuits-types';
2
2
  import { Command } from 'commander';
3
3
  import * as fs from 'fs/promises';
4
- import { generateKeyForNoirCircuit } from './execute.js';
4
+ import { generateContractForCircuit, generateKeyForNoirCircuit } from './execute.js';
5
5
  const { BB_WORKING_DIRECTORY, BB_BINARY_PATH } = process.env;
6
6
  /**
7
7
  * Returns commander program that defines the CLI.
@@ -59,6 +59,28 @@ export function getProgram(log) {
59
59
  }
60
60
  await generateKeyForNoirCircuit(options.bbPath, options.workingDirectory, options.circuit, compiledCircuit, 'vk', log);
61
61
  });
62
+ program
63
+ .command('write-contract')
64
+ .description('Generates the verification contract for the specified circuit')
65
+ .requiredOption('-w, --working-directory <string>', 'A directory to use for storing input/output files', BB_WORKING_DIRECTORY)
66
+ .requiredOption('-b, --bb-path <string>', 'The path to the BB binary', BB_BINARY_PATH)
67
+ .requiredOption('-c, --circuit <string>', 'The name of a protocol circuit')
68
+ .requiredOption('-n --contract-name <string>', 'The name of the contract to generate', 'contract.sol')
69
+ .action(async (options) => {
70
+ const compiledCircuit = ProtocolCircuitArtifacts[options.circuit];
71
+ if (!compiledCircuit) {
72
+ log(`Failed to find circuit ${options.circuit}`);
73
+ return;
74
+ }
75
+ try {
76
+ await fs.access(options.workingDirectory, fs.constants.W_OK);
77
+ }
78
+ catch (error) {
79
+ log(`Working directory does not exist`);
80
+ return;
81
+ }
82
+ await generateContractForCircuit(options.bbPath, options.workingDirectory, options.circuit, compiledCircuit, options.contractName, log);
83
+ });
62
84
  return program;
63
85
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JiL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXlCLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekQsTUFBTSxFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFFN0Q7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBVTtJQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFFN0UsT0FBTztTQUNKLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztTQUM1QixXQUFXLENBQUMsZ0RBQWdELENBQUM7U0FDN0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNYLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBWSxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTztTQUNKLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDbkIsV0FBVyxDQUFDLHFEQUFxRCxDQUFDO1NBQ2xFLGNBQWMsQ0FDYixrQ0FBa0MsRUFDbEMsbURBQW1ELEVBQ25ELG9CQUFvQixDQUNyQjtTQUNBLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSwyQkFBMkIsRUFBRSxjQUFjLENBQUM7U0FDckYsY0FBYyxDQUFDLHdCQUF3QixFQUFFLGdDQUFnQyxDQUFDO1NBQzFFLE1BQU0sQ0FBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUU7UUFDdEIsTUFBTSxlQUFlLEdBQUcsd0JBQXdCLENBQUMsT0FBTyxDQUFDLE9BQTJCLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLDBCQUEwQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNqRCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1lBQ3hDLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSx5QkFBeUIsQ0FDN0IsT0FBTyxDQUFDLE1BQU0sRUFDZCxPQUFPLENBQUMsZ0JBQWdCLEVBQ3hCLE9BQU8sQ0FBQyxPQUFPLEVBQ2YsZUFBZSxFQUNmLElBQUksRUFDSixHQUFHLENBQ0osQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTztTQUNKLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDbkIsV0FBVyxDQUFDLDBEQUEwRCxDQUFDO1NBQ3ZFLGNBQWMsQ0FDYixrQ0FBa0MsRUFDbEMsbURBQW1ELEVBQ25ELG9CQUFvQixDQUNyQjtTQUNBLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSwyQkFBMkIsRUFBRSxjQUFjLENBQUM7U0FDckYsY0FBYyxDQUFDLHdCQUF3QixFQUFFLGdDQUFnQyxDQUFDO1NBQzFFLE1BQU0sQ0FBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUU7UUFDdEIsTUFBTSxlQUFlLEdBQUcsd0JBQXdCLENBQUMsT0FBTyxDQUFDLE9BQTJCLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLDBCQUEwQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNqRCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1lBQ3hDLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSx5QkFBeUIsQ0FDN0IsT0FBTyxDQUFDLE1BQU0sRUFDZCxPQUFPLENBQUMsZ0JBQWdCLEVBQ3hCLE9BQU8sQ0FBQyxPQUFPLEVBQ2YsZUFBZSxFQUNmLElBQUksRUFDSixHQUFHLENBQ0osQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2JiL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXlCLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFckYsTUFBTSxFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFFN0Q7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBVTtJQUNuQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFFN0UsT0FBTztTQUNKLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztTQUM1QixXQUFXLENBQUMsZ0RBQWdELENBQUM7U0FDN0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNYLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBWSxFQUFFLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTztTQUNKLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDbkIsV0FBVyxDQUFDLHFEQUFxRCxDQUFDO1NBQ2xFLGNBQWMsQ0FDYixrQ0FBa0MsRUFDbEMsbURBQW1ELEVBQ25ELG9CQUFvQixDQUNyQjtTQUNBLGNBQWMsQ0FBQyx3QkFBd0Is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
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
+ import { type AvmCircuitInputs } from '@aztec/circuits.js';
2
3
  import { type LogFn } from '@aztec/foundation/log';
3
4
  import { type NoirCompiledCircuit } from '@aztec/types/noir';
4
5
  export declare const VK_FILENAME = "vk";
@@ -13,15 +14,26 @@ export declare enum BB_RESULT {
13
14
  export type BBSuccess = {
14
15
  status: BB_RESULT.SUCCESS | BB_RESULT.ALREADY_PRESENT;
15
16
  duration: number;
17
+ /** Full path of the public key. */
16
18
  pkPath?: string;
19
+ /** Base directory for the VKs (raw, fields). */
17
20
  vkPath?: string;
21
+ /** Full path of the proof. */
18
22
  proofPath?: string;
23
+ /** Full path of the contract. */
24
+ contractPath?: string;
19
25
  };
20
26
  export type BBFailure = {
21
27
  status: BB_RESULT.FAILURE;
22
28
  reason: string;
23
29
  };
24
30
  export type BBResult = BBSuccess | BBFailure;
31
+ export type VerificationFunction = typeof verifyProof | typeof verifyAvmProof;
32
+ type BBExecResult = {
33
+ status: BB_RESULT;
34
+ exitCode: number;
35
+ signal: string | undefined;
36
+ };
25
37
  /**
26
38
  * Invokes the Barretenberg binary with the provided command and args
27
39
  * @param pathToBB - The path to the BB binary
@@ -31,7 +43,7 @@ export type BBResult = BBSuccess | BBFailure;
31
43
  * @param resultParser - An optional handler for detecting success or failure
32
44
  * @returns The completed partial witness outputted from the circuit
33
45
  */
34
- export declare function executeBB(pathToBB: string, command: string, args: string[], logger: LogFn, resultParser?: (code: number) => boolean): Promise<BB_RESULT>;
46
+ export declare function executeBB(pathToBB: string, command: string, args: string[], logger: LogFn, resultParser?: (code: number) => boolean): Promise<BBExecResult>;
35
47
  /**
36
48
  * Used for generating either a proving or verification key, will exit early if the key already exists
37
49
  * It assumes the provided working directory is one where the caller wishes to maintain a permanent set of keys
@@ -58,6 +70,16 @@ export declare function generateKeyForNoirCircuit(pathToBB: string, workingDirec
58
70
  * @returns An object containing a result indication, the location of the proof and the duration taken
59
71
  */
60
72
  export declare function generateProof(pathToBB: string, workingDirectory: string, circuitName: string, bytecode: Buffer, inputWitnessFile: string, log: LogFn): Promise<BBFailure | BBSuccess>;
73
+ /**
74
+ * Used for generating AVM proofs.
75
+ * It is assumed that the working directory is a temporary and/or random directory used solely for generating this proof.
76
+ * @param pathToBB - The full path to the bb binary
77
+ * @param workingDirectory - A working directory for use by bb
78
+ * @param bytecode - The AVM bytecode for the public function to be proven (expected to be decompressed)
79
+ * @param log - A logging function
80
+ * @returns An object containing a result indication, the location of the proof and the duration taken
81
+ */
82
+ export declare function generateAvmProof(pathToBB: string, workingDirectory: string, input: AvmCircuitInputs, log: LogFn): Promise<BBFailure | BBSuccess>;
61
83
  /**
62
84
  * Used for verifying proofs of noir circuits
63
85
  * @param pathToBB - The full path to the bb binary
@@ -67,6 +89,15 @@ export declare function generateProof(pathToBB: string, workingDirectory: string
67
89
  * @returns An object containing a result indication and duration taken
68
90
  */
69
91
  export declare function verifyProof(pathToBB: string, proofFullPath: string, verificationKeyPath: string, log: LogFn): Promise<BBFailure | BBSuccess>;
92
+ /**
93
+ * Used for verifying proofs of the AVM
94
+ * @param pathToBB - The full path to the bb binary
95
+ * @param proofFullPath - The full path to the proof to be verified
96
+ * @param verificationKeyPath - The full path to the circuit verification key
97
+ * @param log - A logging function
98
+ * @returns An object containing a result indication and duration taken
99
+ */
100
+ export declare function verifyAvmProof(pathToBB: string, proofFullPath: string, verificationKeyPath: string, log: LogFn): Promise<BBFailure | BBSuccess>;
70
101
  /**
71
102
  * Used for verifying proofs of noir circuits
72
103
  * @param pathToBB - The full path to the bb binary
@@ -81,8 +112,12 @@ export declare function writeVkAsFields(pathToBB: string, verificationKeyPath: s
81
112
  * @param pathToBB - The full path to the bb binary
82
113
  * @param proofPath - The directory containing the binary proof
83
114
  * @param proofFileName - The filename of the proof
115
+ * @param vkFileName - The filename of the verification key
84
116
  * @param log - A logging function
85
117
  * @returns An object containing a result indication and duration taken
86
118
  */
87
- export declare function writeProofAsFields(pathToBB: string, proofPath: string, proofFileName: string, log: LogFn): Promise<BBFailure | BBSuccess>;
119
+ export declare function writeProofAsFields(pathToBB: string, proofPath: string, proofFileName: string, vkFilePath: string, log: LogFn): Promise<BBFailure | BBSuccess>;
120
+ export declare function generateContractForVerificationKey(pathToBB: string, vkFilePath: string, contractPath: string, log: LogFn): Promise<BBFailure | BBSuccess>;
121
+ export declare function generateContractForCircuit(pathToBB: string, workingDirectory: string, circuitName: string, compiledCircuit: NoirCompiledCircuit, contractName: string, log: LogFn, force?: boolean): Promise<BBSuccess | BBFailure>;
122
+ export {};
88
123
  //# sourceMappingURL=execute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/bb/execute.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAK7D,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD,oBAAY,SAAS;IACnB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,eAAe,IAAA;CAChB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,KAAK,EACb,YAAY,UAAU,MAAM,YAAe,sBAqB5C;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,mBAAmB,EACpC,GAAG,EAAE,IAAI,GAAG,IAAI,EAChB,GAAG,EAAE,KAAK,EACV,KAAK,UAAQ,GACZ,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAoFhC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAgDhC;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM,EAC3B,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAsBhC;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,MAAM,EAC3B,uBAAuB,EAAE,MAAM,EAC/B,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAsBhC;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAsBhC"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/bb/execute.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAM7D,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AACnD,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD,oBAAY,SAAS;IACnB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,eAAe,IAAA;CAChB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,OAAO,WAAW,GAAG,OAAO,cAAc,CAAC;AAE9E,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,KAAK,EACb,YAAY,UAAU,MAAM,YAAe,GAC1C,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,mBAAmB,EACpC,GAAG,EAAE,IAAI,GAAG,IAAI,EAChB,GAAG,EAAE,KAAK,EACV,KAAK,UAAQ,GACZ,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAqEhC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAkDhC;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA6FhC;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM,EAC3B,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAEhC;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM,EAC3B,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAEhC;AA4CD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,MAAM,EAC3B,uBAAuB,EAAE,MAAM,EAC/B,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAyBhC;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAyBhC;AAED,wBAAsB,kCAAkC,CACtD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,KAAK,GACT,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CA6ChC;AAED,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,mBAAmB,EACpC,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,KAAK,EACV,KAAK,UAAQ,kCAqBd"}