@aztec/bb.js 0.0.1-commit.5daedc8 → 0.0.1-commit.6230a0c

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 (204) 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 +111 -11
  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 +766 -1687
  24. package/dest/browser/cbind/generated/api_types.d.ts.map +1 -1
  25. package/dest/browser/cbind/generated/api_types.js +1465 -1555
  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/crs/net_crs.d.ts +6 -1
  45. package/dest/browser/crs/net_crs.d.ts.map +1 -1
  46. package/dest/browser/crs/net_crs.js +30 -7
  47. package/dest/browser/index.d.ts +2 -2
  48. package/dest/browser/index.d.ts.map +1 -1
  49. package/dest/browser/index.js +2 -2
  50. package/dest/node/barretenberg/backend.d.ts +49 -17
  51. package/dest/node/barretenberg/backend.d.ts.map +1 -1
  52. package/dest/node/barretenberg/backend.js +111 -11
  53. package/dest/node/barretenberg/backend.test.d.ts +2 -0
  54. package/dest/node/barretenberg/backend.test.d.ts.map +1 -0
  55. package/dest/node/barretenberg/backend.test.js +103 -0
  56. package/dest/node/barretenberg/index.d.ts +2 -2
  57. package/dest/node/barretenberg/index.d.ts.map +1 -1
  58. package/dest/node/barretenberg/index.js +2 -2
  59. package/dest/node/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  60. package/dest/node/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  61. package/dest/node/bb_backends/index.d.ts +3 -1
  62. package/dest/node/bb_backends/index.d.ts.map +1 -1
  63. package/dest/node/bb_backends/node/index.d.ts +1 -1
  64. package/dest/node/bb_backends/node/index.d.ts.map +1 -1
  65. package/dest/node/bb_backends/node/index.js +5 -5
  66. package/dest/node/bb_backends/node/native_shm.d.ts +3 -2
  67. package/dest/node/bb_backends/node/native_shm.d.ts.map +1 -1
  68. package/dest/node/bb_backends/node/native_shm.js +40 -21
  69. package/dest/node/bb_backends/node/native_shm_async.d.ts +2 -2
  70. package/dest/node/bb_backends/node/native_shm_async.d.ts.map +1 -1
  71. package/dest/node/bb_backends/node/native_shm_async.js +17 -21
  72. package/dest/node/bb_backends/node/native_socket.d.ts +1 -1
  73. package/dest/node/bb_backends/node/native_socket.d.ts.map +1 -1
  74. package/dest/node/bb_backends/node/native_socket.js +7 -5
  75. package/dest/node/bb_backends/node/platform.d.ts +1 -1
  76. package/dest/node/bb_backends/node/platform.d.ts.map +1 -1
  77. package/dest/node/bb_backends/node/platform.js +7 -2
  78. package/dest/node/cbind/generate.d.ts +5 -2
  79. package/dest/node/cbind/generate.d.ts.map +1 -1
  80. package/dest/node/cbind/generate.js +47 -25
  81. package/dest/node/cbind/generated/api_types.d.ts +766 -1687
  82. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  83. package/dest/node/cbind/generated/api_types.js +1465 -1555
  84. package/dest/node/cbind/generated/async.d.ts +3 -5
  85. package/dest/node/cbind/generated/async.d.ts.map +1 -1
  86. package/dest/node/cbind/generated/async.js +13 -33
  87. package/dest/node/cbind/generated/sync.d.ts +3 -5
  88. package/dest/node/cbind/generated/sync.d.ts.map +1 -1
  89. package/dest/node/cbind/generated/sync.js +13 -31
  90. package/dest/node/cbind/naming.d.ts +16 -0
  91. package/dest/node/cbind/naming.d.ts.map +1 -0
  92. package/dest/node/cbind/naming.js +24 -0
  93. package/dest/node/cbind/rust_codegen.d.ts +26 -0
  94. package/dest/node/cbind/rust_codegen.d.ts.map +1 -0
  95. package/dest/node/cbind/rust_codegen.js +461 -0
  96. package/dest/node/cbind/schema_visitor.d.ts +47 -0
  97. package/dest/node/cbind/schema_visitor.d.ts.map +1 -0
  98. package/dest/node/cbind/schema_visitor.js +158 -0
  99. package/dest/node/cbind/typescript_codegen.d.ts +30 -0
  100. package/dest/node/cbind/typescript_codegen.d.ts.map +1 -0
  101. package/dest/node/cbind/typescript_codegen.js +365 -0
  102. package/dest/node/crs/net_crs.d.ts +6 -1
  103. package/dest/node/crs/net_crs.d.ts.map +1 -1
  104. package/dest/node/crs/net_crs.js +30 -7
  105. package/dest/node/crs/net_crs.test.d.ts +2 -0
  106. package/dest/node/crs/net_crs.test.d.ts.map +1 -0
  107. package/dest/node/crs/net_crs.test.js +39 -0
  108. package/dest/node/index.d.ts +2 -2
  109. package/dest/node/index.d.ts.map +1 -1
  110. package/dest/node/index.js +2 -2
  111. package/dest/node-cjs/barretenberg/backend.d.ts +49 -17
  112. package/dest/node-cjs/barretenberg/backend.d.ts.map +1 -1
  113. package/dest/node-cjs/barretenberg/backend.js +113 -11
  114. package/dest/node-cjs/barretenberg/backend.test.d.ts +2 -0
  115. package/dest/node-cjs/barretenberg/backend.test.d.ts.map +1 -0
  116. package/dest/node-cjs/barretenberg/backend.test.js +105 -0
  117. package/dest/node-cjs/barretenberg/index.d.ts +2 -2
  118. package/dest/node-cjs/barretenberg/index.d.ts.map +1 -1
  119. package/dest/node-cjs/barretenberg/index.js +4 -2
  120. package/dest/node-cjs/barretenberg_wasm/barretenberg-threads.wasm.gz +0 -0
  121. package/dest/node-cjs/barretenberg_wasm/barretenberg_wasm_main/index.js +1 -1
  122. package/dest/node-cjs/bb_backends/index.d.ts +3 -1
  123. package/dest/node-cjs/bb_backends/index.d.ts.map +1 -1
  124. package/dest/node-cjs/bb_backends/node/index.d.ts +1 -1
  125. package/dest/node-cjs/bb_backends/node/index.d.ts.map +1 -1
  126. package/dest/node-cjs/bb_backends/node/index.js +5 -5
  127. package/dest/node-cjs/bb_backends/node/native_shm.d.ts +3 -2
  128. package/dest/node-cjs/bb_backends/node/native_shm.d.ts.map +1 -1
  129. package/dest/node-cjs/bb_backends/node/native_shm.js +39 -20
  130. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts +2 -2
  131. package/dest/node-cjs/bb_backends/node/native_shm_async.d.ts.map +1 -1
  132. package/dest/node-cjs/bb_backends/node/native_shm_async.js +17 -21
  133. package/dest/node-cjs/bb_backends/node/native_socket.d.ts +1 -1
  134. package/dest/node-cjs/bb_backends/node/native_socket.d.ts.map +1 -1
  135. package/dest/node-cjs/bb_backends/node/native_socket.js +7 -5
  136. package/dest/node-cjs/bb_backends/node/platform.d.ts +1 -1
  137. package/dest/node-cjs/bb_backends/node/platform.d.ts.map +1 -1
  138. package/dest/node-cjs/bb_backends/node/platform.js +7 -2
  139. package/dest/node-cjs/cbind/generate.d.ts +5 -2
  140. package/dest/node-cjs/cbind/generate.d.ts.map +1 -1
  141. package/dest/node-cjs/cbind/generate.js +47 -25
  142. package/dest/node-cjs/cbind/generated/api_types.d.ts +766 -1687
  143. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  144. package/dest/node-cjs/cbind/generated/api_types.js +1671 -1771
  145. package/dest/node-cjs/cbind/generated/async.d.ts +3 -5
  146. package/dest/node-cjs/cbind/generated/async.d.ts.map +1 -1
  147. package/dest/node-cjs/cbind/generated/async.js +12 -32
  148. package/dest/node-cjs/cbind/generated/sync.d.ts +3 -5
  149. package/dest/node-cjs/cbind/generated/sync.d.ts.map +1 -1
  150. package/dest/node-cjs/cbind/generated/sync.js +12 -30
  151. package/dest/node-cjs/cbind/naming.d.ts +16 -0
  152. package/dest/node-cjs/cbind/naming.d.ts.map +1 -0
  153. package/dest/node-cjs/cbind/naming.js +28 -0
  154. package/dest/node-cjs/cbind/rust_codegen.d.ts +26 -0
  155. package/dest/node-cjs/cbind/rust_codegen.d.ts.map +1 -0
  156. package/dest/node-cjs/cbind/rust_codegen.js +465 -0
  157. package/dest/node-cjs/cbind/schema_visitor.d.ts +47 -0
  158. package/dest/node-cjs/cbind/schema_visitor.d.ts.map +1 -0
  159. package/dest/node-cjs/cbind/schema_visitor.js +162 -0
  160. package/dest/node-cjs/cbind/typescript_codegen.d.ts +30 -0
  161. package/dest/node-cjs/cbind/typescript_codegen.d.ts.map +1 -0
  162. package/dest/node-cjs/cbind/typescript_codegen.js +369 -0
  163. package/dest/node-cjs/crs/net_crs.d.ts +6 -1
  164. package/dest/node-cjs/crs/net_crs.d.ts.map +1 -1
  165. package/dest/node-cjs/crs/net_crs.js +31 -7
  166. package/dest/node-cjs/crs/net_crs.test.d.ts +2 -0
  167. package/dest/node-cjs/crs/net_crs.test.d.ts.map +1 -0
  168. package/dest/node-cjs/crs/net_crs.test.js +41 -0
  169. package/dest/node-cjs/index.d.ts +2 -2
  170. package/dest/node-cjs/index.d.ts.map +1 -1
  171. package/dest/node-cjs/index.js +4 -2
  172. package/package.json +1 -1
  173. package/src/barretenberg/backend.test.ts +122 -0
  174. package/src/barretenberg/backend.ts +151 -25
  175. package/src/barretenberg/index.ts +9 -1
  176. package/src/barretenberg_wasm/barretenberg_wasm_main/index.ts +1 -1
  177. package/src/bb_backends/index.ts +3 -0
  178. package/src/bb_backends/node/index.ts +9 -4
  179. package/src/bb_backends/node/native_shm.ts +38 -19
  180. package/src/bb_backends/node/native_shm_async.ts +15 -19
  181. package/src/bb_backends/node/native_socket.ts +7 -5
  182. package/src/bb_backends/node/platform.ts +6 -1
  183. package/src/cbind/generate.ts +51 -32
  184. package/src/cbind/generated/api_types.ts +3050 -0
  185. package/src/cbind/generated/async.ts +696 -0
  186. package/src/cbind/generated/curve_constants.ts +53 -0
  187. package/src/cbind/generated/sync.ts +644 -0
  188. package/src/cbind/naming.ts +27 -0
  189. package/src/cbind/rust_codegen.ts +504 -0
  190. package/src/cbind/schema_visitor.ts +219 -0
  191. package/src/cbind/typescript_codegen.ts +419 -0
  192. package/src/crs/net_crs.test.ts +47 -0
  193. package/src/crs/net_crs.ts +45 -14
  194. package/src/index.ts +4 -0
  195. package/dest/browser/cbind/schema_compiler.d.ts +0 -68
  196. package/dest/browser/cbind/schema_compiler.d.ts.map +0 -1
  197. package/dest/browser/cbind/schema_compiler.js +0 -600
  198. package/dest/node/cbind/schema_compiler.d.ts +0 -68
  199. package/dest/node/cbind/schema_compiler.d.ts.map +0 -1
  200. package/dest/node/cbind/schema_compiler.js +0 -600
  201. package/dest/node-cjs/cbind/schema_compiler.d.ts +0 -68
  202. package/dest/node-cjs/cbind/schema_compiler.d.ts.map +0 -1
  203. package/dest/node-cjs/cbind/schema_compiler.js +0 -607
  204. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hX3Zpc2l0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2JpbmQvc2NoZW1hX3Zpc2l0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUF1Q0g7O0dBRUc7QUFDSDtJQUNVLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUNwQyxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFOUMsS0FBSyxDQUFDLGNBQW1CLEVBQUUsZUFBb0IsRUFBa0I7UUFDL0QsY0FBYztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV2QixNQUFNLFFBQVEsR0FBYyxFQUFFLENBQUM7UUFFL0Isd0RBQXdEO1FBQ3hELE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQXlCLENBQUM7UUFDL0QsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBeUIsQ0FBQztRQUVqRSw0REFBNEQ7UUFDNUQsS0FBSyxNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ25ELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsT0FBTyxFQUFFLFNB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
