@kontor/kontor-sdk 1.0.0-alpha.13 → 1.0.0-alpha.15

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 (288) hide show
  1. package/dist/cjs/sdk/actions/kontor/public/{build-compose-call.js → build-compose-query.js} +8 -9
  2. package/dist/cjs/sdk/actions/kontor/public/build-compose-query.js.map +1 -0
  3. package/dist/cjs/sdk/actions/kontor/public/{build-instruction.js → build-instruction-query.js} +11 -16
  4. package/dist/cjs/sdk/actions/kontor/public/build-instruction-query.js.map +1 -0
  5. package/dist/cjs/sdk/actions/kontor/public/{call-proc.js → call-compose.js} +7 -9
  6. package/dist/cjs/sdk/actions/kontor/public/call-compose.js.map +1 -0
  7. package/dist/cjs/sdk/actions/kontor/public/proc-contract.js +8 -5
  8. package/dist/cjs/sdk/actions/kontor/public/proc-contract.js.map +1 -1
  9. package/dist/cjs/sdk/actions/kontor/wallet/sign-reveal.js +1 -1
  10. package/dist/cjs/sdk/actions/kontor/wallet/sign-reveal.js.map +1 -1
  11. package/dist/cjs/sdk/clients/decorators/kontor/public.js +6 -6
  12. package/dist/cjs/sdk/clients/decorators/kontor/public.js.map +1 -1
  13. package/dist/cjs/sdk/contracts/wits.js.map +1 -1
  14. package/dist/cjs/sdk/types/kontor.js +28 -0
  15. package/dist/cjs/sdk/types/kontor.js.map +1 -1
  16. package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
  17. package/dist/{src/sdk/actions/kontor/public/build-compose-call.js → esm/sdk/actions/kontor/public/build-compose-query.js} +2 -2
  18. package/dist/esm/sdk/actions/kontor/public/build-compose-query.js.map +1 -0
  19. package/dist/{src/sdk/actions/kontor/public/build-instruction.js → esm/sdk/actions/kontor/public/build-instruction-query.js} +1 -2
  20. package/dist/esm/sdk/actions/kontor/public/build-instruction-query.js.map +1 -0
  21. package/dist/esm/sdk/actions/kontor/public/{call-proc.js → call-compose.js} +7 -8
  22. package/dist/esm/sdk/actions/kontor/public/call-compose.js.map +1 -0
  23. package/dist/esm/sdk/actions/kontor/public/proc-contract.js +8 -5
  24. package/dist/esm/sdk/actions/kontor/public/proc-contract.js.map +1 -1
  25. package/dist/esm/sdk/actions/kontor/wallet/sign-reveal.js +4 -6
  26. package/dist/esm/sdk/actions/kontor/wallet/sign-reveal.js.map +1 -1
  27. package/dist/esm/sdk/clients/decorators/kontor/public.js +6 -6
  28. package/dist/esm/sdk/clients/decorators/kontor/public.js.map +1 -1
  29. package/dist/esm/sdk/contracts/wits.js.map +1 -1
  30. package/dist/esm/sdk/types/kontor.js +27 -1
  31. package/dist/esm/sdk/types/kontor.js.map +1 -1
  32. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  33. package/dist/src/exports/index.test.js +10 -0
  34. package/dist/src/exports/index.test.js.map +1 -0
  35. package/dist/src/sdk/accounts/hd-key-to-account.js +20 -0
  36. package/dist/src/sdk/accounts/hd-key-to-account.js.map +1 -0
  37. package/dist/src/sdk/accounts/mnemonic-to-account.js +16 -0
  38. package/dist/src/sdk/accounts/mnemonic-to-account.js.map +1 -0
  39. package/dist/src/sdk/accounts/mnemonic-to-account.test.js +96 -0
  40. package/dist/src/sdk/accounts/mnemonic-to-account.test.js.map +1 -0
  41. package/dist/src/sdk/accounts/to-local-account.js +28 -0
  42. package/dist/src/sdk/accounts/to-local-account.js.map +1 -0
  43. package/dist/src/sdk/accounts/types.js +2 -0
  44. package/dist/src/sdk/accounts/types.js.map +1 -0
  45. package/dist/src/sdk/accounts/utils/parse-account.js +10 -0
  46. package/dist/src/sdk/accounts/utils/parse-account.js.map +1 -0
  47. package/dist/src/sdk/accounts/utils/public-key-to-p2tr-payment.js +14 -0
  48. package/dist/src/sdk/accounts/utils/public-key-to-p2tr-payment.js.map +1 -0
  49. package/dist/src/sdk/accounts/utils/sign-psbt.js +17 -0
  50. package/dist/src/sdk/accounts/utils/sign-psbt.js.map +1 -0
  51. package/dist/src/sdk/actions/kontor/wallet/sign-commit.js +34 -0
  52. package/dist/src/sdk/actions/kontor/wallet/sign-commit.js.map +1 -0
  53. package/dist/src/sdk/actions/public/send-raw-transaction.js +7 -0
  54. package/dist/src/sdk/actions/public/send-raw-transaction.js.map +1 -0
  55. package/dist/src/sdk/actions/public/test-mempool-accept.js +20 -0
  56. package/dist/src/sdk/actions/public/test-mempool-accept.js.map +1 -0
  57. package/dist/src/sdk/chains/definitions/index.js +2 -0
  58. package/dist/src/sdk/chains/definitions/index.js.map +1 -0
  59. package/dist/src/sdk/chains/definitions/signet.js +36 -0
  60. package/dist/src/sdk/chains/definitions/signet.js.map +1 -0
  61. package/dist/src/sdk/clients/base/create-rpc-client.test.js +145 -0
  62. package/dist/src/sdk/clients/base/create-rpc-client.test.js.map +1 -0
  63. package/dist/src/sdk/clients/create-public-client.test.js +113 -0
  64. package/dist/src/sdk/clients/create-public-client.test.js.map +1 -0
  65. package/dist/src/sdk/clients/decorators/kontor/wallet.js +13 -0
  66. package/dist/src/sdk/clients/decorators/kontor/wallet.js.map +1 -0
  67. package/dist/src/sdk/clients/decorators/public.js +9 -0
  68. package/dist/src/sdk/clients/decorators/public.js.map +1 -0
  69. package/dist/src/sdk/clients/decorators/wallet.js +9 -0
  70. package/dist/src/sdk/clients/decorators/wallet.js.map +1 -0
  71. package/dist/src/sdk/clients/kontor/create-public-client.test.js +44 -0
  72. package/dist/src/sdk/clients/kontor/create-public-client.test.js.map +1 -0
  73. package/dist/src/sdk/clients/kontor/create-wallet-client.js +14 -0
  74. package/dist/src/sdk/clients/kontor/create-wallet-client.js.map +1 -0
  75. package/dist/src/sdk/clients/transports/create-http-transport.js +25 -0
  76. package/dist/src/sdk/clients/transports/create-http-transport.js.map +1 -0
  77. package/dist/src/sdk/clients/transports/create-rpc-transport.test.js +58 -0
  78. package/dist/src/sdk/clients/transports/create-rpc-transport.test.js.map +1 -0
  79. package/dist/src/sdk/clients/transports/custom.js +14 -0
  80. package/dist/src/sdk/clients/transports/custom.js.map +1 -0
  81. package/dist/src/sdk/clients/transports/http-rpc.js +84 -0
  82. package/dist/src/sdk/clients/transports/http-rpc.js.map +1 -0
  83. package/dist/src/sdk/clients/transports/http-rpc.test.js +147 -0
  84. package/dist/src/sdk/clients/transports/http-rpc.test.js.map +1 -0
  85. package/dist/src/sdk/clients/transports/http.js +45 -0
  86. package/dist/src/sdk/clients/transports/http.js.map +1 -0
  87. package/dist/src/sdk/errors/address.js +13 -0
  88. package/dist/src/sdk/errors/address.js.map +1 -0
  89. package/dist/src/sdk/errors/base.js +92 -0
  90. package/dist/src/sdk/errors/base.js.map +1 -0
  91. package/dist/src/sdk/errors/request.js +100 -0
  92. package/dist/src/sdk/errors/request.js.map +1 -0
  93. package/dist/src/sdk/errors/rpc.js +30 -0
  94. package/dist/src/sdk/errors/rpc.js.map +1 -0
  95. package/dist/src/sdk/errors/transport.js +10 -0
  96. package/dist/src/sdk/errors/transport.js.map +1 -0
  97. package/dist/src/sdk/errors/utils.js +2 -0
  98. package/dist/src/sdk/errors/utils.js.map +1 -0
  99. package/dist/src/sdk/errors/version.js +2 -0
  100. package/dist/src/sdk/errors/version.js.map +1 -0
  101. package/dist/src/sdk/errors/wit.js +19 -0
  102. package/dist/src/sdk/errors/wit.js.map +1 -0
  103. package/dist/src/sdk/types/account.js +2 -0
  104. package/dist/src/sdk/types/account.js.map +1 -0
  105. package/dist/src/sdk/types/btc-rpc.js +2 -0
  106. package/dist/src/sdk/types/btc-rpc.js.map +1 -0
  107. package/dist/src/sdk/types/contract.test-d.js +35 -0
  108. package/dist/src/sdk/types/contract.test-d.js.map +1 -0
  109. package/dist/src/sdk/types/http-schema.test-d.js +133 -0
  110. package/dist/src/sdk/types/http-schema.test-d.js.map +1 -0
  111. package/dist/src/sdk/types/misc.js +2 -0
  112. package/dist/src/sdk/types/misc.js.map +1 -0
  113. package/dist/src/sdk/types/rpc.js +19 -0
  114. package/dist/src/sdk/types/rpc.js.map +1 -0
  115. package/dist/src/sdk/types/utils.js +2 -0
  116. package/dist/src/sdk/types/utils.js.map +1 -0
  117. package/dist/src/sdk/types/wbip001.js +3 -0
  118. package/dist/src/sdk/types/wbip001.js.map +1 -0
  119. package/dist/src/sdk/utils/build-http-request.js +55 -0
  120. package/dist/src/sdk/utils/build-http-request.js.map +1 -0
  121. package/dist/src/sdk/utils/build-request.js +35 -0
  122. package/dist/src/sdk/utils/build-request.js.map +1 -0
  123. package/dist/src/sdk/utils/build-rpc-request.js +84 -0
  124. package/dist/src/sdk/utils/build-rpc-request.js.map +1 -0
  125. package/dist/src/sdk/utils/encoding/to-hex.js +23 -0
  126. package/dist/src/sdk/utils/encoding/to-hex.js.map +1 -0
  127. package/dist/src/sdk/utils/get-action.js +27 -0
  128. package/dist/src/sdk/utils/get-action.js.map +1 -0
  129. package/dist/src/sdk/utils/http.js +137 -0
  130. package/dist/src/sdk/utils/http.js.map +1 -0
  131. package/dist/src/sdk/utils/lru.js +35 -0
  132. package/dist/src/sdk/utils/lru.js.map +1 -0
  133. package/dist/src/sdk/utils/promise/create-batch-scheduler.js +49 -0
  134. package/dist/src/sdk/utils/promise/create-batch-scheduler.js.map +1 -0
  135. package/dist/src/sdk/utils/promise/with-dedupe.js +14 -0
  136. package/dist/src/sdk/utils/promise/with-dedupe.js.map +1 -0
  137. package/dist/src/sdk/utils/promise/with-resolvers.js +10 -0
  138. package/dist/src/sdk/utils/promise/with-resolvers.js.map +1 -0
  139. package/dist/src/sdk/utils/promise/with-retry.js +25 -0
  140. package/dist/src/sdk/utils/promise/with-retry.js.map +1 -0
  141. package/dist/src/sdk/utils/promise/with-timeout.js +30 -0
  142. package/dist/src/sdk/utils/promise/with-timeout.js.map +1 -0
  143. package/dist/src/sdk/utils/rpc/http.js +86 -0
  144. package/dist/src/sdk/utils/rpc/http.js.map +1 -0
  145. package/dist/src/sdk/utils/rpc/id.js +13 -0
  146. package/dist/src/sdk/utils/rpc/id.js.map +1 -0
  147. package/dist/src/sdk/utils/stringify.js +5 -0
  148. package/dist/src/sdk/utils/stringify.js.map +1 -0
  149. package/dist/src/sdk/utils/uid.js +14 -0
  150. package/dist/src/sdk/utils/uid.js.map +1 -0
  151. package/dist/src/sdk/utils/wait.js +4 -0
  152. package/dist/src/sdk/utils/wait.js.map +1 -0
  153. package/dist/src/sdk/utils/wit/codecs/decimal.js +165 -0
  154. package/dist/src/sdk/utils/wit/codecs/decimal.js.map +1 -0
  155. package/dist/src/sdk/utils/wit/codecs/enum.js +104 -0
  156. package/dist/src/sdk/utils/wit/codecs/enum.js.map +1 -0
  157. package/dist/src/sdk/utils/wit/codecs/integer.js +167 -0
  158. package/dist/src/sdk/utils/wit/codecs/integer.js.map +1 -0
  159. package/dist/src/sdk/utils/wit/codecs/list.js +117 -0
  160. package/dist/src/sdk/utils/wit/codecs/list.js.map +1 -0
  161. package/dist/src/sdk/utils/wit/codecs/option.js +91 -0
  162. package/dist/src/sdk/utils/wit/codecs/option.js.map +1 -0
  163. package/dist/src/sdk/utils/wit/codecs/string.js +27 -0
  164. package/dist/src/sdk/utils/wit/codecs/string.js.map +1 -0
  165. package/dist/src/sdk/utils/wit/codecs/types.js +45 -0
  166. package/dist/src/sdk/utils/wit/codecs/types.js.map +1 -0
  167. package/dist/src/sdk/utils/wit/codecs/unit.js +22 -0
  168. package/dist/src/sdk/utils/wit/codecs/unit.js.map +1 -0
  169. package/dist/src/sdk/utils/wit/decode-function-result.js +36 -0
  170. package/dist/src/sdk/utils/wit/decode-function-result.js.map +1 -0
  171. package/dist/src/sdk/utils/wit/decode-wit-parameter.js +286 -0
  172. package/dist/src/sdk/utils/wit/decode-wit-parameter.js.map +1 -0
  173. package/dist/src/sdk/utils/wit/decode-wit-parameter.test.js +75 -0
  174. package/dist/src/sdk/utils/wit/decode-wit-parameter.test.js.map +1 -0
  175. package/dist/src/sdk/utils/wit/encode-function-data.js +17 -0
  176. package/dist/src/sdk/utils/wit/encode-function-data.js.map +1 -0
  177. package/dist/src/sdk/utils/wit/encode-function-data.test-d.js +21 -0
  178. package/dist/src/sdk/utils/wit/encode-function-data.test-d.js.map +1 -0
  179. package/dist/src/sdk/utils/wit/encode-function-data.test.js +91 -0
  180. package/dist/src/sdk/utils/wit/encode-function-data.test.js.map +1 -0
  181. package/dist/src/sdk/utils/wit/encode-wit-parameters.js +250 -0
  182. package/dist/src/sdk/utils/wit/encode-wit-parameters.js.map +1 -0
  183. package/dist/src/sdk/utils/wit/encode-wit-parameters.test.js +62 -0
  184. package/dist/src/sdk/utils/wit/encode-wit-parameters.test.js.map +1 -0
  185. package/dist/src/sdk/utils/wit/get-wit-item.js +15 -0
  186. package/dist/src/sdk/utils/wit/get-wit-item.js.map +1 -0
  187. package/dist/src/sdk/utils/wit/get-wit-item.test.js +118 -0
  188. package/dist/src/sdk/utils/wit/get-wit-item.test.js.map +1 -0
  189. package/dist/src/sdk/utils/wit/prepare-encode-function-data.js +24 -0
  190. package/dist/src/sdk/utils/wit/prepare-encode-function-data.js.map +1 -0
  191. package/dist/src/wit/error.js +59 -0
  192. package/dist/src/wit/error.js.map +1 -0
  193. package/dist/src/wit/narrow.js +14 -0
  194. package/dist/src/wit/narrow.js.map +1 -0
  195. package/dist/src/wit/regex.js +6 -0
  196. package/dist/src/wit/regex.js.map +1 -0
  197. package/dist/src/wit/register.js +2 -0
  198. package/dist/src/wit/register.js.map +1 -0
  199. package/dist/src/wit/type-utils.js +2 -0
  200. package/dist/src/wit/type-utils.js.map +1 -0
  201. package/dist/src/wit/utils.js +2 -0
  202. package/dist/src/wit/utils.js.map +1 -0
  203. package/dist/src/wit/utils.test-d.js +16 -0
  204. package/dist/src/wit/utils.test-d.js.map +1 -0
  205. package/dist/src/wit/version.js +2 -0
  206. package/dist/src/wit/version.js.map +1 -0
  207. package/dist/src/wit/wit-parser/core/errors/signature.js +42 -0
  208. package/dist/src/wit/wit-parser/core/errors/signature.js.map +1 -0
  209. package/dist/src/wit/wit-parser/core/errors/splitParameters.js +18 -0
  210. package/dist/src/wit/wit-parser/core/errors/splitParameters.js.map +1 -0
  211. package/dist/src/wit/wit-parser/core/errors/wit-parameter.js +29 -0
  212. package/dist/src/wit/wit-parser/core/errors/wit-parameter.js.map +1 -0
  213. package/dist/src/wit/wit-parser/core/records.js +73 -0
  214. package/dist/src/wit/wit-parser/core/records.js.map +1 -0
  215. package/dist/src/wit/wit-parser/core/records.test.js +53 -0
  216. package/dist/src/wit/wit-parser/core/records.test.js.map +1 -0
  217. package/dist/src/wit/wit-parser/core/signatures.js +32 -0
  218. package/dist/src/wit/wit-parser/core/signatures.js.map +1 -0
  219. package/dist/src/wit/wit-parser/core/signatures.test.js +54 -0
  220. package/dist/src/wit/wit-parser/core/signatures.test.js.map +1 -0
  221. package/dist/src/wit/wit-parser/core/types/records.js +2 -0
  222. package/dist/src/wit/wit-parser/core/types/records.js.map +1 -0
  223. package/dist/src/wit/wit-parser/core/types/records.test-d.js +19 -0
  224. package/dist/src/wit/wit-parser/core/types/records.test-d.js.map +1 -0
  225. package/dist/src/wit/wit-parser/core/types/signatures.js +3 -0
  226. package/dist/src/wit/wit-parser/core/types/signatures.js.map +1 -0
  227. package/dist/src/wit/wit-parser/core/types/signatures.test-d.js +18 -0
  228. package/dist/src/wit/wit-parser/core/types/signatures.test-d.js.map +1 -0
  229. package/dist/src/wit/wit-parser/core/types/utils.js +2 -0
  230. package/dist/src/wit/wit-parser/core/types/utils.js.map +1 -0
  231. package/dist/src/wit/wit-parser/core/types/utils.test-d.js +138 -0
  232. package/dist/src/wit/wit-parser/core/types/utils.test-d.js.map +1 -0
  233. package/dist/src/wit/wit-parser/core/utils.js +212 -0
  234. package/dist/src/wit/wit-parser/core/utils.js.map +1 -0
  235. package/dist/src/wit/wit-parser/core/utils.test.js +302 -0
  236. package/dist/src/wit/wit-parser/core/utils.test.js.map +1 -0
  237. package/dist/src/wit/wit-parser/parse-wit-parameter.js +26 -0
  238. package/dist/src/wit/wit-parser/parse-wit-parameter.js.map +1 -0
  239. package/dist/src/wit/wit-parser/parse-wit-parameter.test.js +77 -0
  240. package/dist/src/wit/wit-parser/parse-wit-parameter.test.js.map +1 -0
  241. package/dist/src/wit/wit-parser/parse-wit.js +16 -0
  242. package/dist/src/wit/wit-parser/parse-wit.js.map +1 -0
  243. package/dist/src/wit/wit-parser/parse-wit.test.js +78 -0
  244. package/dist/src/wit/wit-parser/parse-wit.test.js.map +1 -0
  245. package/dist/src/wit/wit.js +2 -0
  246. package/dist/src/wit/wit.js.map +1 -0
  247. package/dist/src/wit/wit.test.js +6 -0
  248. package/dist/src/wit/wit.test.js.map +1 -0
  249. package/dist/test/globalSetup.js +14 -0
  250. package/dist/test/globalSetup.js.map +1 -0
  251. package/dist/test/src/wits.js +21 -0
  252. package/dist/test/src/wits.js.map +1 -0
  253. package/dist/tsconfig.tsbuildinfo +1 -1
  254. package/dist/types/sdk/actions/kontor/public/build-compose-query.d.ts +16 -0
  255. package/dist/types/sdk/actions/kontor/public/build-compose-query.d.ts.map +1 -0
  256. package/dist/types/sdk/actions/kontor/public/build-instruction-query.d.ts +25 -0
  257. package/dist/types/sdk/actions/kontor/public/build-instruction-query.d.ts.map +1 -0
  258. package/dist/types/sdk/actions/kontor/public/call-compose.d.ts +20 -0
  259. package/dist/types/sdk/actions/kontor/public/call-compose.d.ts.map +1 -0
  260. package/dist/types/sdk/actions/kontor/public/proc-contract.d.ts +2 -2
  261. package/dist/types/sdk/actions/kontor/public/proc-contract.d.ts.map +1 -1
  262. package/dist/types/sdk/actions/kontor/wallet/sign-reveal.d.ts.map +1 -1
  263. package/dist/types/sdk/clients/decorators/kontor/public.d.ts +6 -6
  264. package/dist/types/sdk/clients/decorators/kontor/public.d.ts.map +1 -1
  265. package/dist/types/sdk/contracts/wits.d.ts +6 -5
  266. package/dist/types/sdk/contracts/wits.d.ts.map +1 -1
  267. package/dist/types/sdk/types/kontor.d.ts +15 -1
  268. package/dist/types/sdk/types/kontor.d.ts.map +1 -1
  269. package/package.json +1 -1
  270. package/src/sdk/actions/kontor/public/build-compose-query.ts +1 -1
  271. package/dist/cjs/sdk/actions/kontor/public/build-compose-call.js.map +0 -1
  272. package/dist/cjs/sdk/actions/kontor/public/build-instruction.js.map +0 -1
  273. package/dist/cjs/sdk/actions/kontor/public/call-proc.js.map +0 -1
  274. package/dist/esm/sdk/actions/kontor/public/build-compose-call.js +0 -31
  275. package/dist/esm/sdk/actions/kontor/public/build-compose-call.js.map +0 -1
  276. package/dist/esm/sdk/actions/kontor/public/build-instruction.js +0 -49
  277. package/dist/esm/sdk/actions/kontor/public/build-instruction.js.map +0 -1
  278. package/dist/esm/sdk/actions/kontor/public/call-proc.js.map +0 -1
  279. package/dist/src/sdk/actions/kontor/public/build-compose-call.js.map +0 -1
  280. package/dist/src/sdk/actions/kontor/public/build-instruction.js.map +0 -1
  281. package/dist/src/sdk/actions/kontor/public/call-proc.js +0 -43
  282. package/dist/src/sdk/actions/kontor/public/call-proc.js.map +0 -1
  283. package/dist/types/sdk/actions/kontor/public/build-compose-call.d.ts +0 -21
  284. package/dist/types/sdk/actions/kontor/public/build-compose-call.d.ts.map +0 -1
  285. package/dist/types/sdk/actions/kontor/public/build-instruction.d.ts +0 -17
  286. package/dist/types/sdk/actions/kontor/public/build-instruction.d.ts.map +0 -1
  287. package/dist/types/sdk/actions/kontor/public/call-proc.d.ts +0 -23
  288. package/dist/types/sdk/actions/kontor/public/call-proc.d.ts.map +0 -1
