@aztec/bb.js 0.0.1-commit.d3ec352c → 0.0.1-commit.e61ad554

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 (187) hide show
  1. package/build/amd64-linux/bb +0 -0
  2. package/build/amd64-linux/nodejs_module.node +0 -0
  3. package/build/amd64-macos/bb +0 -0
  4. package/build/amd64-macos/nodejs_module.node +0 -0
  5. package/build/arm64-linux/bb +0 -0
  6. package/build/arm64-linux/nodejs_module.node +0 -0
  7. package/build/arm64-macos/bb +0 -0
  8. package/build/arm64-macos/nodejs_module.node +0 -0
  9. package/dest/browser/barretenberg/backend.d.ts +49 -17
  10. package/dest/browser/barretenberg/backend.d.ts.map +1 -1
  11. package/dest/browser/barretenberg/backend.js +109 -9
  12. package/dest/browser/barretenberg/index.d.ts +2 -2
  13. package/dest/browser/barretenberg/index.d.ts.map +1 -1
  14. package/dest/browser/barretenberg/index.js +2 -2
  15. package/dest/browser/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  16. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg-threads.js +1 -1
  17. package/dest/browser/barretenberg_wasm/fetch_code/browser/barretenberg.js +1 -1
  18. package/dest/browser/bb_backends/index.d.ts +3 -1
  19. package/dest/browser/bb_backends/index.d.ts.map +1 -1
  20. package/dest/browser/cbind/generate.d.ts +5 -2
  21. package/dest/browser/cbind/generate.d.ts.map +1 -1
  22. package/dest/browser/cbind/generate.js +47 -25
  23. package/dest/browser/cbind/generated/api_types.d.ts +765 -1672
  24. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  25. package/dest/browser/cbind/generated/api_types.js +1453 -1525
  26. package/dest/browser/cbind/generated/async.d.ts +3 -5
  27. package/dest/browser/cbind/generated/async.d.ts.map +1 -1
  28. package/dest/browser/cbind/generated/async.js +13 -33
  29. package/dest/browser/cbind/generated/sync.d.ts +3 -5
  30. package/dest/browser/cbind/generated/sync.d.ts.map +1 -1
  31. package/dest/browser/cbind/generated/sync.js +13 -31
  32. package/dest/browser/cbind/naming.d.ts +16 -0
  33. package/dest/browser/cbind/naming.d.ts.map +1 -0
  34. package/dest/browser/cbind/naming.js +24 -0
  35. package/dest/browser/cbind/rust_codegen.d.ts +26 -0
  36. package/dest/browser/cbind/rust_codegen.d.ts.map +1 -0
  37. package/dest/browser/cbind/rust_codegen.js +461 -0
  38. package/dest/browser/cbind/schema_visitor.d.ts +47 -0
  39. package/dest/browser/cbind/schema_visitor.d.ts.map +1 -0
  40. package/dest/browser/cbind/schema_visitor.js +158 -0
  41. package/dest/browser/cbind/typescript_codegen.d.ts +30 -0
  42. package/dest/browser/cbind/typescript_codegen.d.ts.map +1 -0
  43. package/dest/browser/cbind/typescript_codegen.js +365 -0
  44. package/dest/browser/index.d.ts +2 -2
  45. package/dest/browser/index.d.ts.map +1 -1
  46. package/dest/browser/index.js +2 -2
  47. package/dest/node/barretenberg/backend.d.ts +49 -17
  48. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  49. package/dest/node/barretenberg/backend.js +109 -9
  50. package/dest/node/barretenberg/backend.test.d.ts +2 -0
  51. package/dest/node/barretenberg/backend.test.d.ts.map +1 -0
  52. package/dest/node/barretenberg/backend.test.js +103 -0
  53. package/dest/node/barretenberg/index.d.ts +2 -2
  54. package/dest/node/barretenberg/index.d.ts.map +1 -1
  55. package/dest/node/barretenberg/index.js +2 -2
  56. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  57. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  58. package/dest/node/bb_backends/index.d.ts +3 -1
  59. package/dest/node/bb_backends/index.d.ts.map +1 -1
  60. package/dest/node/bb_backends/node/index.d.ts +1 -1
  61. package/dest/node/bb_backends/node/index.d.ts.map +1 -1
  62. package/dest/node/bb_backends/node/index.js +5 -5
  63. package/dest/node/bb_backends/node/native_shm.d.ts +3 -2
  64. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
  65. package/dest/node/bb_backends/node/native_shm.js +40 -21
  66. package/dest/node/bb_backends/node/native_shm_async.d.ts +2 -2
  67. package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -1
  68. package/dest/node/bb_backends/node/native_shm_async.js +17 -21
  69. package/dest/node/bb_backends/node/native_socket.d.ts +1 -1
  70. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
  71. package/dest/node/bb_backends/node/native_socket.js +7 -5
  72. package/dest/node/bb_backends/node/platform.d.ts +1 -1
  73. package/dest/node/bb_backends/node/platform.d.ts.map +1 -1
  74. package/dest/node/bb_backends/node/platform.js +7 -2
  75. package/dest/node/cbind/generate.d.ts +5 -2
  76. package/dest/node/cbind/generate.d.ts.map +1 -1
  77. package/dest/node/cbind/generate.js +47 -25
  78. package/dest/node/cbind/generated/api_types.d.ts +765 -1672
  79. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  80. package/dest/node/cbind/generated/api_types.js +1453 -1525
  81. package/dest/node/cbind/generated/async.d.ts +3 -5
  82. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  83. package/dest/node/cbind/generated/async.js +13 -33
  84. package/dest/node/cbind/generated/sync.d.ts +3 -5
  85. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  86. package/dest/node/cbind/generated/sync.js +13 -31
  87. package/dest/node/cbind/naming.d.ts +16 -0
  88. package/dest/node/cbind/naming.d.ts.map +1 -0
  89. package/dest/node/cbind/naming.js +24 -0
  90. package/dest/node/cbind/rust_codegen.d.ts +26 -0
  91. package/dest/node/cbind/rust_codegen.d.ts.map +1 -0
  92. package/dest/node/cbind/rust_codegen.js +461 -0
  93. package/dest/node/cbind/schema_visitor.d.ts +47 -0
  94. package/dest/node/cbind/schema_visitor.d.ts.map +1 -0
  95. package/dest/node/cbind/schema_visitor.js +158 -0
  96. package/dest/node/cbind/typescript_codegen.d.ts +30 -0
  97. package/dest/node/cbind/typescript_codegen.d.ts.map +1 -0
  98. package/dest/node/cbind/typescript_codegen.js +365 -0
  99. package/dest/node/index.d.ts +2 -2
  100. package/dest/node/index.d.ts.map +1 -1
  101. package/dest/node/index.js +2 -2
  102. package/dest/node-cjs/barretenberg/backend.d.ts +49 -17
  103. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  104. package/dest/node-cjs/barretenberg/backend.js +111 -9
  105. package/dest/node-cjs/barretenberg/backend.test.d.ts +2 -0
  106. package/dest/node-cjs/barretenberg/backend.test.d.ts.map +1 -0
  107. package/dest/node-cjs/barretenberg/backend.test.js +105 -0
  108. package/dest/node-cjs/barretenberg/index.d.ts +2 -2
  109. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  110. package/dest/node-cjs/barretenberg/index.js +4 -2
  111. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  112. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  113. package/dest/node-cjs/bb_backends/index.d.ts +3 -1
  114. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
  115. package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
  116. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
  117. package/dest/node-cjs/bb_backends/node/index.js +5 -5
  118. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +3 -2
  119. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
  120. package/dest/node-cjs/bb_backends/node/native_shm.js +39 -20
  121. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +2 -2
  122. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -1
  123. package/dest/node-cjs/bb_backends/node/native_shm_async.js +17 -21
  124. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +1 -1
  125. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
  126. package/dest/node-cjs/bb_backends/node/native_socket.js +7 -5
  127. package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
  128. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -1
  129. package/dest/node-cjs/bb_backends/node/platform.js +7 -2
  130. package/dest/node-cjs/cbind/generate.d.ts +5 -2
  131. package/dest/node-cjs/cbind/generate.d.ts.map +1 -1
  132. package/dest/node-cjs/cbind/generate.js +47 -25
  133. package/dest/node-cjs/cbind/generated/api_types.d.ts +765 -1672
  134. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  135. package/dest/node-cjs/cbind/generated/api_types.js +1662 -1742
  136. package/dest/node-cjs/cbind/generated/async.d.ts +3 -5
  137. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  138. package/dest/node-cjs/cbind/generated/async.js +12 -32
  139. package/dest/node-cjs/cbind/generated/sync.d.ts +3 -5
  140. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  141. package/dest/node-cjs/cbind/generated/sync.js +12 -30
  142. package/dest/node-cjs/cbind/naming.d.ts +16 -0
  143. package/dest/node-cjs/cbind/naming.d.ts.map +1 -0
  144. package/dest/node-cjs/cbind/naming.js +28 -0
  145. package/dest/node-cjs/cbind/rust_codegen.d.ts +26 -0
  146. package/dest/node-cjs/cbind/rust_codegen.d.ts.map +1 -0
  147. package/dest/node-cjs/cbind/rust_codegen.js +465 -0
  148. package/dest/node-cjs/cbind/schema_visitor.d.ts +47 -0
  149. package/dest/node-cjs/cbind/schema_visitor.d.ts.map +1 -0
  150. package/dest/node-cjs/cbind/schema_visitor.js +162 -0
  151. package/dest/node-cjs/cbind/typescript_codegen.d.ts +30 -0
  152. package/dest/node-cjs/cbind/typescript_codegen.d.ts.map +1 -0
  153. package/dest/node-cjs/cbind/typescript_codegen.js +369 -0
  154. package/dest/node-cjs/index.d.ts +2 -2
  155. package/dest/node-cjs/index.d.ts.map +1 -1
  156. package/dest/node-cjs/index.js +4 -2
  157. package/package.json +1 -1
  158. package/src/barretenberg/backend.test.ts +122 -0
  159. package/src/barretenberg/backend.ts +149 -23
  160. package/src/barretenberg/index.ts +9 -1
  161. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +1 -1
  162. package/src/bb_backends/index.ts +3 -0
  163. package/src/bb_backends/node/index.ts +9 -4
  164. package/src/bb_backends/node/native_shm.ts +38 -19
  165. package/src/bb_backends/node/native_shm_async.ts +15 -19
  166. package/src/bb_backends/node/native_socket.ts +7 -5
  167. package/src/bb_backends/node/platform.ts +6 -1
  168. package/src/cbind/generate.ts +51 -32
  169. package/src/cbind/naming.ts +27 -0
  170. package/src/cbind/rust_codegen.ts +504 -0
  171. package/src/cbind/schema_visitor.ts +219 -0
  172. package/src/cbind/typescript_codegen.ts +419 -0
  173. package/src/index.ts +4 -0
  174. package/dest/browser/cbind/schema_compiler.d.ts +0 -68
  175. package/dest/browser/cbind/schema_compiler.d.ts.map +0 -1
  176. package/dest/browser/cbind/schema_compiler.js +0 -600
  177. package/dest/node/cbind/schema_compiler.d.ts +0 -68
  178. package/dest/node/cbind/schema_compiler.d.ts.map +0 -1
  179. package/dest/node/cbind/schema_compiler.js +0 -600
  180. package/dest/node-cjs/cbind/schema_compiler.d.ts +0 -68
  181. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +0 -1
  182. package/dest/node-cjs/cbind/schema_compiler.js +0 -607
  183. package/src/cbind/generated/api_types.ts +0 -4241
  184. package/src/cbind/generated/async.ts +0 -717
  185. package/src/cbind/generated/curve_constants.ts +0 -53
  186. package/src/cbind/generated/sync.ts +0 -663
  187. package/src/cbind/schema_compiler.ts +0 -745
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ /**
3
+ * Schema Visitor - Minimal abstraction over raw msgpack schema
4
+ *
5
+ * Philosophy:
6
+ * - Keep raw schema structure
7
+ * - Resolve type references into a graph
8
+ * - No normalization - languages handle their own conventions
9
+ * - Output is "compiled schema" with resolved types
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SchemaVisitor = void 0;
13
+ /**
14
+ * SchemaVisitor - Walks raw msgpack schema and resolves references
15
+ */
16
+ class SchemaVisitor {
17
+ structs = new Map();
18
+ responses = new Map();
19
+ visit(commandsSchema, responsesSchema) {
20
+ // Reset state
21
+ this.structs.clear();
22
+ this.responses.clear();
23
+ const commands = [];
24
+ // Schema format: ["named_union", [[name, schema], ...]]
25
+ const commandPairs = commandsSchema[1];
26
+ const responsePairs = responsesSchema[1];
27
+ // First, visit all response types (including ErrorResponse)
28
+ for (const [respName, respSchema] of responsePairs) {
29
+ if (typeof respSchema !== 'string') {
30
+ const respStruct = this.visitStruct(respName, respSchema);
31
+ this.responses.set(respName, respStruct);
32
+ }
33
+ }
34
+ // Visit all commands and pair with responses
35
+ for (let i = 0; i < commandPairs.length; i++) {
36
+ const [cmdName, cmdSchema] = commandPairs[i];
37
+ // Find matching response (skip ErrorResponse which is always last)
38
+ const normalResponses = responsePairs.filter(([name]) => name !== 'ErrorResponse');
39
+ const [respName] = normalResponses[i];
40
+ // Discover command structure
41
+ const cmdStruct = this.visitStruct(cmdName, cmdSchema);
42
+ this.structs.set(cmdName, cmdStruct);
43
+ // Create command mapping
44
+ commands.push({
45
+ name: cmdName,
46
+ fields: cmdStruct.fields,
47
+ responseType: respName,
48
+ });
49
+ }
50
+ return {
51
+ structs: this.structs,
52
+ commands,
53
+ responses: this.responses,
54
+ };
55
+ }
56
+ visitStruct(name, schema) {
57
+ const fields = [];
58
+ // Schema is an object with __typename and fields
59
+ for (const [key, value] of Object.entries(schema)) {
60
+ if (key === '__typename')
61
+ continue;
62
+ fields.push({
63
+ name: key,
64
+ type: this.visitType(value),
65
+ });
66
+ }
67
+ return { name, fields };
68
+ }
69
+ visitType(schema) {
70
+ // Primitive string type
71
+ if (typeof schema === 'string') {
72
+ return this.resolvePrimitive(schema);
73
+ }
74
+ // Array type descriptor: ['vector', [elementType]]
75
+ if (Array.isArray(schema)) {
76
+ const [kind, args] = schema;
77
+ switch (kind) {
78
+ case 'vector': {
79
+ const [elemType] = args;
80
+ // Special case: vector<unsigned char> = bytes
81
+ if (elemType === 'unsigned char') {
82
+ return { kind: 'primitive', primitive: 'bytes' };
83
+ }
84
+ return {
85
+ kind: 'vector',
86
+ element: this.visitType(elemType),
87
+ };
88
+ }
89
+ case 'array': {
90
+ const [elemType, size] = args;
91
+ // Special case: array<unsigned char, N> = bytes
92
+ if (elemType === 'unsigned char') {
93
+ return { kind: 'primitive', primitive: 'bytes' };
94
+ }
95
+ return {
96
+ kind: 'array',
97
+ element: this.visitType(elemType),
98
+ size,
99
+ };
100
+ }
101
+ case 'optional': {
102
+ const [elemType] = args;
103
+ return {
104
+ kind: 'optional',
105
+ element: this.visitType(elemType),
106
+ };
107
+ }
108
+ case 'shared_ptr': {
109
+ // Dereference shared_ptr - just use inner type
110
+ const [innerType] = args;
111
+ return this.visitType(innerType);
112
+ }
113
+ case 'alias': {
114
+ // Alias types (like uint256_t) are treated as bytes
115
+ return { kind: 'primitive', primitive: 'bytes' };
116
+ }
117
+ default:
118
+ throw new Error(`Unknown type kind: ${kind}`);
119
+ }
120
+ }
121
+ // Inline struct definition
122
+ if (typeof schema === 'object' && schema.__typename) {
123
+ const structName = schema.__typename;
124
+ // Check if already visited
125
+ if (!this.structs.has(structName)) {
126
+ const struct = this.visitStruct(structName, schema);
127
+ this.structs.set(structName, struct);
128
+ }
129
+ return {
130
+ kind: 'struct',
131
+ struct: this.structs.get(structName),
132
+ };
133
+ }
134
+ throw new Error(`Cannot resolve type: ${JSON.stringify(schema)}`);
135
+ }
136
+ resolvePrimitive(name) {
137
+ const primitiveMap = {
138
+ 'bool': 'bool',
139
+ 'int': 'u32',
140
+ 'unsigned int': 'u32',
141
+ 'unsigned short': 'u16',
142
+ 'unsigned long': 'u64',
143
+ 'unsigned char': 'u8',
144
+ 'double': 'f64',
145
+ 'string': 'string',
146
+ 'bin32': 'bytes',
147
+ 'field2': 'field2', // Extension field (Fq2) - pair of field elements
148
+ };
149
+ const primitive = primitiveMap[name];
150
+ if (primitive) {
151
+ return { kind: 'primitive', primitive };
152
+ }
153
+ // Unknown primitive - treat as struct reference
154
+ // This will be resolved later if it's a real struct
155
+ return {
156
+ kind: 'struct',
157
+ struct: { name, fields: [] }, // Placeholder
158
+ };
159
+ }
160
+ }
161
+ exports.SchemaVisitor = SchemaVisitor;
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hX3Zpc2l0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2JpbmQvc2NoZW1hX3Zpc2l0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUF1Q0g7O0dBRUc7QUFDSDtJQUNVLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUNwQyxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFOUMsS0FBSyxDQUFDLGNBQW1CLEVBQUUsZUFBb0IsRUFBa0I7UUFDL0QsY0FBYztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV2QixNQUFNLFFBQVEsR0FBYyxFQUFFLENBQUM7UUFFL0Isd0RBQXdEO1FBQ3hELE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQXlCLENBQUM7UUFDL0QsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBeUIsQ0FBQztRQUVqRSw0REFBNEQ7UUFDNUQsS0FBSyxNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ25ELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QyxtRUFBbUU7WUFDbkUsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLENBQUM7WUFDbEcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV0Qyw2QkFBNkI7WUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRXJDLHlCQUF5QjtZQUN6QixRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLElBQUksRUFBRSxPQUFPO2dCQUNiLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtnQkFDeEIsWUFBWSxFQUFFLFFBQVE7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUTtZQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUMxQixDQUFDO0lBQUEsQ0FDSDtJQUVPLFdBQVcsQ0FBQyxJQUFZLEVBQUUsTUFBVyxFQUFVO1FBQ3JELE1BQU0sTUFBTSxHQUFZLEVBQUUsQ0FBQztRQUUzQixpREFBaUQ7UUFDakQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsRCxJQUFJLEdBQUcsS0FBSyxZQUFZO2dCQUFFLFNBQVM7WUFFbkMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixJQUFJLEVBQUUsR0FBRztnQkFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7YUFDNUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFBQSxDQUN6QjtJQUVPLFNBQVMsQ0FBQyxNQUFXLEVBQVE7UUFDbkMsd0JBQXdCO1FBQ3hCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztZQUU1QixRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNiLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ2QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQWEsQ0FBQztvQkFDakMsOENBQThDO29CQUM5QyxJQUFJLFFBQVEsS0FBSyxlQUFlLEVBQUUsQ0FBQzt3QkFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO29CQUNuRCxDQUFDO29CQUNELE9BQU87d0JBQ0wsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO3FCQUNsQyxDQUFDO2dCQUNKLENBQUM7Z0JBRUQsS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDYixNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLElBQXFCLENBQUM7b0JBQy9DLGdEQUFnRDtvQkFDaEQsSUFBSSxRQUFRLEtBQUssZUFBZSxFQUFFLENBQUM7d0JBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQztvQkFDbkQsQ0FBQztvQkFDRCxPQUFPO3dCQUNMLElBQUksRUFBRSxPQUFPO3dCQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzt3QkFDakMsSUFBSTtxQkFDTCxDQUFDO2dCQUNKLENBQUM7Z0JBRUQsS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQWEsQ0FBQztvQkFDakMsT0FBTzt3QkFDTCxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO3FCQUNsQyxDQUFDO2dCQUNKLENBQUM7Z0JBRUQsS0FBSyxZQUFZLEVBQUUsQ0FBQztvQkFDbEIsK0NBQStDO29CQUMvQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBYSxDQUFDO29CQUNsQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ25DLENBQUM7Z0JBRUQsS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDYixvREFBb0Q7b0JBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDbkQsQ0FBQztnQkFFRDtvQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBb0IsQ0FBQztZQUMvQywyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUNELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRTthQUN0QyxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQUEsQ0FDbkU7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFZLEVBQVE7UUFDM0MsTUFBTSxZQUFZLEdBQWtDO1lBQ2xELE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLEtBQUs7WUFDWixjQUFjLEVBQUUsS0FBSztZQUNyQixnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsUUFBUSxFQUFFLFFBQVE7WUFDbEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsUUFBUSxFQUFFLFFBQVEsRUFBRyxpREFBaUQ7U0FDdkUsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCxvREFBb0Q7UUFDcEQsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRO1lBQ2QsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxjQUFjO1NBQzdDLENBQUM7SUFBQSxDQUNIO0NBQ0YifQ==
@@ -0,0 +1,30 @@
1
+ /**
2
+ * TypeScript Code Generator - String template based
3
+ *
4
+ * Philosophy:
5
+ * - String templates for file structure
6
+ * - Simple type mapping
7
+ * - Idiomatic TypeScript conventions
8
+ * - No complex abstraction
9
+ */
10
+ import type { CompiledSchema } from './schema_visitor.js';
11
+ export declare class TypeScriptCodegen {
12
+ private mapType;
13
+ private mapMsgpackType;
14
+ private needsConversion;
15
+ private generateField;
16
+ private generateMsgpackField;
17
+ private generateInterface;
18
+ private generateMsgpackInterface;
19
+ private generateToFunction;
20
+ private generateFromFunction;
21
+ private generateToConverter;
22
+ private generateFromConverter;
23
+ generateTypes(schema: CompiledSchema): string;
24
+ private generateAsyncApiMethod;
25
+ private generateSyncApiMethod;
26
+ generateAsyncApi(schema: CompiledSchema): string;
27
+ generateSyncApi(schema: CompiledSchema): string;
28
+ private generateApiImports;
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdF9jb2RlZ2VuLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2JpbmQvdHlwZXNjcmlwdF9jb2RlZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFnQyxNQUFNLHFCQUFxQixDQUFDO0FBUXhGLHFCQUFhLGlCQUFpQjtJQUU1QixPQUFPLENBQUMsT0FBTztJQWlDZixPQUFPLENBQUMsY0FBYztJQWlDdEIsT0FBTyxDQUFDLGVBQWU7SUFldkIsT0FBTyxDQUFDLGFBQWE7SUFPckIsT0FBTyxDQUFDLG9CQUFvQjtJQU01QixPQUFPLENBQUMsaUJBQWlCO0lBVXpCLE9BQU8sQ0FBQyx3QkFBd0I7SUFVaEMsT0FBTyxDQUFDLGtCQUFrQjtJQThCMUIsT0FBTyxDQUFDLG9CQUFvQjtJQWlDNUIsT0FBTyxDQUFDLG1CQUFtQjtJQXdCM0IsT0FBTyxDQUFDLHFCQUFxQjtJQXdCN0IsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsTUFBTSxDQWlENUM7SUFHRCxPQUFPLENBQUMsc0JBQXNCO0lBbUI5QixPQUFPLENBQUMscUJBQXFCO0lBbUI3QixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsY0FBYyxHQUFHLE1BQU0sQ0E2Qi9DO0lBR0QsZUFBZSxDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsTUFBTSxDQTZCOUM7SUFHRCxPQUFPLENBQUMsa0JBQWtCO0NBbUIzQiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript_codegen.d.ts","sourceRoot":"","sources":["../../../src/cbind/typescript_codegen.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAgC,MAAM,qBAAqB,CAAC;AAQxF,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,OAAO;IAiCf,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,qBAAqB;IAwB7B,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiD5C;IAGD,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,qBAAqB;IAmB7B,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA6B/C;IAGD,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA6B9C;IAGD,OAAO,CAAC,kBAAkB;CAmB3B"}
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+ /**
3
+ * TypeScript Code Generator - String template based
4
+ *
5
+ * Philosophy:
6
+ * - String templates for file structure
7
+ * - Simple type mapping
8
+ * - Idiomatic TypeScript conventions
9
+ * - No complex abstraction
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TypeScriptCodegen = void 0;
13
+ const naming_js_1 = require("./naming.js");
14
+ function toCamelCase(name) {
15
+ const pascal = (0, naming_js_1.toPascalCase)(name);
16
+ return pascal.charAt(0).toLowerCase() + pascal.slice(1);
17
+ }
18
+ class TypeScriptCodegen {
19
+ // Type mapping: Schema type -> TypeScript type
20
+ mapType(type) {
21
+ switch (type.kind) {
22
+ case 'primitive':
23
+ switch (type.primitive) {
24
+ case 'bool': return 'boolean';
25
+ case 'u8': return 'number';
26
+ case 'u16': return 'number';
27
+ case 'u32': return 'number';
28
+ case 'u64': return 'number';
29
+ case 'f64': return 'number';
30
+ case 'string': return 'string';
31
+ case 'bytes': return 'Uint8Array';
32
+ case 'field2': return '[Uint8Array, Uint8Array]'; // Extension field (Fq2)
33
+ }
34
+ break;
35
+ case 'vector':
36
+ return `${this.mapType(type.element)}[]`;
37
+ case 'array':
38
+ return `${this.mapType(type.element)}[]`;
39
+ case 'optional':
40
+ return `${this.mapType(type.element)} | undefined`;
41
+ case 'struct':
42
+ return (0, naming_js_1.toPascalCase)(type.struct.name);
43
+ }
44
+ return 'unknown';
45
+ }
46
+ // Type mapping for msgpack interfaces (uses Msgpack* prefix for structs)
47
+ mapMsgpackType(type) {
48
+ switch (type.kind) {
49
+ case 'primitive':
50
+ switch (type.primitive) {
51
+ case 'bool': return 'boolean';
52
+ case 'u8': return 'number';
53
+ case 'u16': return 'number';
54
+ case 'u32': return 'number';
55
+ case 'u64': return 'number';
56
+ case 'f64': return 'number';
57
+ case 'string': return 'string';
58
+ case 'bytes': return 'Uint8Array';
59
+ case 'field2': return '[Uint8Array, Uint8Array]';
60
+ }
61
+ break;
62
+ case 'vector':
63
+ return `${this.mapMsgpackType(type.element)}[]`;
64
+ case 'array':
65
+ return `${this.mapMsgpackType(type.element)}[]`;
66
+ case 'optional':
67
+ return `${this.mapMsgpackType(type.element)} | undefined`;
68
+ case 'struct':
69
+ return `Msgpack${(0, naming_js_1.toPascalCase)(type.struct.name)}`;
70
+ }
71
+ return 'unknown';
72
+ }
73
+ // Check if type needs conversion (has nested structs)
74
+ needsConversion(type) {
75
+ switch (type.kind) {
76
+ case 'primitive':
77
+ return false;
78
+ case 'vector':
79
+ case 'array':
80
+ case 'optional':
81
+ return this.needsConversion(type.element);
82
+ case 'struct':
83
+ return true;
84
+ }
85
+ return false;
86
+ }
87
+ // Generate field
88
+ generateField(field) {
89
+ const tsName = toCamelCase(field.name);
90
+ const tsType = this.mapType(field.type);
91
+ return ` ${tsName}: ${tsType};`;
92
+ }
93
+ // Generate msgpack field (original names, uses Msgpack* types for structs)
94
+ generateMsgpackField(field) {
95
+ const tsType = this.mapMsgpackType(field.type);
96
+ return ` ${field.name}: ${tsType};`;
97
+ }
98
+ // Generate public interface
99
+ generateInterface(struct) {
100
+ const tsName = (0, naming_js_1.toPascalCase)(struct.name);
101
+ const fields = struct.fields.map(f => this.generateField(f)).join('\n');
102
+ return `export interface ${tsName} {
103
+ ${fields}
104
+ }`;
105
+ }
106
+ // Generate msgpack interface (internal)
107
+ generateMsgpackInterface(struct) {
108
+ const tsName = (0, naming_js_1.toPascalCase)(struct.name);
109
+ const fields = struct.fields.map(f => this.generateMsgpackField(f)).join('\n');
110
+ return `interface Msgpack${tsName} {
111
+ ${fields}
112
+ }`;
113
+ }
114
+ // Generate to* conversion function
115
+ generateToFunction(struct) {
116
+ const tsName = (0, naming_js_1.toPascalCase)(struct.name);
117
+ if (struct.fields.length === 0) {
118
+ return `function to${tsName}(o: Msgpack${tsName}): ${tsName} {
119
+ return {};
120
+ }`;
121
+ }
122
+ const checks = struct.fields
123
+ .map(f => ` if (o.${f.name} === undefined) { throw new Error("Expected ${f.name} in ${tsName} deserialization"); }`)
124
+ .join('\n');
125
+ const conversions = struct.fields
126
+ .map(f => {
127
+ const tsFieldName = toCamelCase(f.name);
128
+ const converter = this.generateToConverter(f.type, `o.${f.name}`);
129
+ return ` ${tsFieldName}: ${converter},`;
130
+ })
131
+ .join('\n');
132
+ return `function to${tsName}(o: Msgpack${tsName}): ${tsName} {
133
+ ${checks};
134
+ return {
135
+ ${conversions}
136
+ };
137
+ }`;
138
+ }
139
+ // Generate from* conversion function
140
+ generateFromFunction(struct) {
141
+ const tsName = (0, naming_js_1.toPascalCase)(struct.name);
142
+ if (struct.fields.length === 0) {
143
+ return `function from${tsName}(o: ${tsName}): Msgpack${tsName} {
144
+ return {};
145
+ }`;
146
+ }
147
+ const checks = struct.fields
148
+ .map(f => {
149
+ const tsFieldName = toCamelCase(f.name);
150
+ return ` if (o.${tsFieldName} === undefined) { throw new Error("Expected ${tsFieldName} in ${tsName} serialization"); }`;
151
+ })
152
+ .join('\n');
153
+ const conversions = struct.fields
154
+ .map(f => {
155
+ const tsFieldName = toCamelCase(f.name);
156
+ const converter = this.generateFromConverter(f.type, `o.${tsFieldName}`);
157
+ return ` ${f.name}: ${converter},`;
158
+ })
159
+ .join('\n');
160
+ return `function from${tsName}(o: ${tsName}): Msgpack${tsName} {
161
+ ${checks};
162
+ return {
163
+ ${conversions}
164
+ };
165
+ }`;
166
+ }
167
+ // Generate converter for to* function
168
+ generateToConverter(type, value) {
169
+ if (!this.needsConversion(type)) {
170
+ return value;
171
+ }
172
+ switch (type.kind) {
173
+ case 'vector':
174
+ case 'array':
175
+ if (this.needsConversion(type.element)) {
176
+ return `${value}.map((v: any) => ${this.generateToConverter(type.element, 'v')})`;
177
+ }
178
+ return value;
179
+ case 'optional':
180
+ if (this.needsConversion(type.element)) {
181
+ return `${value} !== undefined ? ${this.generateToConverter(type.element, value)} : undefined`;
182
+ }
183
+ return value;
184
+ case 'struct':
185
+ return `to${(0, naming_js_1.toPascalCase)(type.struct.name)}(${value})`;
186
+ }
187
+ return value;
188
+ }
189
+ // Generate converter for from* function
190
+ generateFromConverter(type, value) {
191
+ if (!this.needsConversion(type)) {
192
+ return value;
193
+ }
194
+ switch (type.kind) {
195
+ case 'vector':
196
+ case 'array':
197
+ if (this.needsConversion(type.element)) {
198
+ return `${value}.map((v: any) => ${this.generateFromConverter(type.element, 'v')})`;
199
+ }
200
+ return value;
201
+ case 'optional':
202
+ if (this.needsConversion(type.element)) {
203
+ return `${value} !== undefined ? ${this.generateFromConverter(type.element, value)} : undefined`;
204
+ }
205
+ return value;
206
+ case 'struct':
207
+ return `from${(0, naming_js_1.toPascalCase)(type.struct.name)}(${value})`;
208
+ }
209
+ return value;
210
+ }
211
+ // Generate types file (api_types.ts)
212
+ generateTypes(schema) {
213
+ const allStructs = [...schema.structs.values(), ...schema.responses.values()];
214
+ // Public interfaces
215
+ const publicInterfaces = allStructs
216
+ .map(s => this.generateInterface(s))
217
+ .join('\n\n');
218
+ // Msgpack interfaces
219
+ const msgpackInterfaces = allStructs
220
+ .map(s => this.generateMsgpackInterface(s))
221
+ .join('\n\n');
222
+ // Conversion functions
223
+ const toFunctions = allStructs
224
+ .map(s => 'export ' + this.generateToFunction(s))
225
+ .join('\n\n');
226
+ const fromFunctions = allStructs
227
+ .map(s => 'export ' + this.generateFromFunction(s))
228
+ .join('\n\n');
229
+ // BbApiBase interface
230
+ const apiMethods = schema.commands
231
+ .map(c => ` ${toCamelCase(c.name)}(command: ${(0, naming_js_1.toPascalCase)(c.name)}): Promise<${(0, naming_js_1.toPascalCase)(c.responseType)}>;`)
232
+ .join('\n');
233
+ return `// AUTOGENERATED FILE - DO NOT EDIT
234
+
235
+ // Type aliases for primitive types
236
+ export type Field2 = [Uint8Array, Uint8Array];
237
+
238
+ // Public interfaces (exported)
239
+ ${publicInterfaces}
240
+
241
+ // Private Msgpack interfaces (not exported)
242
+ ${msgpackInterfaces}
243
+
244
+ // Conversion functions (exported)
245
+ ${toFunctions}
246
+
247
+ ${fromFunctions}
248
+
249
+ // Base API interface
250
+ export interface BbApiBase {
251
+ ${apiMethods}
252
+ destroy(): Promise<void>;
253
+ }
254
+ `;
255
+ }
256
+ // Generate API method
257
+ generateAsyncApiMethod(command) {
258
+ const methodName = toCamelCase(command.name);
259
+ const cmdType = (0, naming_js_1.toPascalCase)(command.name);
260
+ const respType = (0, naming_js_1.toPascalCase)(command.responseType);
261
+ return ` ${methodName}(command: ${cmdType}): Promise<${respType}> {
262
+ const msgpackCommand = from${cmdType}(command);
263
+ return msgpackCall(this.backend, [["${command.name}", msgpackCommand]]).then(([variantName, result]: [string, any]) => {
264
+ if (variantName === 'ErrorResponse') {
265
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
266
+ }
267
+ if (variantName !== '${command.responseType}') {
268
+ throw new BBApiException(\`Expected variant name '${command.responseType}' but got '\${variantName}'\`);
269
+ }
270
+ return to${respType}(result);
271
+ });
272
+ }`;
273
+ }
274
+ generateSyncApiMethod(command) {
275
+ const methodName = toCamelCase(command.name);
276
+ const cmdType = (0, naming_js_1.toPascalCase)(command.name);
277
+ const respType = (0, naming_js_1.toPascalCase)(command.responseType);
278
+ return ` ${methodName}(command: ${cmdType}): ${respType} {
279
+ const msgpackCommand = from${cmdType}(command);
280
+ const [variantName, result] = msgpackCall(this.backend, [["${command.name}", msgpackCommand]]);
281
+ if (variantName === 'ErrorResponse') {
282
+ throw new BBApiException(result.message || 'Unknown error from barretenberg');
283
+ }
284
+ if (variantName !== '${command.responseType}') {
285
+ throw new BBApiException(\`Expected variant name '${command.responseType}' but got '\${variantName}'\`);
286
+ }
287
+ return to${respType}(result);
288
+ }`;
289
+ }
290
+ // Generate async API file
291
+ generateAsyncApi(schema) {
292
+ const imports = this.generateApiImports(schema);
293
+ const methods = schema.commands
294
+ .map(c => this.generateAsyncApiMethod(c))
295
+ .join('\n\n');
296
+ return `// AUTOGENERATED FILE - DO NOT EDIT
297
+
298
+ import { IMsgpackBackendAsync } from '../../bb_backends/interface.js';
299
+ import { Decoder, Encoder } from 'msgpackr';
300
+ import { BBApiException } from '../../bbapi_exception.js';
301
+ ${imports}
302
+
303
+ async function msgpackCall(backend: IMsgpackBackendAsync, input: any[]) {
304
+ const inputBuffer = new Encoder({ useRecords: false }).pack(input);
305
+ const encodedResult = await backend.call(inputBuffer);
306
+ return new Decoder({ useRecords: false }).unpack(encodedResult);
307
+ }
308
+
309
+ export class AsyncApi implements BbApiBase {
310
+ constructor(protected backend: IMsgpackBackendAsync) {}
311
+
312
+ ${methods}
313
+
314
+ destroy(): Promise<void> {
315
+ return this.backend.destroy ? this.backend.destroy() : Promise.resolve();
316
+ }
317
+ }
318
+ `;
319
+ }
320
+ // Generate sync API file
321
+ generateSyncApi(schema) {
322
+ const imports = this.generateApiImports(schema);
323
+ const methods = schema.commands
324
+ .map(c => this.generateSyncApiMethod(c))
325
+ .join('\n\n');
326
+ return `// AUTOGENERATED FILE - DO NOT EDIT
327
+
328
+ import { IMsgpackBackendSync } from '../../bb_backends/interface.js';
329
+ import { Decoder, Encoder } from 'msgpackr';
330
+ import { BBApiException } from '../../bbapi_exception.js';
331
+ ${imports}
332
+
333
+ function msgpackCall(backend: IMsgpackBackendSync, input: any[]) {
334
+ const inputBuffer = new Encoder({ useRecords: false }).pack(input);
335
+ const encodedResult = backend.call(inputBuffer);
336
+ return new Decoder({ useRecords: false }).unpack(encodedResult);
337
+ }
338
+
339
+ export class SyncApi {
340
+ constructor(protected backend: IMsgpackBackendSync) {}
341
+
342
+ ${methods}
343
+
344
+ destroy(): void {
345
+ if (this.backend.destroy) this.backend.destroy();
346
+ }
347
+ }
348
+ `;
349
+ }
350
+ // Generate import statement for API files
351
+ generateApiImports(schema) {
352
+ const types = new Set();
353
+ // Add command types and their conversion functions
354
+ for (const cmd of schema.commands) {
355
+ const cmdType = (0, naming_js_1.toPascalCase)(cmd.name);
356
+ const respType = (0, naming_js_1.toPascalCase)(cmd.responseType);
357
+ types.add(cmdType);
358
+ types.add(respType);
359
+ types.add(`from${cmdType}`);
360
+ types.add(`to${respType}`);
361
+ }
362
+ // Add BbApiBase
363
+ types.add('BbApiBase');
364
+ const sortedTypes = Array.from(types).sort();
365
+ return `import { ${sortedTypes.join(', ')} } from './api_types.js';`;
366
+ }
367
+ }
368
+ exports.TypeScriptCodegen = TypeScriptCodegen;
369
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdF9jb2RlZ2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NiaW5kL3R5cGVzY3JpcHRfY29kZWdlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQUdILDJDQUEyQztBQUUzQyxTQUFTLFdBQVcsQ0FBQyxJQUFZLEVBQVU7SUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBQSx3QkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQUEsQ0FDekQ7QUFFRDtJQUNFLCtDQUErQztJQUN2QyxPQUFPLENBQUMsSUFBVSxFQUFVO1FBQ2xDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssV0FBVztnQkFDZCxRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDdkIsS0FBSyxNQUFNLEVBQUUsT0FBTyxTQUFTLENBQUM7b0JBQzlCLEtBQUssSUFBSSxFQUFFLE9BQU8sUUFBUSxDQUFDO29CQUMzQixLQUFLLEtBQUssRUFBRSxPQUFPLFFBQVEsQ0FBQztvQkFDNUIsS0FBSyxLQUFLLEVBQUUsT0FBTyxRQUFRLENBQUM7b0JBQzVCLEtBQUssS0FBSyxFQUFFLE9BQU8sUUFBUSxDQUFDO29CQUM1QixLQUFLLEtBQUssRUFBRSxPQUFPLFFBQVEsQ0FBQztvQkFDNUIsS0FBSyxRQUFRLEVBQUUsT0FBTyxRQUFRLENBQUM7b0JBQy9CLEtBQUssT0FBTyxFQUFFLE9BQU8sWUFBWSxDQUFDO29CQUNsQyxLQUFLLFFBQVEsRUFBRSxPQUFPLDBCQUEwQixDQUFDLENBQUUsd0JBQXdCO2dCQUM3RSxDQUFDO2dCQUNELE1BQU07WUFFUixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxHQUFHLElBQUksQ0FB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
@@ -1,9 +1,9 @@
1
1
  export { Crs, GrumpkinCrs } from './crs/index.js';
2
- export { type BackendOptions, BackendType, Barretenberg, BarretenbergSync, UltraHonkVerifierBackend, UltraHonkBackend, AztecClientBackend, } from './barretenberg/index.js';
2
+ export { type BackendOptions, BackendType, Barretenberg, BarretenbergSync, UltraHonkVerifierBackend, UltraHonkBackend, AztecClientBackend, fieldToString, fieldsToStrings, type UltraHonkBackendOptions, type VerifierTarget, } from './barretenberg/index.js';
3
3
  export { randomBytes } from './random/index.js';
4
4
  export { splitHonkProof, reconstructHonkProof, deflattenFields, type ProofData } from './proof/index.js';
5
5
  export { BBApiException } from './bbapi_exception.js';
6
6
  export type { Bn254G1Point, Bn254G2Point, GrumpkinPoint, Secp256k1Point, Secp256r1Point, Field2, } from './cbind/generated/api_types.js';
7
7
  export { BN254_FQ_MODULUS, BN254_FR_MODULUS, BN254_G1_GENERATOR, BN254_G2_GENERATOR, GRUMPKIN_FR_MODULUS, GRUMPKIN_FQ_MODULUS, GRUMPKIN_G1_GENERATOR, SECP256K1_FR_MODULUS, SECP256K1_FQ_MODULUS, SECP256K1_G1_GENERATOR, SECP256R1_FR_MODULUS, SECP256R1_FQ_MODULUS, SECP256R1_G1_GENERATOR, } from './cbind/generated/curve_constants.js';
8
8
  export { findNapiBinary } from './bb_backends/node/platform.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxLQUFLLGNBQWMsRUFDbkIsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsS0FBSyxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdEQsWUFBWSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLEVBQ2QsTUFBTSxHQUNQLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixHQUN2QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQyJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxLQUFLLGNBQWMsRUFDbkIsV0FBVyxFQUNYLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDZixLQUFLLHVCQUF1QixFQUM1QixLQUFLLGNBQWMsR0FDcEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsS0FBSyxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdEQsWUFBWSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLEVBQ2QsTUFBTSxHQUNQLE1BQU0sZ0NBQWdDLENBQUM7QUFHeEMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHNCQUFzQixHQUN2QixNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,KAAK,cAAc,EACnB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,MAAM,GACP,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,KAAK,cAAc,EACnB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,KAAK,uBAAuB,EAC5B,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,MAAM,GACP,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findNapiBinary = exports.SECP256R1_G1_GENERATOR = exports.SECP256R1_FQ_MODULUS = exports.SECP256R1_FR_MODULUS = exports.SECP256K1_G1_GENERATOR = exports.SECP256K1_FQ_MODULUS = exports.SECP256K1_FR_MODULUS = exports.GRUMPKIN_G1_GENERATOR = exports.GRUMPKIN_FQ_MODULUS = exports.GRUMPKIN_FR_MODULUS = exports.BN254_G2_GENERATOR = exports.BN254_G1_GENERATOR = exports.BN254_FR_MODULUS = exports.BN254_FQ_MODULUS = exports.BBApiException = exports.deflattenFields = exports.reconstructHonkProof = exports.splitHonkProof = exports.randomBytes = exports.AztecClientBackend = exports.UltraHonkBackend = exports.UltraHonkVerifierBackend = exports.BarretenbergSync = exports.Barretenberg = exports.BackendType = exports.GrumpkinCrs = exports.Crs = void 0;
3
+ exports.findNapiBinary = exports.SECP256R1_G1_GENERATOR = exports.SECP256R1_FQ_MODULUS = exports.SECP256R1_FR_MODULUS = exports.SECP256K1_G1_GENERATOR = exports.SECP256K1_FQ_MODULUS = exports.SECP256K1_FR_MODULUS = exports.GRUMPKIN_G1_GENERATOR = exports.GRUMPKIN_FQ_MODULUS = exports.GRUMPKIN_FR_MODULUS = exports.BN254_G2_GENERATOR = exports.BN254_G1_GENERATOR = exports.BN254_FR_MODULUS = exports.BN254_FQ_MODULUS = exports.BBApiException = exports.deflattenFields = exports.reconstructHonkProof = exports.splitHonkProof = exports.randomBytes = exports.fieldsToStrings = exports.fieldToString = exports.AztecClientBackend = exports.UltraHonkBackend = exports.UltraHonkVerifierBackend = exports.BarretenbergSync = exports.Barretenberg = exports.BackendType = exports.GrumpkinCrs = exports.Crs = void 0;
4
4
  const index_js_1 = require("./crs/index.js");
5
5
  Object.defineProperty(exports, "Crs", { enumerable: true, get: function () { return index_js_1.Crs; } });
6
6
  Object.defineProperty(exports, "GrumpkinCrs", { enumerable: true, get: function () { return index_js_1.GrumpkinCrs; } });
@@ -11,6 +11,8 @@ Object.defineProperty(exports, "BarretenbergSync", { enumerable: true, get: func
11
11
  Object.defineProperty(exports, "UltraHonkVerifierBackend", { enumerable: true, get: function () { return index_js_2.UltraHonkVerifierBackend; } });
12
12
  Object.defineProperty(exports, "UltraHonkBackend", { enumerable: true, get: function () { return index_js_2.UltraHonkBackend; } });
13
13
  Object.defineProperty(exports, "AztecClientBackend", { enumerable: true, get: function () { return index_js_2.AztecClientBackend; } });
14
+ Object.defineProperty(exports, "fieldToString", { enumerable: true, get: function () { return index_js_2.fieldToString; } });
15
+ Object.defineProperty(exports, "fieldsToStrings", { enumerable: true, get: function () { return index_js_2.fieldsToStrings; } });
14
16
  const index_js_3 = require("./random/index.js");
15
17
  Object.defineProperty(exports, "randomBytes", { enumerable: true, get: function () { return index_js_3.randomBytes; } });
16
18
  const index_js_4 = require("./proof/index.js");
@@ -36,4 +38,4 @@ Object.defineProperty(exports, "SECP256R1_FQ_MODULUS", { enumerable: true, get:
36
38
  Object.defineProperty(exports, "SECP256R1_G1_GENERATOR", { enumerable: true, get: function () { return curve_constants_js_1.SECP256R1_G1_GENERATOR; } });
37
39
  const platform_js_1 = require("./bb_backends/node/platform.js");
38
40
  Object.defineProperty(exports, "findNapiBinary", { enumerable: true, get: function () { return platform_js_1.findNapiBinary; } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWtEO0FBQXpDLCtGQUFBLEdBQUcsT0FBQTtBQUFFLHVHQUFBLFdBQVcsT0FBQTtBQUN6QixzREFRaUM7QUFOL0IsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsd0dBQUEsWUFBWSxPQUFBO0FBQ1osNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsb0hBQUEsd0JBQXdCLE9BQUE7QUFDeEIsNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsOEdBQUEsa0JBQWtCLE9BQUE7QUFHcEIsZ0RBQWdEO0FBQXZDLHVHQUFBLFdBQVcsT0FBQTtBQUNwQiwrQ0FBeUc7QUFBaEcsMEdBQUEsY0FBYyxPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUE7QUFBRSwyR0FBQSxlQUFlLE9BQUE7QUFDOUQsNkRBQXNEO0FBQTdDLG9IQUFBLGNBQWMsT0FBQTtBQVl2QiwrQ0FBK0M7QUFDL0MsNkVBYzhDO0FBYjVDLHNIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHNIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHdIQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHdIQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHlIQUFBLG1CQUFtQixPQUFBO0FBQ25CLHlIQUFBLG1CQUFtQixPQUFBO0FBQ25CLDJIQUFBLHFCQUFxQixPQUFBO0FBQ3JCLDBIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDBIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDRIQUFBLHNCQUFzQixPQUFBO0FBQ3RCLDBIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDBIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDRIQUFBLHNCQUFzQixPQUFBO0FBR3hCLGdFQUFnRTtBQUF2RCw2R0FBQSxjQUFjLE9BQUEifQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWtEO0FBQXpDLCtGQUFBLEdBQUcsT0FBQTtBQUFFLHVHQUFBLFdBQVcsT0FBQTtBQUN6QixzREFZaUM7QUFWL0IsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsd0dBQUEsWUFBWSxPQUFBO0FBQ1osNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsb0hBQUEsd0JBQXdCLE9BQUE7QUFDeEIsNEdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsOEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIseUdBQUEsYUFBYSxPQUFBO0FBQ2IsMkdBQUEsZUFBZSxPQUFBO0FBS2pCLGdEQUFnRDtBQUF2Qyx1R0FBQSxXQUFXLE9BQUE7QUFDcEIsK0NBQXlHO0FBQWhHLDBHQUFBLGNBQWMsT0FBQTtBQUFFLGdIQUFBLG9CQUFvQixPQUFBO0FBQUUsMkdBQUEsZUFBZSxPQUFBO0FBQzlELDZEQUFzRDtBQUE3QyxvSEFBQSxjQUFjLE9BQUE7QUFZdkIsK0NBQStDO0FBQy9DLDZFQWM4QztBQWI1QyxzSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQixzSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQix3SEFBQSxrQkFBa0IsT0FBQTtBQUNsQix3SEFBQSxrQkFBa0IsT0FBQTtBQUNsQix5SEFBQSxtQkFBbUIsT0FBQTtBQUNuQix5SEFBQSxtQkFBbUIsT0FBQTtBQUNuQiwySEFBQSxxQkFBcUIsT0FBQTtBQUNyQiwwSEFBQSxvQkFBb0IsT0FBQTtBQUNwQiwwSEFBQSxvQkFBb0IsT0FBQTtBQUNwQiw0SEFBQSxzQkFBc0IsT0FBQTtBQUN0QiwwSEFBQSxvQkFBb0IsT0FBQTtBQUNwQiwwSEFBQSxvQkFBb0IsT0FBQTtBQUNwQiw0SEFBQSxzQkFBc0IsT0FBQTtBQUd4QixnRUFBZ0U7QUFBdkQsNkdBQUEsY0FBYyxPQUFBIn0=