@xyo-network/api 2.20.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +79 -0
  3. package/babel.config.json +5 -0
  4. package/dist/cjs/Archivist/Account/Api.d.ts +18 -0
  5. package/dist/cjs/Archivist/Account/Api.js +15 -0
  6. package/dist/cjs/Archivist/Account/Api.js.map +1 -0
  7. package/dist/cjs/Archivist/Account/index.d.ts +1 -0
  8. package/dist/cjs/Archivist/Account/index.js +5 -0
  9. package/dist/cjs/Archivist/Account/index.js.map +1 -0
  10. package/dist/cjs/Archivist/Api.d.ts +27 -0
  11. package/dist/cjs/Archivist/Api.js +60 -0
  12. package/dist/cjs/Archivist/Api.js.map +1 -0
  13. package/dist/cjs/Archivist/Archive/Api.d.ts +18 -0
  14. package/dist/cjs/Archivist/Archive/Api.js +40 -0
  15. package/dist/cjs/Archivist/Archive/Api.js.map +1 -0
  16. package/dist/cjs/Archivist/Archive/Schema/Api.d.ts +7 -0
  17. package/dist/cjs/Archivist/Archive/Schema/Api.js +15 -0
  18. package/dist/cjs/Archivist/Archive/Schema/Api.js.map +1 -0
  19. package/dist/cjs/Archivist/Archive/Schema/index.d.ts +1 -0
  20. package/dist/cjs/Archivist/Archive/Schema/index.js +5 -0
  21. package/dist/cjs/Archivist/Archive/Schema/index.js.map +1 -0
  22. package/dist/cjs/Archivist/Archive/Schemas/Api.d.ts +6 -0
  23. package/dist/cjs/Archivist/Archive/Schemas/Api.js +14 -0
  24. package/dist/cjs/Archivist/Archive/Schemas/Api.js.map +1 -0
  25. package/dist/cjs/Archivist/Archive/Schemas/index.d.ts +1 -0
  26. package/dist/cjs/Archivist/Archive/Schemas/index.js +5 -0
  27. package/dist/cjs/Archivist/Archive/Schemas/index.js.map +1 -0
  28. package/dist/cjs/Archivist/Archive/Settings/Api.d.ts +6 -0
  29. package/dist/cjs/Archivist/Archive/Settings/Api.js +15 -0
  30. package/dist/cjs/Archivist/Archive/Settings/Api.js.map +1 -0
  31. package/dist/cjs/Archivist/Archive/Settings/Key/Api.d.ts +5 -0
  32. package/dist/cjs/Archivist/Archive/Settings/Key/Api.js +11 -0
  33. package/dist/cjs/Archivist/Archive/Settings/Key/Api.js.map +1 -0
  34. package/dist/cjs/Archivist/Archive/Settings/Key/index.d.ts +1 -0
  35. package/dist/cjs/Archivist/Archive/Settings/Key/index.js +5 -0
  36. package/dist/cjs/Archivist/Archive/Settings/Key/index.js.map +1 -0
  37. package/dist/cjs/Archivist/Archive/Settings/index.d.ts +2 -0
  38. package/dist/cjs/Archivist/Archive/Settings/index.js +6 -0
  39. package/dist/cjs/Archivist/Archive/Settings/index.js.map +1 -0
  40. package/dist/cjs/Archivist/Archive/index.d.ts +4 -0
  41. package/dist/cjs/Archivist/Archive/index.js +8 -0
  42. package/dist/cjs/Archivist/Archive/index.js.map +1 -0
  43. package/dist/cjs/Archivist/Archives/Api.d.ts +8 -0
  44. package/dist/cjs/Archivist/Archives/Api.js +16 -0
  45. package/dist/cjs/Archivist/Archives/Api.js.map +1 -0
  46. package/dist/cjs/Archivist/Archives/index.d.ts +1 -0
  47. package/dist/cjs/Archivist/Archives/index.js +5 -0
  48. package/dist/cjs/Archivist/Archives/index.js.map +1 -0
  49. package/dist/cjs/Archivist/Block/Api.d.ts +8 -0
  50. package/dist/cjs/Archivist/Block/Api.js +12 -0
  51. package/dist/cjs/Archivist/Block/Api.js.map +1 -0
  52. package/dist/cjs/Archivist/Block/index.d.ts +1 -0
  53. package/dist/cjs/Archivist/Block/index.js +5 -0
  54. package/dist/cjs/Archivist/Block/index.js.map +1 -0
  55. package/dist/cjs/Archivist/Payload/Api.d.ts +40 -0
  56. package/dist/cjs/Archivist/Payload/Api.js +84 -0
  57. package/dist/cjs/Archivist/Payload/Api.js.map +1 -0
  58. package/dist/cjs/Archivist/Payload/Schema/Api.d.ts +8 -0
  59. package/dist/cjs/Archivist/Payload/Schema/Api.js +14 -0
  60. package/dist/cjs/Archivist/Payload/Schema/Api.js.map +1 -0
  61. package/dist/cjs/Archivist/Payload/Schema/index.d.ts +1 -0
  62. package/dist/cjs/Archivist/Payload/Schema/index.js +5 -0
  63. package/dist/cjs/Archivist/Payload/Schema/index.js.map +1 -0
  64. package/dist/cjs/Archivist/Payload/index.d.ts +2 -0
  65. package/dist/cjs/Archivist/Payload/index.js +6 -0
  66. package/dist/cjs/Archivist/Payload/index.js.map +1 -0
  67. package/dist/cjs/Archivist/index.d.ts +6 -0
  68. package/dist/cjs/Archivist/index.js +10 -0
  69. package/dist/cjs/Archivist/index.js.map +1 -0
  70. package/dist/cjs/Base.d.ts +33 -0
  71. package/dist/cjs/Base.js +147 -0
  72. package/dist/cjs/Base.js.map +1 -0
  73. package/dist/cjs/Diviner/LocationDiviner/LocationDivinerApi.d.ts +11 -0
  74. package/dist/cjs/Diviner/LocationDiviner/LocationDivinerApi.js +28 -0
  75. package/dist/cjs/Diviner/LocationDiviner/LocationDivinerApi.js.map +1 -0
  76. package/dist/cjs/Diviner/LocationDiviner/LocationDivinerApiResponseTransformer.d.ts +9 -0
  77. package/dist/cjs/Diviner/LocationDiviner/LocationDivinerApiResponseTransformer.js +24 -0
  78. package/dist/cjs/Diviner/LocationDiviner/LocationDivinerApiResponseTransformer.js.map +1 -0
  79. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapPointProperties.d.ts +4 -0
  80. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapPointProperties.js +3 -0
  81. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapPointProperties.js.map +1 -0
  82. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapQuery.d.ts +11 -0
  83. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapQuery.js +10 -0
  84. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapQuery.js.map +1 -0
  85. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/index.d.ts +2 -0
  86. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/index.js +6 -0
  87. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/index.js.map +1 -0
  88. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/LocationQuadkeyHeatmapQuery.d.ts +11 -0
  89. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/LocationQuadkeyHeatmapQuery.js +10 -0
  90. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/LocationQuadkeyHeatmapQuery.js.map +1 -0
  91. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/index.d.ts +1 -0
  92. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/index.js +5 -0
  93. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/index.js.map +1 -0
  94. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts +17 -0
  95. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQueryCreationRequest.js +3 -0
  96. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQueryCreationRequest.js.map +1 -0
  97. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQueryCreationResponse.d.ts +4 -0
  98. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQueryCreationResponse.js +3 -0
  99. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQueryCreationResponse.js.map +1 -0
  100. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQuerySchema.d.ts +5 -0
  101. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQuerySchema.js +13 -0
  102. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationQuerySchema.js.map +1 -0
  103. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangePointProperties.d.ts +7 -0
  104. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangePointProperties.js +3 -0
  105. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangePointProperties.js.map +1 -0
  106. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangeQuery.d.ts +11 -0
  107. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangeQuery.js +10 -0
  108. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangeQuery.js.map +1 -0
  109. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/index.d.ts +2 -0
  110. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/index.js +6 -0
  111. package/dist/cjs/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/index.js.map +1 -0
  112. package/dist/cjs/Diviner/LocationDiviner/Queries/index.d.ts +6 -0
  113. package/dist/cjs/Diviner/LocationDiviner/Queries/index.js +10 -0
  114. package/dist/cjs/Diviner/LocationDiviner/Queries/index.js.map +1 -0
  115. package/dist/cjs/Diviner/LocationDiviner/Witnesses/CurrentLocationWitness.d.ts +13 -0
  116. package/dist/cjs/Diviner/LocationDiviner/Witnesses/CurrentLocationWitness.js +5 -0
  117. package/dist/cjs/Diviner/LocationDiviner/Witnesses/CurrentLocationWitness.js.map +1 -0
  118. package/dist/cjs/Diviner/LocationDiviner/Witnesses/LocationWitness.d.ts +21 -0
  119. package/dist/cjs/Diviner/LocationDiviner/Witnesses/LocationWitness.js +5 -0
  120. package/dist/cjs/Diviner/LocationDiviner/Witnesses/LocationWitness.js.map +1 -0
  121. package/dist/cjs/Diviner/LocationDiviner/Witnesses/index.d.ts +2 -0
  122. package/dist/cjs/Diviner/LocationDiviner/Witnesses/index.js +6 -0
  123. package/dist/cjs/Diviner/LocationDiviner/Witnesses/index.js.map +1 -0
  124. package/dist/cjs/Diviner/LocationDiviner/index.d.ts +4 -0
  125. package/dist/cjs/Diviner/LocationDiviner/index.js +8 -0
  126. package/dist/cjs/Diviner/LocationDiviner/index.js.map +1 -0
  127. package/dist/cjs/Diviner/LocationDiviner/models.d.ts +4 -0
  128. package/dist/cjs/Diviner/LocationDiviner/models.js +3 -0
  129. package/dist/cjs/Diviner/LocationDiviner/models.js.map +1 -0
  130. package/dist/cjs/Diviner/index.d.ts +1 -0
  131. package/dist/cjs/Diviner/index.js +5 -0
  132. package/dist/cjs/Diviner/index.js.map +1 -0
  133. package/dist/cjs/Simple.d.ts +21 -0
  134. package/dist/cjs/Simple.js +60 -0
  135. package/dist/cjs/Simple.js.map +1 -0
  136. package/dist/cjs/Test/index.d.ts +2 -0
  137. package/dist/cjs/Test/index.js +6 -0
  138. package/dist/cjs/Test/index.js.map +1 -0
  139. package/dist/cjs/Test/testBoundWitness.d.ts +3 -0
  140. package/dist/cjs/Test/testBoundWitness.js +17 -0
  141. package/dist/cjs/Test/testBoundWitness.js.map +1 -0
  142. package/dist/cjs/Test/testPayload.d.ts +4 -0
  143. package/dist/cjs/Test/testPayload.js +19 -0
  144. package/dist/cjs/Test/testPayload.js.map +1 -0
  145. package/dist/cjs/User/Api.d.ts +31 -0
  146. package/dist/cjs/User/Api.js +25 -0
  147. package/dist/cjs/User/Api.js.map +1 -0
  148. package/dist/cjs/User/index.d.ts +1 -0
  149. package/dist/cjs/User/index.js +5 -0
  150. package/dist/cjs/User/index.js.map +1 -0
  151. package/dist/cjs/WithArchive.d.ts +3 -0
  152. package/dist/cjs/WithArchive.js +3 -0
  153. package/dist/cjs/WithArchive.js.map +1 -0
  154. package/dist/cjs/index.d.ts +7 -0
  155. package/dist/cjs/index.js +11 -0
  156. package/dist/cjs/index.js.map +1 -0
  157. package/dist/cjs/models/Api/Config.d.ts +24 -0
  158. package/dist/cjs/models/Api/Config.js +3 -0
  159. package/dist/cjs/models/Api/Config.js.map +1 -0
  160. package/dist/cjs/models/Api/Envelope.d.ts +14 -0
  161. package/dist/cjs/models/Api/Envelope.js +3 -0
  162. package/dist/cjs/models/Api/Envelope.js.map +1 -0
  163. package/dist/cjs/models/Api/Error.d.ts +4 -0
  164. package/dist/cjs/models/Api/Error.js +3 -0
  165. package/dist/cjs/models/Api/Error.js.map +1 -0
  166. package/dist/cjs/models/Api/Reportable.d.ts +7 -0
  167. package/dist/cjs/models/Api/Reportable.js +3 -0
  168. package/dist/cjs/models/Api/Reportable.js.map +1 -0
  169. package/dist/cjs/models/Api/Response.d.ts +7 -0
  170. package/dist/cjs/models/Api/Response.js +3 -0
  171. package/dist/cjs/models/Api/Response.js.map +1 -0
  172. package/dist/cjs/models/Api/Warning.d.ts +1 -0
  173. package/dist/cjs/models/Api/Warning.js +3 -0
  174. package/dist/cjs/models/Api/Warning.js.map +1 -0
  175. package/dist/cjs/models/Api/index.d.ts +6 -0
  176. package/dist/cjs/models/Api/index.js +10 -0
  177. package/dist/cjs/models/Api/index.js.map +1 -0
  178. package/dist/cjs/models/Archive.d.ts +24 -0
  179. package/dist/cjs/models/Archive.js +3 -0
  180. package/dist/cjs/models/Archive.js.map +1 -0
  181. package/dist/cjs/models/ArchiveKey.d.ts +5 -0
  182. package/dist/cjs/models/ArchiveKey.js +3 -0
  183. package/dist/cjs/models/ArchiveKey.js.map +1 -0
  184. package/dist/cjs/models/ArchivePath.d.ts +3 -0
  185. package/dist/cjs/models/ArchivePath.js +3 -0
  186. package/dist/cjs/models/ArchivePath.js.map +1 -0
  187. package/dist/cjs/models/index.d.ts +4 -0
  188. package/dist/cjs/models/index.js +8 -0
  189. package/dist/cjs/models/index.js.map +1 -0
  190. package/dist/cjs/objToQuery.d.ts +1 -0
  191. package/dist/cjs/objToQuery.js +13 -0
  192. package/dist/cjs/objToQuery.js.map +1 -0
  193. package/dist/docs.json +44344 -0
  194. package/dist/esm/Archivist/Account/Api.d.ts +18 -0
  195. package/dist/esm/Archivist/Account/Api.js +17 -0
  196. package/dist/esm/Archivist/Account/Api.js.map +1 -0
  197. package/dist/esm/Archivist/Account/index.d.ts +1 -0
  198. package/dist/esm/Archivist/Account/index.js +2 -0
  199. package/dist/esm/Archivist/Account/index.js.map +1 -0
  200. package/dist/esm/Archivist/Api.d.ts +27 -0
  201. package/dist/esm/Archivist/Api.js +71 -0
  202. package/dist/esm/Archivist/Api.js.map +1 -0
  203. package/dist/esm/Archivist/Archive/Api.d.ts +18 -0
  204. package/dist/esm/Archivist/Archive/Api.js +51 -0
  205. package/dist/esm/Archivist/Archive/Api.js.map +1 -0
  206. package/dist/esm/Archivist/Archive/Schema/Api.d.ts +7 -0
  207. package/dist/esm/Archivist/Archive/Schema/Api.js +14 -0
  208. package/dist/esm/Archivist/Archive/Schema/Api.js.map +1 -0
  209. package/dist/esm/Archivist/Archive/Schema/index.d.ts +1 -0
  210. package/dist/esm/Archivist/Archive/Schema/index.js +2 -0
  211. package/dist/esm/Archivist/Archive/Schema/index.js.map +1 -0
  212. package/dist/esm/Archivist/Archive/Schemas/Api.d.ts +6 -0
  213. package/dist/esm/Archivist/Archive/Schemas/Api.js +13 -0
  214. package/dist/esm/Archivist/Archive/Schemas/Api.js.map +1 -0
  215. package/dist/esm/Archivist/Archive/Schemas/index.d.ts +1 -0
  216. package/dist/esm/Archivist/Archive/Schemas/index.js +2 -0
  217. package/dist/esm/Archivist/Archive/Schemas/index.js.map +1 -0
  218. package/dist/esm/Archivist/Archive/Settings/Api.d.ts +6 -0
  219. package/dist/esm/Archivist/Archive/Settings/Api.js +14 -0
  220. package/dist/esm/Archivist/Archive/Settings/Api.js.map +1 -0
  221. package/dist/esm/Archivist/Archive/Settings/Key/Api.d.ts +5 -0
  222. package/dist/esm/Archivist/Archive/Settings/Key/Api.js +10 -0
  223. package/dist/esm/Archivist/Archive/Settings/Key/Api.js.map +1 -0
  224. package/dist/esm/Archivist/Archive/Settings/Key/index.d.ts +1 -0
  225. package/dist/esm/Archivist/Archive/Settings/Key/index.js +2 -0
  226. package/dist/esm/Archivist/Archive/Settings/Key/index.js.map +1 -0
  227. package/dist/esm/Archivist/Archive/Settings/index.d.ts +2 -0
  228. package/dist/esm/Archivist/Archive/Settings/index.js +3 -0
  229. package/dist/esm/Archivist/Archive/Settings/index.js.map +1 -0
  230. package/dist/esm/Archivist/Archive/index.d.ts +4 -0
  231. package/dist/esm/Archivist/Archive/index.js +5 -0
  232. package/dist/esm/Archivist/Archive/index.js.map +1 -0
  233. package/dist/esm/Archivist/Archives/Api.d.ts +8 -0
  234. package/dist/esm/Archivist/Archives/Api.js +15 -0
  235. package/dist/esm/Archivist/Archives/Api.js.map +1 -0
  236. package/dist/esm/Archivist/Archives/index.d.ts +1 -0
  237. package/dist/esm/Archivist/Archives/index.js +2 -0
  238. package/dist/esm/Archivist/Archives/index.js.map +1 -0
  239. package/dist/esm/Archivist/Block/Api.d.ts +8 -0
  240. package/dist/esm/Archivist/Block/Api.js +11 -0
  241. package/dist/esm/Archivist/Block/Api.js.map +1 -0
  242. package/dist/esm/Archivist/Block/index.d.ts +1 -0
  243. package/dist/esm/Archivist/Block/index.js +2 -0
  244. package/dist/esm/Archivist/Block/index.js.map +1 -0
  245. package/dist/esm/Archivist/Payload/Api.d.ts +40 -0
  246. package/dist/esm/Archivist/Payload/Api.js +68 -0
  247. package/dist/esm/Archivist/Payload/Api.js.map +1 -0
  248. package/dist/esm/Archivist/Payload/Schema/Api.d.ts +8 -0
  249. package/dist/esm/Archivist/Payload/Schema/Api.js +13 -0
  250. package/dist/esm/Archivist/Payload/Schema/Api.js.map +1 -0
  251. package/dist/esm/Archivist/Payload/Schema/index.d.ts +1 -0
  252. package/dist/esm/Archivist/Payload/Schema/index.js +2 -0
  253. package/dist/esm/Archivist/Payload/Schema/index.js.map +1 -0
  254. package/dist/esm/Archivist/Payload/index.d.ts +2 -0
  255. package/dist/esm/Archivist/Payload/index.js +3 -0
  256. package/dist/esm/Archivist/Payload/index.js.map +1 -0
  257. package/dist/esm/Archivist/index.d.ts +6 -0
  258. package/dist/esm/Archivist/index.js +7 -0
  259. package/dist/esm/Archivist/index.js.map +1 -0
  260. package/dist/esm/Base.d.ts +33 -0
  261. package/dist/esm/Base.js +129 -0
  262. package/dist/esm/Base.js.map +1 -0
  263. package/dist/esm/Diviner/LocationDiviner/LocationDivinerApi.d.ts +11 -0
  264. package/dist/esm/Diviner/LocationDiviner/LocationDivinerApi.js +20 -0
  265. package/dist/esm/Diviner/LocationDiviner/LocationDivinerApi.js.map +1 -0
  266. package/dist/esm/Diviner/LocationDiviner/LocationDivinerApiResponseTransformer.d.ts +9 -0
  267. package/dist/esm/Diviner/LocationDiviner/LocationDivinerApiResponseTransformer.js +18 -0
  268. package/dist/esm/Diviner/LocationDiviner/LocationDivinerApiResponseTransformer.js.map +1 -0
  269. package/dist/esm/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapPointProperties.d.ts +4 -0
  270. package/dist/esm/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapPointProperties.js +2 -0
  271. package/dist/esm/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapPointProperties.js.map +1 -0
  272. package/dist/esm/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapQuery.d.ts +11 -0
  273. package/dist/esm/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapQuery.js +6 -0
  274. package/dist/esm/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapQuery.js.map +1 -0
  275. package/dist/esm/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/index.d.ts +2 -0
  276. package/dist/esm/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/index.js +3 -0
  277. package/dist/esm/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/index.js.map +1 -0
  278. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/LocationQuadkeyHeatmapQuery.d.ts +11 -0
  279. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/LocationQuadkeyHeatmapQuery.js +6 -0
  280. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/LocationQuadkeyHeatmapQuery.js.map +1 -0
  281. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/index.d.ts +1 -0
  282. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/index.js +2 -0
  283. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/index.js.map +1 -0
  284. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQueryCreationRequest.d.ts +17 -0
  285. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQueryCreationRequest.js +2 -0
  286. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQueryCreationRequest.js.map +1 -0
  287. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQueryCreationResponse.d.ts +4 -0
  288. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQueryCreationResponse.js +2 -0
  289. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQueryCreationResponse.js.map +1 -0
  290. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQuerySchema.d.ts +5 -0
  291. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQuerySchema.js +9 -0
  292. package/dist/esm/Diviner/LocationDiviner/Queries/LocationQuerySchema.js.map +1 -0
  293. package/dist/esm/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangePointProperties.d.ts +7 -0
  294. package/dist/esm/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangePointProperties.js +2 -0
  295. package/dist/esm/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangePointProperties.js.map +1 -0
  296. package/dist/esm/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangeQuery.d.ts +11 -0
  297. package/dist/esm/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangeQuery.js +6 -0
  298. package/dist/esm/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangeQuery.js.map +1 -0
  299. package/dist/esm/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/index.d.ts +2 -0
  300. package/dist/esm/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/index.js +3 -0
  301. package/dist/esm/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/index.js.map +1 -0
  302. package/dist/esm/Diviner/LocationDiviner/Queries/index.d.ts +6 -0
  303. package/dist/esm/Diviner/LocationDiviner/Queries/index.js +7 -0
  304. package/dist/esm/Diviner/LocationDiviner/Queries/index.js.map +1 -0
  305. package/dist/esm/Diviner/LocationDiviner/Witnesses/CurrentLocationWitness.d.ts +13 -0
  306. package/dist/esm/Diviner/LocationDiviner/Witnesses/CurrentLocationWitness.js +2 -0
  307. package/dist/esm/Diviner/LocationDiviner/Witnesses/CurrentLocationWitness.js.map +1 -0
  308. package/dist/esm/Diviner/LocationDiviner/Witnesses/LocationWitness.d.ts +21 -0
  309. package/dist/esm/Diviner/LocationDiviner/Witnesses/LocationWitness.js +2 -0
  310. package/dist/esm/Diviner/LocationDiviner/Witnesses/LocationWitness.js.map +1 -0
  311. package/dist/esm/Diviner/LocationDiviner/Witnesses/index.d.ts +2 -0
  312. package/dist/esm/Diviner/LocationDiviner/Witnesses/index.js +3 -0
  313. package/dist/esm/Diviner/LocationDiviner/Witnesses/index.js.map +1 -0
  314. package/dist/esm/Diviner/LocationDiviner/index.d.ts +4 -0
  315. package/dist/esm/Diviner/LocationDiviner/index.js +5 -0
  316. package/dist/esm/Diviner/LocationDiviner/index.js.map +1 -0
  317. package/dist/esm/Diviner/LocationDiviner/models.d.ts +4 -0
  318. package/dist/esm/Diviner/LocationDiviner/models.js +2 -0
  319. package/dist/esm/Diviner/LocationDiviner/models.js.map +1 -0
  320. package/dist/esm/Diviner/index.d.ts +1 -0
  321. package/dist/esm/Diviner/index.js +2 -0
  322. package/dist/esm/Diviner/index.js.map +1 -0
  323. package/dist/esm/Simple.d.ts +21 -0
  324. package/dist/esm/Simple.js +45 -0
  325. package/dist/esm/Simple.js.map +1 -0
  326. package/dist/esm/Test/index.d.ts +2 -0
  327. package/dist/esm/Test/index.js +3 -0
  328. package/dist/esm/Test/index.js.map +1 -0
  329. package/dist/esm/Test/testBoundWitness.d.ts +3 -0
  330. package/dist/esm/Test/testBoundWitness.js +14 -0
  331. package/dist/esm/Test/testBoundWitness.js.map +1 -0
  332. package/dist/esm/Test/testPayload.d.ts +4 -0
  333. package/dist/esm/Test/testPayload.js +15 -0
  334. package/dist/esm/Test/testPayload.js.map +1 -0
  335. package/dist/esm/User/Api.d.ts +31 -0
  336. package/dist/esm/User/Api.js +27 -0
  337. package/dist/esm/User/Api.js.map +1 -0
  338. package/dist/esm/User/index.d.ts +1 -0
  339. package/dist/esm/User/index.js +2 -0
  340. package/dist/esm/User/index.js.map +1 -0
  341. package/dist/esm/WithArchive.d.ts +3 -0
  342. package/dist/esm/WithArchive.js +2 -0
  343. package/dist/esm/WithArchive.js.map +1 -0
  344. package/dist/esm/index.d.ts +7 -0
  345. package/dist/esm/index.js +8 -0
  346. package/dist/esm/index.js.map +1 -0
  347. package/dist/esm/models/Api/Config.d.ts +24 -0
  348. package/dist/esm/models/Api/Config.js +2 -0
  349. package/dist/esm/models/Api/Config.js.map +1 -0
  350. package/dist/esm/models/Api/Envelope.d.ts +14 -0
  351. package/dist/esm/models/Api/Envelope.js +2 -0
  352. package/dist/esm/models/Api/Envelope.js.map +1 -0
  353. package/dist/esm/models/Api/Error.d.ts +4 -0
  354. package/dist/esm/models/Api/Error.js +2 -0
  355. package/dist/esm/models/Api/Error.js.map +1 -0
  356. package/dist/esm/models/Api/Reportable.d.ts +7 -0
  357. package/dist/esm/models/Api/Reportable.js +2 -0
  358. package/dist/esm/models/Api/Reportable.js.map +1 -0
  359. package/dist/esm/models/Api/Response.d.ts +7 -0
  360. package/dist/esm/models/Api/Response.js +2 -0
  361. package/dist/esm/models/Api/Response.js.map +1 -0
  362. package/dist/esm/models/Api/Warning.d.ts +1 -0
  363. package/dist/esm/models/Api/Warning.js +2 -0
  364. package/dist/esm/models/Api/Warning.js.map +1 -0
  365. package/dist/esm/models/Api/index.d.ts +6 -0
  366. package/dist/esm/models/Api/index.js +7 -0
  367. package/dist/esm/models/Api/index.js.map +1 -0
  368. package/dist/esm/models/Archive.d.ts +24 -0
  369. package/dist/esm/models/Archive.js +2 -0
  370. package/dist/esm/models/Archive.js.map +1 -0
  371. package/dist/esm/models/ArchiveKey.d.ts +5 -0
  372. package/dist/esm/models/ArchiveKey.js +2 -0
  373. package/dist/esm/models/ArchiveKey.js.map +1 -0
  374. package/dist/esm/models/ArchivePath.d.ts +3 -0
  375. package/dist/esm/models/ArchivePath.js +2 -0
  376. package/dist/esm/models/ArchivePath.js.map +1 -0
  377. package/dist/esm/models/index.d.ts +4 -0
  378. package/dist/esm/models/index.js +5 -0
  379. package/dist/esm/models/index.js.map +1 -0
  380. package/dist/esm/objToQuery.d.ts +1 -0
  381. package/dist/esm/objToQuery.js +9 -0
  382. package/dist/esm/objToQuery.js.map +1 -0
  383. package/jest.config.cjs +25 -0
  384. package/package.json +118 -0
  385. package/rollup.config.js +5 -0
  386. package/src/Archivist/Account/Api.spec.ts +71 -0
  387. package/src/Archivist/Account/Api.ts +32 -0
  388. package/src/Archivist/Account/index.ts +1 -0
  389. package/src/Archivist/Api.spec.ts +219 -0
  390. package/src/Archivist/Api.ts +89 -0
  391. package/src/Archivist/ApiUtil.spec.ts +37 -0
  392. package/src/Archivist/Archive/Api.ts +60 -0
  393. package/src/Archivist/Archive/Schema/Api.spec.ts +23 -0
  394. package/src/Archivist/Archive/Schema/Api.ts +17 -0
  395. package/src/Archivist/Archive/Schema/index.ts +1 -0
  396. package/src/Archivist/Archive/Schemas/Api.spec.ts +23 -0
  397. package/src/Archivist/Archive/Schemas/Api.ts +16 -0
  398. package/src/Archivist/Archive/Schemas/index.ts +1 -0
  399. package/src/Archivist/Archive/Settings/Api.ts +15 -0
  400. package/src/Archivist/Archive/Settings/Key/Api.ts +11 -0
  401. package/src/Archivist/Archive/Settings/Key/index.ts +1 -0
  402. package/src/Archivist/Archive/Settings/index.ts +2 -0
  403. package/src/Archivist/Archive/index.ts +4 -0
  404. package/src/Archivist/Archives/Api.ts +17 -0
  405. package/src/Archivist/Archives/index.ts +1 -0
  406. package/src/Archivist/Block/Api.ts +18 -0
  407. package/src/Archivist/Block/index.ts +1 -0
  408. package/src/Archivist/Payload/Api.spec.ts +61 -0
  409. package/src/Archivist/Payload/Api.ts +102 -0
  410. package/src/Archivist/Payload/Schema/Api.spec.ts +59 -0
  411. package/src/Archivist/Payload/Schema/Api.ts +18 -0
  412. package/src/Archivist/Payload/Schema/index.ts +1 -0
  413. package/src/Archivist/Payload/index.ts +2 -0
  414. package/src/Archivist/index.ts +6 -0
  415. package/src/Base.ts +175 -0
  416. package/src/Diviner/LocationDiviner/LocationDivinerApi.spec.ts +101 -0
  417. package/src/Diviner/LocationDiviner/LocationDivinerApi.ts +29 -0
  418. package/src/Diviner/LocationDiviner/LocationDivinerApiResponseTransformer.ts +19 -0
  419. package/src/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapPointProperties.ts +4 -0
  420. package/src/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/LocationHeatmapQuery.ts +17 -0
  421. package/src/Diviner/LocationDiviner/Queries/LocationHeatmapQuery/index.ts +2 -0
  422. package/src/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/LocationQuadkeyHeatmapQuery.ts +15 -0
  423. package/src/Diviner/LocationDiviner/Queries/LocationQuadkeyHeatmapQuery/index.ts +1 -0
  424. package/src/Diviner/LocationDiviner/Queries/LocationQueryCreationRequest.ts +21 -0
  425. package/src/Diviner/LocationDiviner/Queries/LocationQueryCreationResponse.ts +5 -0
  426. package/src/Diviner/LocationDiviner/Queries/LocationQuerySchema.ts +15 -0
  427. package/src/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangePointProperties.ts +8 -0
  428. package/src/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/LocationTimeRangeQuery.ts +18 -0
  429. package/src/Diviner/LocationDiviner/Queries/LocationTimeRangeQuery/index.ts +2 -0
  430. package/src/Diviner/LocationDiviner/Queries/index.ts +6 -0
  431. package/src/Diviner/LocationDiviner/Witnesses/CurrentLocationWitness.ts +16 -0
  432. package/src/Diviner/LocationDiviner/Witnesses/LocationWitness.ts +25 -0
  433. package/src/Diviner/LocationDiviner/Witnesses/index.ts +2 -0
  434. package/src/Diviner/LocationDiviner/index.ts +4 -0
  435. package/src/Diviner/LocationDiviner/models.ts +4 -0
  436. package/src/Diviner/index.ts +1 -0
  437. package/src/Simple.ts +69 -0
  438. package/src/Test/index.ts +2 -0
  439. package/src/Test/testBoundWitness.ts +16 -0
  440. package/src/Test/testPayload.ts +17 -0
  441. package/src/User/Api.spec.ts +41 -0
  442. package/src/User/Api.ts +39 -0
  443. package/src/User/index.ts +1 -0
  444. package/src/WithArchive.ts +3 -0
  445. package/src/index.ts +7 -0
  446. package/src/models/Api/Config.ts +35 -0
  447. package/src/models/Api/Envelope.ts +18 -0
  448. package/src/models/Api/Error.ts +6 -0
  449. package/src/models/Api/Reportable.ts +10 -0
  450. package/src/models/Api/Response.ts +13 -0
  451. package/src/models/Api/Warning.ts +1 -0
  452. package/src/models/Api/index.ts +6 -0
  453. package/src/models/Archive.ts +28 -0
  454. package/src/models/ArchiveKey.ts +5 -0
  455. package/src/models/ArchivePath.ts +3 -0
  456. package/src/models/index.ts +4 -0
  457. package/src/objToQuery.ts +8 -0
  458. package/typedoc.json +10 -0
