@xyo-network/core 2.20.17

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 (701) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +79 -0
  3. package/babel.config.json +5 -0
  4. package/dist/cjs/BoundWitness/Builder/Builder.d.ts +22 -0
  5. package/dist/cjs/BoundWitness/Builder/Builder.js +68 -0
  6. package/dist/cjs/BoundWitness/Builder/Builder.js.map +1 -0
  7. package/dist/cjs/BoundWitness/Builder/index.d.ts +1 -0
  8. package/dist/cjs/BoundWitness/Builder/index.js +5 -0
  9. package/dist/cjs/BoundWitness/Builder/index.js.map +1 -0
  10. package/dist/cjs/BoundWitness/Validator/BodyValidator.d.ts +18 -0
  11. package/dist/cjs/BoundWitness/Validator/BodyValidator.js +91 -0
  12. package/dist/cjs/BoundWitness/Validator/BodyValidator.js.map +1 -0
  13. package/dist/cjs/BoundWitness/Validator/MetaValidator.d.ts +14 -0
  14. package/dist/cjs/BoundWitness/Validator/MetaValidator.js +70 -0
  15. package/dist/cjs/BoundWitness/Validator/MetaValidator.js.map +1 -0
  16. package/dist/cjs/BoundWitness/Validator/Validator.d.ts +12 -0
  17. package/dist/cjs/BoundWitness/Validator/Validator.js +46 -0
  18. package/dist/cjs/BoundWitness/Validator/Validator.js.map +1 -0
  19. package/dist/cjs/BoundWitness/Validator/index.d.ts +3 -0
  20. package/dist/cjs/BoundWitness/Validator/index.js +7 -0
  21. package/dist/cjs/BoundWitness/Validator/index.js.map +1 -0
  22. package/dist/cjs/BoundWitness/Validator/ip-regex.d.ts +9 -0
  23. package/dist/cjs/BoundWitness/Validator/ip-regex.js +31 -0
  24. package/dist/cjs/BoundWitness/Validator/ip-regex.js.map +1 -0
  25. package/dist/cjs/BoundWitness/Validator/is-ip.d.ts +4 -0
  26. package/dist/cjs/BoundWitness/Validator/is-ip.js +21 -0
  27. package/dist/cjs/BoundWitness/Validator/is-ip.js.map +1 -0
  28. package/dist/cjs/BoundWitness/Wrapper/Wrapper.d.ts +13 -0
  29. package/dist/cjs/BoundWitness/Wrapper/Wrapper.js +30 -0
  30. package/dist/cjs/BoundWitness/Wrapper/Wrapper.js.map +1 -0
  31. package/dist/cjs/BoundWitness/Wrapper/index.d.ts +1 -0
  32. package/dist/cjs/BoundWitness/Wrapper/index.js +5 -0
  33. package/dist/cjs/BoundWitness/Wrapper/index.js.map +1 -0
  34. package/dist/cjs/BoundWitness/index.d.ts +4 -0
  35. package/dist/cjs/BoundWitness/index.js +8 -0
  36. package/dist/cjs/BoundWitness/index.js.map +1 -0
  37. package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBody.d.ts +11 -0
  38. package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBody.js +3 -0
  39. package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBody.js.map +1 -0
  40. package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBodySchema.d.ts +37 -0
  41. package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBodySchema.js +20 -0
  42. package/dist/cjs/BoundWitness/models/Body/XyoBoundWitnessBodySchema.js.map +1 -0
  43. package/dist/cjs/BoundWitness/models/Body/index.d.ts +2 -0
  44. package/dist/cjs/BoundWitness/models/Body/index.js +6 -0
  45. package/dist/cjs/BoundWitness/models/Body/index.js.map +1 -0
  46. package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMeta.d.ts +13 -0
  47. package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMeta.js +3 -0
  48. package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMeta.js.map +1 -0
  49. package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.d.ts +85 -0
  50. package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.js +28 -0
  51. package/dist/cjs/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.js.map +1 -0
  52. package/dist/cjs/BoundWitness/models/Meta/index.d.ts +2 -0
  53. package/dist/cjs/BoundWitness/models/Meta/index.js +6 -0
  54. package/dist/cjs/BoundWitness/models/Meta/index.js.map +1 -0
  55. package/dist/cjs/BoundWitness/models/WithXyoBoundWitnessMeta.d.ts +4 -0
  56. package/dist/cjs/BoundWitness/models/WithXyoBoundWitnessMeta.js +3 -0
  57. package/dist/cjs/BoundWitness/models/WithXyoBoundWitnessMeta.js.map +1 -0
  58. package/dist/cjs/BoundWitness/models/XyoBoundWitness.d.ts +5 -0
  59. package/dist/cjs/BoundWitness/models/XyoBoundWitness.js +3 -0
  60. package/dist/cjs/BoundWitness/models/XyoBoundWitness.js.map +1 -0
  61. package/dist/cjs/BoundWitness/models/XyoBoundWitnessSchema.d.ts +75 -0
  62. package/dist/cjs/BoundWitness/models/XyoBoundWitnessSchema.js +17 -0
  63. package/dist/cjs/BoundWitness/models/XyoBoundWitnessSchema.js.map +1 -0
  64. package/dist/cjs/BoundWitness/models/index.d.ts +5 -0
  65. package/dist/cjs/BoundWitness/models/index.js +9 -0
  66. package/dist/cjs/BoundWitness/models/index.js.map +1 -0
  67. package/dist/cjs/Hasher/XyoHasher.d.ts +8 -0
  68. package/dist/cjs/Hasher/XyoHasher.js +29 -0
  69. package/dist/cjs/Hasher/XyoHasher.js.map +1 -0
  70. package/dist/cjs/Hasher/index.d.ts +4 -0
  71. package/dist/cjs/Hasher/index.js +8 -0
  72. package/dist/cjs/Hasher/index.js.map +1 -0
  73. package/dist/cjs/Hasher/removeEmptyFields.d.ts +1 -0
  74. package/dist/cjs/Hasher/removeEmptyFields.js +20 -0
  75. package/dist/cjs/Hasher/removeEmptyFields.js.map +1 -0
  76. package/dist/cjs/Hasher/removeFields.d.ts +6 -0
  77. package/dist/cjs/Hasher/removeFields.js +29 -0
  78. package/dist/cjs/Hasher/removeFields.js.map +1 -0
  79. package/dist/cjs/Hasher/sortFields.d.ts +1 -0
  80. package/dist/cjs/Hasher/sortFields.js +27 -0
  81. package/dist/cjs/Hasher/sortFields.js.map +1 -0
  82. package/dist/cjs/Huri/Huri.d.ts +26 -0
  83. package/dist/cjs/Huri/Huri.js +101 -0
  84. package/dist/cjs/Huri/Huri.js.map +1 -0
  85. package/dist/cjs/Huri/index.d.ts +1 -0
  86. package/dist/cjs/Huri/index.js +5 -0
  87. package/dist/cjs/Huri/index.js.map +1 -0
  88. package/dist/cjs/Payload/Builder/Builder.d.ts +14 -0
  89. package/dist/cjs/Payload/Builder/Builder.js +31 -0
  90. package/dist/cjs/Payload/Builder/Builder.js.map +1 -0
  91. package/dist/cjs/Payload/Builder/index.d.ts +1 -0
  92. package/dist/cjs/Payload/Builder/index.js +5 -0
  93. package/dist/cjs/Payload/Builder/index.js.map +1 -0
  94. package/dist/cjs/Payload/Validator/BodyValidator.d.ts +11 -0
  95. package/dist/cjs/Payload/Validator/BodyValidator.js +31 -0
  96. package/dist/cjs/Payload/Validator/BodyValidator.js.map +1 -0
  97. package/dist/cjs/Payload/Validator/MetaValidator.d.ts +9 -0
  98. package/dist/cjs/Payload/Validator/MetaValidator.js +37 -0
  99. package/dist/cjs/Payload/Validator/MetaValidator.js.map +1 -0
  100. package/dist/cjs/Payload/Validator/Validator.d.ts +11 -0
  101. package/dist/cjs/Payload/Validator/Validator.js +19 -0
  102. package/dist/cjs/Payload/Validator/Validator.js.map +1 -0
  103. package/dist/cjs/Payload/Validator/index.d.ts +3 -0
  104. package/dist/cjs/Payload/Validator/index.js +7 -0
  105. package/dist/cjs/Payload/Validator/index.js.map +1 -0
  106. package/dist/cjs/Payload/Wrapper/Validator.d.ts +9 -0
  107. package/dist/cjs/Payload/Wrapper/Validator.js +19 -0
  108. package/dist/cjs/Payload/Wrapper/Validator.js.map +1 -0
  109. package/dist/cjs/Payload/Wrapper/Wrapper.d.ts +9 -0
  110. package/dist/cjs/Payload/Wrapper/Wrapper.js +18 -0
  111. package/dist/cjs/Payload/Wrapper/Wrapper.js.map +1 -0
  112. package/dist/cjs/Payload/Wrapper/index.d.ts +2 -0
  113. package/dist/cjs/Payload/Wrapper/index.js +6 -0
  114. package/dist/cjs/Payload/Wrapper/index.js.map +1 -0
  115. package/dist/cjs/Payload/index.d.ts +4 -0
  116. package/dist/cjs/Payload/index.js +8 -0
  117. package/dist/cjs/Payload/index.js.map +1 -0
  118. package/dist/cjs/Payload/models/Body.d.ts +6 -0
  119. package/dist/cjs/Payload/models/Body.js +3 -0
  120. package/dist/cjs/Payload/models/Body.js.map +1 -0
  121. package/dist/cjs/Payload/models/Meta.d.ts +10 -0
  122. package/dist/cjs/Payload/models/Meta.js +3 -0
  123. package/dist/cjs/Payload/models/Meta.js.map +1 -0
  124. package/dist/cjs/Payload/models/WithXyoPayloadMeta.d.ts +4 -0
  125. package/dist/cjs/Payload/models/WithXyoPayloadMeta.js +3 -0
  126. package/dist/cjs/Payload/models/WithXyoPayloadMeta.js.map +1 -0
  127. package/dist/cjs/Payload/models/XyoPayload.d.ts +4 -0
  128. package/dist/cjs/Payload/models/XyoPayload.js +3 -0
  129. package/dist/cjs/Payload/models/XyoPayload.js.map +1 -0
  130. package/dist/cjs/Payload/models/index.d.ts +5 -0
  131. package/dist/cjs/Payload/models/index.js +3 -0
  132. package/dist/cjs/Payload/models/index.js.map +1 -0
  133. package/dist/cjs/Schema/Payload.d.ts +9 -0
  134. package/dist/cjs/Schema/Payload.js +3 -0
  135. package/dist/cjs/Schema/Payload.js.map +1 -0
  136. package/dist/cjs/Schema/index.d.ts +1 -0
  137. package/dist/cjs/Schema/index.js +5 -0
  138. package/dist/cjs/Schema/index.js.map +1 -0
  139. package/dist/cjs/SchemaNameValidator.d.ts +73 -0
  140. package/dist/cjs/SchemaNameValidator.js +135 -0
  141. package/dist/cjs/SchemaNameValidator.js.map +1 -0
  142. package/dist/cjs/Test/index.d.ts +2 -0
  143. package/dist/cjs/Test/index.js +6 -0
  144. package/dist/cjs/Test/index.js.map +1 -0
  145. package/dist/cjs/Test/testBoundWitness.d.ts +3 -0
  146. package/dist/cjs/Test/testBoundWitness.js +17 -0
  147. package/dist/cjs/Test/testBoundWitness.js.map +1 -0
  148. package/dist/cjs/Test/testPayload.d.ts +4 -0
  149. package/dist/cjs/Test/testPayload.js +19 -0
  150. package/dist/cjs/Test/testPayload.js.map +1 -0
  151. package/dist/cjs/Wallet/Account/Account.d.ts +36 -0
  152. package/dist/cjs/Wallet/Account/Account.js +79 -0
  153. package/dist/cjs/Wallet/Account/Account.js.map +1 -0
  154. package/dist/cjs/Wallet/Account/Key/Data/AbstractData.d.ts +12 -0
  155. package/dist/cjs/Wallet/Account/Key/Data/AbstractData.js +16 -0
  156. package/dist/cjs/Wallet/Account/Key/Data/AbstractData.js.map +1 -0
  157. package/dist/cjs/Wallet/Account/Key/Data/Data.d.ts +15 -0
  158. package/dist/cjs/Wallet/Account/Key/Data/Data.js +40 -0
  159. package/dist/cjs/Wallet/Account/Key/Data/Data.js.map +1 -0
  160. package/dist/cjs/Wallet/Account/Key/Data/XyoDataLike.d.ts +4 -0
  161. package/dist/cjs/Wallet/Account/Key/Data/XyoDataLike.js +3 -0
  162. package/dist/cjs/Wallet/Account/Key/Data/XyoDataLike.js.map +1 -0
  163. package/dist/cjs/Wallet/Account/Key/Data/index.d.ts +4 -0
  164. package/dist/cjs/Wallet/Account/Key/Data/index.js +8 -0
  165. package/dist/cjs/Wallet/Account/Key/Data/index.js.map +1 -0
  166. package/dist/cjs/Wallet/Account/Key/Data/toUint8Array.d.ts +3 -0
  167. package/dist/cjs/Wallet/Account/Key/Data/toUint8Array.js +33 -0
  168. package/dist/cjs/Wallet/Account/Key/Data/toUint8Array.js.map +1 -0
  169. package/dist/cjs/Wallet/Account/Key/XyoAddressValue.d.ts +11 -0
  170. package/dist/cjs/Wallet/Account/Key/XyoAddressValue.js +49 -0
  171. package/dist/cjs/Wallet/Account/Key/XyoAddressValue.js.map +1 -0
  172. package/dist/cjs/Wallet/Account/Key/XyoEllipticKey.d.ts +5 -0
  173. package/dist/cjs/Wallet/Account/Key/XyoEllipticKey.js +13 -0
  174. package/dist/cjs/Wallet/Account/Key/XyoEllipticKey.js.map +1 -0
  175. package/dist/cjs/Wallet/Account/Key/XyoKeyPair.d.ts +10 -0
  176. package/dist/cjs/Wallet/Account/Key/XyoKeyPair.js +23 -0
  177. package/dist/cjs/Wallet/Account/Key/XyoKeyPair.js.map +1 -0
  178. package/dist/cjs/Wallet/Account/Key/XyoPrivateKey.d.ts +14 -0
  179. package/dist/cjs/Wallet/Account/Key/XyoPrivateKey.js +56 -0
  180. package/dist/cjs/Wallet/Account/Key/XyoPrivateKey.js.map +1 -0
  181. package/dist/cjs/Wallet/Account/Key/XyoPublicKey.d.ts +10 -0
  182. package/dist/cjs/Wallet/Account/Key/XyoPublicKey.js +22 -0
  183. package/dist/cjs/Wallet/Account/Key/XyoPublicKey.js.map +1 -0
  184. package/dist/cjs/Wallet/Account/Key/index.d.ts +5 -0
  185. package/dist/cjs/Wallet/Account/Key/index.js +9 -0
  186. package/dist/cjs/Wallet/Account/Key/index.js.map +1 -0
  187. package/dist/cjs/Wallet/Account/index.d.ts +2 -0
  188. package/dist/cjs/Wallet/Account/index.js +6 -0
  189. package/dist/cjs/Wallet/Account/index.js.map +1 -0
  190. package/dist/cjs/Wallet/Base/Base.d.ts +8 -0
  191. package/dist/cjs/Wallet/Base/Base.js +37 -0
  192. package/dist/cjs/Wallet/Base/Base.js.map +1 -0
  193. package/dist/cjs/Wallet/Base/Words.d.ts +2 -0
  194. package/dist/cjs/Wallet/Base/Words.js +2644 -0
  195. package/dist/cjs/Wallet/Base/Words.js.map +1 -0
  196. package/dist/cjs/Wallet/Base/WordsPayload.d.ts +4 -0
  197. package/dist/cjs/Wallet/Base/WordsPayload.js +3 -0
  198. package/dist/cjs/Wallet/Base/WordsPayload.js.map +1 -0
  199. package/dist/cjs/Wallet/Base/index.d.ts +1 -0
  200. package/dist/cjs/Wallet/Base/index.js +5 -0
  201. package/dist/cjs/Wallet/Base/index.js.map +1 -0
  202. package/dist/cjs/Wallet/index.d.ts +2 -0
  203. package/dist/cjs/Wallet/index.js +6 -0
  204. package/dist/cjs/Wallet/index.js.map +1 -0
  205. package/dist/cjs/Witness/Witness.d.ts +14 -0
  206. package/dist/cjs/Witness/Witness.js +24 -0
  207. package/dist/cjs/Witness/Witness.js.map +1 -0
  208. package/dist/cjs/Witness/index.d.ts +1 -0
  209. package/dist/cjs/Witness/index.js +5 -0
  210. package/dist/cjs/Witness/index.js.map +1 -0
  211. package/dist/cjs/browser/core/Wallet/Web.d.ts +5 -0
  212. package/dist/cjs/browser/core/Wallet/Web.js +15 -0
  213. package/dist/cjs/browser/core/Wallet/Web.js.map +1 -0
  214. package/dist/cjs/browser/core/Wallet/index.d.ts +1 -0
  215. package/dist/cjs/browser/core/Wallet/index.js +5 -0
  216. package/dist/cjs/browser/core/Wallet/index.js.map +1 -0
  217. package/dist/cjs/browser/core/index.d.ts +1 -0
  218. package/dist/cjs/browser/core/index.js +5 -0
  219. package/dist/cjs/browser/core/index.js.map +1 -0
  220. package/dist/cjs/browser/index.d.ts +1 -0
  221. package/dist/cjs/browser/index.js +5 -0
  222. package/dist/cjs/browser/index.js.map +1 -0
  223. package/dist/cjs/browserIndex.d.ts +2 -0
  224. package/dist/cjs/browserIndex.js +6 -0
  225. package/dist/cjs/browserIndex.js.map +1 -0
  226. package/dist/cjs/index.d.ts +2 -0
  227. package/dist/cjs/index.js +6 -0
  228. package/dist/cjs/index.js.map +1 -0
  229. package/dist/cjs/lib/dns/DnsRecordType.d.ts +14 -0
  230. package/dist/cjs/lib/dns/DnsRecordType.js +19 -0
  231. package/dist/cjs/lib/dns/DnsRecordType.js.map +1 -0
  232. package/dist/cjs/lib/dns/DnsReturnCode.d.ts +13 -0
  233. package/dist/cjs/lib/dns/DnsReturnCode.js +18 -0
  234. package/dist/cjs/lib/dns/DnsReturnCode.js.map +1 -0
  235. package/dist/cjs/lib/dns/GoogleDnsResult.d.ts +16 -0
  236. package/dist/cjs/lib/dns/GoogleDnsResult.js +3 -0
  237. package/dist/cjs/lib/dns/GoogleDnsResult.js.map +1 -0
  238. package/dist/cjs/lib/dns/GoogleDnsResultAnswer.d.ts +7 -0
  239. package/dist/cjs/lib/dns/GoogleDnsResultAnswer.js +3 -0
  240. package/dist/cjs/lib/dns/GoogleDnsResultAnswer.js.map +1 -0
  241. package/dist/cjs/lib/dns/GoogleDnsResultQuestion.d.ts +10 -0
  242. package/dist/cjs/lib/dns/GoogleDnsResultQuestion.js +3 -0
  243. package/dist/cjs/lib/dns/GoogleDnsResultQuestion.js.map +1 -0
  244. package/dist/cjs/lib/dns/domainExists.d.ts +7 -0
  245. package/dist/cjs/lib/dns/domainExists.js +19 -0
  246. package/dist/cjs/lib/dns/domainExists.js.map +1 -0
  247. package/dist/cjs/lib/dns/domainResolve.d.ts +8 -0
  248. package/dist/cjs/lib/dns/domainResolve.js +19 -0
  249. package/dist/cjs/lib/dns/domainResolve.js.map +1 -0
  250. package/dist/cjs/lib/dns/googleDnsOverHttps.d.ts +4 -0
  251. package/dist/cjs/lib/dns/googleDnsOverHttps.js +11 -0
  252. package/dist/cjs/lib/dns/googleDnsOverHttps.js.map +1 -0
  253. package/dist/cjs/lib/dns/index.d.ts +8 -0
  254. package/dist/cjs/lib/dns/index.js +12 -0
  255. package/dist/cjs/lib/dns/index.js.map +1 -0
  256. package/dist/cjs/lib/dumpErrors.d.ts +2 -0
  257. package/dist/cjs/lib/dumpErrors.js +10 -0
  258. package/dist/cjs/lib/dumpErrors.js.map +1 -0
  259. package/dist/cjs/lib/index.d.ts +4 -0
  260. package/dist/cjs/lib/index.js +8 -0
  261. package/dist/cjs/lib/index.js.map +1 -0
  262. package/dist/cjs/lib/isBrowser.d.ts +1 -0
  263. package/dist/cjs/lib/isBrowser.js +8 -0
  264. package/dist/cjs/lib/isBrowser.js.map +1 -0
  265. package/dist/cjs/lib/typeOf/TypeOfTypes.d.ts +1 -0
  266. package/dist/cjs/lib/typeOf/TypeOfTypes.js +3 -0
  267. package/dist/cjs/lib/typeOf/TypeOfTypes.js.map +1 -0
  268. package/dist/cjs/lib/typeOf/ifDefined.d.ts +1 -0
  269. package/dist/cjs/lib/typeOf/ifDefined.js +16 -0
  270. package/dist/cjs/lib/typeOf/ifDefined.js.map +1 -0
  271. package/dist/cjs/lib/typeOf/ifTypeOf.d.ts +2 -0
  272. package/dist/cjs/lib/typeOf/ifTypeOf.js +12 -0
  273. package/dist/cjs/lib/typeOf/ifTypeOf.js.map +1 -0
  274. package/dist/cjs/lib/typeOf/index.d.ts +5 -0
  275. package/dist/cjs/lib/typeOf/index.js +9 -0
  276. package/dist/cjs/lib/typeOf/index.js.map +1 -0
  277. package/dist/cjs/lib/typeOf/typeOf.d.ts +2 -0
  278. package/dist/cjs/lib/typeOf/typeOf.js +8 -0
  279. package/dist/cjs/lib/typeOf/typeOf.js.map +1 -0
  280. package/dist/cjs/lib/typeOf/validateType.d.ts +2 -0
  281. package/dist/cjs/lib/typeOf/validateType.js +18 -0
  282. package/dist/cjs/lib/typeOf/validateType.js.map +1 -0
  283. package/dist/cjs/models/WithStringIndex.d.ts +1 -0
  284. package/dist/cjs/models/WithStringIndex.js +3 -0
  285. package/dist/cjs/models/WithStringIndex.js.map +1 -0
  286. package/dist/cjs/models/index.d.ts +1 -0
  287. package/dist/cjs/models/index.js +5 -0
  288. package/dist/cjs/models/index.js.map +1 -0
  289. package/dist/cjs/nodeIndex.d.ts +1 -0
  290. package/dist/cjs/nodeIndex.js +5 -0
  291. package/dist/cjs/nodeIndex.js.map +1 -0
  292. package/dist/cjs/shared.d.ts +10 -0
  293. package/dist/cjs/shared.js +14 -0
  294. package/dist/cjs/shared.js.map +1 -0
  295. package/dist/docs.json +21601 -0
  296. package/dist/esm/BoundWitness/Builder/Builder.d.ts +22 -0
  297. package/dist/esm/BoundWitness/Builder/Builder.js +66 -0
  298. package/dist/esm/BoundWitness/Builder/Builder.js.map +1 -0
  299. package/dist/esm/BoundWitness/Builder/index.d.ts +1 -0
  300. package/dist/esm/BoundWitness/Builder/index.js +2 -0
  301. package/dist/esm/BoundWitness/Builder/index.js.map +1 -0
  302. package/dist/esm/BoundWitness/Validator/BodyValidator.d.ts +18 -0
  303. package/dist/esm/BoundWitness/Validator/BodyValidator.js +86 -0
  304. package/dist/esm/BoundWitness/Validator/BodyValidator.js.map +1 -0
  305. package/dist/esm/BoundWitness/Validator/MetaValidator.d.ts +14 -0
  306. package/dist/esm/BoundWitness/Validator/MetaValidator.js +66 -0
  307. package/dist/esm/BoundWitness/Validator/MetaValidator.js.map +1 -0
  308. package/dist/esm/BoundWitness/Validator/Validator.d.ts +12 -0
  309. package/dist/esm/BoundWitness/Validator/Validator.js +41 -0
  310. package/dist/esm/BoundWitness/Validator/Validator.js.map +1 -0
  311. package/dist/esm/BoundWitness/Validator/index.d.ts +3 -0
  312. package/dist/esm/BoundWitness/Validator/index.js +4 -0
  313. package/dist/esm/BoundWitness/Validator/index.js.map +1 -0
  314. package/dist/esm/BoundWitness/Validator/ip-regex.d.ts +9 -0
  315. package/dist/esm/BoundWitness/Validator/ip-regex.js +27 -0
  316. package/dist/esm/BoundWitness/Validator/ip-regex.js.map +1 -0
  317. package/dist/esm/BoundWitness/Validator/is-ip.d.ts +4 -0
  318. package/dist/esm/BoundWitness/Validator/is-ip.js +14 -0
  319. package/dist/esm/BoundWitness/Validator/is-ip.js.map +1 -0
  320. package/dist/esm/BoundWitness/Wrapper/Wrapper.d.ts +13 -0
  321. package/dist/esm/BoundWitness/Wrapper/Wrapper.js +24 -0
  322. package/dist/esm/BoundWitness/Wrapper/Wrapper.js.map +1 -0
  323. package/dist/esm/BoundWitness/Wrapper/index.d.ts +1 -0
  324. package/dist/esm/BoundWitness/Wrapper/index.js +2 -0
  325. package/dist/esm/BoundWitness/Wrapper/index.js.map +1 -0
  326. package/dist/esm/BoundWitness/index.d.ts +4 -0
  327. package/dist/esm/BoundWitness/index.js +5 -0
  328. package/dist/esm/BoundWitness/index.js.map +1 -0
  329. package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBody.d.ts +11 -0
  330. package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBody.js +2 -0
  331. package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBody.js.map +1 -0
  332. package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBodySchema.d.ts +37 -0
  333. package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBodySchema.js +17 -0
  334. package/dist/esm/BoundWitness/models/Body/XyoBoundWitnessBodySchema.js.map +1 -0
  335. package/dist/esm/BoundWitness/models/Body/index.d.ts +2 -0
  336. package/dist/esm/BoundWitness/models/Body/index.js +3 -0
  337. package/dist/esm/BoundWitness/models/Body/index.js.map +1 -0
  338. package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMeta.d.ts +13 -0
  339. package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMeta.js +2 -0
  340. package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMeta.js.map +1 -0
  341. package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.d.ts +85 -0
  342. package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.js +23 -0
  343. package/dist/esm/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.js.map +1 -0
  344. package/dist/esm/BoundWitness/models/Meta/index.d.ts +2 -0
  345. package/dist/esm/BoundWitness/models/Meta/index.js +3 -0
  346. package/dist/esm/BoundWitness/models/Meta/index.js.map +1 -0
  347. package/dist/esm/BoundWitness/models/WithXyoBoundWitnessMeta.d.ts +4 -0
  348. package/dist/esm/BoundWitness/models/WithXyoBoundWitnessMeta.js +2 -0
  349. package/dist/esm/BoundWitness/models/WithXyoBoundWitnessMeta.js.map +1 -0
  350. package/dist/esm/BoundWitness/models/XyoBoundWitness.d.ts +5 -0
  351. package/dist/esm/BoundWitness/models/XyoBoundWitness.js +2 -0
  352. package/dist/esm/BoundWitness/models/XyoBoundWitness.js.map +1 -0
  353. package/dist/esm/BoundWitness/models/XyoBoundWitnessSchema.d.ts +75 -0
  354. package/dist/esm/BoundWitness/models/XyoBoundWitnessSchema.js +21 -0
  355. package/dist/esm/BoundWitness/models/XyoBoundWitnessSchema.js.map +1 -0
  356. package/dist/esm/BoundWitness/models/index.d.ts +5 -0
  357. package/dist/esm/BoundWitness/models/index.js +6 -0
  358. package/dist/esm/BoundWitness/models/index.js.map +1 -0
  359. package/dist/esm/Hasher/XyoHasher.d.ts +8 -0
  360. package/dist/esm/Hasher/XyoHasher.js +24 -0
  361. package/dist/esm/Hasher/XyoHasher.js.map +1 -0
  362. package/dist/esm/Hasher/index.d.ts +4 -0
  363. package/dist/esm/Hasher/index.js +5 -0
  364. package/dist/esm/Hasher/index.js.map +1 -0
  365. package/dist/esm/Hasher/removeEmptyFields.d.ts +1 -0
  366. package/dist/esm/Hasher/removeEmptyFields.js +16 -0
  367. package/dist/esm/Hasher/removeEmptyFields.js.map +1 -0
  368. package/dist/esm/Hasher/removeFields.d.ts +6 -0
  369. package/dist/esm/Hasher/removeFields.js +22 -0
  370. package/dist/esm/Hasher/removeFields.js.map +1 -0
  371. package/dist/esm/Hasher/sortFields.d.ts +1 -0
  372. package/dist/esm/Hasher/sortFields.js +23 -0
  373. package/dist/esm/Hasher/sortFields.js.map +1 -0
  374. package/dist/esm/Huri/Huri.d.ts +26 -0
  375. package/dist/esm/Huri/Huri.js +90 -0
  376. package/dist/esm/Huri/Huri.js.map +1 -0
  377. package/dist/esm/Huri/index.d.ts +1 -0
  378. package/dist/esm/Huri/index.js +2 -0
  379. package/dist/esm/Huri/index.js.map +1 -0
  380. package/dist/esm/Payload/Builder/Builder.d.ts +14 -0
  381. package/dist/esm/Payload/Builder/Builder.js +30 -0
  382. package/dist/esm/Payload/Builder/Builder.js.map +1 -0
  383. package/dist/esm/Payload/Builder/index.d.ts +1 -0
  384. package/dist/esm/Payload/Builder/index.js +2 -0
  385. package/dist/esm/Payload/Builder/index.js.map +1 -0
  386. package/dist/esm/Payload/Validator/BodyValidator.d.ts +11 -0
  387. package/dist/esm/Payload/Validator/BodyValidator.js +27 -0
  388. package/dist/esm/Payload/Validator/BodyValidator.js.map +1 -0
  389. package/dist/esm/Payload/Validator/MetaValidator.d.ts +9 -0
  390. package/dist/esm/Payload/Validator/MetaValidator.js +34 -0
  391. package/dist/esm/Payload/Validator/MetaValidator.js.map +1 -0
  392. package/dist/esm/Payload/Validator/Validator.d.ts +11 -0
  393. package/dist/esm/Payload/Validator/Validator.js +16 -0
  394. package/dist/esm/Payload/Validator/Validator.js.map +1 -0
  395. package/dist/esm/Payload/Validator/index.d.ts +3 -0
  396. package/dist/esm/Payload/Validator/index.js +4 -0
  397. package/dist/esm/Payload/Validator/index.js.map +1 -0
  398. package/dist/esm/Payload/Wrapper/Validator.d.ts +9 -0
  399. package/dist/esm/Payload/Wrapper/Validator.js +15 -0
  400. package/dist/esm/Payload/Wrapper/Validator.js.map +1 -0
  401. package/dist/esm/Payload/Wrapper/Wrapper.d.ts +9 -0
  402. package/dist/esm/Payload/Wrapper/Wrapper.js +15 -0
  403. package/dist/esm/Payload/Wrapper/Wrapper.js.map +1 -0
  404. package/dist/esm/Payload/Wrapper/index.d.ts +2 -0
  405. package/dist/esm/Payload/Wrapper/index.js +3 -0
  406. package/dist/esm/Payload/Wrapper/index.js.map +1 -0
  407. package/dist/esm/Payload/index.d.ts +4 -0
  408. package/dist/esm/Payload/index.js +5 -0
  409. package/dist/esm/Payload/index.js.map +1 -0
  410. package/dist/esm/Payload/models/Body.d.ts +6 -0
  411. package/dist/esm/Payload/models/Body.js +2 -0
  412. package/dist/esm/Payload/models/Body.js.map +1 -0
  413. package/dist/esm/Payload/models/Meta.d.ts +10 -0
  414. package/dist/esm/Payload/models/Meta.js +2 -0
  415. package/dist/esm/Payload/models/Meta.js.map +1 -0
  416. package/dist/esm/Payload/models/WithXyoPayloadMeta.d.ts +4 -0
  417. package/dist/esm/Payload/models/WithXyoPayloadMeta.js +2 -0
  418. package/dist/esm/Payload/models/WithXyoPayloadMeta.js.map +1 -0
  419. package/dist/esm/Payload/models/XyoPayload.d.ts +4 -0
  420. package/dist/esm/Payload/models/XyoPayload.js +2 -0
  421. package/dist/esm/Payload/models/XyoPayload.js.map +1 -0
  422. package/dist/esm/Payload/models/index.d.ts +5 -0
  423. package/dist/esm/Payload/models/index.js +2 -0
  424. package/dist/esm/Payload/models/index.js.map +1 -0
  425. package/dist/esm/Schema/Payload.d.ts +9 -0
  426. package/dist/esm/Schema/Payload.js +2 -0
  427. package/dist/esm/Schema/Payload.js.map +1 -0
  428. package/dist/esm/Schema/index.d.ts +1 -0
  429. package/dist/esm/Schema/index.js +2 -0
  430. package/dist/esm/Schema/index.js.map +1 -0
  431. package/dist/esm/SchemaNameValidator.d.ts +73 -0
  432. package/dist/esm/SchemaNameValidator.js +117 -0
  433. package/dist/esm/SchemaNameValidator.js.map +1 -0
  434. package/dist/esm/Test/index.d.ts +2 -0
  435. package/dist/esm/Test/index.js +3 -0
  436. package/dist/esm/Test/index.js.map +1 -0
  437. package/dist/esm/Test/testBoundWitness.d.ts +3 -0
  438. package/dist/esm/Test/testBoundWitness.js +14 -0
  439. package/dist/esm/Test/testBoundWitness.js.map +1 -0
  440. package/dist/esm/Test/testPayload.d.ts +4 -0
  441. package/dist/esm/Test/testPayload.js +15 -0
  442. package/dist/esm/Test/testPayload.js.map +1 -0
  443. package/dist/esm/Wallet/Account/Account.d.ts +36 -0
  444. package/dist/esm/Wallet/Account/Account.js +71 -0
  445. package/dist/esm/Wallet/Account/Account.js.map +1 -0
  446. package/dist/esm/Wallet/Account/Key/Data/AbstractData.d.ts +12 -0
  447. package/dist/esm/Wallet/Account/Key/Data/AbstractData.js +12 -0
  448. package/dist/esm/Wallet/Account/Key/Data/AbstractData.js.map +1 -0
  449. package/dist/esm/Wallet/Account/Key/Data/Data.d.ts +15 -0
  450. package/dist/esm/Wallet/Account/Key/Data/Data.js +35 -0
  451. package/dist/esm/Wallet/Account/Key/Data/Data.js.map +1 -0
  452. package/dist/esm/Wallet/Account/Key/Data/XyoDataLike.d.ts +4 -0
  453. package/dist/esm/Wallet/Account/Key/Data/XyoDataLike.js +2 -0
  454. package/dist/esm/Wallet/Account/Key/Data/XyoDataLike.js.map +1 -0
  455. package/dist/esm/Wallet/Account/Key/Data/index.d.ts +4 -0
  456. package/dist/esm/Wallet/Account/Key/Data/index.js +5 -0
  457. package/dist/esm/Wallet/Account/Key/Data/index.js.map +1 -0
  458. package/dist/esm/Wallet/Account/Key/Data/toUint8Array.d.ts +3 -0
  459. package/dist/esm/Wallet/Account/Key/Data/toUint8Array.js +31 -0
  460. package/dist/esm/Wallet/Account/Key/Data/toUint8Array.js.map +1 -0
  461. package/dist/esm/Wallet/Account/Key/XyoAddressValue.d.ts +11 -0
  462. package/dist/esm/Wallet/Account/Key/XyoAddressValue.js +45 -0
  463. package/dist/esm/Wallet/Account/Key/XyoAddressValue.js.map +1 -0
  464. package/dist/esm/Wallet/Account/Key/XyoEllipticKey.d.ts +5 -0
  465. package/dist/esm/Wallet/Account/Key/XyoEllipticKey.js +8 -0
  466. package/dist/esm/Wallet/Account/Key/XyoEllipticKey.js.map +1 -0
  467. package/dist/esm/Wallet/Account/Key/XyoKeyPair.d.ts +10 -0
  468. package/dist/esm/Wallet/Account/Key/XyoKeyPair.js +18 -0
  469. package/dist/esm/Wallet/Account/Key/XyoKeyPair.js.map +1 -0
  470. package/dist/esm/Wallet/Account/Key/XyoPrivateKey.d.ts +14 -0
  471. package/dist/esm/Wallet/Account/Key/XyoPrivateKey.js +50 -0
  472. package/dist/esm/Wallet/Account/Key/XyoPrivateKey.js.map +1 -0
  473. package/dist/esm/Wallet/Account/Key/XyoPublicKey.d.ts +10 -0
  474. package/dist/esm/Wallet/Account/Key/XyoPublicKey.js +18 -0
  475. package/dist/esm/Wallet/Account/Key/XyoPublicKey.js.map +1 -0
  476. package/dist/esm/Wallet/Account/Key/index.d.ts +5 -0
  477. package/dist/esm/Wallet/Account/Key/index.js +6 -0
  478. package/dist/esm/Wallet/Account/Key/index.js.map +1 -0
  479. package/dist/esm/Wallet/Account/index.d.ts +2 -0
  480. package/dist/esm/Wallet/Account/index.js +3 -0
  481. package/dist/esm/Wallet/Account/index.js.map +1 -0
  482. package/dist/esm/Wallet/Base/Base.d.ts +8 -0
  483. package/dist/esm/Wallet/Base/Base.js +30 -0
  484. package/dist/esm/Wallet/Base/Base.js.map +1 -0
  485. package/dist/esm/Wallet/Base/Words.d.ts +2 -0
  486. package/dist/esm/Wallet/Base/Words.js +2641 -0
  487. package/dist/esm/Wallet/Base/Words.js.map +1 -0
  488. package/dist/esm/Wallet/Base/WordsPayload.d.ts +4 -0
  489. package/dist/esm/Wallet/Base/WordsPayload.js +2 -0
  490. package/dist/esm/Wallet/Base/WordsPayload.js.map +1 -0
  491. package/dist/esm/Wallet/Base/index.d.ts +1 -0
  492. package/dist/esm/Wallet/Base/index.js +2 -0
  493. package/dist/esm/Wallet/Base/index.js.map +1 -0
  494. package/dist/esm/Wallet/index.d.ts +2 -0
  495. package/dist/esm/Wallet/index.js +3 -0
  496. package/dist/esm/Wallet/index.js.map +1 -0
  497. package/dist/esm/Witness/Witness.d.ts +14 -0
  498. package/dist/esm/Witness/Witness.js +16 -0
  499. package/dist/esm/Witness/Witness.js.map +1 -0
  500. package/dist/esm/Witness/index.d.ts +1 -0
  501. package/dist/esm/Witness/index.js +2 -0
  502. package/dist/esm/Witness/index.js.map +1 -0
  503. package/dist/esm/browser/core/Wallet/Web.d.ts +5 -0
  504. package/dist/esm/browser/core/Wallet/Web.js +11 -0
  505. package/dist/esm/browser/core/Wallet/Web.js.map +1 -0
  506. package/dist/esm/browser/core/Wallet/index.d.ts +1 -0
  507. package/dist/esm/browser/core/Wallet/index.js +2 -0
  508. package/dist/esm/browser/core/Wallet/index.js.map +1 -0
  509. package/dist/esm/browser/core/index.d.ts +1 -0
  510. package/dist/esm/browser/core/index.js +2 -0
  511. package/dist/esm/browser/core/index.js.map +1 -0
  512. package/dist/esm/browser/index.d.ts +1 -0
  513. package/dist/esm/browser/index.js +2 -0
  514. package/dist/esm/browser/index.js.map +1 -0
  515. package/dist/esm/browserIndex.d.ts +2 -0
  516. package/dist/esm/browserIndex.js +3 -0
  517. package/dist/esm/browserIndex.js.map +1 -0
  518. package/dist/esm/index.d.ts +2 -0
  519. package/dist/esm/index.js +3 -0
  520. package/dist/esm/index.js.map +1 -0
  521. package/dist/esm/lib/dns/DnsRecordType.d.ts +14 -0
  522. package/dist/esm/lib/dns/DnsRecordType.js +16 -0
  523. package/dist/esm/lib/dns/DnsRecordType.js.map +1 -0
  524. package/dist/esm/lib/dns/DnsReturnCode.d.ts +13 -0
  525. package/dist/esm/lib/dns/DnsReturnCode.js +15 -0
  526. package/dist/esm/lib/dns/DnsReturnCode.js.map +1 -0
  527. package/dist/esm/lib/dns/GoogleDnsResult.d.ts +16 -0
  528. package/dist/esm/lib/dns/GoogleDnsResult.js +2 -0
  529. package/dist/esm/lib/dns/GoogleDnsResult.js.map +1 -0
  530. package/dist/esm/lib/dns/GoogleDnsResultAnswer.d.ts +7 -0
  531. package/dist/esm/lib/dns/GoogleDnsResultAnswer.js +2 -0
  532. package/dist/esm/lib/dns/GoogleDnsResultAnswer.js.map +1 -0
  533. package/dist/esm/lib/dns/GoogleDnsResultQuestion.d.ts +10 -0
  534. package/dist/esm/lib/dns/GoogleDnsResultQuestion.js +2 -0
  535. package/dist/esm/lib/dns/GoogleDnsResultQuestion.js.map +1 -0
  536. package/dist/esm/lib/dns/domainExists.d.ts +7 -0
  537. package/dist/esm/lib/dns/domainExists.js +15 -0
  538. package/dist/esm/lib/dns/domainExists.js.map +1 -0
  539. package/dist/esm/lib/dns/domainResolve.d.ts +8 -0
  540. package/dist/esm/lib/dns/domainResolve.js +15 -0
  541. package/dist/esm/lib/dns/domainResolve.js.map +1 -0
  542. package/dist/esm/lib/dns/googleDnsOverHttps.d.ts +4 -0
  543. package/dist/esm/lib/dns/googleDnsOverHttps.js +7 -0
  544. package/dist/esm/lib/dns/googleDnsOverHttps.js.map +1 -0
  545. package/dist/esm/lib/dns/index.d.ts +8 -0
  546. package/dist/esm/lib/dns/index.js +9 -0
  547. package/dist/esm/lib/dns/index.js.map +1 -0
  548. package/dist/esm/lib/dumpErrors.d.ts +2 -0
  549. package/dist/esm/lib/dumpErrors.js +7 -0
  550. package/dist/esm/lib/dumpErrors.js.map +1 -0
  551. package/dist/esm/lib/index.d.ts +4 -0
  552. package/dist/esm/lib/index.js +5 -0
  553. package/dist/esm/lib/index.js.map +1 -0
  554. package/dist/esm/lib/isBrowser.d.ts +1 -0
  555. package/dist/esm/lib/isBrowser.js +4 -0
  556. package/dist/esm/lib/isBrowser.js.map +1 -0
  557. package/dist/esm/lib/typeOf/TypeOfTypes.d.ts +1 -0
  558. package/dist/esm/lib/typeOf/TypeOfTypes.js +2 -0
  559. package/dist/esm/lib/typeOf/TypeOfTypes.js.map +1 -0
  560. package/dist/esm/lib/typeOf/ifDefined.d.ts +1 -0
  561. package/dist/esm/lib/typeOf/ifDefined.js +12 -0
  562. package/dist/esm/lib/typeOf/ifDefined.js.map +1 -0
  563. package/dist/esm/lib/typeOf/ifTypeOf.d.ts +2 -0
  564. package/dist/esm/lib/typeOf/ifTypeOf.js +8 -0
  565. package/dist/esm/lib/typeOf/ifTypeOf.js.map +1 -0
  566. package/dist/esm/lib/typeOf/index.d.ts +5 -0
  567. package/dist/esm/lib/typeOf/index.js +6 -0
  568. package/dist/esm/lib/typeOf/index.js.map +1 -0
  569. package/dist/esm/lib/typeOf/typeOf.d.ts +2 -0
  570. package/dist/esm/lib/typeOf/typeOf.js +4 -0
  571. package/dist/esm/lib/typeOf/typeOf.js.map +1 -0
  572. package/dist/esm/lib/typeOf/validateType.d.ts +2 -0
  573. package/dist/esm/lib/typeOf/validateType.js +14 -0
  574. package/dist/esm/lib/typeOf/validateType.js.map +1 -0
  575. package/dist/esm/models/WithStringIndex.d.ts +1 -0
  576. package/dist/esm/models/WithStringIndex.js +2 -0
  577. package/dist/esm/models/WithStringIndex.js.map +1 -0
  578. package/dist/esm/models/index.d.ts +1 -0
  579. package/dist/esm/models/index.js +2 -0
  580. package/dist/esm/models/index.js.map +1 -0
  581. package/dist/esm/nodeIndex.d.ts +1 -0
  582. package/dist/esm/nodeIndex.js +2 -0
  583. package/dist/esm/nodeIndex.js.map +1 -0
  584. package/dist/esm/shared.d.ts +10 -0
  585. package/dist/esm/shared.js +11 -0
  586. package/dist/esm/shared.js.map +1 -0
  587. package/jest.config.cjs +25 -0
  588. package/package.json +117 -0
  589. package/rollup.config.js +5 -0
  590. package/src/BoundWitness/Builder/Builder.spec.ts +86 -0
  591. package/src/BoundWitness/Builder/Builder.ts +83 -0
  592. package/src/BoundWitness/Builder/index.ts +1 -0
  593. package/src/BoundWitness/Validator/BodyValidator.spec.ts +10 -0
  594. package/src/BoundWitness/Validator/BodyValidator.ts +104 -0
  595. package/src/BoundWitness/Validator/MetaValidator.spec.ts +55 -0
  596. package/src/BoundWitness/Validator/MetaValidator.ts +75 -0
  597. package/src/BoundWitness/Validator/Validator.spec.ts +10 -0
  598. package/src/BoundWitness/Validator/Validator.ts +51 -0
  599. package/src/BoundWitness/Validator/index.ts +3 -0
  600. package/src/BoundWitness/Validator/ip-regex.ts +39 -0
  601. package/src/BoundWitness/Validator/is-ip.ts +17 -0
  602. package/src/BoundWitness/Wrapper/Wrapper.ts +34 -0
  603. package/src/BoundWitness/Wrapper/index.ts +1 -0
  604. package/src/BoundWitness/index.ts +4 -0
  605. package/src/BoundWitness/models/Body/XyoBoundWitnessBody.ts +13 -0
  606. package/src/BoundWitness/models/Body/XyoBoundWitnessBodySchema.ts +17 -0
  607. package/src/BoundWitness/models/Body/index.ts +2 -0
  608. package/src/BoundWitness/models/Meta/XyoBoundWitnessMeta.ts +15 -0
  609. package/src/BoundWitness/models/Meta/XyoBoundWitnessMetaSchema.ts +24 -0
  610. package/src/BoundWitness/models/Meta/index.ts +2 -0
  611. package/src/BoundWitness/models/WithXyoBoundWitnessMeta.ts +6 -0
  612. package/src/BoundWitness/models/XyoBoundWitness.ts +7 -0
  613. package/src/BoundWitness/models/XyoBoundWitnessSchema.ts +23 -0
  614. package/src/BoundWitness/models/index.ts +5 -0
  615. package/src/Hasher/XyoHasher.ts +30 -0
  616. package/src/Hasher/index.ts +4 -0
  617. package/src/Hasher/removeEmptyFields.spec.ts +23 -0
  618. package/src/Hasher/removeEmptyFields.ts +15 -0
  619. package/src/Hasher/removeFields.ts +26 -0
  620. package/src/Hasher/sortFields.ts +24 -0
  621. package/src/Huri/Huri.spec.ts +93 -0
  622. package/src/Huri/Huri.ts +143 -0
  623. package/src/Huri/index.ts +1 -0
  624. package/src/Payload/Builder/Builder.spec.ts +37 -0
  625. package/src/Payload/Builder/Builder.ts +42 -0
  626. package/src/Payload/Builder/index.ts +1 -0
  627. package/src/Payload/Validator/BodyValidator.spec.ts +10 -0
  628. package/src/Payload/Validator/BodyValidator.ts +34 -0
  629. package/src/Payload/Validator/MetaValidator.spec.ts +10 -0
  630. package/src/Payload/Validator/MetaValidator.ts +38 -0
  631. package/src/Payload/Validator/Validator.spec.ts +62 -0
  632. package/src/Payload/Validator/Validator.ts +22 -0
  633. package/src/Payload/Validator/index.ts +3 -0
  634. package/src/Payload/Wrapper/Validator.ts +20 -0
  635. package/src/Payload/Wrapper/Wrapper.ts +20 -0
  636. package/src/Payload/Wrapper/index.ts +2 -0
  637. package/src/Payload/index.ts +4 -0
  638. package/src/Payload/models/Body.ts +7 -0
  639. package/src/Payload/models/Meta.ts +11 -0
  640. package/src/Payload/models/WithXyoPayloadMeta.ts +6 -0
  641. package/src/Payload/models/XyoPayload.ts +6 -0
  642. package/src/Payload/models/index.ts +6 -0
  643. package/src/Schema/Payload.ts +10 -0
  644. package/src/Schema/index.ts +1 -0
  645. package/src/SchemaNameValidator.ts +128 -0
  646. package/src/Test/index.ts +2 -0
  647. package/src/Test/testBoundWitness.ts +16 -0
  648. package/src/Test/testPayload.ts +17 -0
  649. package/src/Wallet/Account/Account.spec.ts +91 -0
  650. package/src/Wallet/Account/Account.ts +96 -0
  651. package/src/Wallet/Account/Key/Data/AbstractData.ts +22 -0
  652. package/src/Wallet/Account/Key/Data/Data.ts +45 -0
  653. package/src/Wallet/Account/Key/Data/XyoDataLike.ts +5 -0
  654. package/src/Wallet/Account/Key/Data/index.ts +4 -0
  655. package/src/Wallet/Account/Key/Data/toUint8Array.spec.ts +19 -0
  656. package/src/Wallet/Account/Key/Data/toUint8Array.ts +41 -0
  657. package/src/Wallet/Account/Key/XyoAddressValue.ts +51 -0
  658. package/src/Wallet/Account/Key/XyoEllipticKey.ts +9 -0
  659. package/src/Wallet/Account/Key/XyoKeyPair.ts +23 -0
  660. package/src/Wallet/Account/Key/XyoPrivateKey.ts +60 -0
  661. package/src/Wallet/Account/Key/XyoPublicKey.ts +21 -0
  662. package/src/Wallet/Account/Key/index.ts +5 -0
  663. package/src/Wallet/Account/index.ts +2 -0
  664. package/src/Wallet/Base/Base.spec.ts +10 -0
  665. package/src/Wallet/Base/Base.ts +35 -0
  666. package/src/Wallet/Base/Words.ts +2643 -0
  667. package/src/Wallet/Base/WordsPayload.ts +5 -0
  668. package/src/Wallet/Base/index.ts +1 -0
  669. package/src/Wallet/index.ts +2 -0
  670. package/src/Witness/Witness.spec.ts +13 -0
  671. package/src/Witness/Witness.ts +28 -0
  672. package/src/Witness/index.ts +1 -0
  673. package/src/browser/core/Wallet/Web.spec.ts +9 -0
  674. package/src/browser/core/Wallet/Web.ts +13 -0
  675. package/src/browser/core/Wallet/index.ts +1 -0
  676. package/src/browser/core/index.ts +1 -0
  677. package/src/browser/index.ts +1 -0
  678. package/src/browserIndex.ts +2 -0
  679. package/src/index.ts +2 -0
  680. package/src/lib/dns/DnsRecordType.ts +14 -0
  681. package/src/lib/dns/DnsReturnCode.ts +14 -0
  682. package/src/lib/dns/GoogleDnsResult.ts +17 -0
  683. package/src/lib/dns/GoogleDnsResultAnswer.ts +8 -0
  684. package/src/lib/dns/GoogleDnsResultQuestion.ts +11 -0
  685. package/src/lib/dns/domainExists.ts +15 -0
  686. package/src/lib/dns/domainResolve.ts +16 -0
  687. package/src/lib/dns/googleDnsOverHttps.ts +10 -0
  688. package/src/lib/dns/index.ts +8 -0
  689. package/src/lib/dumpErrors.ts +7 -0
  690. package/src/lib/index.ts +4 -0
  691. package/src/lib/isBrowser.ts +3 -0
  692. package/src/lib/typeOf/TypeOfTypes.ts +1 -0
  693. package/src/lib/typeOf/ifDefined.ts +12 -0
  694. package/src/lib/typeOf/ifTypeOf.ts +9 -0
  695. package/src/lib/typeOf/index.ts +5 -0
  696. package/src/lib/typeOf/typeOf.ts +5 -0
  697. package/src/lib/typeOf/validateType.ts +15 -0
  698. package/src/models/WithStringIndex.ts +1 -0
  699. package/src/models/index.ts +1 -0
  700. package/src/nodeIndex.ts +1 -0
  701. package/src/shared.ts +10 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeOf.js","sourceRoot":"","sources":["../../../../src/lib/typeOf/typeOf.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,IAAO,EAAe,EAAE;IAChD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA;AACpD,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { TypeOfTypes } from './TypeOfTypes';
