@aztec/bb.js 0.0.1-commit.fce3e4f → 0.0.1-commit.fffb133c

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 (183) 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/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 +111 -11
  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 +766 -1687
  79. package/dest/node/cbind/generated/api_types.d.ts.map +1 -1
  80. package/dest/node/cbind/generated/api_types.js +1465 -1555
  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 +113 -11
  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 +766 -1687
  134. package/dest/node-cjs/cbind/generated/api_types.d.ts.map +1 -1
  135. package/dest/node-cjs/cbind/generated/api_types.js +1671 -1771
  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 +151 -25
  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/schema_compiler.ts +0 -745
@@ -5,7 +5,11 @@ exports.SyncApi = void 0;
5
5
  const msgpackr_1 = require("msgpackr");
6
6
  const bbapi_exception_js_1 = require("../../bbapi_exception.js");
7
7
  const api_types_js_1 = require("./api_types.js");
8
- function msgpackCall(backend, input) { const inputBuffer = new msgpackr_1.Encoder({ useRecords: false }).pack(input); const encodedResult = backend.call(inputBuffer); return new msgpackr_1.Decoder({ useRecords: false }).unpack(encodedResult); }
8
+ function msgpackCall(backend, input) {
9
+ const inputBuffer = new msgpackr_1.Encoder({ useRecords: false }).pack(input);
10
+ const encodedResult = backend.call(inputBuffer);
11
+ return new msgpackr_1.Decoder({ useRecords: false }).unpack(encodedResult);
12
+ }
9
13
  class SyncApi {
10
14
  backend;
11
15
  constructor(backend) {
@@ -55,27 +59,16 @@ class SyncApi {
55
59
  }
56
60
  return (0, api_types_js_1.toCircuitVerifyResponse)(result);
57
61
  }
58
- chonkComputeStandaloneVk(command) {
59
- const msgpackCommand = (0, api_types_js_1.fromChonkComputeStandaloneVk)(command);
60
- const [variantName, result] = msgpackCall(this.backend, [["ChonkComputeStandaloneVk", msgpackCommand]]);
61
- if (variantName === 'ErrorResponse') {
62
- throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
63
- }
64
- if (variantName !== 'ChonkComputeStandaloneVkResponse') {
65
- throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkComputeStandaloneVkResponse' but got '${variantName}'`);
66
- }
67
- return (0, api_types_js_1.toChonkComputeStandaloneVkResponse)(result);
68
- }
69
- chonkComputeIvcVk(command) {
70
- const msgpackCommand = (0, api_types_js_1.fromChonkComputeIvcVk)(command);
71
- const [variantName, result] = msgpackCall(this.backend, [["ChonkComputeIvcVk", msgpackCommand]]);
62
+ chonkComputeVk(command) {
63
+ const msgpackCommand = (0, api_types_js_1.fromChonkComputeVk)(command);
64
+ const [variantName, result] = msgpackCall(this.backend, [["ChonkComputeVk", msgpackCommand]]);
72
65
  if (variantName === 'ErrorResponse') {
73
66
  throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
74
67
  }
75
- if (variantName !== 'ChonkComputeIvcVkResponse') {
76
- throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkComputeIvcVkResponse' but got '${variantName}'`);
68
+ if (variantName !== 'ChonkComputeVkResponse') {
69
+ throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'ChonkComputeVkResponse' but got '${variantName}'`);
77
70
  }
78
- return (0, api_types_js_1.toChonkComputeIvcVkResponse)(result);
71
+ return (0, api_types_js_1.toChonkComputeVkResponse)(result);
79
72
  }
80
73
  chonkStart(command) {
81
74
  const msgpackCommand = (0, api_types_js_1.fromChonkStart)(command);
@@ -209,17 +202,6 @@ class SyncApi {
209
202
  }
210
203
  return (0, api_types_js_1.toPoseidon2PermutationResponse)(result);
211
204
  }
212
- poseidon2HashAccumulate(command) {
213
- const msgpackCommand = (0, api_types_js_1.fromPoseidon2HashAccumulate)(command);
214
- const [variantName, result] = msgpackCall(this.backend, [["Poseidon2HashAccumulate", msgpackCommand]]);
215
- if (variantName === 'ErrorResponse') {
216
- throw new bbapi_exception_js_1.BBApiException(result.message || 'Unknown error from barretenberg');
217
- }
218
- if (variantName !== 'Poseidon2HashAccumulateResponse') {
219
- throw new bbapi_exception_js_1.BBApiException(`Expected variant name 'Poseidon2HashAccumulateResponse' but got '${variantName}'`);
220
- }
221
- return (0, api_types_js_1.toPoseidon2HashAccumulateResponse)(result);
222
- }
223
205
  pedersenCommit(command) {
224
206
  const msgpackCommand = (0, api_types_js_1.fromPedersenCommit)(command);
225
207
  const [variantName, result] = msgpackCall(this.backend, [["PedersenCommit", msgpackCommand]]);
@@ -611,4 +593,4 @@ class SyncApi {
611
593
  }
612
594
  }
613
595
  exports.SyncApi = SyncApi;
614
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYmluZC9nZW5lcmF0ZWQvc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsbUNBQW1DOzs7QUFHbkMsdUNBQTRDO0FBQzVDLGlFQUEwRDtBQUMxRCxpREFBdS9LO0FBRXYvSyxTQUFTLFdBQVcsQ0FBQyxPQUE0QixFQUFFLEtBQVksRUFBRSxFQUFHLE1BQU0sV0FBVyxHQUFHLElBQUksa0JBQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBRSxPQUFPLElBQUksa0JBQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBLENBQUM7QUFDNVA7SUFDd0IsT0FBTztJQUE3QixZQUFzQixPQUE0QixFQUFFO3VCQUE5QixPQUFPO0lBQXdCLENBQUM7SUFFdEQsWUFBWSxDQUFDLE9BQXFCLEVBQXdCO1FBQ3hELE1BQU0sY0FBYyxHQUFHLElBQUEsK0JBQWdCLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RixJQUFJLFdBQVcsS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksbUNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLGlDQUFpQyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNELElBQUksV0FBVyxLQUFLLHNCQUFzQixFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLG1DQUFjLENB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
596
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYmluZC9nZW5lcmF0ZWQvc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsbUNBQW1DOzs7QUFHbkMsdUNBQTRDO0FBQzVDLGlFQUEwRDtBQUMxRCxpREFBaS9KO0FBRWovSixTQUFTLFdBQVcsQ0FBQyxPQUE0QixFQUFFLEtBQVksRUFBRTtJQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGtCQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxPQUFPLElBQUksa0JBQU8sQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUFBLENBQ2pFO0FBRUQ7SUFDd0IsT0FBTztJQUE3QixZQUFzQixPQUE0QixFQUFFO3VCQUE5QixPQUFPO0lBQXdCLENBQUM7SUFFdEQsWUFBWSxDQUFDLE9BQXFCLEVBQXdCO1FBQ3hELE1BQU0sY0FBYyxHQUFHLElBQUEsK0JBQWdCLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RixJQUFJLFdBQVcsS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksbUNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLGlDQUFpQyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNELElBQUksV0FBVyxLQUFLLHNCQUFzQixFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLG1DQUFj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
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared naming utilities for code generators
3
+ */
4
+ /**
5
+ * Convert camelCase or PascalCase to snake_case
6
+ * @example toSnakeCase("Blake2s") -> "blake2s"
7
+ * @example toSnakeCase("poseidonHash") -> "poseidon_hash"
8
+ */
9
+ export declare function toSnakeCase(name: string): string;
10
+ /**
11
+ * Convert snake_case to PascalCase
12
+ * @example toPascalCase("blake2s") -> "Blake2s"
13
+ * @example toPascalCase("poseidon_hash") -> "PoseidonHash"
14
+ */
15
+ export declare function toPascalCase(name: string): string;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2JpbmQvbmFtaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUg7Ozs7R0FJRztBQUNILHdCQUFnQixXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBRWhEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBUWpEIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../../src/cbind/naming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQjD"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * Shared naming utilities for code generators
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.toSnakeCase = toSnakeCase;
7
+ exports.toPascalCase = toPascalCase;
8
+ /**
9
+ * Convert camelCase or PascalCase to snake_case
10
+ * @example toSnakeCase("Blake2s") -> "blake2s"
11
+ * @example toSnakeCase("poseidonHash") -> "poseidon_hash"
12
+ */
13
+ function toSnakeCase(name) {
14
+ return name.replace(/([A-Z])/g, '_$1').toLowerCase().replace(/^_/, '');
15
+ }
16
+ /**
17
+ * Convert snake_case to PascalCase
18
+ * @example toPascalCase("blake2s") -> "Blake2s"
19
+ * @example toPascalCase("poseidon_hash") -> "PoseidonHash"
20
+ */
21
+ function toPascalCase(name) {
22
+ // Already PascalCase (no underscores and starts with uppercase)
23
+ if (!name.includes('_') && name[0] === name[0].toUpperCase()) {
24
+ return name;
25
+ }
26
+ return name.split('_').map(part => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join('');
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NiaW5kL25hbWluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7QUFFSDs7OztHQUlHO0FBQ0gscUJBQTRCLElBQVksRUFBVTtJQUNoRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFBQSxDQUN4RTtBQUVEOzs7O0dBSUc7QUFDSCxzQkFBNkIsSUFBWSxFQUFVO0lBQ2pELGdFQUFnRTtJQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQzNELENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQUEsQ0FDWiJ9
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Rust Code Generator - String template based
3
+ *
4
+ * Philosophy:
5
+ * - String templates for file structure
6
+ * - Simple type mapping
7
+ * - Idiomatic Rust conventions
8
+ * - No complex abstraction
9
+ */
10
+ import type { CompiledSchema } from './schema_visitor.js';
11
+ export declare class RustCodegen {
12
+ private mapType;
13
+ private needsSerdeBytes;
14
+ private needsSerdeVecBytes;
15
+ private needsSerdeArray4Bytes;
16
+ private generateField;
17
+ private generateStruct;
18
+ private generateConstructor;
19
+ private generateCommandEnum;
20
+ private generateResponseEnum;
21
+ private generateSerdeHelpers;
22
+ generateTypes(schema: CompiledSchema): string;
23
+ private generateApiMethod;
24
+ generateApi(schema: CompiledSchema): string;
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVzdF9jb2RlZ2VuLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2JpbmQvcnVzdF9jb2RlZ2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUF1QixNQUFNLHFCQUFxQixDQUFDO0FBRy9FLHFCQUFhLFdBQVc7SUFFdEIsT0FBTyxDQUFDLE9BQU87SUFvQ2YsT0FBTyxDQUFDLGVBQWU7SUFLdkIsT0FBTyxDQUFDLGtCQUFrQjtJQUsxQixPQUFPLENBQUMscUJBQXFCO0lBSzdCLE9BQU8sQ0FBQyxhQUFhO0lBdUJyQixPQUFPLENBQUMsY0FBYztJQXlCdEIsT0FBTyxDQUFDLG1CQUFtQjtJQXNCM0IsT0FBTyxDQUFDLG1CQUFtQjtJQStFM0IsT0FBTyxDQUFDLG9CQUFvQjtJQWlGNUIsT0FBTyxDQUFDLG9CQUFvQjtJQXNGNUIsYUFBYSxDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsTUFBTSxDQTRCNUM7SUFHRCxPQUFPLENBQUMsaUJBQWlCO0lBc0N6QixXQUFXLENBQUMsTUFBTSxFQUFFLGNBQWMsR0FBRyxNQUFNLENBbUQxQztDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust_codegen.d.ts","sourceRoot":"","sources":["../../../src/cbind/rust_codegen.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,qBAAqB,CAAC;AAG/E,qBAAa,WAAW;IAEtB,OAAO,CAAC,OAAO;IAoCf,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,mBAAmB;IA+E3B,OAAO,CAAC,oBAAoB;IAiF5B,OAAO,CAAC,oBAAoB;IAsF5B,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA4B5C;IAGD,OAAO,CAAC,iBAAiB;IAsCzB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAmD1C;CACF"}