@@ -0,0 +1,23 @@
1
+ import { XyoApiConfig } from '../../../models'
2
+ import { XyoArchivistApi } from '../../Api'
3
+
4
+ const config: XyoApiConfig = {
5
+ apiDomain: process.env.API_DOMAIN || 'http://localhost:8080',
6
+ }
7
+
8
+ describe('XyoArchivistSchemasApi', () => {
9
+ describe('schema', () => {
10
+ it('calculates the correct path', () => {
11
+ const api = new XyoArchivistApi(config)
12
+ const path = api.archive('foo').schemas.config.root
13
+ expect(path).toBe('/archive/foo/schema/')
14
+ })
15
+ })
16
+ describe('recent', () => {
17
+ it('calculates the correct path', () => {
18
+ const api = new XyoArchivistApi(config)
19
+ const path = api.archive('foo').schemas.recent.config.root
20
+ expect(path).toBe('/archive/foo/schema/recent/')
21
+ })
22
+ })
23
+ })
@@ -0,0 +1,16 @@
1
+ import { XyoSchemaPayload } from '@xyo-network/core'
2
+
3
+ import { XyoApiSimple } from '../../../Simple'
4
+
5
+ export class XyoArchivistArchiveSchemasApi extends XyoApiSimple<XyoSchemaPayload[]> {
6
+ private _recent?: XyoApiSimple<XyoSchemaPayload[]>
7
+ public get recent(): XyoApiSimple<XyoSchemaPayload[]> {
8
+ this._recent =
9
+ this._recent ??
10
+ new XyoApiSimple<XyoSchemaPayload[]>({
11
+ ...this.config,
12
+ root: `${this.root}recent/`,
13
+ })
14
+ return this._recent
15
+ }
16
+ }
@@ -0,0 +1 @@
1
+ export * from './Api'
@@ -0,0 +1,15 @@
1
+ import { XyoApiBase } from '../../../Base'
2
+ import { XyoArchivistArchiveSettingsKeyApi } from './Key'
3
+
4
+ export class XyoArchivistArchiveSettingsApi extends XyoApiBase {
5
+ private _key?: XyoArchivistArchiveSettingsKeyApi
6
+ public get key(): XyoArchivistArchiveSettingsKeyApi {
7
+ this._key =
8
+ this._key ??
9
+ new XyoArchivistArchiveSettingsKeyApi({
10
+ ...this.config,
11
+ root: `${this.root}key/`,
12
+ })
13
+ return this._key
14
+ }
15
+ }
@@ -0,0 +1,11 @@
1
+ import { XyoArchiveKey } from '../../../../models'
2
+ import { XyoApiSimple } from '../../../../Simple'
3
+
4
+ export class XyoArchivistArchiveSettingsKeyApi extends XyoApiSimple<XyoArchiveKey[]> {
5
+ public key(key: string) {
6
+ return new XyoApiSimple<XyoArchiveKey>({
7
+ ...this.config,
8
+ root: `${this.root}${key}/`,
9
+ })
10
+ }
11
+ }
@@ -0,0 +1 @@
1
+ export * from './Api'
@@ -0,0 +1,2 @@
1
+ export * from './Api'
2
+ export * from './Key'
@@ -0,0 +1,4 @@
1
+ export * from './Api'
2
+ export * from './Schema'
3
+ export * from './Schemas'
4
+ export * from './Settings'
@@ -0,0 +1,17 @@
1
+ import { XyoArchive } from '../../models'
2
+ import { XyoApiSimple } from '../../Simple'
3
+ import { XyoArchivistArchiveApi } from '../Archive'
4
+
5
+ export class XyoArchivistArchivesApi extends XyoApiSimple<XyoArchive[]> {
6
+ public archive(archive = 'temp') {
7
+ return new XyoArchivistArchiveApi({
8
+ ...this.config,
9
+ root: `${this.root}${archive}/`,
10
+ })
11
+ }
12
+
13
+ /** @deprecated: use archive(string) instead */
14
+ public select(archive = 'temp') {
15
+ return this.archive(archive)
16
+ }
17
+ }
@@ -0,0 +1 @@
1
+ export * from './Api'
@@ -0,0 +1,18 @@
1
+ import { XyoBoundWitness, XyoPayload } from '@xyo-network/core'
2
+
3
+ import { XyoApiConfig } from '../../models'
4
+ import { XyoApiSimple } from '../../Simple'
5
+ import { WithArchive } from '../../WithArchive'
6
+ import { XyoArchivistPayloadApi } from '../Payload'
7
+
8
+ export class XyoArchivistArchiveBlockApi<
9
+ T extends XyoBoundWitness = XyoBoundWitness,
10
+ C extends WithArchive<XyoApiConfig> = WithArchive<XyoApiConfig>
11
+ > extends XyoArchivistPayloadApi<T, C> {
12
+ public payloads(hash: string): XyoApiSimple<XyoPayload[][]> {
13
+ return new XyoApiSimple<XyoPayload[][]>({
14
+ ...this.config,
15
+ root: `${this.root}hash/${hash}/payloads/`,
16
+ })
17
+ }
18
+ }
@@ -0,0 +1 @@
1
+ export * from './Api'
@@ -0,0 +1,61 @@
1
+ import { XyoAccount, XyoBoundWitnessBuilder } from '@xyo-network/core'
2
+ import { config } from 'dotenv'
3
+
4
+ import { XyoApiConfig, XyoApiError } from '../../models'
5
+ import { XyoArchivistApi } from '../Api'
6
+ import { getNewArchive } from '../ApiUtil.spec'
7
+
8
+ config()
9
+
10
+ const configData: XyoApiConfig = {
11
+ apiDomain: process.env.API_DOMAIN || 'https://beta.api.archivist.xyo.network',
12
+ onError: (error) => console.error(`Error: ${JSON.stringify(error)}`),
13
+ onFailure: (response) => response, //console.error(`Failure: ${response.statusText} [${response.status}] [${JSON.stringify(response.data)}]`),
14
+ onSuccess: (response) => response, //console.log(`Success: ${response.statusText} [${response.status}] [${JSON.stringify(response.data)}]`),
15
+ }
16
+
17
+ describe('XyoArchivistPayloadApi', () => {
18
+ describe('find', () => {
19
+ const api = new XyoArchivistApi(configData)
20
+ let archive = ''
21
+ beforeEach(async () => {
22
+ archive = await getNewArchive(api)
23
+ })
24
+ describe('when order is ascending', () => {
25
+ it('returns payloads greater than or equal to timestamp', async () => {
26
+ try {
27
+ const timestamp = Date.now()
28
+ const boundWitness = new XyoBoundWitnessBuilder().witness(XyoAccount.random()).build()
29
+ await api.archive(archive).block.post([boundWitness])
30
+ const response = await api.archive(archive).block.find({ order: 'asc', timestamp })
31
+ expect(response?.length).toBe(1)
32
+ const actual = response?.[0]
33
+ expect(actual?._timestamp).toBeTruthy()
34
+ expect(actual?._timestamp).toBeGreaterThan(timestamp)
35
+ } catch (ex) {
36
+ const error = ex as XyoApiError
37
+ console.log(JSON.stringify(error.response?.data, null, 2))
38
+ throw ex
39
+ }
40
+ })
41
+ })
42
+ describe('when order is descending', () => {
43
+ it('returns payloads less than or equal to timestamp', async () => {
44
+ try {
45
+ const boundWitness = new XyoBoundWitnessBuilder().witness(XyoAccount.random()).build()
46
+ await api.archive(archive).block.post([boundWitness])
47
+ const timestamp = Date.now()
48
+ const response = await api.archive(archive).block.find({ order: 'desc', timestamp })
49
+ expect(response?.length).toBe(1)
50
+ const actual = response?.[0]
51
+ expect(actual?._timestamp).toBeTruthy()
52
+ expect(actual?._timestamp).toBeLessThanOrEqual(timestamp)
53
+ } catch (ex) {
54
+ const error = ex as XyoApiError
55
+ console.log(JSON.stringify(error.response?.data, null, 2))
56
+ throw ex
57
+ }
58
+ })
59
+ })
60
+ })
61
+ })
@@ -0,0 +1,102 @@
1
+ import { assertEx } from '@xylabs/sdk-js'
2
+ import { XyoPayload } from '@xyo-network/core'
3
+
4
+ import { XyoApiConfig } from '../../models'
5
+ import { XyoApiSimple } from '../../Simple'
6
+ import { WithArchive } from '../../WithArchive'
7
+ import { XyoArchivistArchivePayloadSchemaApi } from './Schema'
8
+
9
+ export interface XyoPayloadFindFilter {
10
+ [key: string]: unknown
11
+ order?: 'desc' | 'asc'
12
+ timestamp?: number
13
+ limit?: number
14
+ schema?: string
15
+ }
16
+
17
+ export interface XyoPayloadStats {
18
+ count: number
19
+ }
20
+
21
+ export class XyoArchivistPayloadApi<T extends XyoPayload = XyoPayload, C extends WithArchive<XyoApiConfig> = WithArchive<XyoApiConfig>> extends XyoApiSimple<
22
+ T[],
23
+ T[],
24
+ XyoPayloadFindFilter,
25
+ C
26
+ > {
27
+ public get schema(): XyoArchivistArchivePayloadSchemaApi {
28
+ return new XyoArchivistArchivePayloadSchemaApi({
29
+ ...this.config,
30
+ root: `${this.root}schema/`,
31
+ })
32
+ }
33
+
34
+ private _stats?: XyoApiSimple<XyoPayloadStats>
35
+ public get stats(): XyoApiSimple<XyoPayloadStats> {
36
+ this._stats =
37
+ this._stats ??
38
+ new XyoApiSimple<XyoPayloadStats>({
39
+ ...this.config,
40
+ root: `${this.root}stats/`,
41
+ })
42
+ return this._stats
43
+ }
44
+
45
+ public hash(hash: string): XyoApiSimple<XyoPayload[]> {
46
+ return new XyoApiSimple<XyoPayload[]>({
47
+ ...this.config,
48
+ root: `${this.root}hash/${hash}/`,
49
+ })
50
+ }
51
+
52
+ public async repair(hash: string) {
53
+ return await this.getEndpoint<T[]>(`hash/${hash}/repair`)
54
+ }
55
+
56
+ /** @deprecated use stats instead */
57
+ public async getStats() {
58
+ return await this.getEndpoint<XyoPayloadStats>('stats')
59
+ }
60
+
61
+ /** @deprecated use hash */
62
+ public async getByHash(hash: string) {
63
+ return await this.getEndpoint<T[]>(`hash/${hash}`)
64
+ }
65
+
66
+ /** @deprecated use repair */
67
+ public async repairByHash(hash: string) {
68
+ return await this.repair(hash)
69
+ }
70
+
71
+ /** @deprecated use find */
72
+ public async findBefore(timestamp: number, limit = 20) {
73
+ return await this.find({ limit, order: 'desc', timestamp })
74
+ }
75
+
76
+ /** @deprecated use findBefore */
77
+ public async getBefore(timestamp: number, limit = 20) {
78
+ return await this.find({ limit, order: 'desc', timestamp })
79
+ }
80
+
81
+ /** @deprecated use find */
82
+ public async findAfter(timestamp: number, limit = 20) {
83
+ return await this.find({ limit, order: 'asc', timestamp })
84
+ }
85
+
86
+ /** @deprecated use find */
87
+ public async getAfter(timestamp: number, limit = 20) {
88
+ return await this.find({ limit, order: 'asc', timestamp })
89
+ }
90
+
91
+ /** @deprecated use find */
92
+ public async findMostRecent(limit = 20) {
93
+ assertEx(limit > 0, 'min limit = 1')
94
+ assertEx(limit <= 100, 'max limit = 100')
95
+ return await this.find({ limit, order: 'desc', timestamp: 999999999999 })
96
+ }
97
+
98
+ /** @deprecated use find */
99
+ public async getMostRecent(limit = 20) {
100
+ return await this.find({ limit, order: 'desc', timestamp: 999999999999 })
101
+ }
102
+ }
@@ -0,0 +1,59 @@
1
+ import { XyoAccount, XyoBoundWitnessBuilder, XyoPayload } from '@xyo-network/core'
2
+
3
+ import { XyoApiConfig } from '../../../models'
4
+ import { XyoArchivistApi } from '../../Api'
5
+ import { getNewArchive, getSchemaName } from '../../ApiUtil.spec'
6
+
7
+ const config: XyoApiConfig = {
8
+ apiDomain: process.env.API_DOMAIN || 'http://localhost:8080',
9
+ }
10
+
11
+ const payload: XyoPayload = {
12
+ definition: {
13
+ $id: '',
14
+ $schema: 'http://json-schema.org/draft-07/schema#',
15
+ },
16
+ schema: getSchemaName(),
17
+ }
18
+
19
+ describe('XyoArchivistArchivePayloadSchemaApi', () => {
20
+ const api = new XyoArchivistApi(config)
21
+ let archive = ''
22
+ beforeAll(async () => {
23
+ archive = await getNewArchive(api)
24
+ const boundWitness = new XyoBoundWitnessBuilder({ inlinePayloads: true }).witness(XyoAccount.random()).payload(payload).build()
25
+ await api.archives.archive(archive).block.post([boundWitness])
26
+ })
27
+ describe('get', () => {
28
+ it('calculates the correct path', () => {
29
+ const api = new XyoArchivistApi(config)
30
+ const path = api.archive(archive).payload.schema.config.root
31
+ expect(path).toBe(`/archive/${archive}/payload/schema/`)
32
+ })
33
+ it('lists the schema in the archive', async () => {
34
+ const api = new XyoArchivistApi(config)
35
+ const response = await api.archive(archive).payload.schema.get()
36
+ expect(response).toBeTruthy()
37
+ expect(Array.isArray(response)).toBe(true)
38
+ expect(response?.length).toBe(1)
39
+ expect(response?.[0]).toBe(payload.schema)
40
+ })
41
+ })
42
+ describe('stats', () => {
43
+ it('calculates the correct path', () => {
44
+ const api = new XyoArchivistApi(config)
45
+ const path = api.archive(archive).payload.schema.stats.config.root
46
+ expect(path).toBe(`/archive/${archive}/payload/schema/stats/`)
47
+ })
48
+ it('lists the stats for the payloads by schema in the archive', async () => {
49
+ const api = new XyoArchivistApi(config)
50
+ const response = await api.archive(archive).payload.schema.stats.get()
51
+ expect(response).toBeTruthy()
52
+ expect(response?.counts).toBeTruthy()
53
+ const schemas = Object.keys(response?.counts || {})
54
+ expect(schemas.length).toBe(1)
55
+ expect(schemas?.[0]).toBe(payload.schema)
56
+ expect(response?.counts[payload.schema]).toBe(1)
57
+ })
58
+ })
59
+ })
@@ -0,0 +1,18 @@
1
+ import { XyoApiSimple } from '../../../Simple'
2
+
3
+ export interface XyoArchivistArchivePayloadSchemaStats {
4
+ counts: Record<string, number>
5
+ }
6
+
7
+ export class XyoArchivistArchivePayloadSchemaApi extends XyoApiSimple<string[]> {
8
+ private _stats?: XyoApiSimple<XyoArchivistArchivePayloadSchemaStats>
9
+ public get stats() {
10
+ this._stats =
11
+ this._stats ??
12
+ new XyoApiSimple<XyoArchivistArchivePayloadSchemaStats>({
13
+ ...this.config,
14
+ root: `${this.root}stats/`,
15
+ })
16
+ return this._stats
17
+ }
18
+ }
@@ -0,0 +1 @@
1
+ export * from './Api'
@@ -0,0 +1,2 @@
1
+ export * from './Api'
2
+ export * from './Schema'
@@ -0,0 +1,6 @@
1
+ export * from './Account'
2
+ export * from './Api'
3
+ export * from './Archive'
4
+ export * from './Archives'
5
+ export * from './Block'
6
+ export * from './Payload'
package/src/Base.ts ADDED
@@ -0,0 +1,175 @@
1
+ import { Axios, AxiosRequestConfig, AxiosRequestHeaders } from 'axios'
2
+ import { gzip } from 'pako'
3
+
4
+ import {
5
+ XyoApiConfig,
6
+ XyoApiEnvelope,
7
+ XyoApiError,
8
+ XyoApiReportable,
9
+ XyoApiResponse,
10
+ XyoApiResponseBody,
11
+ XyoApiResponseTuple,
12
+ XyoApiResponseTupleOrBody,
13
+ XyoApiResponseType,
14
+ } from './models'
15
+
16
+ export class XyoApiBase<C extends XyoApiConfig = XyoApiConfig> implements XyoApiReportable {
17
+ public readonly config: C
18
+ protected axios: Axios
19
+
20
+ constructor(config: C) {
21
+ this.config = config
22
+ this.axios = new Axios(this.axiosConfig())
23
+ }
24
+
25
+ private axiosHeaders(): AxiosRequestHeaders {
26
+ return {
27
+ ...this.headers,
28
+ Accept: 'application/json, text/plain, *.*',
29
+ 'Content-Type': 'application/json',
30
+ }
31
+ }
32
+
33
+ private axiosConfig(): AxiosRequestConfig {
34
+ return {
35
+ headers: this.axiosHeaders(),
36
+ transformRequest: (data, headers) => {
37
+ const json = JSON.stringify(data)
38
+ if (headers && data) {
39
+ if (json.length > (this.config.compressionThreshold ?? 1024)) {
40
+ headers['Content-Encoding'] = 'gzip'
41
+ return gzip(JSON.stringify(data)).buffer
42
+ }
43
+ }
44
+ return JSON.stringify(data)
45
+ },
46
+ transformResponse: (data) => {
47
+ try {
48
+ return JSON.parse(data)
49
+ } catch (ex) {
50
+ return null
51
+ }
52
+ },
53
+ }
54
+ }
55
+
56
+ onError(error: XyoApiError, depth = 0) {
57
+ this.config.reportableParent?.onError?.(error, depth + 1)
58
+ this.config.onError?.(error, depth)
59
+ }
60
+
61
+ onFailure(response: XyoApiResponse, depth = 0) {
62
+ this.config.reportableParent?.onFailure?.(response, depth + 1)
63
+ this.config.onFailure?.(response, depth)
64
+ }
65
+
66
+ onSuccess(response: XyoApiResponse, depth = 0) {
67
+ this.config.reportableParent?.onSuccess?.(response, depth + 1)
68
+ this.config.onSuccess?.(response, depth)
69
+ }
70
+
71
+ protected get root() {
72
+ return this.config.root ?? '/'
73
+ }
74
+
75
+ protected get query() {
76
+ return this.config.query ?? ''
77
+ }
78
+
79
+ private resolveRoot() {
80
+ return `${this.config.apiDomain}${this.root}`
81
+ }
82
+
83
+ private static resolveResponse<T>(result?: XyoApiResponse<XyoApiEnvelope<T>>) {
84
+ return [result?.data?.data, result?.data, result] as XyoApiResponseTuple<T>
85
+ }
86
+
87
+ protected handleMonitorResponseError<T>(error: XyoApiError, trapAxiosException: boolean) {
88
+ if (!error.isXyoError) {
89
+ throw error
90
+ }
91
+
92
+ if (trapAxiosException) {
93
+ error.response ? this.onFailure(error.response) : this.onError(error)
94
+ if (this.config.throwFailure) {
95
+ throw error
96
+ }
97
+ return error.response as XyoApiResponse<XyoApiEnvelope<T>>
98
+ }
99
+ }
100
+
101
+ protected async monitorResponse<T>(closure: () => Promise<XyoApiResponse<XyoApiEnvelope<T>>>) {
102
+ //we use this to prevent accidental catching on exceptions in callbacks
103
+ let trapAxiosException = true
104
+ try {
105
+ const response = await closure()
106
+ trapAxiosException = false
107
+
108
+ response.status < 300 ? this.onSuccess(response) : this.onFailure(response)
109
+
110
+ return response
111
+ } catch (ex) {
112
+ this.handleMonitorResponseError(ex as XyoApiError, trapAxiosException)
113
+ }
114
+ }
115
+
116
+ protected async getEndpoint<T = unknown>(endPoint?: string): Promise<XyoApiResponseBody<T>>
117
+ protected async getEndpoint<T = unknown>(endPoint?: string, responseType?: 'body'): Promise<XyoApiResponseBody<T>>
118
+ protected async getEndpoint<T = unknown>(endPoint?: string, responseType?: 'tuple'): Promise<XyoApiResponseTuple<T>>
119
+ protected async getEndpoint<T = unknown>(endPoint = '', responseType?: XyoApiResponseType): Promise<XyoApiResponseTupleOrBody<T>> {
120
+ const response = await this.monitorResponse<T>(async () => {
121
+ return await this.axios.get<XyoApiEnvelope<T>, XyoApiResponse<XyoApiEnvelope<T>>>(`${this.resolveRoot()}${endPoint}${this.query}`)
122
+ })
123
+ return XyoApiBase.shapeResponse<T>(response, responseType)
124
+ }
125
+
126
+ protected async postEndpoint<T = unknown, D = unknown>(endPoint?: string, data?: D): Promise<XyoApiResponseBody<T>>
127
+ protected async postEndpoint<T = unknown, D = unknown>(endPoint?: string, data?: D, responseType?: 'body'): Promise<XyoApiResponseBody<T>>
128
+ protected async postEndpoint<T = unknown, D = unknown>(endPoint?: string, data?: D, responseType?: 'tuple'): Promise<XyoApiResponseTuple<T>>
129
+ protected async postEndpoint<T = unknown, D = unknown>(endPoint = '', data?: D, responseType?: XyoApiResponseType): Promise<XyoApiResponseTupleOrBody<T>> {
130
+ const response = await this.monitorResponse<T>(async () => {
131
+ return await this.axios.post<XyoApiEnvelope<T>, XyoApiResponse<XyoApiEnvelope<T>, D>, D>(`${this.resolveRoot()}${endPoint}${this.query}`, data)
132
+ })
133
+ return XyoApiBase.shapeResponse<T>(response, responseType)
134
+ }
135
+
136
+ protected async putEndpoint<T = unknown, D = unknown>(endPoint?: string, data?: D): Promise<XyoApiResponseBody<T>>
137
+ protected async putEndpoint<T = unknown, D = unknown>(endPoint?: string, data?: D, responseType?: 'body'): Promise<XyoApiResponseBody<T>>
138
+ protected async putEndpoint<T = unknown, D = unknown>(endPoint?: string, data?: D, responseType?: 'tuple'): Promise<XyoApiResponseTuple<T>>
139
+ protected async putEndpoint<T = unknown, D = unknown>(endPoint = '', data?: D, responseType?: XyoApiResponseType): Promise<XyoApiResponseTupleOrBody<T>> {
140
+ const response = await this.monitorResponse<T>(async () => {
141
+ return await this.axios.put<XyoApiEnvelope<T>, XyoApiResponse<XyoApiEnvelope<T>, D>, D>(`${this.resolveRoot()}${endPoint}${this.query}`, data)
142
+ })
143
+ return XyoApiBase.shapeResponse<T>(response, responseType)
144
+ }
145
+
146
+ protected async deleteEndpoint<T = unknown>(endPoint?: string): Promise<XyoApiResponseBody<T>>
147
+ protected async deleteEndpoint<T = unknown>(endPoint?: string, responseType?: 'body'): Promise<XyoApiResponseBody<T>>
148
+ protected async deleteEndpoint<T = unknown>(endPoint?: string, responseType?: 'tuple'): Promise<XyoApiResponseTuple<T>>
149
+ protected async deleteEndpoint<T = unknown>(endPoint = '', responseType?: XyoApiResponseType): Promise<XyoApiResponseTupleOrBody<T>> {
150
+ const response = await this.monitorResponse<T>(async () => {
151
+ return await this.axios.delete<XyoApiEnvelope<T>, XyoApiResponse<XyoApiEnvelope<T>>>(`${this.resolveRoot()}${endPoint}${this.query}`)
152
+ })
153
+ return XyoApiBase.shapeResponse<T>(response, responseType)
154
+ }
155
+
156
+ private static shapeResponse<T = unknown>(response: XyoApiResponse<XyoApiEnvelope<T>> | undefined, responseType?: XyoApiResponseType) {
157
+ const resolvedResponse = XyoApiBase.resolveResponse(response)
158
+ return responseType === 'tuple' ? resolvedResponse : resolvedResponse[0]
159
+ }
160
+
161
+ protected get headers(): Record<string, string> {
162
+ const headers: Record<string, string> = {}
163
+ if (this.config.jwtToken) {
164
+ headers.Authorization = `Bearer ${this.config.jwtToken}`
165
+ }
166
+ if (this.config.apiKey) {
167
+ headers['x-api-key'] = this.config.apiKey
168
+ }
169
+ return headers
170
+ }
171
+
172
+ public get authenticated() {
173
+ return !!this.config.apiKey || !!this.config.jwtToken
174
+ }
175
+ }
@@ -0,0 +1,101 @@
1
+ import { ApiConfig } from '@xylabs/sdk-js'
2
+ import { AxiosError } from 'axios'
3
+
4
+ import { XyoApiConfig } from '../../models'
5
+ import { XyoLocationDivinerApi } from './LocationDivinerApi'
6
+ import { LocationHeatmapQueryCreationRequest, locationHeatmapQuerySchema, LocationTimeRangeQueryCreationRequest, locationTimeRangeQuerySchema } from './Queries'
7
+ import { locationWitnessPayloadSchema } from './Witnesses'
8
+
9
+ const config: ApiConfig = {
10
+ apiDomain: process.env.LOCATION_API_DOMAIN || 'http://localhost:8082',
11
+ }
12
+
13
+ const getArchiveConfig = (): XyoApiConfig => {
14
+ const apiDomain = process.env.API_DOMAIN || 'http://localhost:8080'
15
+ return { apiDomain }
16
+ }
17
+
18
+ const getDefaultStartStopTime = () => {
19
+ const startTime = new Date(0).toISOString()
20
+ const stopTime = new Date().toISOString()
21
+ return { startTime, stopTime }
22
+ }
23
+
24
+ const getLocationTimeRangeQueryCreationRequest = (): LocationTimeRangeQueryCreationRequest => {
25
+ const query = { schema: locationWitnessPayloadSchema, ...getDefaultStartStopTime() }
26
+ const sourceArchivist = { ...getArchiveConfig() }
27
+ const resultArchivist = { ...getArchiveConfig() }
28
+ return {
29
+ query,
30
+ resultArchive: 'temp',
31
+ resultArchivist,
32
+ schema: locationTimeRangeQuerySchema,
33
+ sourceArchive: 'temp',
34
+ sourceArchivist,
35
+ }
36
+ }
37
+
38
+ const getLocationHeatmapQueryCreationRequest = (): LocationHeatmapQueryCreationRequest => {
39
+ const query = { schema: locationWitnessPayloadSchema, ...getDefaultStartStopTime() }
40
+ const sourceArchivist = { ...getArchiveConfig() }
41
+ const resultArchivist = { ...getArchiveConfig() }
42
+ return {
43
+ query,
44
+ resultArchive: 'temp',
45
+ resultArchivist,
46
+ schema: locationHeatmapQuerySchema,
47
+ sourceArchive: 'temp',
48
+ sourceArchivist,
49
+ }
50
+ }
51
+
52
+ const describeSkipIfNoDiviner = process.env.LOCATION_API_DOMAIN ? describe : describe.skip
53
+
54
+ describeSkipIfNoDiviner('XyoLocationDivinerApi', () => {
55
+ describe('constructor', () => {
56
+ it('returns a new XyoLocationDivinerApi', () => {
57
+ const api = new XyoLocationDivinerApi(config)
58
+ expect(api).toBeDefined()
59
+ })
60
+ })
61
+ describe('postLocationQuery', () => {
62
+ it('posts a location heatmap query', async () => {
63
+ const api = new XyoLocationDivinerApi(config)
64
+ try {
65
+ const locationQuery = await api.postLocationQuery(getLocationHeatmapQueryCreationRequest())
66
+ const response = await api.getLocationQuery(locationQuery.hash)
67
+ expect(response.queryHash).toBe(locationQuery.hash)
68
+ } catch (ex) {
69
+ const error = ex as AxiosError
70
+ console.log(JSON.stringify(error.response?.data, null, 2))
71
+ throw ex
72
+ }
73
+ })
74
+ it('posts a location time range query', async () => {
75
+ const api = new XyoLocationDivinerApi(config)
76
+ try {
77
+ const locationQuery = await api.postLocationQuery(getLocationTimeRangeQueryCreationRequest())
78
+ const response = await api.getLocationQuery(locationQuery.hash)
79
+ expect(response.queryHash).toBe(locationQuery.hash)
80
+ } catch (ex) {
81
+ const error = ex as AxiosError
82
+ console.log(JSON.stringify(error.response?.data, null, 2))
83
+ throw ex
84
+ }
85
+ })
86
+ })
87
+ describe('getLocationQuery', function () {
88
+ it('gets the status of a previously posted location query', async () => {
89
+ const api = new XyoLocationDivinerApi(config)
90
+ try {
91
+ const locationQuery = await api.postLocationQuery(getLocationTimeRangeQueryCreationRequest())
92
+ const response = await api.getLocationQuery(locationQuery.hash)
93
+ expect(response.queryHash).toBe(locationQuery.hash)
94
+ } catch (ex) {
95
+ const error = ex as AxiosError
96
+ console.log(JSON.stringify(error.response?.data, null, 2))
97
+ throw ex
98
+ }
99
+ })
100
+ })
101
+ })