@@ -0,0 +1,59 @@
1
+ import { version } from "./version.js";
2
+ export class BaseError extends Error {
3
+ constructor(shortMessage, args = {}) {
4
+ const details = args.cause instanceof BaseError
5
+ ? args.cause.details
6
+ : args.cause?.message
7
+ ? args.cause.message
8
+ : args.details;
9
+ const docsPath = args.cause instanceof BaseError
10
+ ? args.cause.docsPath || args.docsPath
11
+ : args.docsPath;
12
+ const message = [
13
+ shortMessage || "An error occurred.",
14
+ "",
15
+ ...(args.metaMessages ? [...args.metaMessages, ""] : []),
16
+ ...(docsPath ? [`Docs: TODO: add docs path`] : []),
17
+ ...(details ? [`Details: ${details}`] : []),
18
+ `Version: kontor-sdk@${version}`,
19
+ ].join("\n");
20
+ super(message);
21
+ Object.defineProperty(this, "details", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: void 0
26
+ });
27
+ Object.defineProperty(this, "docsPath", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: void 0
32
+ });
33
+ Object.defineProperty(this, "metaMessages", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: void 0
38
+ });
39
+ Object.defineProperty(this, "shortMessage", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: void 0
44
+ });
45
+ Object.defineProperty(this, "name", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: "WitTypeError"
50
+ });
51
+ if (args.cause)
52
+ this.cause = args.cause;
53
+ this.details = details;
54
+ this.docsPath = docsPath;
55
+ this.metaMessages = args.metaMessages;
56
+ this.shortMessage = shortMessage;
57
+ }
58
+ }
59
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/wit/error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AASvC,MAAM,OAAO,SAAU,SAAQ,KAAK;IAQlC,YAAY,YAAoB,EAAE,OAAsB,EAAE;QACxD,MAAM,OAAO,GACX,IAAI,CAAC,KAAK,YAAY,SAAS;YAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;YACpB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO;gBACnB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;gBACpB,CAAC,CAAC,IAAI,CAAC,OAAQ,CAAC;QACtB,MAAM,QAAQ,GACZ,IAAI,CAAC,KAAK,YAAY,SAAS;YAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;YACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpB,MAAM,OAAO,GAAG;YACd,YAAY,IAAI,oBAAoB;YACpC,EAAE;YACF,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,uBAAuB,OAAO,EAAE;SACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,KAAK,CAAC,OAAO,CAAC,CAAC;QA3BjB;;;;;WAAgB;QAChB;;;;;WAA8B;QAC9B;;;;;WAAoC;QACpC;;;;;WAAqB;QAEZ;;;;mBAAO,cAAc;WAAC;QAwB7B,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Infers embedded primitive type of any type
3
+ * Same as `as const` but without setting the object as readonly and without needing the user to use it.
4
+ *
5
+ * @param value - Value to infer
6
+ * @returns Value with embedded type inferred
7
+ *
8
+ * @example
9
+ * const result = narrow(['foo', 'bar', 1])
10
+ */
11
+ export function narrow(value) {
12
+ return value;
13
+ }
14
+ //# sourceMappingURL=narrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrow.js","sourceRoot":"","sources":["../../../src/wit/narrow.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CAAO,KAAmB;IAC9C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,6 @@
1
+ export function execTyped(regex, string) {
2
+ const match = regex.exec(string);
3
+ return match?.groups;
4
+ }
5
+ export const isGenericRegex = /^(?<outer>borrow|list|option|result|tuple)\s*<(?<inner>[\s\S]+)>\s*$/;
6
+ //# sourceMappingURL=regex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex.js","sourceRoot":"","sources":["../../../src/wit/regex.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAO,KAAa,EAAE,MAAc;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,KAAK,EAAE,MAA0B,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GACzB,sEAAsE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/wit/register.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=type-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../../src/wit/type-utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/wit/utils.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { describe, test, assertType } from "vitest";
2
+ import { parseWit } from "./wit-parser/parse-wit.js";
3
+ const fibWit = parseWit([
4
+ "export fib: func(ctx: borrow<proc-context>, arith-address: contract-address, n: u64) -> u64;",
5
+ "export fib-of-sub: func(ctx: borrow<proc-context>, arith-address: contract-address, x: string, y: string) -> result<u64, error>;",
6
+ "export cached-values: func(ctx: borrow<view-context>) -> list<u64>;",
7
+ ]);
8
+ test("IsWit", () => {
9
+ assertType(true);
10
+ });
11
+ describe("Function", () => {
12
+ test("ExtractWitFunctions", () => {
13
+ // todo; fill out
14
+ });
15
+ });
16
+ //# sourceMappingURL=utils.test-d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test-d.js","sourceRoot":"","sources":["../../../src/wit/utils.test-d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAMpD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,MAAM,GAAQ,QAAQ,CAAC;IAC3B,8FAA8F;IAC9F,kIAAkI;IAClI,qEAAqE;CACtE,CAAC,CAAC;AAEH,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;IACjB,UAAU,CAAuB,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC/B,iBAAiB;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const version = "1.0.0";
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/wit/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { BaseError } from "../../../error.js";
2
+ export class InvalidSignatureError extends BaseError {
3
+ constructor({ signature, type, }) {
4
+ super(`Invalid ${type} signature.`, {
5
+ details: signature,
6
+ });
7
+ Object.defineProperty(this, "name", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: "InvalidSignatureError"
12
+ });
13
+ }
14
+ }
15
+ export class UnknownSignatureError extends BaseError {
16
+ constructor({ signature }) {
17
+ super("Unknown signature.", {
18
+ details: signature,
19
+ });
20
+ Object.defineProperty(this, "name", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: "UnknownSignatureError"
25
+ });
26
+ }
27
+ }
28
+ export class InvalidRecordSignatureError extends BaseError {
29
+ constructor({ signature }) {
30
+ super("Invalid record signature.", {
31
+ details: signature,
32
+ metaMessages: ["No properties exist."],
33
+ });
34
+ Object.defineProperty(this, "name", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: "InvalidStructSignatureError"
39
+ });
40
+ }
41
+ }
42
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/errors/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IAGlD,YAAY,EACV,SAAS,EACT,IAAI,GAIL;QACC,KAAK,CAAC,WAAW,IAAI,aAAa,EAAE;YAClC,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QAXI;;;;mBAAO,uBAAuB;WAAC;IAYxC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IAGlD,YAAY,EAAE,SAAS,EAAyB;QAC9C,KAAK,CAAC,oBAAoB,EAAE;YAC1B,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QALI;;;;mBAAO,uBAAuB;WAAC;IAMxC,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,SAAS;IAGxD,YAAY,EAAE,SAAS,EAAyB;QAC9C,KAAK,CAAC,2BAA2B,EAAE;YACjC,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,CAAC,sBAAsB,CAAC;SACvC,CAAC,CAAC;QANI;;;;mBAAO,6BAA6B;WAAC;IAO9C,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { BaseError } from "../../../error.js";
2
+ export class InvalidGenericDepthError extends BaseError {
3
+ constructor({ current, depth }) {
4
+ super("Unbalanced angle brackets.", {
5
+ metaMessages: [
6
+ `"${current.trim()}" has too many ${depth > 0 ? "opening" : "closing"} brackets.`,
7
+ ],
8
+ details: `Depth "${depth}"`,
9
+ });
10
+ Object.defineProperty(this, "name", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: "InvalidGenericDepthError"
15
+ });
16
+ }
17
+ }
18
+ //# sourceMappingURL=splitParameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitParameters.js","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/errors/splitParameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IAGrD,YAAY,EAAE,OAAO,EAAE,KAAK,EAAsC;QAChE,KAAK,CAAC,4BAA4B,EAAE;YAClC,YAAY,EAAE;gBACZ,IAAI,OAAO,CAAC,IAAI,EAAE,kBAChB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAC1B,YAAY;aACb;YACD,OAAO,EAAE,UAAU,KAAK,GAAG;SAC5B,CAAC,CAAC;QAVI;;;;mBAAO,0BAA0B;WAAC;IAW3C,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ import { BaseError } from "../../../error.js";
2
+ export class InvalidWitParameterError extends BaseError {
3
+ constructor({ param }) {
4
+ super("Failed to parse Wit parameter.", {
5
+ details: `parseWitParameter(${JSON.stringify(param, null, 2)})`,
6
+ });
7
+ Object.defineProperty(this, "name", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: "InvalidWitParameterError"
12
+ });
13
+ }
14
+ }
15
+ export class WitProtectedKeywordError extends BaseError {
16
+ constructor({ param, name }) {
17
+ super("Invalid Wit parameter.", {
18
+ details: param,
19
+ metaMessages: [`"${name}" is a protected Wit keyword`],
20
+ });
21
+ Object.defineProperty(this, "name", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: "WitProtectedKeywordError"
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=wit-parameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wit-parameter.js","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/errors/wit-parameter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IAGrD,YAAY,EAAE,KAAK,EAA8B;QAC/C,KAAK,CAAC,gCAAgC,EAAE;YACtC,OAAO,EAAE,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG;SAChE,CAAC,CAAC;QALI;;;;mBAAO,0BAA0B;WAAC;IAM3C,CAAC;CACF;AACD,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IAGrD,YAAY,EAAE,KAAK,EAAE,IAAI,EAAmC;QAC1D,KAAK,CAAC,wBAAwB,EAAE;YAC9B,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,CAAC,IAAI,IAAI,8BAA8B,CAAC;SACvD,CAAC,CAAC;QANI;;;;mBAAO,0BAA0B;WAAC;IAO3C,CAAC;CACF"}
@@ -0,0 +1,73 @@
1
+ import { execTyped, isGenericRegex } from "../../regex.js";
2
+ import { InvalidRecordSignatureError, InvalidSignatureError, } from "./errors/signature.js";
3
+ import { execRecordSignature, isRecordSignature } from "./signatures.js";
4
+ import { parseWitParameter } from "./utils.js";
5
+ export function parseRecords(signatures) {
6
+ const shallowRecords = {};
7
+ const signaturesLength = signatures.length;
8
+ for (let i = 0; i < signaturesLength; i++) {
9
+ const signature = signatures[i];
10
+ if (!isRecordSignature(signature))
11
+ continue;
12
+ const match = execRecordSignature(signature);
13
+ if (!match)
14
+ throw new InvalidSignatureError({ signature, type: "record" });
15
+ const properties = match.properties.split(",");
16
+ const components = [];
17
+ const propertiesLength = properties.length;
18
+ for (let k = 0; k < propertiesLength; k++) {
19
+ const property = properties[k];
20
+ const trimmed = property.trim();
21
+ if (!trimmed)
22
+ continue;
23
+ const witParameter = parseWitParameter(trimmed, {
24
+ type: "record",
25
+ });
26
+ components.push(witParameter);
27
+ }
28
+ if (!components.length)
29
+ throw new InvalidRecordSignatureError({ signature });
30
+ shallowRecords[match.name] = components;
31
+ }
32
+ const resolvedRecords = {};
33
+ const entries = Object.entries(shallowRecords);
34
+ const entriesLength = entries.length;
35
+ for (let i = 0; i < entriesLength; i++) {
36
+ const [name, parameters] = entries[i];
37
+ resolvedRecords[name] = resolveRecords(parameters, shallowRecords);
38
+ }
39
+ return resolvedRecords;
40
+ }
41
+ // TODO: move?
42
+ // e.g. "list<u8>", "option<signer>", "result<integer, error>", "borrow<proc-context>"
43
+ export function isGeneric(type) {
44
+ return isGenericRegex.test(type.trim());
45
+ }
46
+ // e.g. "string", "list<u8>", "option<signer>", "result<integer, error>", "borrow<proc-context>"
47
+ const witTypeRegex = /^(?:(?<wrapper>borrow|own)\s*<\s*)?(?<base>[a-zA-Z$_][a-zA-Z0-9$_-]*)(?:\s*<(?<inner>[\s\S]+)>)?\s*(?:>)?$/;
48
+ function resolveRecords(witParameters, records, ancestors = new Set()) {
49
+ const components = [];
50
+ for (const witParameter of witParameters) {
51
+ const m = execTyped(witTypeRegex, witParameter.type);
52
+ // TODO: add custom error
53
+ if (!m?.base)
54
+ throw new Error(`Invalid WIT type: ${witParameter.type}`);
55
+ const base = m.base;
56
+ // If it's a named record, expand it into a tuple of its fields.
57
+ if (base in records) {
58
+ // TODO: add custom error
59
+ if (ancestors.has(base))
60
+ throw new Error("Circular reference detected.");
61
+ components.push({
62
+ ...witParameter,
63
+ type: "tuple", // normalize records -> tuple
64
+ components: resolveRecords(records[base] ?? [], records, new Set([...ancestors, base])),
65
+ });
66
+ continue;
67
+ }
68
+ // Otherwise, just pass it through (builtins, generics, etc.)
69
+ components.push(witParameter);
70
+ }
71
+ return components;
72
+ }
73
+ //# sourceMappingURL=records.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../../../../src/wit/wit-parser/core/records.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { expect, test } from "vitest";
2
+ import { parseRecords } from "./records.js";
3
+ test("parse records", () => {
4
+ expect(parseRecords([
5
+ "record contract-address { name: string, height: s64, tx-index: s64 }",
6
+ "record token-pair { a: contract-address, b: contract-address }",
7
+ ])).toEqual({
8
+ "contract-address": [
9
+ { name: "name", type: "string" },
10
+ { name: "height", type: "s64" },
11
+ { name: "tx-index", type: "s64" },
12
+ ],
13
+ "token-pair": [
14
+ {
15
+ type: "tuple",
16
+ name: "a",
17
+ components: [
18
+ { name: "name", type: "string" },
19
+ { name: "height", type: "s64" },
20
+ { name: "tx-index", type: "s64" },
21
+ ],
22
+ },
23
+ {
24
+ type: "tuple",
25
+ name: "b",
26
+ components: [
27
+ { name: "name", type: "string" },
28
+ { name: "height", type: "s64" },
29
+ { name: "tx-index", type: "s64" },
30
+ ],
31
+ },
32
+ ],
33
+ });
34
+ });
35
+ test("generic", () => {
36
+ expect(parseRecords(["record generic { values: list<string> }"])).toEqual({
37
+ generic: [{ name: "values", type: "list<string>" }],
38
+ });
39
+ });
40
+ test("generic", () => {
41
+ expect(parseRecords([
42
+ "record contract-address { name: string, height: s64, tx-index: s64 }",
43
+ "record generic { values: list<contract-address> }",
44
+ ])).toEqual({
45
+ "contract-address": [
46
+ { type: "string", name: "name" },
47
+ { type: "s64", name: "height" },
48
+ { type: "s64", name: "tx-index" },
49
+ ],
50
+ generic: [{ name: "values", type: "list<contract-address>" }],
51
+ });
52
+ });
53
+ //# sourceMappingURL=records.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.test.js","sourceRoot":"","sources":["../../../../../src/wit/wit-parser/core/records.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;IACzB,MAAM,CACJ,YAAY,CAAC;QACX,uEAAuE;QACvE,iEAAiE;KAClE,CAAC,CACH,CAAC,OAAO,CAAC;QACR,kBAAkB,EAAE;YAClB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;YAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;SAClC;QACD,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,GAAG;gBACT,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAChC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;oBAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;iBAClC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,GAAG;gBACT,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAChC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;oBAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;iBAClC;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;IACnB,MAAM,CAAC,YAAY,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;KACpD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;IACnB,MAAM,CACJ,YAAY,CAAC;QACX,uEAAuE;QACvE,oDAAoD;KACrD,CAAC,CACH,CAAC,OAAO,CAAC;QACR,kBAAkB,EAAE;YAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;YAChC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;SAClC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { execTyped } from "../../regex.js";
2
+ const errorSignatureRegex = /^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;
3
+ export function isErrorSignature(signature) {
4
+ return errorSignatureRegex.test(signature);
5
+ }
6
+ export function execErrorSignature(signature) {
7
+ return execTyped(errorSignatureRegex, signature);
8
+ }
9
+ const witFnSignatureRegex = /^export\s+(?<name>[a-z][a-z0-9-]*)\s*:\s*func\s*\(\s*ctx\s*:\s*borrow<(?<ctx>proc-context|view-context|core-context)>\s*(?:,\s*(?<rest>.*?))?\)\s*(?:->\s*(?<returns>[^;]+))?;\s*$/;
10
+ export function isFunctionSignature(signature) {
11
+ return witFnSignatureRegex.test(signature);
12
+ }
13
+ export function execFunctionSignature(signature) {
14
+ const m = witFnSignatureRegex.exec(signature);
15
+ if (!m || !m.groups)
16
+ return null;
17
+ const name = m.groups.name;
18
+ const ctx = m.groups.ctx;
19
+ const type = ctx === "proc-context" ? "proc" : ctx == "view-context" ? "view" : "core";
20
+ const rest = (m.groups.rest ?? "").trim();
21
+ const parameters = rest.length > 0 ? `ctx: borrow<${ctx}>, ${rest}` : `ctx: borrow<${ctx}>`;
22
+ const returns = (m.groups.returns ?? "").trim() || undefined;
23
+ return { name, type, parameters, returns };
24
+ }
25
+ const witRecordSignatureRegex = /^record\s+(?<name>[a-zA-Z$_][a-zA-Z0-9$_-]*)\s*\{(?<properties>[\s\S]*?)\}$/;
26
+ export function isRecordSignature(signature) {
27
+ return witRecordSignatureRegex.test(signature);
28
+ }
29
+ export function execRecordSignature(signature) {
30
+ return execTyped(witRecordSignatureRegex, signature);
31
+ }
32
+ //# sourceMappingURL=signatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../../../../src/wit/wit-parser/core/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,mBAAmB,GACvB,iEAAiE,CAAC;AACpE,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,SAAS,CACd,mBAAmB,EACnB,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GACvB,oLAAoL,CAAC;AAEvL,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAK,CAAC;IAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAuD,CAAC;IAC7E,MAAM,IAAI,GACR,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAE5E,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,UAAU,GACd,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,GAAG,GAAG,CAAC;IAE3E,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IAE7D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,uBAAuB,GAC3B,6EAA6E,CAAC;AAEhF,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,SAAS,CAGb,uBAAuB,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { expect, test, describe } from "vitest";
2
+ import { execFunctionSignature, isFunctionSignature } from "./signatures.js";
3
+ describe("isFunctionSignature", () => {
4
+ test.each([
5
+ "export fib: func(ctx: borrow<proc-context>, arith-address: contract-address, n: u64) -> u64;",
6
+ "export fib-of-sub: func(ctx: borrow<proc-context>, arith-address: contract-address, x: string, y: string) -> result<u64, error>;",
7
+ "export cached-values: func(ctx: borrow<view-context>) -> list<u64>;",
8
+ ])("%s -> %s", (input) => {
9
+ expect(isFunctionSignature(input)).toBe(true);
10
+ });
11
+ });
12
+ describe("execFunctionSignature", () => {
13
+ test.each([
14
+ {
15
+ input: "export fib: func(ctx: borrow<proc-context>, arith-address: contract-address, n: u64) -> u64;",
16
+ expected: {
17
+ name: "fib",
18
+ type: "proc",
19
+ parameters: "ctx: borrow<proc-context>, arith-address: contract-address, n: u64",
20
+ returns: "u64",
21
+ },
22
+ },
23
+ {
24
+ input: "export fib-of-sub: func(ctx: borrow<proc-context>, arith-address: contract-address, x: string, y: string) -> result<u64, error>;",
25
+ expected: {
26
+ name: "fib-of-sub",
27
+ type: "proc",
28
+ parameters: "ctx: borrow<proc-context>, arith-address: contract-address, x: string, y: string",
29
+ returns: "result<u64, error>",
30
+ },
31
+ },
32
+ {
33
+ input: "export cached-values: func(ctx: borrow<view-context>) -> list<u64>;",
34
+ expected: {
35
+ name: "cached-values",
36
+ type: "view",
37
+ parameters: "ctx: borrow<view-context>",
38
+ returns: "list<u64>",
39
+ },
40
+ },
41
+ {
42
+ input: "export cached-values: func(ctx: borrow<core-context>) -> list<u64>;",
43
+ expected: {
44
+ name: "cached-values",
45
+ type: "core",
46
+ parameters: "ctx: borrow<core-context>",
47
+ returns: "list<u64>",
48
+ },
49
+ },
50
+ ])("%s", ({ input, expected }) => {
51
+ expect(execFunctionSignature(input)).toStrictEqual(expected);
52
+ });
53
+ });
54
+ //# sourceMappingURL=signatures.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.test.js","sourceRoot":"","sources":["../../../../../src/wit/wit-parser/core/signatures.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,CAAC,IAAI,CAAC;QACR,8FAA8F;QAE9F,kIAAkI;QAElI,qEAAqE;KACtE,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QACvB,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,CAAC,IAAI,CAAC;QACR;YACE,KAAK,EACH,8FAA8F;YAChG,QAAQ,EAAE;gBACR,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,MAAM;gBACZ,UAAU,EACR,oEAAoE;gBACtE,OAAO,EAAE,KAAK;aACf;SACF;QACD;YACE,KAAK,EACH,kIAAkI;YACpI,QAAQ,EAAE;gBACR,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,MAAM;gBACZ,UAAU,EACR,kFAAkF;gBACpF,OAAO,EAAE,oBAAoB;aAC9B;SACF;QACD;YACE,KAAK,EACH,qEAAqE;YACvE,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,MAAM;gBACZ,UAAU,EAAE,2BAA2B;gBACvC,OAAO,EAAE,WAAW;aACrB;SACF;QACD;YACE,KAAK,EACH,qEAAqE;YACvE,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,MAAM;gBACZ,UAAU,EAAE,2BAA2B;gBACvC,OAAO,EAAE,WAAW;aACrB;SACF;KACF,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC/B,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=records.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.js","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/types/records.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { expectTypeOf, test } from "vitest";
2
+ test("ParseRecords", () => {
3
+ expectTypeOf().toEqualTypeOf();
4
+ expectTypeOf().toEqualTypeOf();
5
+ expectTypeOf().toEqualTypeOf();
6
+ });
7
+ test("ParseRecord", () => {
8
+ expectTypeOf().toEqualTypeOf();
9
+ expectTypeOf().toEqualTypeOf();
10
+ expectTypeOf().toEqualTypeOf();
11
+ });
12
+ test("ParseRecordProperties", () => {
13
+ expectTypeOf().toEqualTypeOf();
14
+ expectTypeOf().toEqualTypeOf();
15
+ expectTypeOf().toEqualTypeOf();
16
+ expectTypeOf().toEqualTypeOf();
17
+ expectTypeOf().toEqualTypeOf();
18
+ });
19
+ //# sourceMappingURL=records.test-d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.test-d.js","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/types/records.test-d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAiB5C,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;IACxB,YAAY,EAOT,CAAC,aAAa,EA2Bb,CAAC;IACL,YAAY,EAOT,CAAC,aAAa,EAab,CAAC;IACL,YAAY,EAET,CAAC,aAAa,EAYb,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;IACvB,YAAY,EAET,CAAC,aAAa,EAOb,CAAC;IAEL,YAAY,EAET,CAAC,aAAa,EAMb,CAAC;IAEL,YAAY,EAKT,CAAC,aAAa,EAsBb,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACjC,YAAY,EAET,CAAC,aAAa,EAMd,CAAC;IAEJ,YAAY,EAET,CAAC,aAAa,EAKd,CAAC;IAEJ,YAAY,EAET,CAAC,aAAa,EAqBd,CAAC;IAEJ,YAAY,EAET,CAAC,aAAa,EAOd,CAAC;IAEJ,YAAY,EAET,CAAC,aAAa,EAYd,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export {};
2
+ // Single
3
+ //# sourceMappingURL=signatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/types/signatures.ts"],"names":[],"mappings":";AAmLA,SAAS"}
@@ -0,0 +1,18 @@
1
+ import { assertType, test } from "vitest";
2
+ test("IsFunctionSignature", () => {
3
+ assertType(true);
4
+ assertType(true);
5
+ assertType(true);
6
+ });
7
+ test("IsRecordSignature", () => {
8
+ assertType(true);
9
+ assertType(true);
10
+ });
11
+ test("IsSignature", () => {
12
+ assertType(true);
13
+ assertType(true);
14
+ assertType(true);
15
+ assertType(true);
16
+ assertType(true);
17
+ });
18
+ //# sourceMappingURL=signatures.test-d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signatures.test-d.js","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/types/signatures.test-d.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAQ1C,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAC/B,UAAU,CAER,IAAI,CAAC,CAAC;IAER,UAAU,CAER,IAAI,CAAC,CAAC;IAER,UAAU,CAER,IAAI,CAAC,CAAC;AACV,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC7B,UAAU,CAER,IAAI,CAAC,CAAC;IAER,UAAU,CAER,IAAI,CAAC,CAAC;AACV,CAAC,CAAC,CAAC;AACH,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;IACvB,UAAU,CAER,IAAI,CAAC,CAAC;IAER,UAAU,CAER,IAAI,CAAC,CAAC;IAER,UAAU,CAER,IAAI,CAAC,CAAC;IAER,UAAU,CAER,IAAI,CAAC,CAAC;IAER,UAAU,CAER,IAAI,CAAC,CAAC;AACV,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/wit/wit-parser/core/types/utils.ts"],"names":[],"mappings":""}