2
+ export declare const validateType: <T>(typeName: TypeOfTypes, value: T, optional?: boolean) => [T | undefined, Error[]];
@@ -0,0 +1,14 @@
1
+ import { typeOf } from './typeOf';
2
+ export const validateType = (typeName, value, optional = false) => {
3
+ switch (typeOf(value)) {
4
+ case typeName:
5
+ return [value, []];
6
+ default: {
7
+ if (optional && typeOf(value) === 'undefined') {
8
+ return [value, []];
9
+ }
10
+ return [undefined, [Error(`value type is not '${typeName}:${typeof value}'`)]];
11
+ }
12
+ }
13
+ };
14
+ //# sourceMappingURL=validateType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateType.js","sourceRoot":"","sources":["../../../../src/lib/typeOf/validateType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAGjC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,QAAqB,EAAE,KAAQ,EAAE,QAAQ,GAAG,KAAK,EAA4B,EAAE;IAC7G,QAAQ,MAAM,CAAC,KAAK,CAAC,EAAE;QACrB,KAAK,QAAQ;YACX,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACpB,OAAO,CAAC,CAAC;YACP,IAAI,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE;gBAC7C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;aACnB;YACD,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,sBAAsB,QAAQ,IAAI,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;SAC/E;KACF;AACH,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare type WithStringIndex<T> = T & Record<string, unknown>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WithStringIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WithStringIndex.js","sourceRoot":"","sources":["../../../src/models/WithStringIndex.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './WithStringIndex';
@@ -0,0 +1,2 @@
1
+ export * from './WithStringIndex';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './shared';
@@ -0,0 +1,2 @@
1
+ export * from './shared';
2
+ //# sourceMappingURL=nodeIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeIndex.js","sourceRoot":"","sources":["../../src/nodeIndex.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,10 @@
1
+ export * from './BoundWitness';
2
+ export * from './Hasher';
3
+ export * from './Huri';
4
+ export * from './lib';
5
+ export * from './models';
6
+ export * from './Payload';
7
+ export * from './Schema';
8
+ export * from './SchemaNameValidator';
9
+ export * from './Wallet';
10
+ export * from './Witness';
@@ -0,0 +1,11 @@
1
+ export * from './BoundWitness';
2
+ export * from './Hasher';
3
+ export * from './Huri';
4
+ export * from './lib';
5
+ export * from './models';
6
+ export * from './Payload';
7
+ export * from './Schema';
8
+ export * from './SchemaNameValidator';
9
+ export * from './Wallet';
10
+ export * from './Witness';
11
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/shared.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,uBAAuB,CAAA;AACrC,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA"}
@@ -0,0 +1,25 @@
1
+ const generateJestConfig = ({ esModules }) => {
2
+ const esModuleslist = Array.isArray(esModules) ? esModules.join('|') : esModules
3
+ return {
4
+ globals: {
5
+ 'ts-jest': {
6
+ tsconfig: 'tsconfig.test.json',
7
+ },
8
+ },
9
+ moduleNameMapper: {
10
+ '^(\\.{1,2}/.*)\\.js$': '$1',
11
+ },
12
+ preset: 'ts-jest/presets/default-esm',
13
+ setupFiles: ['dotenv/config'],
14
+ setupFilesAfterEnv: ['jest-sorted'],
15
+ testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
16
+ testTimeout: 20000,
17
+ transform: {
18
+ [`(${esModuleslist}).+\\.js$`]: 'babel-jest',
19
+ '^.+\\.tsx?$': 'ts-jest/legacy',
20
+ },
21
+ transformIgnorePatterns: [`./node_modules/(?!${esModuleslist})`],
22
+ }
23
+ }
24
+
25
+ module.exports = generateJestConfig({ esModules: ['is-ip', 'ip-regex', 'lodash-es', 'uuid'] })
package/package.json ADDED
@@ -0,0 +1,117 @@
1
+ {
2
+ "author": {
3
+ "email": "support@xyo.network",
4
+ "name": "XYO Development Team",
5
+ "url": "https://xyo.network"
6
+ },
7
+ "bugs": {
8
+ "email": "support@xyo.network",
9
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
10
+ },
11
+ "dependencies": {
12
+ "@ethersproject/providers": "^5.6.5",
13
+ "@xylabs/sdk-js": "^2.5.5",
14
+ "@xyo-network/ethers-wrappers": "^2.6.17",
15
+ "@xyo-network/sdk-xyo-mongo-js": "^2.2.7",
16
+ "@xyo-network/sdk-xyo-typechain": "^1.0.3",
17
+ "ajv": "^8.11.0",
18
+ "axios": "^0.27.2",
19
+ "bn.js": "^5.2.0",
20
+ "bowser": "^2.11.0",
21
+ "elliptic": "^6.5.4",
22
+ "keccak256": "^1.0.6",
23
+ "lodash": "^4.17.21",
24
+ "lru-cache": "^7.10.1",
25
+ "mongodb": "^4.6.0",
26
+ "neo4j-driver": "^4.4.5",
27
+ "neo4j-driver-core": "^4.4.5",
28
+ "pako": "^2.0.4",
29
+ "randombytes": "^2.1.0",
30
+ "sha.js": "^2.4.11",
31
+ "systeminformation": "^5.11.15",
32
+ "ua-parser-js": "^1.0.2",
33
+ "uuid": "^8.3.2"
34
+ },
35
+ "description": "Primary SDK for using XYO Protocol 2.0",
36
+ "devDependencies": {
37
+ "@babel/core": "^7.17.10",
38
+ "@babel/preset-env": "^7.17.10",
39
+ "@types/bn.js": "^5.1.0",
40
+ "@types/elliptic": "^6.4.14",
41
+ "@types/jest": "^27.5.1",
42
+ "@types/json-schema": "^7.0.11",
43
+ "@types/lodash": "^4.14.182",
44
+ "@types/lru-cache": "^7.6.1",
45
+ "@types/node": "^17.0.32",
46
+ "@types/pako": "^1.0.3",
47
+ "@types/randombytes": "^2.0.0",
48
+ "@types/sha.js": "^2.4.0",
49
+ "@types/ua-parser-js": "^0.7.36",
50
+ "@types/uuid": "^8.3.4",
51
+ "@xylabs/eslint-config": "^2.3.22",
52
+ "@xylabs/rollup-config": "^1.1.17",
53
+ "@xylabs/ts-scripts": "^1.0.66",
54
+ "@xylabs/tsconfig": "^1.0.13",
55
+ "babel-jest": "^28.1.0",
56
+ "copyfiles": "^2.4.1",
57
+ "dotenv": "^16.0.1",
58
+ "eslint": "^8.15.0",
59
+ "ethers": "^5.6.5",
60
+ "jest": "^28.1.0",
61
+ "jest-environment-jsdom": "^28.1.0",
62
+ "jest-sorted": "^1.0.14",
63
+ "license-checker": "^25.0.1",
64
+ "npm-package-json-lint": "^6.3.0",
65
+ "npm-package-json-lint-config-default": "^5.0.0",
66
+ "rimraf": "^3.0.2",
67
+ "rollbar": "^2.25.0",
68
+ "rollup": "^2.72.1",
69
+ "ts-jest": "^28.0.2",
70
+ "ts-node": "^10.7.0",
71
+ "tslib": "^2.4.0",
72
+ "typedoc": "^0.22.15",
73
+ "typescript": "^4.6.4"
74
+ },
75
+ "browser": "dist/esm/browserIndex.js",
76
+ "docs": "dist/docs.json",
77
+ "exports": {
78
+ ".": {
79
+ "node": {
80
+ "import": "./dist/esm/nodeIndex.js",
81
+ "require": "./dist/cjs/nodeIndex.js"
82
+ },
83
+ "browser": {
84
+ "import": "./dist/esm/browserIndex.js",
85
+ "require": "./dist/cjs/browserIndex.js"
86
+ },
87
+ "default": "./dist/esm/index.js"
88
+ },
89
+ "./dist/docs.json": {
90
+ "default": "./dist/docs.json"
91
+ },
92
+ "./package.json": "./package.json"
93
+ },
94
+ "main": "dist/cjs/index.js",
95
+ "module": "dist/esm/index.js",
96
+ "homepage": "https://xyo.network",
97
+ "license": "LGPL-3.0-only",
98
+ "name": "@xyo-network/core",
99
+ "publishConfig": {
100
+ "access": "public"
101
+ },
102
+ "repository": {
103
+ "type": "git",
104
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
105
+ },
106
+ "scripts": {
107
+ "deploy": "yarn deploy3",
108
+ "lint-pkg": "npmPkgJsonLint .",
109
+ "build": "yarn clean && tsc -p tsconfig.build.cjs.json && tsc -p tsconfig.build.esm.json && yarn gen:docs",
110
+ "gen:docs": "typedoc ./src/index.ts --json ./dist/docs.json --tsconfig ./tsconfig.json",
111
+ "license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\""
112
+ },
113
+ "sideEffects": true,
114
+ "types": "dist/esm/index.d.ts",
115
+ "version": "2.20.17",
116
+ "packageManager": "yarn@3.1.1"
117
+ }
@@ -0,0 +1,5 @@
1
+ import { getRollupConfig } from '@xylabs/rollup-config'
2
+
3
+ import pkg from './package.json'
4
+
5
+ export default getRollupConfig({pkg, browserIndex: './src/browserIndex.ts', nodeIndex: './src/nodeIndex.ts', bundlePrefix: 'bundle/', outputs: ['cjs5', 'node', 'node-esm']})
@@ -0,0 +1,86 @@
1
+ /* eslint-disable sort-keys-fix/sort-keys-fix */
2
+ /* eslint-disable sort-keys */
3
+ import { XyoHasher } from '../../Hasher'
4
+ import { XyoPayload } from '../../Payload'
5
+ import { XyoAccount, XyoAddressValue } from '../../Wallet'
6
+ import { XyoBoundWitnessBuilder } from './Builder'
7
+
8
+ const schema = 'network.xyo.temp'
9
+ const payload1: XyoPayload = {
10
+ number_field: 1,
11
+ object_field: {
12
+ number_value: 2,
13
+ string_value: 'yo',
14
+ },
15
+ schema,
16
+ string_field: 'there',
17
+ timestamp: 1618603439107,
18
+ }
19
+ const payload2: XyoPayload = {
20
+ timestamp: 1618603439107,
21
+ string_field: 'there',
22
+ schema,
23
+ object_field: {
24
+ string_value: 'yo',
25
+ number_value: 2,
26
+ },
27
+ number_field: 1,
28
+ }
29
+ const payloads = [payload1, payload2]
30
+ const payloadHash = '3c817871cbf24708703e907dbc344b1b2aefcc3603d14d59c3a35a5c446410d1'
31
+
32
+ describe('XyoBoundWitnessBuilder', () => {
33
+ describe('hash', () => {
34
+ it.each(payloads)('consistently hashes equivalent payload independent of the order of the keys', (payload) => {
35
+ const hash = new XyoHasher(payload).sortedHash()
36
+ expect(hash).toEqual(payloadHash)
37
+ })
38
+ })
39
+ describe('build', () => {
40
+ describe('_hash', () => {
41
+ it.each(payloads)('consistently hashes equivalent payloads independent of the order of the keys', (payload) => {
42
+ const address = XyoAccount.fromPhrase('test1')
43
+ let builder = new XyoBoundWitnessBuilder()
44
+ expect(builder).toBeDefined()
45
+ builder = builder.witness(address)
46
+ expect(builder).toBeDefined()
47
+ builder = builder.payload(payload)
48
+ expect(builder).toBeDefined()
49
+
50
+ const actual = builder.build()
51
+
52
+ expect(actual).toBeDefined()
53
+ expect(actual._hash).toEqual('7f3203f2d191f12c26cd1aec62b718be8848471f82831a8870f82fc669a5f35b')
54
+
55
+ if (actual._hash && actual._signatures) {
56
+ const addr = new XyoAddressValue(actual.addresses[0])
57
+ expect(addr.hex).toBe(actual.addresses[0])
58
+ const verify = new XyoAddressValue(actual.addresses[0]).verify(actual._hash, actual._signatures[0])
59
+ expect(verify).toBe(true)
60
+ }
61
+ })
62
+ })
63
+ describe('with inlinePayloads true', () => {
64
+ it('contains the _payloads field', () => {
65
+ const address = XyoAccount.fromPhrase('test2')
66
+ const builder = new XyoBoundWitnessBuilder({ inlinePayloads: true }).witness(address).payload(payload1)
67
+
68
+ const actual = builder.build()
69
+
70
+ expect(actual).toBeDefined()
71
+ expect(actual._payloads).toBeDefined()
72
+ })
73
+ })
74
+ describe('with inlinePayloads false', () => {
75
+ it('omits the _payloads field', () => {
76
+ const address = XyoAccount.fromPhrase('test3')
77
+ const builder = new XyoBoundWitnessBuilder({ inlinePayloads: false }).witness(address).payload(payload1)
78
+
79
+ const actual = builder.build()
80
+
81
+ expect(actual).toBeDefined()
82
+ expect(actual._payloads).toBeUndefined()
83
+ })
84
+ })
85
+ })
86
+ })
@@ -0,0 +1,83 @@
1
+ import { assertEx, Buffer } from '@xylabs/sdk-js'
2
+
3
+ import { sortFields, XyoHasher } from '../../Hasher'
4
+ import { XyoPayload, XyoPayloadBody } from '../../Payload'
5
+ import { XyoAccount } from '../../Wallet'
6
+ import { XyoBoundWitness } from '../models'
7
+
8
+ export interface XyoBoundWitnessBuilderConfig {
9
+ /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
10
+ readonly inlinePayloads?: boolean
11
+ }
12
+
13
+ export class XyoBoundWitnessBuilder {
14
+ private _accounts: XyoAccount[] = []
15
+ private _payload_schemas: string[] = []
16
+ private _payloads: XyoPayload[] = []
17
+
18
+ constructor(public readonly config: XyoBoundWitnessBuilderConfig = { inlinePayloads: false }) {}
19
+
20
+ private get _payload_hashes(): string[] {
21
+ return this._payloads.map((payload) => {
22
+ return new XyoHasher(payload).sortedHash()
23
+ })
24
+ }
25
+
26
+ public witness(account: XyoAccount) {
27
+ this._accounts?.push(account)
28
+ return this
29
+ }
30
+
31
+ public payloads(payloads: (XyoPayload | null)[]) {
32
+ payloads.forEach((payload) => {
33
+ if (payload !== null) {
34
+ this.payload(payload)
35
+ }
36
+ })
37
+ return this
38
+ }
39
+
40
+ public payload(payload?: XyoPayload) {
41
+ if (payload) {
42
+ this._payload_schemas.push(payload.schema)
43
+ this._payloads.push(assertEx(sortFields(payload)))
44
+ }
45
+ return this
46
+ }
47
+
48
+ public hashableFields(): XyoBoundWitness {
49
+ const addresses = this._accounts.map((account) => account.addressValue.hex)
50
+ const previous_hashes = this._accounts.map((account) => account.previousHash?.hex ?? null)
51
+ return {
52
+ addresses: assertEx(addresses, 'Missing addresses'),
53
+ payload_hashes: assertEx(this._payload_hashes, 'Missing payload_hashes'),
54
+ payload_schemas: assertEx(this._payload_schemas, 'Missing payload_schemas'),
55
+ previous_hashes,
56
+ schema: 'network.xyo.boundwitness',
57
+ }
58
+ }
59
+
60
+ private signatures(_hash: string) {
61
+ return this._accounts.map((account) => Buffer.from(account.sign(Buffer.from(_hash, 'hex'))).toString('hex'))
62
+ }
63
+
64
+ private inlinePayloads() {
65
+ return this._payloads.map<XyoPayloadBody>((payload, index) => {
66
+ return {
67
+ ...payload,
68
+ schema: this._payload_schemas[index],
69
+ }
70
+ })
71
+ }
72
+
73
+ public build(): XyoBoundWitness {
74
+ const hashableFields = this.hashableFields() as unknown as Record<string, unknown>
75
+ const _hash = new XyoHasher(hashableFields).sortedHash()
76
+
77
+ const ret = { ...hashableFields, _client: 'js', _hash, _signatures: this.signatures(_hash), _timestamp: Date.now() } as XyoBoundWitness
78
+ if (this.config.inlinePayloads) {
79
+ ret._payloads = this.inlinePayloads()
80
+ }
81
+ return ret
82
+ }
83
+ }
@@ -0,0 +1 @@
1
+ export * from './Builder'
@@ -0,0 +1,10 @@
1
+ import { dumpErrors } from '../../lib'
2
+ import { testBoundWitness } from '../../Test'
3
+ import { XyoBoundWitnessBodyValidator } from './BodyValidator'
4
+
5
+ test('all', () => {
6
+ const validator = new XyoBoundWitnessBodyValidator(testBoundWitness)
7
+ const errors = validator.all()
8
+ dumpErrors(errors)
9
+ expect(errors.length).toBe(0)
10
+ })
@@ -0,0 +1,104 @@
1
+ import uniq from 'lodash/uniq'
2
+
3
+ import { XyoHasher } from '../../Hasher'
4
+ import { validateType } from '../../lib'
5
+ import { WithStringIndex } from '../../models'
6
+ import { XyoPayload } from '../../Payload'
7
+ import { XyoSchemaNameValidator } from '../../SchemaNameValidator'
8
+ import { XyoBoundWitnessBody } from '../models'
9
+
10
+ class XyoBoundWitnessBodyValidator {
11
+ private body: WithStringIndex<XyoBoundWitnessBody>
12
+ private payloads?: XyoPayload[]
13
+ constructor(body: XyoBoundWitnessBody, payloads?: XyoPayload[]) {
14
+ this.body = body as WithStringIndex<XyoBoundWitnessBody>
15
+ this.payloads = payloads
16
+ }
17
+
18
+ public addressesUniqueness() {
19
+ const errors: Error[] = []
20
+ const { addresses } = this.body
21
+ const uniqAddresses = uniq(addresses)
22
+ if (addresses?.length !== uniqAddresses?.length) errors.push(new Error('addresses must be unique'))
23
+ return errors
24
+ }
25
+
26
+ public addresses() {
27
+ const errors: Error[] = []
28
+ const { addresses } = this.body
29
+ if (!addresses?.length) errors.push(new Error('addresses missing [at least one address required]'))
30
+ errors.push(...this.addressesUniqueness())
31
+ return errors
32
+ }
33
+
34
+ private validateArrayLength(fieldName: string, compareArrayName: string) {
35
+ const errors: Error[] = []
36
+
37
+ const [array, arrayErrors] = validateType('array', this.body[fieldName] as [], true)
38
+ const [compareArray, compareArrayErrors] = validateType('array', this.body[compareArrayName] as [], true)
39
+
40
+ if (array?.length !== compareArray?.length) {
41
+ errors.push(new Error(`${fieldName}/${compareArrayName} count mismatch [${array?.length} !== ${compareArray?.length}]`))
42
+ }
43
+
44
+ return [...arrayErrors, ...compareArrayErrors, ...errors]
45
+ }
46
+
47
+ public validatePayloadHashesLength() {
48
+ const errors: Error[] = []
49
+ errors.push(...this.validateArrayLength('payload_hashes', 'payload_schemas'))
50
+ return errors
51
+ }
52
+
53
+ public validateArrayLengths() {
54
+ const errors: Error[] = []
55
+ errors.push(...this.validatePayloadHashesLength())
56
+ return errors
57
+ }
58
+
59
+ public payloadHashes() {
60
+ const errors: Error[] = []
61
+ const passedHashes = this.body.payload_hashes
62
+ this.payloads?.forEach((payload, index) => {
63
+ const calcHash = new XyoHasher(payload).sortedHash()
64
+ const passedHash = passedHashes[index]
65
+ if (calcHash !== passedHash) {
66
+ errors.push(new Error(`hash mismatch [${calcHash} !== ${passedHash}]`))
67
+ }
68
+ })
69
+ return errors
70
+ }
71
+
72
+ public payloadSchemas() {
73
+ const errors: Error[] = []
74
+ const schemaValidators: XyoSchemaNameValidator[] = this.body.payload_schemas.map((schema: string) => {
75
+ return new XyoSchemaNameValidator(schema)
76
+ })
77
+ schemaValidators.forEach((validator) => {
78
+ errors.push(...validator.all())
79
+ })
80
+ return errors
81
+ }
82
+
83
+ public previousHashes() {
84
+ const errors: Error[] = []
85
+ return errors
86
+ }
87
+
88
+ public schmea() {
89
+ const errors: Error[] = []
90
+ const expectedSchema = 'network.xyo.boundwitness'
91
+ if (this.body.schema !== expectedSchema) {
92
+ errors.push(new Error(`invalid schema [${expectedSchema} !== ${this.body.schema}]`))
93
+ }
94
+ return errors
95
+ }
96
+
97
+ public all() {
98
+ const errors: Error[] = []
99
+ errors.push(...this.addresses(), ...this.validateArrayLengths(), ...this.payloadHashes(), ...this.payloadSchemas(), ...this.previousHashes(), ...this.schmea())
100
+ return errors
101
+ }
102
+ }
103
+
104
+ export { XyoBoundWitnessBodyValidator }
@@ -0,0 +1,55 @@
1
+ import { dumpErrors } from '../../lib'
2
+ import { testBoundWitness } from '../../Test'
3
+ import { XyoBoundWitness } from '../models'
4
+ import { XyoBoundWitnessMetaValidator } from './MetaValidator'
5
+
6
+ describe('XyoBoundWitnessMetaValidator', () => {
7
+ it('Validates valid Meta', () => {
8
+ const validator = new XyoBoundWitnessMetaValidator(testBoundWitness)
9
+ const errors = validator.all()
10
+ dumpErrors(errors)
11
+ expect(errors.length).toBe(0)
12
+ })
13
+ describe('sourceIp', () => {
14
+ it('Validates valid IPv4 Address', () => {
15
+ const bw: XyoBoundWitness = {
16
+ ...testBoundWitness,
17
+ _source_ip: '127.0.0.1',
18
+ }
19
+ const validator = new XyoBoundWitnessMetaValidator(bw)
20
+ const errors = validator.all()
21
+ dumpErrors(errors)
22
+ expect(errors.length).toBe(0)
23
+ })
24
+ it('Validates valid IPv6 Address', () => {
25
+ const bw: XyoBoundWitness = {
26
+ ...testBoundWitness,
27
+ _source_ip: '2001:0db8:85a3:0000:0000:8a2e:0370:7334',
28
+ }
29
+ const validator = new XyoBoundWitnessMetaValidator(bw)
30
+ const errors = validator.all()
31
+ dumpErrors(errors)
32
+ expect(errors.length).toBe(0)
33
+ })
34
+ it('Handles missing Address', () => {
35
+ const bw: XyoBoundWitness = {
36
+ ...testBoundWitness,
37
+ _source_ip: undefined,
38
+ }
39
+ const validator = new XyoBoundWitnessMetaValidator(bw)
40
+ const errors = validator.all()
41
+ dumpErrors(errors)
42
+ expect(errors.length).toBe(0)
43
+ })
44
+ it('Detects invalid Addresses', () => {
45
+ const bw: XyoBoundWitness = {
46
+ ...testBoundWitness,
47
+ _source_ip: 'notAnIpAddress',
48
+ }
49
+ const validator = new XyoBoundWitnessMetaValidator(bw)
50
+ const errors = validator.all()
51
+ dumpErrors(errors)
52
+ expect(errors.length).toBe(0)
53
+ })
54
+ })
55
+ })
@@ -0,0 +1,75 @@
1
+ import { XyoHasher } from '../../Hasher'
2
+ import { XyoBoundWitness } from '../models'
3
+ import { isIP } from './is-ip'
4
+
5
+ const MIN_ALLOWED_TIMESTAMP = 1609459200000
6
+ const MAX_ALLOWED_TIMESTAMP = 4102444800000
7
+
8
+ export class XyoBoundWitnessMetaValidator {
9
+ private bw: XyoBoundWitness
10
+ constructor(bw: XyoBoundWitness) {
11
+ this.bw = bw
12
+ }
13
+
14
+ public client() {
15
+ const errors: Error[] = []
16
+ return errors
17
+ }
18
+
19
+ public hash() {
20
+ const errors: Error[] = []
21
+
22
+ const hasher = new XyoHasher(this.bw)
23
+
24
+ const bodyHash = hasher.sortedHash()
25
+ if (bodyHash !== this.bw._hash) errors.push(new Error(`Body hash mismatch: [calculated: ${bodyHash}] [found: ${this.bw._hash}] [sortedStringify: ${hasher.sortedStringify()}]`))
26
+ return errors
27
+ }
28
+
29
+ public payloads() {
30
+ const errors: Error[] = []
31
+ return errors
32
+ }
33
+
34
+ public signatures() {
35
+ const errors: Error[] = []
36
+ return errors
37
+ }
38
+
39
+ public timestamp() {
40
+ const errors: Error[] = []
41
+ const { _timestamp } = this.bw
42
+ if (_timestamp === undefined) errors.push(new Error('Missing _timestamp'))
43
+ else if (_timestamp < MIN_ALLOWED_TIMESTAMP) errors.push(new Error('_timestamp is before year 2021'))
44
+ else if (_timestamp > MAX_ALLOWED_TIMESTAMP) errors.push(new Error('_timestamp is after year 2100'))
45
+ return errors
46
+ }
47
+
48
+ public sourceIp() {
49
+ const errors: Error[] = []
50
+ const { _source_ip } = this.bw
51
+ if (_source_ip && !isIP(_source_ip)) {
52
+ errors.push(new Error(`_source_ip invalid format [${_source_ip}]`))
53
+ }
54
+ return errors
55
+ }
56
+
57
+ public userAgent() {
58
+ const errors: Error[] = []
59
+ const { _user_agent } = this.bw
60
+ if (!_user_agent) errors.push(new Error('_user_agent missing'))
61
+ return errors
62
+ }
63
+
64
+ public all() {
65
+ const errors: Error[] = []
66
+ errors.push(...this.client(), ...this.hash(), ...this.payloads(), ...this.signatures())
67
+ return errors
68
+ }
69
+
70
+ public meta() {
71
+ const errors: Error[] = []
72
+ errors.push(...this.timestamp(), ...this.sourceIp(), ...this.userAgent())
73
+ return errors
74
+ }
75
+ }
@@ -0,0 +1,10 @@
1
+ import { dumpErrors } from '../../lib'
2
+ import { testBoundWitness } from '../../Test'
3
+ import { XyoBoundWitnessValidator } from './Validator'
4
+
5
+ test('all', () => {
6
+ const validator = new XyoBoundWitnessValidator(testBoundWitness)
7
+ const errors = validator.all()
8
+ dumpErrors(errors)
9
+ expect(errors.length).toBe(0)
10
+ })