@metaplex-foundation/kinobi 0.0.1

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 (416) hide show
  1. package/README.md +7 -0
  2. package/dist/cjs/Kinobi.js +28 -0
  3. package/dist/cjs/Kinobi.js.map +1 -0
  4. package/dist/cjs/idl/Idl.js +3 -0
  5. package/dist/cjs/idl/Idl.js.map +1 -0
  6. package/dist/cjs/idl/IdlAccount.js +3 -0
  7. package/dist/cjs/idl/IdlAccount.js.map +1 -0
  8. package/dist/cjs/idl/IdlDefinedType.js +3 -0
  9. package/dist/cjs/idl/IdlDefinedType.js.map +1 -0
  10. package/dist/cjs/idl/IdlError.js +3 -0
  11. package/dist/cjs/idl/IdlError.js.map +1 -0
  12. package/dist/cjs/idl/IdlInstruction.js +3 -0
  13. package/dist/cjs/idl/IdlInstruction.js.map +1 -0
  14. package/dist/cjs/idl/IdlType.js +3 -0
  15. package/dist/cjs/idl/IdlType.js.map +1 -0
  16. package/dist/cjs/idl/index.js +23 -0
  17. package/dist/cjs/idl/index.js.map +1 -0
  18. package/dist/cjs/index.js +22 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/logs.js +64 -0
  21. package/dist/cjs/logs.js.map +1 -0
  22. package/dist/cjs/nodes/AccountNode.js +89 -0
  23. package/dist/cjs/nodes/AccountNode.js.map +1 -0
  24. package/dist/cjs/nodes/DefinedTypeNode.js +43 -0
  25. package/dist/cjs/nodes/DefinedTypeNode.js.map +1 -0
  26. package/dist/cjs/nodes/ErrorNode.js +43 -0
  27. package/dist/cjs/nodes/ErrorNode.js.map +1 -0
  28. package/dist/cjs/nodes/InstructionNode.js +128 -0
  29. package/dist/cjs/nodes/InstructionNode.js.map +1 -0
  30. package/dist/cjs/nodes/Node.js +15 -0
  31. package/dist/cjs/nodes/Node.js.map +1 -0
  32. package/dist/cjs/nodes/ProgramNode.js +64 -0
  33. package/dist/cjs/nodes/ProgramNode.js.map +1 -0
  34. package/dist/cjs/nodes/RootNode.js +48 -0
  35. package/dist/cjs/nodes/RootNode.js.map +1 -0
  36. package/dist/cjs/nodes/TypeArrayNode.js +31 -0
  37. package/dist/cjs/nodes/TypeArrayNode.js.map +1 -0
  38. package/dist/cjs/nodes/TypeDefinedLinkNode.js +30 -0
  39. package/dist/cjs/nodes/TypeDefinedLinkNode.js.map +1 -0
  40. package/dist/cjs/nodes/TypeEnumEmptyVariantNode.js +30 -0
  41. package/dist/cjs/nodes/TypeEnumEmptyVariantNode.js.map +1 -0
  42. package/dist/cjs/nodes/TypeEnumNode.js +52 -0
  43. package/dist/cjs/nodes/TypeEnumNode.js.map +1 -0
  44. package/dist/cjs/nodes/TypeEnumStructVariantNode.js +37 -0
  45. package/dist/cjs/nodes/TypeEnumStructVariantNode.js.map +1 -0
  46. package/dist/cjs/nodes/TypeEnumTupleVariantNode.js +33 -0
  47. package/dist/cjs/nodes/TypeEnumTupleVariantNode.js.map +1 -0
  48. package/dist/cjs/nodes/TypeEnumVariantNode.js +20 -0
  49. package/dist/cjs/nodes/TypeEnumVariantNode.js.map +1 -0
  50. package/dist/cjs/nodes/TypeLeafNode.js +61 -0
  51. package/dist/cjs/nodes/TypeLeafNode.js.map +1 -0
  52. package/dist/cjs/nodes/TypeLeafWrapperNode.js +26 -0
  53. package/dist/cjs/nodes/TypeLeafWrapperNode.js.map +1 -0
  54. package/dist/cjs/nodes/TypeMapNode.js +35 -0
  55. package/dist/cjs/nodes/TypeMapNode.js.map +1 -0
  56. package/dist/cjs/nodes/TypeNode.js +103 -0
  57. package/dist/cjs/nodes/TypeNode.js.map +1 -0
  58. package/dist/cjs/nodes/TypeOptionNode.js +32 -0
  59. package/dist/cjs/nodes/TypeOptionNode.js.map +1 -0
  60. package/dist/cjs/nodes/TypeSetNode.js +32 -0
  61. package/dist/cjs/nodes/TypeSetNode.js.map +1 -0
  62. package/dist/cjs/nodes/TypeStructFieldNode.js +42 -0
  63. package/dist/cjs/nodes/TypeStructFieldNode.js.map +1 -0
  64. package/dist/cjs/nodes/TypeStructNode.js +32 -0
  65. package/dist/cjs/nodes/TypeStructNode.js.map +1 -0
  66. package/dist/cjs/nodes/TypeTupleNode.js +29 -0
  67. package/dist/cjs/nodes/TypeTupleNode.js.map +1 -0
  68. package/dist/cjs/nodes/TypeVecNode.js +29 -0
  69. package/dist/cjs/nodes/TypeVecNode.js.map +1 -0
  70. package/dist/cjs/nodes/ValueNode.js +57 -0
  71. package/dist/cjs/nodes/ValueNode.js.map +1 -0
  72. package/dist/cjs/nodes/index.js +42 -0
  73. package/dist/cjs/nodes/index.js.map +1 -0
  74. package/dist/cjs/renderers/RenderMap.js +35 -0
  75. package/dist/cjs/renderers/RenderMap.js.map +1 -0
  76. package/dist/cjs/renderers/WriteRenderMapVisitor.js +16 -0
  77. package/dist/cjs/renderers/WriteRenderMapVisitor.js.map +1 -0
  78. package/dist/cjs/renderers/index.js +21 -0
  79. package/dist/cjs/renderers/index.js.map +1 -0
  80. package/dist/cjs/renderers/js/GetJavaScriptRenderMapVisitor.js +360 -0
  81. package/dist/cjs/renderers/js/GetJavaScriptRenderMapVisitor.js.map +1 -0
  82. package/dist/cjs/renderers/js/GetJavaScriptTypeManifestVisitor.js +439 -0
  83. package/dist/cjs/renderers/js/GetJavaScriptTypeManifestVisitor.js.map +1 -0
  84. package/dist/cjs/renderers/js/GetJavaScriptValidatorBagVisitor.js +198 -0
  85. package/dist/cjs/renderers/js/GetJavaScriptValidatorBagVisitor.js.map +1 -0
  86. package/dist/cjs/renderers/js/JavaScriptImportMap.js +83 -0
  87. package/dist/cjs/renderers/js/JavaScriptImportMap.js.map +1 -0
  88. package/dist/cjs/renderers/js/RenderJavaScriptValueNode.js +125 -0
  89. package/dist/cjs/renderers/js/RenderJavaScriptValueNode.js.map +1 -0
  90. package/dist/cjs/renderers/js/RenderJavaScriptVisitor.js +28 -0
  91. package/dist/cjs/renderers/js/RenderJavaScriptVisitor.js.map +1 -0
  92. package/dist/cjs/renderers/js/index.js +23 -0
  93. package/dist/cjs/renderers/js/index.js.map +1 -0
  94. package/dist/cjs/renderers/js/templates/accountsIndex.njk +9 -0
  95. package/dist/cjs/renderers/js/templates/accountsPage.njk +122 -0
  96. package/dist/cjs/renderers/js/templates/definedTypesIndex.njk +9 -0
  97. package/dist/cjs/renderers/js/templates/definedTypesPage.njk +13 -0
  98. package/dist/cjs/renderers/js/templates/definedTypesPageDataEnums.njk +26 -0
  99. package/dist/cjs/renderers/js/templates/errorsIndex.njk +9 -0
  100. package/dist/cjs/renderers/js/templates/errorsPage.njk +43 -0
  101. package/dist/cjs/renderers/js/templates/instructionsIndex.njk +9 -0
  102. package/dist/cjs/renderers/js/templates/instructionsPage.njk +71 -0
  103. package/dist/cjs/renderers/js/templates/instructionsPageAccountMetas.njk +61 -0
  104. package/dist/cjs/renderers/js/templates/instructionsPageAccounts.njk +12 -0
  105. package/dist/cjs/renderers/js/templates/instructionsPageArgs.njk +7 -0
  106. package/dist/cjs/renderers/js/templates/layout.njk +9 -0
  107. package/dist/cjs/renderers/js/templates/macros.njk +40 -0
  108. package/dist/cjs/renderers/js/templates/programsIndex.njk +9 -0
  109. package/dist/cjs/renderers/js/templates/programsPage.njk +23 -0
  110. package/dist/cjs/renderers/js/templates/rootIndex.njk +23 -0
  111. package/dist/cjs/renderers/utils.js +42 -0
  112. package/dist/cjs/renderers/utils.js.map +1 -0
  113. package/dist/cjs/utils.js +47 -0
  114. package/dist/cjs/utils.js.map +1 -0
  115. package/dist/cjs/visitors/BaseDelegateVisitor.js +73 -0
  116. package/dist/cjs/visitors/BaseDelegateVisitor.js.map +1 -0
  117. package/dist/cjs/visitors/BaseNodeOrNullVisitor.js +183 -0
  118. package/dist/cjs/visitors/BaseNodeOrNullVisitor.js.map +1 -0
  119. package/dist/cjs/visitors/BaseNodeVisitor.js +144 -0
  120. package/dist/cjs/visitors/BaseNodeVisitor.js.map +1 -0
  121. package/dist/cjs/visitors/BaseThrowVisitor.js +70 -0
  122. package/dist/cjs/visitors/BaseThrowVisitor.js.map +1 -0
  123. package/dist/cjs/visitors/BaseVoidVisitor.js +81 -0
  124. package/dist/cjs/visitors/BaseVoidVisitor.js.map +1 -0
  125. package/dist/cjs/visitors/DefaultVisitor.js +53 -0
  126. package/dist/cjs/visitors/DefaultVisitor.js.map +1 -0
  127. package/dist/cjs/visitors/Dependency.js +3 -0
  128. package/dist/cjs/visitors/Dependency.js.map +1 -0
  129. package/dist/cjs/visitors/NodeSelector.js +79 -0
  130. package/dist/cjs/visitors/NodeSelector.js.map +1 -0
  131. package/dist/cjs/visitors/NodeStack.js +98 -0
  132. package/dist/cjs/visitors/NodeStack.js.map +1 -0
  133. package/dist/cjs/visitors/ValidatorBag.js +64 -0
  134. package/dist/cjs/visitors/ValidatorBag.js.map +1 -0
  135. package/dist/cjs/visitors/Visitable.js +3 -0
  136. package/dist/cjs/visitors/Visitable.js.map +1 -0
  137. package/dist/cjs/visitors/Visitor.js +3 -0
  138. package/dist/cjs/visitors/Visitor.js.map +1 -0
  139. package/dist/cjs/visitors/aggregators/GetByteSizeVisitor.js +130 -0
  140. package/dist/cjs/visitors/aggregators/GetByteSizeVisitor.js.map +1 -0
  141. package/dist/cjs/visitors/aggregators/GetDefaultValidatorBagVisitor.js +300 -0
  142. package/dist/cjs/visitors/aggregators/GetDefaultValidatorBagVisitor.js.map +1 -0
  143. package/dist/cjs/visitors/aggregators/GetDefinedTypeHistogramVisitor.js +157 -0
  144. package/dist/cjs/visitors/aggregators/GetDefinedTypeHistogramVisitor.js.map +1 -0
  145. package/dist/cjs/visitors/aggregators/GetNodeInlineStringVisitor.js +111 -0
  146. package/dist/cjs/visitors/aggregators/GetNodeInlineStringVisitor.js.map +1 -0
  147. package/dist/cjs/visitors/aggregators/GetNodeTreeStringVisitor.js +219 -0
  148. package/dist/cjs/visitors/aggregators/GetNodeTreeStringVisitor.js.map +1 -0
  149. package/dist/cjs/visitors/aggregators/GetResolvedInstructionAccountsVisitor.js +121 -0
  150. package/dist/cjs/visitors/aggregators/GetResolvedInstructionAccountsVisitor.js.map +1 -0
  151. package/dist/cjs/visitors/aggregators/index.js +23 -0
  152. package/dist/cjs/visitors/aggregators/index.js.map +1 -0
  153. package/dist/cjs/visitors/index.js +31 -0
  154. package/dist/cjs/visitors/index.js.map +1 -0
  155. package/dist/cjs/visitors/transformers/AutoSetAnchorDiscriminatorsVisitor.js +94 -0
  156. package/dist/cjs/visitors/transformers/AutoSetAnchorDiscriminatorsVisitor.js.map +1 -0
  157. package/dist/cjs/visitors/transformers/AutoSetFixedAccountSizesVisitor.js +56 -0
  158. package/dist/cjs/visitors/transformers/AutoSetFixedAccountSizesVisitor.js.map +1 -0
  159. package/dist/cjs/visitors/transformers/CreateSubInstructionsFromEnumArgsVisitor.js +100 -0
  160. package/dist/cjs/visitors/transformers/CreateSubInstructionsFromEnumArgsVisitor.js.map +1 -0
  161. package/dist/cjs/visitors/transformers/DeduplicateIdenticalDefinedTypesVisitor.js +83 -0
  162. package/dist/cjs/visitors/transformers/DeduplicateIdenticalDefinedTypesVisitor.js.map +1 -0
  163. package/dist/cjs/visitors/transformers/DeleteNodesVisitor.js +14 -0
  164. package/dist/cjs/visitors/transformers/DeleteNodesVisitor.js.map +1 -0
  165. package/dist/cjs/visitors/transformers/SetAccountDiscriminatorFromFieldVisitor.js +62 -0
  166. package/dist/cjs/visitors/transformers/SetAccountDiscriminatorFromFieldVisitor.js.map +1 -0
  167. package/dist/cjs/visitors/transformers/SetInstructionAccountDefaultValuesVisitor.js +202 -0
  168. package/dist/cjs/visitors/transformers/SetInstructionAccountDefaultValuesVisitor.js.map +1 -0
  169. package/dist/cjs/visitors/transformers/SetInstructionDiscriminatorsVisitor.js +59 -0
  170. package/dist/cjs/visitors/transformers/SetInstructionDiscriminatorsVisitor.js.map +1 -0
  171. package/dist/cjs/visitors/transformers/SetLeafWrappersVisitor.js +43 -0
  172. package/dist/cjs/visitors/transformers/SetLeafWrappersVisitor.js.map +1 -0
  173. package/dist/cjs/visitors/transformers/SetMissingDefinedTypesVisitor.js +85 -0
  174. package/dist/cjs/visitors/transformers/SetMissingDefinedTypesVisitor.js.map +1 -0
  175. package/dist/cjs/visitors/transformers/SetStructDefaultValuesVisitor.js +62 -0
  176. package/dist/cjs/visitors/transformers/SetStructDefaultValuesVisitor.js.map +1 -0
  177. package/dist/cjs/visitors/transformers/TransformNodesVisitor.js +156 -0
  178. package/dist/cjs/visitors/transformers/TransformNodesVisitor.js.map +1 -0
  179. package/dist/cjs/visitors/transformers/TransformU8ArraysToBytesVisitor.js +49 -0
  180. package/dist/cjs/visitors/transformers/TransformU8ArraysToBytesVisitor.js.map +1 -0
  181. package/dist/cjs/visitors/transformers/UnwrapDefinedTypesVisitor.js +69 -0
  182. package/dist/cjs/visitors/transformers/UnwrapDefinedTypesVisitor.js.map +1 -0
  183. package/dist/cjs/visitors/transformers/UnwrapInstructionArgsDefinedTypesVisitor.js +59 -0
  184. package/dist/cjs/visitors/transformers/UnwrapInstructionArgsDefinedTypesVisitor.js.map +1 -0
  185. package/dist/cjs/visitors/transformers/UnwrapInstructionArgsStructVisitor.js +44 -0
  186. package/dist/cjs/visitors/transformers/UnwrapInstructionArgsStructVisitor.js.map +1 -0
  187. package/dist/cjs/visitors/transformers/UnwrapStructVisitor.js +74 -0
  188. package/dist/cjs/visitors/transformers/UnwrapStructVisitor.js.map +1 -0
  189. package/dist/cjs/visitors/transformers/UpdateAccountsVisitor.js +57 -0
  190. package/dist/cjs/visitors/transformers/UpdateAccountsVisitor.js.map +1 -0
  191. package/dist/cjs/visitors/transformers/UpdateDefinedTypesVisitor.js +72 -0
  192. package/dist/cjs/visitors/transformers/UpdateDefinedTypesVisitor.js.map +1 -0
  193. package/dist/cjs/visitors/transformers/UpdateErrorsVisitor.js +50 -0
  194. package/dist/cjs/visitors/transformers/UpdateErrorsVisitor.js.map +1 -0
  195. package/dist/cjs/visitors/transformers/UpdateInstructionsVisitor.js +97 -0
  196. package/dist/cjs/visitors/transformers/UpdateInstructionsVisitor.js.map +1 -0
  197. package/dist/cjs/visitors/transformers/UpdateProgramsVisitor.js +49 -0
  198. package/dist/cjs/visitors/transformers/UpdateProgramsVisitor.js.map +1 -0
  199. package/dist/cjs/visitors/transformers/_renameHelpers.js +49 -0
  200. package/dist/cjs/visitors/transformers/_renameHelpers.js.map +1 -0
  201. package/dist/cjs/visitors/transformers/index.js +39 -0
  202. package/dist/cjs/visitors/transformers/index.js.map +1 -0
  203. package/dist/cjs/visitors/workers/ConsoleLogVisitor.js +12 -0
  204. package/dist/cjs/visitors/workers/ConsoleLogVisitor.js.map +1 -0
  205. package/dist/cjs/visitors/workers/ThrowValidatorItemsVisitor.js +38 -0
  206. package/dist/cjs/visitors/workers/ThrowValidatorItemsVisitor.js.map +1 -0
  207. package/dist/cjs/visitors/workers/index.js +19 -0
  208. package/dist/cjs/visitors/workers/index.js.map +1 -0
  209. package/dist/types/Kinobi.d.ts +9 -0
  210. package/dist/types/idl/Idl.d.ts +18 -0
  211. package/dist/types/idl/IdlAccount.d.ts +19 -0
  212. package/dist/types/idl/IdlDefinedType.d.ts +6 -0
  213. package/dist/types/idl/IdlError.d.ts +6 -0
  214. package/dist/types/idl/IdlInstruction.d.ts +25 -0
  215. package/dist/types/idl/IdlType.d.ts +60 -0
  216. package/dist/types/idl/index.d.ts +6 -0
  217. package/dist/types/index.d.ts +5 -0
  218. package/dist/types/logs.d.ts +9 -0
  219. package/dist/types/nodes/AccountNode.d.ts +51 -0
  220. package/dist/types/nodes/DefinedTypeNode.d.ts +24 -0
  221. package/dist/types/nodes/ErrorNode.d.ts +21 -0
  222. package/dist/types/nodes/InstructionNode.d.ts +88 -0
  223. package/dist/types/nodes/Node.d.ts +12 -0
  224. package/dist/types/nodes/ProgramNode.d.ts +31 -0
  225. package/dist/types/nodes/RootNode.d.ts +23 -0
  226. package/dist/types/nodes/TypeArrayNode.d.ts +14 -0
  227. package/dist/types/nodes/TypeDefinedLinkNode.d.ts +12 -0
  228. package/dist/types/nodes/TypeEnumEmptyVariantNode.d.ts +12 -0
  229. package/dist/types/nodes/TypeEnumNode.d.ts +16 -0
  230. package/dist/types/nodes/TypeEnumStructVariantNode.d.ts +14 -0
  231. package/dist/types/nodes/TypeEnumTupleVariantNode.d.ts +14 -0
  232. package/dist/types/nodes/TypeEnumVariantNode.d.ts +7 -0
  233. package/dist/types/nodes/TypeLeafNode.d.ts +18 -0
  234. package/dist/types/nodes/TypeLeafWrapperNode.d.ts +21 -0
  235. package/dist/types/nodes/TypeMapNode.d.ts +15 -0
  236. package/dist/types/nodes/TypeNode.d.ts +19 -0
  237. package/dist/types/nodes/TypeOptionNode.d.ts +14 -0
  238. package/dist/types/nodes/TypeSetNode.d.ts +14 -0
  239. package/dist/types/nodes/TypeStructFieldNode.d.ts +24 -0
  240. package/dist/types/nodes/TypeStructNode.d.ts +14 -0
  241. package/dist/types/nodes/TypeTupleNode.d.ts +13 -0
  242. package/dist/types/nodes/TypeVecNode.d.ts +13 -0
  243. package/dist/types/nodes/ValueNode.d.ts +59 -0
  244. package/dist/types/nodes/index.d.ts +25 -0
  245. package/dist/types/renderers/RenderMap.d.ts +8 -0
  246. package/dist/types/renderers/WriteRenderMapVisitor.d.ts +8 -0
  247. package/dist/types/renderers/index.d.ts +4 -0
  248. package/dist/types/renderers/js/GetJavaScriptRenderMapVisitor.d.ts +34 -0
  249. package/dist/types/renderers/js/GetJavaScriptTypeManifestVisitor.d.ts +44 -0
  250. package/dist/types/renderers/js/GetJavaScriptValidatorBagVisitor.d.ts +19 -0
  251. package/dist/types/renderers/js/JavaScriptImportMap.d.ts +11 -0
  252. package/dist/types/renderers/js/RenderJavaScriptValueNode.d.ts +6 -0
  253. package/dist/types/renderers/js/RenderJavaScriptVisitor.d.ts +14 -0
  254. package/dist/types/renderers/js/index.d.ts +6 -0
  255. package/dist/types/renderers/utils.d.ts +5 -0
  256. package/dist/types/utils.d.ts +8 -0
  257. package/dist/types/visitors/BaseDelegateVisitor.d.ts +28 -0
  258. package/dist/types/visitors/BaseNodeOrNullVisitor.d.ts +25 -0
  259. package/dist/types/visitors/BaseNodeVisitor.d.ts +25 -0
  260. package/dist/types/visitors/BaseThrowVisitor.d.ts +25 -0
  261. package/dist/types/visitors/BaseVoidVisitor.d.ts +25 -0
  262. package/dist/types/visitors/DefaultVisitor.d.ts +5 -0
  263. package/dist/types/visitors/Dependency.d.ts +17 -0
  264. package/dist/types/visitors/NodeSelector.d.ts +11 -0
  265. package/dist/types/visitors/NodeStack.d.ts +14 -0
  266. package/dist/types/visitors/ValidatorBag.d.ts +22 -0
  267. package/dist/types/visitors/Visitable.d.ts +4 -0
  268. package/dist/types/visitors/Visitor.d.ts +24 -0
  269. package/dist/types/visitors/aggregators/GetByteSizeVisitor.d.ts +27 -0
  270. package/dist/types/visitors/aggregators/GetDefaultValidatorBagVisitor.d.ts +32 -0
  271. package/dist/types/visitors/aggregators/GetDefinedTypeHistogramVisitor.d.ts +37 -0
  272. package/dist/types/visitors/aggregators/GetNodeInlineStringVisitor.d.ts +25 -0
  273. package/dist/types/visitors/aggregators/GetNodeTreeStringVisitor.d.ts +29 -0
  274. package/dist/types/visitors/aggregators/GetResolvedInstructionAccountsVisitor.d.ts +19 -0
  275. package/dist/types/visitors/aggregators/index.d.ts +6 -0
  276. package/dist/types/visitors/index.d.ts +14 -0
  277. package/dist/types/visitors/transformers/AutoSetAnchorDiscriminatorsVisitor.d.ts +8 -0
  278. package/dist/types/visitors/transformers/AutoSetFixedAccountSizesVisitor.d.ts +5 -0
  279. package/dist/types/visitors/transformers/CreateSubInstructionsFromEnumArgsVisitor.d.ts +8 -0
  280. package/dist/types/visitors/transformers/DeduplicateIdenticalDefinedTypesVisitor.d.ts +5 -0
  281. package/dist/types/visitors/transformers/DeleteNodesVisitor.d.ts +5 -0
  282. package/dist/types/visitors/transformers/SetAccountDiscriminatorFromFieldVisitor.d.ts +12 -0
  283. package/dist/types/visitors/transformers/SetInstructionAccountDefaultValuesVisitor.d.ts +27 -0
  284. package/dist/types/visitors/transformers/SetInstructionDiscriminatorsVisitor.d.ts +18 -0
  285. package/dist/types/visitors/transformers/SetLeafWrappersVisitor.d.ts +8 -0
  286. package/dist/types/visitors/transformers/SetMissingDefinedTypesVisitor.d.ts +7 -0
  287. package/dist/types/visitors/transformers/SetStructDefaultValuesVisitor.d.ts +11 -0
  288. package/dist/types/visitors/transformers/TransformNodesVisitor.d.ts +37 -0
  289. package/dist/types/visitors/transformers/TransformU8ArraysToBytesVisitor.d.ts +8 -0
  290. package/dist/types/visitors/transformers/UnwrapDefinedTypesVisitor.d.ts +11 -0
  291. package/dist/types/visitors/transformers/UnwrapInstructionArgsDefinedTypesVisitor.d.ts +5 -0
  292. package/dist/types/visitors/transformers/UnwrapInstructionArgsStructVisitor.d.ts +4 -0
  293. package/dist/types/visitors/transformers/UnwrapStructVisitor.d.ts +8 -0
  294. package/dist/types/visitors/transformers/UpdateAccountsVisitor.d.ts +11 -0
  295. package/dist/types/visitors/transformers/UpdateDefinedTypesVisitor.d.ts +11 -0
  296. package/dist/types/visitors/transformers/UpdateErrorsVisitor.d.ts +12 -0
  297. package/dist/types/visitors/transformers/UpdateInstructionsVisitor.d.ts +41 -0
  298. package/dist/types/visitors/transformers/UpdateProgramsVisitor.d.ts +9 -0
  299. package/dist/types/visitors/transformers/_renameHelpers.d.ts +3 -0
  300. package/dist/types/visitors/transformers/index.d.ts +22 -0
  301. package/dist/types/visitors/workers/ConsoleLogVisitor.d.ts +4 -0
  302. package/dist/types/visitors/workers/ThrowValidatorItemsVisitor.d.ts +9 -0
  303. package/dist/types/visitors/workers/index.d.ts +2 -0
  304. package/package.json +72 -0
  305. package/src/Kinobi.ts +28 -0
  306. package/src/idl/Idl.ts +19 -0
  307. package/src/idl/IdlAccount.ts +14 -0
  308. package/src/idl/IdlDefinedType.ts +7 -0
  309. package/src/idl/IdlError.ts +6 -0
  310. package/src/idl/IdlInstruction.ts +29 -0
  311. package/src/idl/IdlType.ts +72 -0
  312. package/src/idl/index.ts +6 -0
  313. package/src/index.ts +5 -0
  314. package/src/logs.ts +77 -0
  315. package/src/nodes/AccountNode.ts +126 -0
  316. package/src/nodes/DefinedTypeNode.ts +69 -0
  317. package/src/nodes/ErrorNode.ts +57 -0
  318. package/src/nodes/InstructionNode.ts +215 -0
  319. package/src/nodes/Node.ts +40 -0
  320. package/src/nodes/ProgramNode.ts +101 -0
  321. package/src/nodes/RootNode.ts +64 -0
  322. package/src/nodes/TypeArrayNode.ts +40 -0
  323. package/src/nodes/TypeDefinedLinkNode.ts +40 -0
  324. package/src/nodes/TypeEnumEmptyVariantNode.ts +38 -0
  325. package/src/nodes/TypeEnumNode.ts +67 -0
  326. package/src/nodes/TypeEnumStructVariantNode.ts +50 -0
  327. package/src/nodes/TypeEnumTupleVariantNode.ts +46 -0
  328. package/src/nodes/TypeEnumVariantNode.ts +32 -0
  329. package/src/nodes/TypeLeafNode.ts +73 -0
  330. package/src/nodes/TypeLeafWrapperNode.ts +41 -0
  331. package/src/nodes/TypeMapNode.ts +48 -0
  332. package/src/nodes/TypeNode.ts +138 -0
  333. package/src/nodes/TypeOptionNode.ts +41 -0
  334. package/src/nodes/TypeSetNode.ts +39 -0
  335. package/src/nodes/TypeStructFieldNode.ts +63 -0
  336. package/src/nodes/TypeStructNode.ts +43 -0
  337. package/src/nodes/TypeTupleNode.ts +36 -0
  338. package/src/nodes/TypeVecNode.ts +34 -0
  339. package/src/nodes/ValueNode.ts +92 -0
  340. package/src/nodes/index.ts +25 -0
  341. package/src/renderers/RenderMap.ts +34 -0
  342. package/src/renderers/WriteRenderMapVisitor.ts +15 -0
  343. package/src/renderers/index.ts +4 -0
  344. package/src/renderers/js/GetJavaScriptRenderMapVisitor.ts +437 -0
  345. package/src/renderers/js/GetJavaScriptTypeManifestVisitor.ts +522 -0
  346. package/src/renderers/js/GetJavaScriptValidatorBagVisitor.ts +202 -0
  347. package/src/renderers/js/JavaScriptImportMap.ts +89 -0
  348. package/src/renderers/js/RenderJavaScriptValueNode.ts +110 -0
  349. package/src/renderers/js/RenderJavaScriptVisitor.ts +45 -0
  350. package/src/renderers/js/index.ts +6 -0
  351. package/src/renderers/js/templates/accountsIndex.njk +9 -0
  352. package/src/renderers/js/templates/accountsPage.njk +122 -0
  353. package/src/renderers/js/templates/definedTypesIndex.njk +9 -0
  354. package/src/renderers/js/templates/definedTypesPage.njk +13 -0
  355. package/src/renderers/js/templates/definedTypesPageDataEnums.njk +26 -0
  356. package/src/renderers/js/templates/errorsIndex.njk +9 -0
  357. package/src/renderers/js/templates/errorsPage.njk +43 -0
  358. package/src/renderers/js/templates/instructionsIndex.njk +9 -0
  359. package/src/renderers/js/templates/instructionsPage.njk +71 -0
  360. package/src/renderers/js/templates/instructionsPageAccountMetas.njk +61 -0
  361. package/src/renderers/js/templates/instructionsPageAccounts.njk +12 -0
  362. package/src/renderers/js/templates/instructionsPageArgs.njk +7 -0
  363. package/src/renderers/js/templates/layout.njk +9 -0
  364. package/src/renderers/js/templates/macros.njk +40 -0
  365. package/src/renderers/js/templates/programsIndex.njk +9 -0
  366. package/src/renderers/js/templates/programsPage.njk +23 -0
  367. package/src/renderers/js/templates/rootIndex.njk +23 -0
  368. package/src/renderers/utils.ts +46 -0
  369. package/src/utils.ts +41 -0
  370. package/src/visitors/BaseDelegateVisitor.ts +98 -0
  371. package/src/visitors/BaseNodeOrNullVisitor.ts +202 -0
  372. package/src/visitors/BaseNodeVisitor.ts +173 -0
  373. package/src/visitors/BaseThrowVisitor.ts +101 -0
  374. package/src/visitors/BaseVoidVisitor.ts +104 -0
  375. package/src/visitors/DefaultVisitor.ts +45 -0
  376. package/src/visitors/Dependency.ts +23 -0
  377. package/src/visitors/NodeSelector.ts +82 -0
  378. package/src/visitors/NodeStack.ts +109 -0
  379. package/src/visitors/ValidatorBag.ts +90 -0
  380. package/src/visitors/Visitable.ts +5 -0
  381. package/src/visitors/Visitor.ts +36 -0
  382. package/src/visitors/aggregators/GetByteSizeVisitor.ts +167 -0
  383. package/src/visitors/aggregators/GetDefaultValidatorBagVisitor.ts +332 -0
  384. package/src/visitors/aggregators/GetDefinedTypeHistogramVisitor.ts +213 -0
  385. package/src/visitors/aggregators/GetNodeInlineStringVisitor.ts +140 -0
  386. package/src/visitors/aggregators/GetNodeTreeStringVisitor.ts +260 -0
  387. package/src/visitors/aggregators/GetResolvedInstructionAccountsVisitor.ts +153 -0
  388. package/src/visitors/aggregators/index.ts +6 -0
  389. package/src/visitors/index.ts +15 -0
  390. package/src/visitors/transformers/AutoSetAnchorDiscriminatorsVisitor.ts +90 -0
  391. package/src/visitors/transformers/AutoSetFixedAccountSizesVisitor.ts +31 -0
  392. package/src/visitors/transformers/CreateSubInstructionsFromEnumArgsVisitor.ts +117 -0
  393. package/src/visitors/transformers/DeduplicateIdenticalDefinedTypesVisitor.ts +72 -0
  394. package/src/visitors/transformers/DeleteNodesVisitor.ts +13 -0
  395. package/src/visitors/transformers/SetAccountDiscriminatorFromFieldVisitor.ts +52 -0
  396. package/src/visitors/transformers/SetInstructionAccountDefaultValuesVisitor.ts +236 -0
  397. package/src/visitors/transformers/SetInstructionDiscriminatorsVisitor.ts +54 -0
  398. package/src/visitors/transformers/SetLeafWrappersVisitor.ts +20 -0
  399. package/src/visitors/transformers/SetMissingDefinedTypesVisitor.ts +73 -0
  400. package/src/visitors/transformers/SetStructDefaultValuesVisitor.ts +45 -0
  401. package/src/visitors/transformers/TransformNodesVisitor.ts +215 -0
  402. package/src/visitors/transformers/TransformU8ArraysToBytesVisitor.ts +27 -0
  403. package/src/visitors/transformers/UnwrapDefinedTypesVisitor.ts +65 -0
  404. package/src/visitors/transformers/UnwrapInstructionArgsDefinedTypesVisitor.ts +35 -0
  405. package/src/visitors/transformers/UnwrapInstructionArgsStructVisitor.ts +22 -0
  406. package/src/visitors/transformers/UnwrapStructVisitor.ts +62 -0
  407. package/src/visitors/transformers/UpdateAccountsVisitor.ts +45 -0
  408. package/src/visitors/transformers/UpdateDefinedTypesVisitor.ts +71 -0
  409. package/src/visitors/transformers/UpdateErrorsVisitor.ts +41 -0
  410. package/src/visitors/transformers/UpdateInstructionsVisitor.ts +135 -0
  411. package/src/visitors/transformers/UpdateProgramsVisitor.ts +39 -0
  412. package/src/visitors/transformers/_renameHelpers.ts +47 -0
  413. package/src/visitors/transformers/index.ts +22 -0
  414. package/src/visitors/workers/ConsoleLogVisitor.ts +8 -0
  415. package/src/visitors/workers/ThrowValidatorItemsVisitor.ts +42 -0
  416. package/src/visitors/workers/index.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramNode.js","sourceRoot":"","sources":["../../../src/nodes/ProgramNode.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AAGpC,+CAA4C;AAC5C,uDAAoD;AACpD,2CAAwC;AACxC,uDAAoD;AAapD,MAAa,WAAW;IAatB,YACE,QAA6B,EAC7B,QAAuB,EACvB,YAA+B,EAC/B,YAA+B,EAC/B,MAAmB;QAjBZ,cAAS,GAAG,aAAsB,CAAC;QAmB1C,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,QAAQ;YACX,IAAI,EAAE,IAAA,gBAAQ,EAAC,QAAQ,CAAC,IAAI,CAAC;YAC7B,MAAM,EAAE,IAAA,gBAAQ,EAAC,QAAQ,CAAC,MAAM,CAAC;SAClC,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAiB;;QAC9B,MAAM,QAAQ,GAAG,CAAC,MAAA,GAAG,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,CAAC,MAAA,GAAG,CAAC,YAAY,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,iCAAe,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,CAAC,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,iCAAe,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,CAAC,MAAA,GAAG,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,qBAAS,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE;YACpB,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,MAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,OAAO,mCAAI,EAAE;YACtC,OAAO,EAAE,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE;YAC1B,MAAM,EAAE,MAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,MAAM,mCAAI,IAAI;YACpC,GAAG;YACH,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,OAAO,IAAI,WAAW,CACpB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,MAAM,CACP,CAAC;IACJ,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAChD,WAAW;YACX,GAAG,WAAW,CAAC,qBAAqB,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;CACF;AArED,kCAqEC;AAED,SAAgB,aAAa,CAAC,IAAiB;IAC7C,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC;AACpD,CAAC;AAFD,sCAEC;AAED,SAAgB,iBAAiB,CAC/B,IAAiB;;IAEjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAAC,CAAC;KAC5E;AACH,CAAC;AAND,8CAMC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertRootNode = exports.isRootNode = exports.RootNode = void 0;