@@ -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,3 +1,8 @@
1
+ /**
2
+ * Fetches data from primary URL, falling back to secondary on failure
3
+ * @internal Exported for testing
4
+ */
5
+ export declare function fetchWithFallback(primaryUrl: string, fallbackUrl: string, options: RequestInit): Promise<Response>;
1
6
  /**
2
7
  * Downloader for CRS from the web or local.
3
8
  */
@@ -67,4 +72,4 @@ export declare class NetGrumpkinCrs {
67
72
  getG1Data(): Uint8Array;
68
73
  private fetchG1Data;
69
74
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOztHQUVHO0FBQ0gscUJBQWEsTUFBTTthQVFDLFNBQVMsRUFBRSxNQUFNO0lBUG5DLE9BQU8sQ0FBQyxJQUFJLENBQWM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBUyxFQUFFLE1BQU0sRUFDL0I7SUFFSjs7T0FFRztJQUNHLElBQUksa0JBR1Q7SUFFRDs7T0FFRztJQUNHLFlBQVksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBR3hEO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxjQUFjLHFDQUduQjtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsQ0FFdEI7WUFLYSxXQUFXO1lBc0JYLFdBQVc7Q0FTMUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGNBQWM7YUFPUCxTQUFTLEVBQUUsTUFBTTtJQU5uQyxPQUFPLENBQUMsSUFBSSxDQUFjO0lBRTFCO0lBQ0U7O09BRUc7SUFDYSxTQUFTLEVBQUUsTUFBTSxFQUMvQjtJQUVKOztPQUVHO0lBQ0csSUFBSSxrQkFFVDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO1lBS2EsV0FBVztDQWUxQiJ9
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0X2Nycy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nycy9uZXRfY3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOzs7R0FHRztBQUNILHdCQUFzQixpQkFBaUIsQ0FDckMsVUFBVSxFQUFFLE1BQU0sRUFDbEIsV0FBVyxFQUFFLE1BQU0sRUFDbkIsT0FBTyxFQUFFLFdBQVcsR0FDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQVVuQjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsTUFBTTthQVFDLFNBQVMsRUFBRSxNQUFNO0lBUG5DLE9BQU8sQ0FBQyxJQUFJLENBQWM7SUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBYztJQUU1QjtJQUNFOztPQUVHO0lBQ2EsU0FBUyxFQUFFLE1BQU0sRUFDL0I7SUFFSjs7T0FFRztJQUNHLElBQUksa0JBR1Q7SUFFRDs7T0FFRztJQUNHLFlBQVksSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBR3hEO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxjQUFjLHFDQUduQjtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLFVBQVUsQ0FFdEI7WUFLYSxXQUFXO1lBc0JYLFdBQVc7Q0FTMUI7QUFFRDs7R0FFRztBQUNILHFCQUFhLGNBQWM7YUFPUCxTQUFTLEVBQUUsTUFBTTtJQU5uQyxPQUFPLENBQUMsSUFBSSxDQUFjO0lBRTFCO0lBQ0U7O09BRUc7SUFDYSxTQUFTLEVBQUUsTUFBTSxFQUMvQjtJQUVKOztPQUVHO0lBQ0csSUFBSSxrQkFFVDtJQUVLLGNBQWMscUNBR25CO0lBRUQ7O09BRUc7SUFDRyxZQUFZLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUd4RDtJQUVEOzs7T0FHRztJQUNILFNBQVMsSUFBSSxVQUFVLENBRXRCO1lBS2EsV0FBVztDQW9CMUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,MAAM;aAQC,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;IAE5B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAGT;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,cAAc,qCAGnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;YAsBX,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;aAOP,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;IAE1B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAET;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;CAe1B"}
1
+ {"version":3,"file":"net_crs.d.ts","sourceRoot":"","sources":["../../../src/crs/net_crs.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;GAEG;AACH,qBAAa,MAAM;aAQC,SAAS,EAAE,MAAM;IAPnC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAc;IAE5B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAGT;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,cAAc,qCAGnB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;YAsBX,WAAW;CAS1B;AAED;;GAEG;AACH,qBAAa,cAAc;aAOP,SAAS,EAAE,MAAM;IANnC,OAAO,CAAC,IAAI,CAAc;IAE1B;IACE;;OAEG;IACa,SAAS,EAAE,MAAM,EAC/B;IAEJ;;OAEG;IACG,IAAI,kBAET;IAEK,cAAc,qCAGnB;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAGxD;IAED;;;OAGG;IACH,SAAS,IAAI,UAAU,CAEtB;YAKa,WAAW;CAoB1B"}