4
+ const utils_1 = require("../utils");
5
+ const ProgramNode_1 = require("./ProgramNode");
6
+ class RootNode {
7
+ constructor(programs) {
8
+ this.nodeClass = 'RootNode';
9
+ this.programs = programs;
10
+ }
11
+ static fromIdls(idls) {
12
+ const programs = idls.map((idl) => ProgramNode_1.ProgramNode.fromIdl(idl));
13
+ return new RootNode(programs);
14
+ }
15
+ static fromProgramInputs(inputs) {
16
+ const inputArray = Array.isArray(inputs) ? inputs : [inputs];
17
+ const idlArray = inputArray.map((program) => typeof program === 'string' ? (0, utils_1.readJson)(program) : program);
18
+ return RootNode.fromIdls(idlArray);
19
+ }
20
+ accept(visitor) {
21
+ return visitor.visitRoot(this);
22
+ }
23
+ get allAccounts() {
24
+ return this.programs.flatMap((program) => program.accounts);
25
+ }
26
+ get allInstructions() {
27
+ return this.programs.flatMap((program) => program.instructions);
28
+ }
29
+ get allInstructionsWithSubs() {
30
+ return this.programs.flatMap((program) => program.instructionsWithSubs);
31
+ }
32
+ get allDefinedTypes() {
33
+ return this.programs.flatMap((program) => program.definedTypes);
34
+ }
35
+ }
36
+ exports.RootNode = RootNode;
37
+ function isRootNode(node) {
38
+ return !!node && node.nodeClass === 'RootNode';
39
+ }
40
+ exports.isRootNode = isRootNode;
41
+ function assertRootNode(node) {
42
+ var _a;
43
+ if (!isRootNode(node)) {
44
+ throw new Error(`Expected RootNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
45
+ }
46
+ }
47
+ exports.assertRootNode = assertRootNode;
48
+ //# sourceMappingURL=RootNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RootNode.js","sourceRoot":"","sources":["../../../src/nodes/RootNode.ts"],"names":[],"mappings":";;;AACA,oCAAoC;AAMpC,+CAA4C;AAK5C,MAAa,QAAQ;IAKnB,YAAY,QAAuB;QAJ1B,cAAS,GAAG,UAAmB,CAAC;QAKvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAoB;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,yBAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,MAAqB;QAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1C,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,gBAAQ,EAAe,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CACxE,CAAC;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,uBAAuB;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC;CACF;AAzCD,4BAyCC;AAED,SAAgB,UAAU,CAAC,IAAiB;IAC1C,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC;AACjD,CAAC;AAFD,gCAEC;AAED,SAAgB,cAAc,CAAC,IAAiB;;IAC9C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAAC,CAAC;KACzE;AACH,CAAC;AAJD,wCAIC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeArrayNode = exports.isTypeArrayNode = exports.TypeArrayNode = void 0;
4
+ const TypeNode_1 = require("./TypeNode");
5
+ class TypeArrayNode {
6
+ constructor(itemType, size) {
7
+ this.nodeClass = 'TypeArrayNode';
8
+ this.itemType = itemType;
9
+ this.size = size;
10
+ }
11
+ static fromIdl(idl) {
12
+ const itemType = (0, TypeNode_1.createTypeNodeFromIdl)(idl.array[0]);
13
+ return new TypeArrayNode(itemType, idl.array[1]);
14
+ }
15
+ accept(visitor) {
16
+ return visitor.visitTypeArray(this);
17
+ }
18
+ }
19
+ exports.TypeArrayNode = TypeArrayNode;
20
+ function isTypeArrayNode(node) {
21
+ return !!node && node.nodeClass === 'TypeArrayNode';
22
+ }
23
+ exports.isTypeArrayNode = isTypeArrayNode;
24
+ function assertTypeArrayNode(node) {
25
+ var _a;
26
+ if (!isTypeArrayNode(node)) {
27
+ throw new Error(`Expected TypeArrayNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
28
+ }
29
+ }
30
+ exports.assertTypeArrayNode = assertTypeArrayNode;
31
+ //# sourceMappingURL=TypeArrayNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeArrayNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeArrayNode.ts"],"names":[],"mappings":";;;AAGA,yCAA6D;AAE7D,MAAa,aAAa;IAOxB,YAAY,QAAkB,EAAE,IAAY;QANnC,cAAS,GAAG,eAAwB,CAAC;QAO5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAiB;QAC9B,MAAM,QAAQ,GAAG,IAAA,gCAAqB,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AApBD,sCAoBC;AAED,SAAgB,eAAe,CAAC,IAAiB;IAC/C,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,eAAe,CAAC;AACtD,CAAC;AAFD,0CAEC;AAED,SAAgB,mBAAmB,CACjC,IAAiB;;IAEjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAC5D,CAAC;KACH;AACH,CAAC;AARD,kDAQC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeDefinedLinkNode = exports.isTypeDefinedLinkNode = exports.TypeDefinedLinkNode = void 0;
4
+ const utils_1 = require("../utils");
5
+ class TypeDefinedLinkNode {
6
+ constructor(definedType, dependency = null) {
7
+ this.nodeClass = 'TypeDefinedLinkNode';
8
+ this.definedType = (0, utils_1.mainCase)(definedType);
9
+ this.dependency = dependency;
10
+ }
11
+ accept(visitor) {
12
+ return visitor.visitTypeDefinedLink(this);
13
+ }
14
+ get name() {
15
+ return this.definedType;
16
+ }
17
+ }
18
+ exports.TypeDefinedLinkNode = TypeDefinedLinkNode;
19
+ function isTypeDefinedLinkNode(node) {
20
+ return !!node && node.nodeClass === 'TypeDefinedLinkNode';
21
+ }
22
+ exports.isTypeDefinedLinkNode = isTypeDefinedLinkNode;
23
+ function assertTypeDefinedLinkNode(node) {
24
+ var _a;
25
+ if (!isTypeDefinedLinkNode(node)) {
26
+ throw new Error(`Expected TypeDefinedLinkNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
27
+ }
28
+ }
29
+ exports.assertTypeDefinedLinkNode = assertTypeDefinedLinkNode;
30
+ //# sourceMappingURL=TypeDefinedLinkNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeDefinedLinkNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeDefinedLinkNode.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AAIpC,MAAa,mBAAmB;IAO9B,YAAY,WAAmB,EAAE,aAAgC,IAAI;QAN5D,cAAS,GAAG,qBAA8B,CAAC;QAOlD,IAAI,CAAC,WAAW,GAAG,IAAA,gBAAQ,EAAC,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAnBD,kDAmBC;AAED,SAAgB,qBAAqB,CACnC,IAAiB;IAEjB,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,qBAAqB,CAAC;AAC5D,CAAC;AAJD,sDAIC;AAED,SAAgB,yBAAyB,CACvC,IAAiB;;IAEjB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAClE,CAAC;KACH;AACH,CAAC;AARD,8DAQC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeEnumEmptyVariantNode = exports.isTypeEnumEmptyVariantNode = exports.TypeEnumEmptyVariantNode = void 0;
4
+ const utils_1 = require("../utils");
5
+ class TypeEnumEmptyVariantNode {
6
+ constructor(name) {
7
+ this.nodeClass = 'TypeEnumEmptyVariantNode';
8
+ this.name = (0, utils_1.mainCase)(name);
9
+ }
10
+ static fromIdl(idl) {
11
+ var _a;
12
+ return new TypeEnumEmptyVariantNode((_a = idl.name) !== null && _a !== void 0 ? _a : '');
13
+ }
14
+ accept(visitor) {
15
+ return visitor.visitTypeEnumEmptyVariant(this);
16
+ }
17
+ }
18
+ exports.TypeEnumEmptyVariantNode = TypeEnumEmptyVariantNode;
19
+ function isTypeEnumEmptyVariantNode(node) {
20
+ return !!node && node.nodeClass === 'TypeEnumEmptyVariantNode';
21
+ }
22
+ exports.isTypeEnumEmptyVariantNode = isTypeEnumEmptyVariantNode;
23
+ function assertTypeEnumEmptyVariantNode(node) {
24
+ var _a;
25
+ if (!isTypeEnumEmptyVariantNode(node)) {
26
+ throw new Error(`Expected TypeEnumEmptyVariantNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
27
+ }
28
+ }
29
+ exports.assertTypeEnumEmptyVariantNode = assertTypeEnumEmptyVariantNode;
30
+ //# sourceMappingURL=TypeEnumEmptyVariantNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeEnumEmptyVariantNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeEnumEmptyVariantNode.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AAKpC,MAAa,wBAAwB;IAKnC,YAAY,IAAY;QAJf,cAAS,GAAG,0BAAmC,CAAC;QAKvD,IAAI,CAAC,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAuB;;QACpC,OAAO,IAAI,wBAAwB,CAAC,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;CACF;AAhBD,4DAgBC;AAED,SAAgB,0BAA0B,CACxC,IAAiB;IAEjB,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,0BAA0B,CAAC;AACjE,CAAC;AAJD,gEAIC;AAED,SAAgB,8BAA8B,CAC5C,IAAiB;;IAEjB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CACvE,CAAC;KACH;AACH,CAAC;AARD,wEAQC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeEnumNode = exports.isTypeEnumNode = exports.TypeEnumNode = void 0;
4
+ const utils_1 = require("../utils");
5
+ const TypeEnumEmptyVariantNode_1 = require("./TypeEnumEmptyVariantNode");
6
+ const TypeEnumStructVariantNode_1 = require("./TypeEnumStructVariantNode");
7
+ const TypeEnumTupleVariantNode_1 = require("./TypeEnumTupleVariantNode");
8
+ class TypeEnumNode {
9
+ constructor(name, variants) {
10
+ this.nodeClass = 'TypeEnumNode';
11
+ this.name = (0, utils_1.mainCase)(name);
12
+ this.variants = variants;
13
+ }
14
+ static fromIdl(idl) {
15
+ var _a;
16
+ const variants = idl.variants.map((variant) => {
17
+ if (!variant.fields || variant.fields.length <= 0) {
18
+ return TypeEnumEmptyVariantNode_1.TypeEnumEmptyVariantNode.fromIdl(variant);
19
+ }
20
+ if (isStructField(variant.fields[0])) {
21
+ return TypeEnumStructVariantNode_1.TypeEnumStructVariantNode.fromIdl(variant);
22
+ }
23
+ return TypeEnumTupleVariantNode_1.TypeEnumTupleVariantNode.fromIdl(variant);
24
+ });
25
+ return new TypeEnumNode((_a = idl.name) !== null && _a !== void 0 ? _a : '', variants);
26
+ }
27
+ accept(visitor) {
28
+ return visitor.visitTypeEnum(this);
29
+ }
30
+ isScalarEnum() {
31
+ return this.variants.every((variant) => variant.nodeClass === 'TypeEnumEmptyVariantNode');
32
+ }
33
+ isDataEnum() {
34
+ return !this.isScalarEnum();
35
+ }
36
+ }
37
+ exports.TypeEnumNode = TypeEnumNode;
38
+ function isTypeEnumNode(node) {
39
+ return !!node && node.nodeClass === 'TypeEnumNode';
40
+ }
41
+ exports.isTypeEnumNode = isTypeEnumNode;
42
+ function assertTypeEnumNode(node) {
43
+ var _a;
44
+ if (!isTypeEnumNode(node)) {
45
+ throw new Error(`Expected TypeEnumNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
46
+ }
47
+ }
48
+ exports.assertTypeEnumNode = assertTypeEnumNode;
49
+ function isStructField(field) {
50
+ return typeof field === 'object' && 'name' in field && 'type' in field;
51
+ }
52
+ //# sourceMappingURL=TypeEnumNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeEnumNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeEnumNode.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AAIpC,yEAAsE;AACtE,2EAAwE;AACxE,yEAAsE;AAGtE,MAAa,YAAY;IAOvB,YAAY,IAAY,EAAE,QAA+B;QANhD,cAAS,GAAG,cAAuB,CAAC;QAO3C,IAAI,CAAC,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAgB;;QAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAuB,EAAE;YACjE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBACjD,OAAO,mDAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aAClD;YAED,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpC,OAAO,qDAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACnD;YAED,OAAO,mDAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,YAAY,CAAC,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CACxB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,0BAA0B,CAC9D,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC;CACF;AAzCD,oCAyCC;AAED,SAAgB,cAAc,CAAC,IAAiB;IAC9C,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,cAAc,CAAC;AACrD,CAAC;AAFD,wCAEC;AAED,SAAgB,kBAAkB,CAChC,IAAiB;;IAEjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAAC,CAAC;KAC7E;AACH,CAAC;AAND,gDAMC;AAED,SAAS,aAAa,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AACzE,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeEnumStructVariantNode = exports.isTypeEnumStructVariantNode = exports.TypeEnumStructVariantNode = void 0;
4
+ const utils_1 = require("../utils");
5
+ const TypeStructNode_1 = require("./TypeStructNode");
6
+ class TypeEnumStructVariantNode {
7
+ constructor(name, struct) {
8
+ this.nodeClass = 'TypeEnumStructVariantNode';
9
+ this.name = (0, utils_1.mainCase)(name);
10
+ this.struct = struct;
11
+ }
12
+ static fromIdl(idl) {
13
+ var _a;
14
+ const name = (_a = idl.name) !== null && _a !== void 0 ? _a : '';
15
+ return new TypeEnumStructVariantNode(name, TypeStructNode_1.TypeStructNode.fromIdl({
16
+ kind: 'struct',
17
+ name,
18
+ fields: idl.fields,
19
+ }));
20
+ }
21
+ accept(visitor) {
22
+ return visitor.visitTypeEnumStructVariant(this);
23
+ }
24
+ }
25
+ exports.TypeEnumStructVariantNode = TypeEnumStructVariantNode;
26
+ function isTypeEnumStructVariantNode(node) {
27
+ return !!node && node.nodeClass === 'TypeEnumStructVariantNode';
28
+ }
29
+ exports.isTypeEnumStructVariantNode = isTypeEnumStructVariantNode;
30
+ function assertTypeEnumStructVariantNode(node) {
31
+ var _a;
32
+ if (!isTypeEnumStructVariantNode(node)) {
33
+ throw new Error(`Expected TypeEnumStructVariantNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
34
+ }
35
+ }
36
+ exports.assertTypeEnumStructVariantNode = assertTypeEnumStructVariantNode;
37
+ //# sourceMappingURL=TypeEnumStructVariantNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeEnumStructVariantNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeEnumStructVariantNode.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AAIpC,qDAAkD;AAElD,MAAa,yBAAyB;IAOpC,YAAY,IAAY,EAAE,MAAsB;QANvC,cAAS,GAAG,2BAAoC,CAAC;QAOxD,IAAI,CAAC,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAuB;;QACpC,MAAM,IAAI,GAAG,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,yBAAyB,CAClC,IAAI,EACJ,+BAAc,CAAC,OAAO,CAAC;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI;YACJ,MAAM,EAAE,GAAG,CAAC,MAA4B;SACzC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CACF;AA3BD,8DA2BC;AAED,SAAgB,2BAA2B,CACzC,IAAiB;IAEjB,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,2BAA2B,CAAC;AAClE,CAAC;AAJD,kEAIC;AAED,SAAgB,+BAA+B,CAC7C,IAAiB;;IAEjB,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,2CAA2C,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CACxE,CAAC;KACH;AACH,CAAC;AARD,0EAQC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeEnumTupleVariantNode = exports.isTypeEnumTupleVariantNode = exports.TypeEnumTupleVariantNode = void 0;
4
+ const utils_1 = require("../utils");
5
+ const TypeTupleNode_1 = require("./TypeTupleNode");
6
+ class TypeEnumTupleVariantNode {
7
+ constructor(name, tuple) {
8
+ this.nodeClass = 'TypeEnumTupleVariantNode';
9
+ this.name = (0, utils_1.mainCase)(name);
10
+ this.tuple = tuple;
11
+ }
12
+ static fromIdl(idl) {
13
+ var _a;
14
+ const name = (_a = idl.name) !== null && _a !== void 0 ? _a : '';
15
+ return new TypeEnumTupleVariantNode(name, TypeTupleNode_1.TypeTupleNode.fromIdl({ tuple: idl.fields }));
16
+ }
17
+ accept(visitor) {
18
+ return visitor.visitTypeEnumTupleVariant(this);
19
+ }
20
+ }
21
+ exports.TypeEnumTupleVariantNode = TypeEnumTupleVariantNode;
22
+ function isTypeEnumTupleVariantNode(node) {
23
+ return !!node && node.nodeClass === 'TypeEnumTupleVariantNode';
24
+ }
25
+ exports.isTypeEnumTupleVariantNode = isTypeEnumTupleVariantNode;
26
+ function assertTypeEnumTupleVariantNode(node) {
27
+ var _a;
28
+ if (!isTypeEnumTupleVariantNode(node)) {
29
+ throw new Error(`Expected TypeEnumTupleVariantNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
30
+ }
31
+ }
32
+ exports.assertTypeEnumTupleVariantNode = assertTypeEnumTupleVariantNode;
33
+ //# sourceMappingURL=TypeEnumTupleVariantNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeEnumTupleVariantNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeEnumTupleVariantNode.ts"],"names":[],"mappings":";;;AAAA,oCAAoC;AAIpC,mDAAgD;AAEhD,MAAa,wBAAwB;IAOnC,YAAY,IAAY,EAAE,KAAoB;QANrC,cAAS,GAAG,0BAAmC,CAAC;QAOvD,IAAI,CAAC,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAuB;;QACpC,MAAM,IAAI,GAAG,MAAA,GAAG,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,wBAAwB,CACjC,IAAI,EACJ,6BAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAmB,EAAE,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;CACF;AAvBD,4DAuBC;AAED,SAAgB,0BAA0B,CACxC,IAAiB;IAEjB,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,0BAA0B,CAAC;AACjE,CAAC;AAJD,gEAIC;AAED,SAAgB,8BAA8B,CAC5C,IAAiB;;IAEjB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CACvE,CAAC;KACH;AACH,CAAC;AARD,wEAQC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeEnumVariantNode = exports.isTypeEnumVariantNode = void 0;
4
+ function isTypeEnumVariantNode(node) {
5
+ return (!!node &&
6
+ [
7
+ 'TypeEnumEmptyVariantNode',
8
+ 'TypeEnumStructVariantNode',
9
+ 'TypeEnumTupleVariantNode',
10
+ ].includes(node.nodeClass));
11
+ }
12
+ exports.isTypeEnumVariantNode = isTypeEnumVariantNode;
13
+ function assertTypeEnumVariantNode(node) {
14
+ var _a;
15
+ if (!isTypeEnumVariantNode(node)) {
16
+ throw new Error(`Expected TypeEnumVariantNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
17
+ }
18
+ }
19
+ exports.assertTypeEnumVariantNode = assertTypeEnumVariantNode;
20
+ //# sourceMappingURL=TypeEnumVariantNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeEnumVariantNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeEnumVariantNode.ts"],"names":[],"mappings":";;;AAUA,SAAgB,qBAAqB,CACnC,IAAiB;IAEjB,OAAO,CACL,CAAC,CAAC,IAAI;QACN;YACE,0BAA0B;YAC1B,2BAA2B;YAC3B,0BAA0B;SAC3B,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAC3B,CAAC;AACJ,CAAC;AAXD,sDAWC;AAED,SAAgB,yBAAyB,CACvC,IAAiB;;IAEjB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAClE,CAAC;KACH;AACH,CAAC;AARD,8DAQC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeLeafNode = exports.isTypeLeafNode = exports.TypeLeafNode = exports.LEAF_TYPES = void 0;
4
+ exports.LEAF_TYPES = [
5
+ 'string',
6
+ 'publicKey',
7
+ 'bytes',
8
+ 'bool',
9
+ 'u8',
10
+ 'u16',
11
+ 'u32',
12
+ 'u64',
13
+ 'u128',
14
+ 'i8',
15
+ 'i16',
16
+ 'i32',
17
+ 'i64',
18
+ 'i128',
19
+ 'f32',
20
+ 'f64',
21
+ ];
22
+ class TypeLeafNode {
23
+ constructor(type) {
24
+ this.nodeClass = 'TypeLeafNode';
25
+ this.type = type;
26
+ }
27
+ static isValidType(type) {
28
+ return exports.LEAF_TYPES.includes(type);
29
+ }
30
+ accept(visitor) {
31
+ return visitor.visitTypeLeaf(this);
32
+ }
33
+ isSignedInteger() {
34
+ return ['i8', 'i16', 'i32', 'i64', 'i128'].includes(this.type);
35
+ }
36
+ isUnsignedInteger() {
37
+ return ['u8', 'u16', 'u32', 'u64', 'u128'].includes(this.type);
38
+ }
39
+ isInteger() {
40
+ return this.isSignedInteger() || this.isUnsignedInteger();
41
+ }
42
+ isDecimal() {
43
+ return ['f32', 'f64'].includes(this.type);
44
+ }
45
+ isNumber() {
46
+ return this.isInteger() || this.isDecimal();
47
+ }
48
+ }
49
+ exports.TypeLeafNode = TypeLeafNode;
50
+ function isTypeLeafNode(node) {
51
+ return !!node && node.nodeClass === 'TypeLeafNode';
52
+ }
53
+ exports.isTypeLeafNode = isTypeLeafNode;
54
+ function assertTypeLeafNode(node) {
55
+ var _a;
56
+ if (!isTypeLeafNode(node)) {
57
+ throw new Error(`Expected TypeLeafNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
58
+ }
59
+ }
60
+ exports.assertTypeLeafNode = assertTypeLeafNode;
61
+ //# sourceMappingURL=TypeLeafNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeLeafNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeLeafNode.ts"],"names":[],"mappings":";;;AAGa,QAAA,UAAU,GAAG;IACxB,QAAQ;IACR,WAAW;IACX,OAAO;IACP,MAAM;IACN,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;CACG,CAAC;AAIX,MAAa,YAAY;IAKvB,YAAY,IAAc;QAJjB,cAAS,GAAG,cAAuB,CAAC;QAK3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,OAAO,kBAAU,CAAC,QAAQ,CAAC,IAAgB,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,eAAe;QACb,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,iBAAiB;QACf,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC5D,CAAC;IAED,SAAS;QACP,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAC9C,CAAC;CACF;AApCD,oCAoCC;AAED,SAAgB,cAAc,CAAC,IAAiB;IAC9C,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,cAAc,CAAC;AACrD,CAAC;AAFD,wCAEC;AAED,SAAgB,kBAAkB,CAChC,IAAiB;;IAEjB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAAC,CAAC;KAC7E;AACH,CAAC;AAND,gDAMC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeLeafWrapperNode = exports.isTypeLeafWrapperNode = exports.TypeLeafWrapperNode = void 0;
4
+ class TypeLeafWrapperNode {
5
+ constructor(wrapper, leaf) {
6
+ this.nodeClass = 'TypeLeafWrapperNode';
7
+ this.wrapper = wrapper;
8
+ this.leaf = leaf;
9
+ }
10
+ accept(visitor) {
11
+ return visitor.visitTypeLeafWrapper(this);
12
+ }
13
+ }
14
+ exports.TypeLeafWrapperNode = TypeLeafWrapperNode;
15
+ function isTypeLeafWrapperNode(node) {
16
+ return !!node && node.nodeClass === 'TypeLeafWrapperNode';
17
+ }
18
+ exports.isTypeLeafWrapperNode = isTypeLeafWrapperNode;
19
+ function assertTypeLeafWrapperNode(node) {
20
+ var _a;
21
+ if (!isTypeLeafWrapperNode(node)) {
22
+ throw new Error(`Expected TypeLeafWrapperNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
23
+ }
24
+ }
25
+ exports.assertTypeLeafWrapperNode = assertTypeLeafWrapperNode;
26
+ //# sourceMappingURL=TypeLeafWrapperNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeLeafWrapperNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeLeafWrapperNode.ts"],"names":[],"mappings":";;;AASA,MAAa,mBAAmB;IAO9B,YAAY,OAAoB,EAAE,IAAkB;QAN3C,cAAS,GAAG,qBAA8B,CAAC;QAOlD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF;AAfD,kDAeC;AAED,SAAgB,qBAAqB,CACnC,IAAiB;IAEjB,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,qBAAqB,CAAC;AAC5D,CAAC;AAJD,sDAIC;AAED,SAAgB,yBAAyB,CACvC,IAAiB;;IAEjB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAClE,CAAC;KACH;AACH,CAAC;AARD,8DAQC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeMapNode = exports.isTypeMapNode = exports.TypeMapNode = void 0;
4
+ const TypeNode_1 = require("./TypeNode");
5
+ class TypeMapNode {
6
+ constructor(mapType, keyType, valueType) {
7
+ this.nodeClass = 'TypeMapNode';
8
+ this.mapType = mapType;
9
+ this.keyType = keyType;
10
+ this.valueType = valueType;
11
+ }
12
+ static fromIdl(idl) {
13
+ const mapType = 'hashMap' in idl ? 'hashMap' : 'bTreeMap';
14
+ const [key, value] = 'hashMap' in idl ? idl.hashMap : idl.bTreeMap;
15
+ const keyType = (0, TypeNode_1.createTypeNodeFromIdl)(key);
16
+ const valueType = (0, TypeNode_1.createTypeNodeFromIdl)(value);
17
+ return new TypeMapNode(mapType, keyType, valueType);
18
+ }
19
+ accept(visitor) {
20
+ return visitor.visitTypeMap(this);
21
+ }
22
+ }
23
+ exports.TypeMapNode = TypeMapNode;
24
+ function isTypeMapNode(node) {
25
+ return !!node && node.nodeClass === 'TypeMapNode';
26
+ }
27
+ exports.isTypeMapNode = isTypeMapNode;
28
+ function assertTypeMapNode(node) {
29
+ var _a;
30
+ if (!isTypeMapNode(node)) {
31
+ throw new Error(`Expected TypeMapNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
32
+ }
33
+ }
34
+ exports.assertTypeMapNode = assertTypeMapNode;
35
+ //# sourceMappingURL=TypeMapNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeMapNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeMapNode.ts"],"names":[],"mappings":";;;AAEA,yCAA6D;AAG7D,MAAa,WAAW;IAStB,YACE,OAA+B,EAC/B,OAAiB,EACjB,SAAmB;QAXZ,cAAS,GAAG,aAAsB,CAAC;QAa1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAe;QAC5B,MAAM,OAAO,GAAG,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1D,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnE,MAAM,OAAO,GAAG,IAAA,gCAAqB,EAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAA,gCAAqB,EAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AA9BD,kCA8BC;AAED,SAAgB,aAAa,CAAC,IAAiB;IAC7C,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa,CAAC;AACpD,CAAC;AAFD,sCAEC;AAED,SAAgB,iBAAiB,CAC/B,IAAiB;;IAEjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAAC,CAAC;KAC5E;AACH,CAAC;AAND,8CAMC"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeStructOrEnumNode = exports.isTypeStructOrEnumNode = exports.assertTypeNode = exports.isTypeNode = exports.createTypeNodeFromIdl = void 0;
4
+ const TypeArrayNode_1 = require("./TypeArrayNode");
5
+ const TypeDefinedLinkNode_1 = require("./TypeDefinedLinkNode");
6
+ const TypeEnumNode_1 = require("./TypeEnumNode");
7
+ const TypeLeafNode_1 = require("./TypeLeafNode");
8
+ const TypeMapNode_1 = require("./TypeMapNode");
9
+ const TypeOptionNode_1 = require("./TypeOptionNode");
10
+ const TypeSetNode_1 = require("./TypeSetNode");
11
+ const TypeStructNode_1 = require("./TypeStructNode");
12
+ const TypeTupleNode_1 = require("./TypeTupleNode");
13
+ const TypeVecNode_1 = require("./TypeVecNode");
14
+ const TYPE_NODE_CLASSES = [
15
+ 'TypeArrayNode',
16
+ 'TypeDefinedLinkNode',
17
+ 'TypeEnumNode',
18
+ 'TypeLeafNode',
19
+ 'TypeLeafWrapperNode',
20
+ 'TypeMapNode',
21
+ 'TypeOptionNode',
22
+ 'TypeSetNode',
23
+ 'TypeStructNode',
24
+ 'TypeTupleNode',
25
+ 'TypeVecNode',
26
+ ];
27
+ function isArrayOfSize(array, size) {
28
+ return Array.isArray(array) && array.length === size;
29
+ }
30
+ const createTypeNodeFromIdl = (idlType) => {
31
+ // Leaf.
32
+ if (typeof idlType === 'string' && TypeLeafNode_1.TypeLeafNode.isValidType(idlType)) {
33
+ return new TypeLeafNode_1.TypeLeafNode(idlType);
34
+ }
35
+ // Ensure eveything else is an object.
36
+ if (typeof idlType !== 'object') {
37
+ throw new Error(`TypeNode: Unsupported type ${JSON.stringify(idlType)}`);
38
+ }
39
+ // Array.
40
+ if ('array' in idlType && isArrayOfSize(idlType.array, 2)) {
41
+ return TypeArrayNode_1.TypeArrayNode.fromIdl(idlType);
42
+ }
43
+ // Defined link.
44
+ if ('defined' in idlType && typeof idlType.defined === 'string') {
45
+ return new TypeDefinedLinkNode_1.TypeDefinedLinkNode(idlType.defined);
46
+ }
47
+ // Enum.
48
+ if ('kind' in idlType && idlType.kind === 'enum' && 'variants' in idlType) {
49
+ return TypeEnumNode_1.TypeEnumNode.fromIdl(idlType);
50
+ }
51
+ // Map.
52
+ if (('hashMap' in idlType && isArrayOfSize(idlType.hashMap, 2)) ||
53
+ ('bTreeMap' in idlType && isArrayOfSize(idlType.bTreeMap, 2))) {
54
+ return TypeMapNode_1.TypeMapNode.fromIdl(idlType);
55
+ }
56
+ // Option.
57
+ if ('option' in idlType || 'coption' in idlType) {
58
+ return TypeOptionNode_1.TypeOptionNode.fromIdl(idlType);
59
+ }
60
+ // Set.
61
+ if ('hashSet' in idlType || 'bTreeSet' in idlType) {
62
+ return TypeSetNode_1.TypeSetNode.fromIdl(idlType);
63
+ }
64
+ // Struct.
65
+ if ('kind' in idlType && idlType.kind === 'struct') {
66
+ return TypeStructNode_1.TypeStructNode.fromIdl(idlType);
67
+ }
68
+ // Tuple.
69
+ if ('tuple' in idlType && Array.isArray(idlType.tuple)) {
70
+ return TypeTupleNode_1.TypeTupleNode.fromIdl(idlType);
71
+ }
72
+ // Vec.
73
+ if ('vec' in idlType) {
74
+ return TypeVecNode_1.TypeVecNode.fromIdl(idlType);
75
+ }
76
+ // Throw an error for unsupported types.
77
+ throw new Error(`TypeNode: Unsupported type ${JSON.stringify(idlType)}`);
78
+ };
79
+ exports.createTypeNodeFromIdl = createTypeNodeFromIdl;
80
+ function isTypeNode(node) {
81
+ return !!node && TYPE_NODE_CLASSES.includes(node.nodeClass);
82
+ }
83
+ exports.isTypeNode = isTypeNode;
84
+ function assertTypeNode(node) {
85
+ var _a;
86
+ if (!isTypeNode(node)) {
87
+ throw new Error(`Expected TypeNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
88
+ }
89
+ }
90
+ exports.assertTypeNode = assertTypeNode;
91
+ function isTypeStructOrEnumNode(node) {
92
+ return (!!node &&
93
+ (node.nodeClass === 'TypeStructNode' || node.nodeClass === 'TypeEnumNode'));
94
+ }
95
+ exports.isTypeStructOrEnumNode = isTypeStructOrEnumNode;
96
+ function assertTypeStructOrEnumNode(node) {
97
+ var _a;
98
+ if (!isTypeStructOrEnumNode(node)) {
99
+ throw new Error(`Expected TypeStructNode | TypeEnumNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
100
+ }
101
+ }
102
+ exports.assertTypeStructOrEnumNode = assertTypeStructOrEnumNode;
103
+ //# sourceMappingURL=TypeNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertTypeOptionNode = exports.isTypeOptionNode = exports.TypeOptionNode = void 0;
4
+ const TypeNode_1 = require("./TypeNode");
5
+ class TypeOptionNode {
6
+ constructor(optionType, type) {
7
+ this.nodeClass = 'TypeOptionNode';
8
+ this.optionType = optionType;
9
+ this.type = type;
10
+ }
11
+ static fromIdl(idl) {
12
+ const optionType = 'option' in idl ? 'option' : 'coption';
13
+ const idlType = 'option' in idl ? idl.option : idl.coption;
14
+ return new TypeOptionNode(optionType, (0, TypeNode_1.createTypeNodeFromIdl)(idlType));
15
+ }
16
+ accept(visitor) {
17
+ return visitor.visitTypeOption(this);
18
+ }
19
+ }
20
+ exports.TypeOptionNode = TypeOptionNode;
21
+ function isTypeOptionNode(node) {
22
+ return !!node && node.nodeClass === 'TypeOptionNode';
23
+ }
24
+ exports.isTypeOptionNode = isTypeOptionNode;
25
+ function assertTypeOptionNode(node) {
26
+ var _a;
27
+ if (!isTypeOptionNode(node)) {
28
+ throw new Error(`Expected TypeOptionNode, got ${(_a = node === null || node === void 0 ? void 0 : node.nodeClass) !== null && _a !== void 0 ? _a : 'null'}.`);
29
+ }
30
+ }
31
+ exports.assertTypeOptionNode = assertTypeOptionNode;
32
+ //# sourceMappingURL=TypeOptionNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeOptionNode.js","sourceRoot":"","sources":["../../../src/nodes/TypeOptionNode.ts"],"names":[],"mappings":";;;AAEA,yCAA6D;AAG7D,MAAa,cAAc;IAOzB,YAAY,UAAgC,EAAE,IAAc;QANnD,cAAS,GAAG,gBAAyB,CAAC;QAO7C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAkB;QAC/B,MAAM,UAAU,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QAC3D,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,IAAA,gCAAqB,EAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAI,OAAmB;QAC3B,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF;AArBD,wCAqBC;AAED,SAAgB,gBAAgB,CAAC,IAAiB;IAChD,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,CAAC;AACvD,CAAC;AAFD,4CAEC;AAED,SAAgB,oBAAoB,CAClC,IAAiB;;IAEjB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAI,MAAM,GAAG,CAC7D,CAAC;KACH;AACH,CAAC;AARD,oDAQC"}