@xyo-network/diviner-temporal-indexing-memory 2.80.12 → 2.80.13

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 (370) hide show
  1. package/dist/browser/Diviner.d.cts +12 -5
  2. package/dist/browser/Diviner.d.cts.map +1 -1
  3. package/dist/browser/Diviner.d.mts +12 -5
  4. package/dist/browser/Diviner.d.mts.map +1 -1
  5. package/dist/browser/Diviner.d.ts +12 -5
  6. package/dist/browser/Diviner.d.ts.map +1 -1
  7. package/dist/browser/DivinerQueryToIndexQueryDiviner/Diviner.d.cts +42 -0
  8. package/dist/browser/DivinerQueryToIndexQueryDiviner/Diviner.d.cts.map +1 -0
  9. package/dist/browser/DivinerQueryToIndexQueryDiviner/Diviner.d.mts +42 -0
  10. package/dist/browser/DivinerQueryToIndexQueryDiviner/Diviner.d.mts.map +1 -0
  11. package/dist/browser/DivinerQueryToIndexQueryDiviner/Diviner.d.ts +42 -0
  12. package/dist/browser/DivinerQueryToIndexQueryDiviner/Diviner.d.ts.map +1 -0
  13. package/dist/browser/DivinerQueryToIndexQueryDiviner/index.d.cts +2 -0
  14. package/dist/browser/DivinerQueryToIndexQueryDiviner/index.d.cts.map +1 -0
  15. package/dist/browser/DivinerQueryToIndexQueryDiviner/index.d.mts +2 -0
  16. package/dist/browser/DivinerQueryToIndexQueryDiviner/index.d.mts.map +1 -0
  17. package/dist/browser/DivinerQueryToIndexQueryDiviner/index.d.ts +2 -0
  18. package/dist/browser/DivinerQueryToIndexQueryDiviner/index.d.ts.map +1 -0
  19. package/dist/browser/IndexCandidateToIndexDiviner/Diviner.d.cts +9 -9
  20. package/dist/browser/IndexCandidateToIndexDiviner/Diviner.d.cts.map +1 -1
  21. package/dist/browser/IndexCandidateToIndexDiviner/Diviner.d.mts +9 -9
  22. package/dist/browser/IndexCandidateToIndexDiviner/Diviner.d.mts.map +1 -1
  23. package/dist/browser/IndexCandidateToIndexDiviner/Diviner.d.ts +9 -9
  24. package/dist/browser/IndexCandidateToIndexDiviner/Diviner.d.ts.map +1 -1
  25. package/dist/browser/IndexCandidateToIndexDiviner/_Diviner.d.cts +47 -0
  26. package/dist/browser/IndexCandidateToIndexDiviner/_Diviner.d.cts.map +1 -0
  27. package/dist/browser/IndexCandidateToIndexDiviner/_Diviner.d.mts +47 -0
  28. package/dist/browser/IndexCandidateToIndexDiviner/_Diviner.d.mts.map +1 -0
  29. package/dist/browser/IndexCandidateToIndexDiviner/_Diviner.d.ts +47 -0
  30. package/dist/browser/IndexCandidateToIndexDiviner/_Diviner.d.ts.map +1 -0
  31. package/dist/browser/IndexCandidateToIndexDiviner/index.d.cts +0 -3
  32. package/dist/browser/IndexCandidateToIndexDiviner/index.d.cts.map +1 -1
  33. package/dist/browser/IndexCandidateToIndexDiviner/index.d.mts +0 -3
  34. package/dist/browser/IndexCandidateToIndexDiviner/index.d.mts.map +1 -1
  35. package/dist/browser/IndexCandidateToIndexDiviner/index.d.ts +0 -3
  36. package/dist/browser/IndexCandidateToIndexDiviner/index.d.ts.map +1 -1
  37. package/dist/browser/{IndexQueryResponseToDivinerQueryResponseDiviner.d.mts → IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.cts} +3 -2
  38. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.cts.map +1 -0
  39. package/dist/browser/{IndexQueryResponseToDivinerQueryResponseDiviner.d.ts → IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.mts} +3 -2
  40. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.mts.map +1 -0
  41. package/dist/{node/IndexQueryResponseToDivinerQueryResponseDiviner.d.cts → browser/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.ts} +3 -2
  42. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.ts.map +1 -0
  43. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.cts +2 -0
  44. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.cts.map +1 -0
  45. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.mts +2 -0
  46. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.mts.map +1 -0
  47. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.ts +2 -0
  48. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.ts.map +1 -0
  49. package/dist/browser/StateToIndexCandidateDiviner/Diviner.d.cts +7 -6
  50. package/dist/browser/StateToIndexCandidateDiviner/Diviner.d.cts.map +1 -1
  51. package/dist/browser/StateToIndexCandidateDiviner/Diviner.d.mts +7 -6
  52. package/dist/browser/StateToIndexCandidateDiviner/Diviner.d.mts.map +1 -1
  53. package/dist/browser/StateToIndexCandidateDiviner/Diviner.d.ts +7 -6
  54. package/dist/browser/StateToIndexCandidateDiviner/Diviner.d.ts.map +1 -1
  55. package/dist/browser/index.cjs +453 -26
  56. package/dist/browser/index.cjs.map +1 -1
  57. package/dist/browser/index.d.cts +4 -0
  58. package/dist/browser/index.d.cts.map +1 -1
  59. package/dist/browser/index.d.mts +4 -0
  60. package/dist/browser/index.d.mts.map +1 -1
  61. package/dist/browser/index.d.ts +4 -0
  62. package/dist/browser/index.d.ts.map +1 -1
  63. package/dist/browser/index.js +457 -26
  64. package/dist/browser/index.js.map +1 -1
  65. package/dist/browser/jsonpath/index.d.cts +4 -0
  66. package/dist/browser/jsonpath/index.d.cts.map +1 -0
  67. package/dist/browser/jsonpath/index.d.mts +4 -0
  68. package/dist/browser/jsonpath/index.d.mts.map +1 -0
  69. package/dist/browser/jsonpath/index.d.ts +4 -0
  70. package/dist/browser/jsonpath/index.d.ts.map +1 -0
  71. package/dist/browser/jsonpath/jsonPathToTransformersDictionary.d.cts +10 -0
  72. package/dist/browser/jsonpath/jsonPathToTransformersDictionary.d.cts.map +1 -0
  73. package/dist/browser/jsonpath/jsonPathToTransformersDictionary.d.mts +10 -0
  74. package/dist/browser/jsonpath/jsonPathToTransformersDictionary.d.mts.map +1 -0
  75. package/dist/browser/jsonpath/jsonPathToTransformersDictionary.d.ts +10 -0
  76. package/dist/browser/jsonpath/jsonPathToTransformersDictionary.d.ts.map +1 -0
  77. package/dist/browser/jsonpath/reducePayloads.d.cts +27 -0
  78. package/dist/browser/jsonpath/reducePayloads.d.cts.map +1 -0
  79. package/dist/browser/jsonpath/reducePayloads.d.mts +27 -0
  80. package/dist/browser/jsonpath/reducePayloads.d.mts.map +1 -0
  81. package/dist/browser/jsonpath/reducePayloads.d.ts +27 -0
  82. package/dist/browser/jsonpath/reducePayloads.d.ts.map +1 -0
  83. package/dist/browser/jsonpath/toPayloadTransformer.d.cts +8 -0
  84. package/dist/browser/jsonpath/toPayloadTransformer.d.cts.map +1 -0
  85. package/dist/browser/jsonpath/toPayloadTransformer.d.mts +8 -0
  86. package/dist/browser/jsonpath/toPayloadTransformer.d.mts.map +1 -0
  87. package/dist/browser/jsonpath/toPayloadTransformer.d.ts +8 -0
  88. package/dist/browser/jsonpath/toPayloadTransformer.d.ts.map +1 -0
  89. package/dist/node/Diviner.d.cts +12 -5
  90. package/dist/node/Diviner.d.cts.map +1 -1
  91. package/dist/node/Diviner.d.mts +12 -5
  92. package/dist/node/Diviner.d.mts.map +1 -1
  93. package/dist/node/Diviner.d.ts +12 -5
  94. package/dist/node/Diviner.d.ts.map +1 -1
  95. package/dist/node/DivinerQueryToIndexQueryDiviner/Diviner.d.cts +42 -0
  96. package/dist/node/DivinerQueryToIndexQueryDiviner/Diviner.d.cts.map +1 -0
  97. package/dist/node/DivinerQueryToIndexQueryDiviner/Diviner.d.mts +42 -0
  98. package/dist/node/DivinerQueryToIndexQueryDiviner/Diviner.d.mts.map +1 -0
  99. package/dist/node/DivinerQueryToIndexQueryDiviner/Diviner.d.ts +42 -0
  100. package/dist/node/DivinerQueryToIndexQueryDiviner/Diviner.d.ts.map +1 -0
  101. package/dist/node/DivinerQueryToIndexQueryDiviner/index.d.cts +2 -0
  102. package/dist/node/DivinerQueryToIndexQueryDiviner/index.d.cts.map +1 -0
  103. package/dist/node/DivinerQueryToIndexQueryDiviner/index.d.mts +2 -0
  104. package/dist/node/DivinerQueryToIndexQueryDiviner/index.d.mts.map +1 -0
  105. package/dist/node/DivinerQueryToIndexQueryDiviner/index.d.ts +2 -0
  106. package/dist/node/DivinerQueryToIndexQueryDiviner/index.d.ts.map +1 -0
  107. package/dist/node/IndexCandidateToIndexDiviner/Diviner.d.cts +9 -9
  108. package/dist/node/IndexCandidateToIndexDiviner/Diviner.d.cts.map +1 -1
  109. package/dist/node/IndexCandidateToIndexDiviner/Diviner.d.mts +9 -9
  110. package/dist/node/IndexCandidateToIndexDiviner/Diviner.d.mts.map +1 -1
  111. package/dist/node/IndexCandidateToIndexDiviner/Diviner.d.ts +9 -9
  112. package/dist/node/IndexCandidateToIndexDiviner/Diviner.d.ts.map +1 -1
  113. package/dist/node/IndexCandidateToIndexDiviner/_Diviner.d.cts +47 -0
  114. package/dist/node/IndexCandidateToIndexDiviner/_Diviner.d.cts.map +1 -0
  115. package/dist/node/IndexCandidateToIndexDiviner/_Diviner.d.mts +47 -0
  116. package/dist/node/IndexCandidateToIndexDiviner/_Diviner.d.mts.map +1 -0
  117. package/dist/node/IndexCandidateToIndexDiviner/_Diviner.d.ts +47 -0
  118. package/dist/node/IndexCandidateToIndexDiviner/_Diviner.d.ts.map +1 -0
  119. package/dist/node/IndexCandidateToIndexDiviner/index.d.cts +0 -3
  120. package/dist/node/IndexCandidateToIndexDiviner/index.d.cts.map +1 -1
  121. package/dist/node/IndexCandidateToIndexDiviner/index.d.mts +0 -3
  122. package/dist/node/IndexCandidateToIndexDiviner/index.d.mts.map +1 -1
  123. package/dist/node/IndexCandidateToIndexDiviner/index.d.ts +0 -3
  124. package/dist/node/IndexCandidateToIndexDiviner/index.d.ts.map +1 -1
  125. package/dist/{browser/IndexQueryResponseToDivinerQueryResponseDiviner.d.cts → node/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.cts} +3 -2
  126. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.cts.map +1 -0
  127. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.mts +13 -0
  128. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.mts.map +1 -0
  129. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.ts +13 -0
  130. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.d.ts.map +1 -0
  131. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.cts +2 -0
  132. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.cts.map +1 -0
  133. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.mts +2 -0
  134. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.mts.map +1 -0
  135. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.ts +2 -0
  136. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner/index.d.ts.map +1 -0
  137. package/dist/node/StateToIndexCandidateDiviner/Diviner.d.cts +7 -6
  138. package/dist/node/StateToIndexCandidateDiviner/Diviner.d.cts.map +1 -1
  139. package/dist/node/StateToIndexCandidateDiviner/Diviner.d.mts +7 -6
  140. package/dist/node/StateToIndexCandidateDiviner/Diviner.d.mts.map +1 -1
  141. package/dist/node/StateToIndexCandidateDiviner/Diviner.d.ts +7 -6
  142. package/dist/node/StateToIndexCandidateDiviner/Diviner.d.ts.map +1 -1
  143. package/dist/node/index.d.cts +4 -0
  144. package/dist/node/index.d.cts.map +1 -1
  145. package/dist/node/index.d.mts +4 -0
  146. package/dist/node/index.d.mts.map +1 -1
  147. package/dist/node/index.d.ts +4 -0
  148. package/dist/node/index.d.ts.map +1 -1
  149. package/dist/node/index.js +476 -27
  150. package/dist/node/index.js.map +1 -1
  151. package/dist/node/index.mjs +475 -26
  152. package/dist/node/index.mjs.map +1 -1
  153. package/dist/node/jsonpath/index.d.cts +4 -0
  154. package/dist/node/jsonpath/index.d.cts.map +1 -0
  155. package/dist/node/jsonpath/index.d.mts +4 -0
  156. package/dist/node/jsonpath/index.d.mts.map +1 -0
  157. package/dist/node/jsonpath/index.d.ts +4 -0
  158. package/dist/node/jsonpath/index.d.ts.map +1 -0
  159. package/dist/node/jsonpath/jsonPathToTransformersDictionary.d.cts +10 -0
  160. package/dist/node/jsonpath/jsonPathToTransformersDictionary.d.cts.map +1 -0
  161. package/dist/node/jsonpath/jsonPathToTransformersDictionary.d.mts +10 -0
  162. package/dist/node/jsonpath/jsonPathToTransformersDictionary.d.mts.map +1 -0
  163. package/dist/node/jsonpath/jsonPathToTransformersDictionary.d.ts +10 -0
  164. package/dist/node/jsonpath/jsonPathToTransformersDictionary.d.ts.map +1 -0
  165. package/dist/node/jsonpath/reducePayloads.d.cts +27 -0
  166. package/dist/node/jsonpath/reducePayloads.d.cts.map +1 -0
  167. package/dist/node/jsonpath/reducePayloads.d.mts +27 -0
  168. package/dist/node/jsonpath/reducePayloads.d.mts.map +1 -0
  169. package/dist/node/jsonpath/reducePayloads.d.ts +27 -0
  170. package/dist/node/jsonpath/reducePayloads.d.ts.map +1 -0
  171. package/dist/node/jsonpath/toPayloadTransformer.d.cts +8 -0
  172. package/dist/node/jsonpath/toPayloadTransformer.d.cts.map +1 -0
  173. package/dist/node/jsonpath/toPayloadTransformer.d.mts +8 -0
  174. package/dist/node/jsonpath/toPayloadTransformer.d.mts.map +1 -0
  175. package/dist/node/jsonpath/toPayloadTransformer.d.ts +8 -0
  176. package/dist/node/jsonpath/toPayloadTransformer.d.ts.map +1 -0
  177. package/package.json +29 -28
  178. package/src/Diviner.ts +119 -27
  179. package/src/DivinerQueryToIndexQueryDiviner/Diviner.ts +120 -0
  180. package/src/DivinerQueryToIndexQueryDiviner/index.ts +1 -0
  181. package/src/IndexCandidateToIndexDiviner/Diviner.ts +40 -57
  182. package/src/IndexCandidateToIndexDiviner/_Diviner.ts +135 -0
  183. package/src/IndexCandidateToIndexDiviner/index.ts +0 -3
  184. package/src/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.ts +26 -0
  185. package/src/IndexQueryResponseToDivinerQueryResponseDiviner/index.ts +1 -0
  186. package/src/StateToIndexCandidateDiviner/Diviner.ts +25 -13
  187. package/src/index.ts +4 -0
  188. package/src/jsonpath/index.ts +3 -0
  189. package/src/jsonpath/jsonPathToTransformersDictionary.ts +21 -0
  190. package/src/jsonpath/reducePayloads.ts +50 -0
  191. package/src/jsonpath/toPayloadTransformer.ts +23 -0
  192. package/src/spec/{ImageThumbnailDivinerManifest.json → TemporalDiviner.json} +70 -7
  193. package/dist/browser/DivinerQueryToIndexQueryDiviner.d.cts +0 -12
  194. package/dist/browser/DivinerQueryToIndexQueryDiviner.d.cts.map +0 -1
  195. package/dist/browser/DivinerQueryToIndexQueryDiviner.d.mts +0 -12
  196. package/dist/browser/DivinerQueryToIndexQueryDiviner.d.mts.map +0 -1
  197. package/dist/browser/DivinerQueryToIndexQueryDiviner.d.ts +0 -12
  198. package/dist/browser/DivinerQueryToIndexQueryDiviner.d.ts.map +0 -1
  199. package/dist/browser/IndexCandidateToIndexDiviner/Config.d.cts +0 -10
  200. package/dist/browser/IndexCandidateToIndexDiviner/Config.d.cts.map +0 -1
  201. package/dist/browser/IndexCandidateToIndexDiviner/Config.d.mts +0 -10
  202. package/dist/browser/IndexCandidateToIndexDiviner/Config.d.mts.map +0 -1
  203. package/dist/browser/IndexCandidateToIndexDiviner/Config.d.ts +0 -10
  204. package/dist/browser/IndexCandidateToIndexDiviner/Config.d.ts.map +0 -1
  205. package/dist/browser/IndexCandidateToIndexDiviner/Params.d.cts +0 -5
  206. package/dist/browser/IndexCandidateToIndexDiviner/Params.d.cts.map +0 -1
  207. package/dist/browser/IndexCandidateToIndexDiviner/Params.d.mts +0 -5
  208. package/dist/browser/IndexCandidateToIndexDiviner/Params.d.mts.map +0 -1
  209. package/dist/browser/IndexCandidateToIndexDiviner/Params.d.ts +0 -5
  210. package/dist/browser/IndexCandidateToIndexDiviner/Params.d.ts.map +0 -1
  211. package/dist/browser/IndexCandidateToIndexDiviner/Schema.d.cts +0 -4
  212. package/dist/browser/IndexCandidateToIndexDiviner/Schema.d.cts.map +0 -1
  213. package/dist/browser/IndexCandidateToIndexDiviner/Schema.d.mts +0 -4
  214. package/dist/browser/IndexCandidateToIndexDiviner/Schema.d.mts.map +0 -1
  215. package/dist/browser/IndexCandidateToIndexDiviner/Schema.d.ts +0 -4
  216. package/dist/browser/IndexCandidateToIndexDiviner/Schema.d.ts.map +0 -1
  217. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner.d.cts.map +0 -1
  218. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner.d.mts.map +0 -1
  219. package/dist/browser/IndexQueryResponseToDivinerQueryResponseDiviner.d.ts.map +0 -1
  220. package/dist/browser/StateToIndexCandidateDiviner/Config.d.cts +0 -19
  221. package/dist/browser/StateToIndexCandidateDiviner/Config.d.cts.map +0 -1
  222. package/dist/browser/StateToIndexCandidateDiviner/Config.d.mts +0 -19
  223. package/dist/browser/StateToIndexCandidateDiviner/Config.d.mts.map +0 -1
  224. package/dist/browser/StateToIndexCandidateDiviner/Config.d.ts +0 -19
  225. package/dist/browser/StateToIndexCandidateDiviner/Config.d.ts.map +0 -1
  226. package/dist/browser/StateToIndexCandidateDiviner/Params.d.cts +0 -5
  227. package/dist/browser/StateToIndexCandidateDiviner/Params.d.cts.map +0 -1
  228. package/dist/browser/StateToIndexCandidateDiviner/Params.d.mts +0 -5
  229. package/dist/browser/StateToIndexCandidateDiviner/Params.d.mts.map +0 -1
  230. package/dist/browser/StateToIndexCandidateDiviner/Params.d.ts +0 -5
  231. package/dist/browser/StateToIndexCandidateDiviner/Params.d.ts.map +0 -1
  232. package/dist/browser/StateToIndexCandidateDiviner/Schema.d.cts +0 -4
  233. package/dist/browser/StateToIndexCandidateDiviner/Schema.d.cts.map +0 -1
  234. package/dist/browser/StateToIndexCandidateDiviner/Schema.d.mts +0 -4
  235. package/dist/browser/StateToIndexCandidateDiviner/Schema.d.mts.map +0 -1
  236. package/dist/browser/StateToIndexCandidateDiviner/Schema.d.ts +0 -4
  237. package/dist/browser/StateToIndexCandidateDiviner/Schema.d.ts.map +0 -1
  238. package/dist/browser/lib/index.d.cts +0 -2
  239. package/dist/browser/lib/index.d.cts.map +0 -1
  240. package/dist/browser/lib/index.d.mts +0 -2
  241. package/dist/browser/lib/index.d.mts.map +0 -1
  242. package/dist/browser/lib/index.d.ts +0 -2
  243. package/dist/browser/lib/index.d.ts.map +0 -1
  244. package/dist/browser/lib/jsonpath/JsonPathTransformExpression.d.cts +0 -15
  245. package/dist/browser/lib/jsonpath/JsonPathTransformExpression.d.cts.map +0 -1
  246. package/dist/browser/lib/jsonpath/JsonPathTransformExpression.d.mts +0 -15
  247. package/dist/browser/lib/jsonpath/JsonPathTransformExpression.d.mts.map +0 -1
  248. package/dist/browser/lib/jsonpath/JsonPathTransformExpression.d.ts +0 -15
  249. package/dist/browser/lib/jsonpath/JsonPathTransformExpression.d.ts.map +0 -1
  250. package/dist/browser/lib/jsonpath/PayloadTransformer.d.cts +0 -3
  251. package/dist/browser/lib/jsonpath/PayloadTransformer.d.cts.map +0 -1
  252. package/dist/browser/lib/jsonpath/PayloadTransformer.d.mts +0 -3
  253. package/dist/browser/lib/jsonpath/PayloadTransformer.d.mts.map +0 -1
  254. package/dist/browser/lib/jsonpath/PayloadTransformer.d.ts +0 -3
  255. package/dist/browser/lib/jsonpath/PayloadTransformer.d.ts.map +0 -1
  256. package/dist/browser/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.cts +0 -12
  257. package/dist/browser/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.cts.map +0 -1
  258. package/dist/browser/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.mts +0 -12
  259. package/dist/browser/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.mts.map +0 -1
  260. package/dist/browser/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.ts +0 -12
  261. package/dist/browser/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.ts.map +0 -1
  262. package/dist/browser/lib/jsonpath/StringToPayloadTransformersDictionary.d.cts +0 -5
  263. package/dist/browser/lib/jsonpath/StringToPayloadTransformersDictionary.d.cts.map +0 -1
  264. package/dist/browser/lib/jsonpath/StringToPayloadTransformersDictionary.d.mts +0 -5
  265. package/dist/browser/lib/jsonpath/StringToPayloadTransformersDictionary.d.mts.map +0 -1
  266. package/dist/browser/lib/jsonpath/StringToPayloadTransformersDictionary.d.ts +0 -5
  267. package/dist/browser/lib/jsonpath/StringToPayloadTransformersDictionary.d.ts.map +0 -1
  268. package/dist/browser/lib/jsonpath/index.d.cts +0 -5
  269. package/dist/browser/lib/jsonpath/index.d.cts.map +0 -1
  270. package/dist/browser/lib/jsonpath/index.d.mts +0 -5
  271. package/dist/browser/lib/jsonpath/index.d.mts.map +0 -1
  272. package/dist/browser/lib/jsonpath/index.d.ts +0 -5
  273. package/dist/browser/lib/jsonpath/index.d.ts.map +0 -1
  274. package/dist/node/DivinerQueryToIndexQueryDiviner.d.cts +0 -12
  275. package/dist/node/DivinerQueryToIndexQueryDiviner.d.cts.map +0 -1
  276. package/dist/node/DivinerQueryToIndexQueryDiviner.d.mts +0 -12
  277. package/dist/node/DivinerQueryToIndexQueryDiviner.d.mts.map +0 -1
  278. package/dist/node/DivinerQueryToIndexQueryDiviner.d.ts +0 -12
  279. package/dist/node/DivinerQueryToIndexQueryDiviner.d.ts.map +0 -1
  280. package/dist/node/IndexCandidateToIndexDiviner/Config.d.cts +0 -10
  281. package/dist/node/IndexCandidateToIndexDiviner/Config.d.cts.map +0 -1
  282. package/dist/node/IndexCandidateToIndexDiviner/Config.d.mts +0 -10
  283. package/dist/node/IndexCandidateToIndexDiviner/Config.d.mts.map +0 -1
  284. package/dist/node/IndexCandidateToIndexDiviner/Config.d.ts +0 -10
  285. package/dist/node/IndexCandidateToIndexDiviner/Config.d.ts.map +0 -1
  286. package/dist/node/IndexCandidateToIndexDiviner/Params.d.cts +0 -5
  287. package/dist/node/IndexCandidateToIndexDiviner/Params.d.cts.map +0 -1
  288. package/dist/node/IndexCandidateToIndexDiviner/Params.d.mts +0 -5
  289. package/dist/node/IndexCandidateToIndexDiviner/Params.d.mts.map +0 -1
  290. package/dist/node/IndexCandidateToIndexDiviner/Params.d.ts +0 -5
  291. package/dist/node/IndexCandidateToIndexDiviner/Params.d.ts.map +0 -1
  292. package/dist/node/IndexCandidateToIndexDiviner/Schema.d.cts +0 -4
  293. package/dist/node/IndexCandidateToIndexDiviner/Schema.d.cts.map +0 -1
  294. package/dist/node/IndexCandidateToIndexDiviner/Schema.d.mts +0 -4
  295. package/dist/node/IndexCandidateToIndexDiviner/Schema.d.mts.map +0 -1
  296. package/dist/node/IndexCandidateToIndexDiviner/Schema.d.ts +0 -4
  297. package/dist/node/IndexCandidateToIndexDiviner/Schema.d.ts.map +0 -1
  298. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner.d.cts.map +0 -1
  299. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner.d.mts +0 -12
  300. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner.d.mts.map +0 -1
  301. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner.d.ts +0 -12
  302. package/dist/node/IndexQueryResponseToDivinerQueryResponseDiviner.d.ts.map +0 -1
  303. package/dist/node/StateToIndexCandidateDiviner/Config.d.cts +0 -19
  304. package/dist/node/StateToIndexCandidateDiviner/Config.d.cts.map +0 -1
  305. package/dist/node/StateToIndexCandidateDiviner/Config.d.mts +0 -19
  306. package/dist/node/StateToIndexCandidateDiviner/Config.d.mts.map +0 -1
  307. package/dist/node/StateToIndexCandidateDiviner/Config.d.ts +0 -19
  308. package/dist/node/StateToIndexCandidateDiviner/Config.d.ts.map +0 -1
  309. package/dist/node/StateToIndexCandidateDiviner/Params.d.cts +0 -5
  310. package/dist/node/StateToIndexCandidateDiviner/Params.d.cts.map +0 -1
  311. package/dist/node/StateToIndexCandidateDiviner/Params.d.mts +0 -5
  312. package/dist/node/StateToIndexCandidateDiviner/Params.d.mts.map +0 -1
  313. package/dist/node/StateToIndexCandidateDiviner/Params.d.ts +0 -5
  314. package/dist/node/StateToIndexCandidateDiviner/Params.d.ts.map +0 -1
  315. package/dist/node/StateToIndexCandidateDiviner/Schema.d.cts +0 -4
  316. package/dist/node/StateToIndexCandidateDiviner/Schema.d.cts.map +0 -1
  317. package/dist/node/StateToIndexCandidateDiviner/Schema.d.mts +0 -4
  318. package/dist/node/StateToIndexCandidateDiviner/Schema.d.mts.map +0 -1
  319. package/dist/node/StateToIndexCandidateDiviner/Schema.d.ts +0 -4
  320. package/dist/node/StateToIndexCandidateDiviner/Schema.d.ts.map +0 -1
  321. package/dist/node/lib/index.d.cts +0 -2
  322. package/dist/node/lib/index.d.cts.map +0 -1
  323. package/dist/node/lib/index.d.mts +0 -2
  324. package/dist/node/lib/index.d.mts.map +0 -1
  325. package/dist/node/lib/index.d.ts +0 -2
  326. package/dist/node/lib/index.d.ts.map +0 -1
  327. package/dist/node/lib/jsonpath/JsonPathTransformExpression.d.cts +0 -15
  328. package/dist/node/lib/jsonpath/JsonPathTransformExpression.d.cts.map +0 -1
  329. package/dist/node/lib/jsonpath/JsonPathTransformExpression.d.mts +0 -15
  330. package/dist/node/lib/jsonpath/JsonPathTransformExpression.d.mts.map +0 -1
  331. package/dist/node/lib/jsonpath/JsonPathTransformExpression.d.ts +0 -15
  332. package/dist/node/lib/jsonpath/JsonPathTransformExpression.d.ts.map +0 -1
  333. package/dist/node/lib/jsonpath/PayloadTransformer.d.cts +0 -3
  334. package/dist/node/lib/jsonpath/PayloadTransformer.d.cts.map +0 -1
  335. package/dist/node/lib/jsonpath/PayloadTransformer.d.mts +0 -3
  336. package/dist/node/lib/jsonpath/PayloadTransformer.d.mts.map +0 -1
  337. package/dist/node/lib/jsonpath/PayloadTransformer.d.ts +0 -3
  338. package/dist/node/lib/jsonpath/PayloadTransformer.d.ts.map +0 -1
  339. package/dist/node/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.cts +0 -12
  340. package/dist/node/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.cts.map +0 -1
  341. package/dist/node/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.mts +0 -12
  342. package/dist/node/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.mts.map +0 -1
  343. package/dist/node/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.ts +0 -12
  344. package/dist/node/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.d.ts.map +0 -1
  345. package/dist/node/lib/jsonpath/StringToPayloadTransformersDictionary.d.cts +0 -5
  346. package/dist/node/lib/jsonpath/StringToPayloadTransformersDictionary.d.cts.map +0 -1
  347. package/dist/node/lib/jsonpath/StringToPayloadTransformersDictionary.d.mts +0 -5
  348. package/dist/node/lib/jsonpath/StringToPayloadTransformersDictionary.d.mts.map +0 -1
  349. package/dist/node/lib/jsonpath/StringToPayloadTransformersDictionary.d.ts +0 -5
  350. package/dist/node/lib/jsonpath/StringToPayloadTransformersDictionary.d.ts.map +0 -1
  351. package/dist/node/lib/jsonpath/index.d.cts +0 -5
  352. package/dist/node/lib/jsonpath/index.d.cts.map +0 -1
  353. package/dist/node/lib/jsonpath/index.d.mts +0 -5
  354. package/dist/node/lib/jsonpath/index.d.mts.map +0 -1
  355. package/dist/node/lib/jsonpath/index.d.ts +0 -5
  356. package/dist/node/lib/jsonpath/index.d.ts.map +0 -1
  357. package/src/DivinerQueryToIndexQueryDiviner.ts +0 -34
  358. package/src/IndexCandidateToIndexDiviner/Config.ts +0 -12
  359. package/src/IndexCandidateToIndexDiviner/Params.ts +0 -6
  360. package/src/IndexCandidateToIndexDiviner/Schema.ts +0 -4
  361. package/src/IndexQueryResponseToDivinerQueryResponseDiviner.ts +0 -21
  362. package/src/StateToIndexCandidateDiviner/Config.ts +0 -21
  363. package/src/StateToIndexCandidateDiviner/Params.ts +0 -6
  364. package/src/StateToIndexCandidateDiviner/Schema.ts +0 -4
  365. package/src/lib/index.ts +0 -1
  366. package/src/lib/jsonpath/JsonPathTransformExpression.ts +0 -14
  367. package/src/lib/jsonpath/PayloadTransformer.ts +0 -3
  368. package/src/lib/jsonpath/StringToJsonPathTransformExpressionDictionary.ts +0 -8
  369. package/src/lib/jsonpath/StringToPayloadTransformersDictionary.ts +0 -3
  370. package/src/lib/jsonpath/index.ts +0 -4
@@ -1,2 +1,6 @@
1
1
  export * from './Diviner';
2
+ export * from './DivinerQueryToIndexQueryDiviner';
3
+ export * from './IndexCandidateToIndexDiviner';
4
+ export * from './IndexQueryResponseToDivinerQueryResponseDiviner';
5
+ export * from './StateToIndexCandidateDiviner';
2
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mDAAmD,CAAA;AACjE,cAAc,gCAAgC,CAAA"}
@@ -1,2 +1,6 @@
1
1
  export * from './Diviner';
2
+ export * from './DivinerQueryToIndexQueryDiviner';
3
+ export * from './IndexCandidateToIndexDiviner';
4
+ export * from './IndexQueryResponseToDivinerQueryResponseDiviner';
5
+ export * from './StateToIndexCandidateDiviner';
2
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mDAAmD,CAAA;AACjE,cAAc,gCAAgC,CAAA"}
@@ -1,33 +1,365 @@
1
1
  // src/Diviner.ts
2
+ import { assertEx as assertEx3 } from "@xylabs/assert";
2
3
  import { IndexingDiviner } from "@xyo-network/diviner-indexing-memory";
3
4
  import { IndexingDivinerConfigSchema } from "@xyo-network/diviner-indexing-model";
5
+ import { DivinerConfigSchema as DivinerConfigSchema5 } from "@xyo-network/diviner-model";
6
+ import {
7
+ TemporalIndexingDivinerConfigSchema,
8
+ TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema as TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema2,
9
+ TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema as TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema2,
10
+ TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema as TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema2,
11
+ TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema as TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema2
12
+ } from "@xyo-network/diviner-temporal-indexing-model";
13
+ import { asNodeInstance } from "@xyo-network/node-model";
14
+
15
+ // src/DivinerQueryToIndexQueryDiviner/Diviner.ts
16
+ import { AbstractDiviner } from "@xyo-network/abstract-diviner";
4
17
  import { DivinerConfigSchema } from "@xyo-network/diviner-model";
18
+ import { PayloadDivinerQuerySchema } from "@xyo-network/diviner-payload-model";
19
+ import {
20
+ TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema,
21
+ TemporalIndexingDivinerResultIndexSchema
22
+ } from "@xyo-network/diviner-temporal-indexing-model";
23
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
24
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
25
+
26
+ // src/jsonpath/toPayloadTransformer.ts
27
+ import jsonpath from "jsonpath";
28
+ var toPayloadTransformer = (transformExpression) => {
29
+ const { defaultValue, destinationField, sourcePathExpression } = transformExpression;
30
+ const transformer = (x) => {
31
+ const source = jsonpath.value(x, sourcePathExpression);
32
+ const transformed = {};
33
+ const destinationValue = source === void 0 ? defaultValue : source;
34
+ if (destinationValue !== void 0)
35
+ transformed[destinationField] = destinationValue;
36
+ return transformed;
37
+ };
38
+ return transformer;
39
+ };
40
+
41
+ // src/jsonpath/jsonPathToTransformersDictionary.ts
42
+ var jsonPathToTransformersDictionary = (schemaTransforms) => {
43
+ return Object.fromEntries(
44
+ Object.entries(schemaTransforms).map(([schema, jsonPathTransformerExpressions]) => {
45
+ const transformers = jsonPathTransformerExpressions.map(toPayloadTransformer);
46
+ return [schema, transformers];
47
+ })
48
+ );
49
+ };
50
+
51
+ // src/jsonpath/reducePayloads.ts
52
+ import { PayloadHasher } from "@xyo-network/core";
53
+ import { PayloadBuilder } from "@xyo-network/payload-builder";
54
+ var reducePayloads = async (payloads, payloadTransformers, destinationSchema) => {
55
+ const indexFields = payloads.map((payload) => {
56
+ const transformers = payloadTransformers[payload.schema];
57
+ return transformers ? transformers.map((transform) => transform(payload)) : [];
58
+ }).flat();
59
+ const sources = (await PayloadHasher.hashPairs([...payloads])).map(([, hash]) => hash);
60
+ return new PayloadBuilder({ schema: destinationSchema }).fields(Object.assign({ sources }, ...indexFields)).build();
61
+ };
62
+
63
+ // src/DivinerQueryToIndexQueryDiviner/Diviner.ts
64
+ var TemporalIndexingDivinerDivinerQueryToIndexQueryDiviner = class extends AbstractDiviner {
65
+ static configSchema = TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema;
66
+ static configSchemas = [DivinerConfigSchema, TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema];
67
+ static labels = {
68
+ "network.xyo.diviner.stage": "divinerQueryToIndexQueryDiviner"
69
+ };
70
+ _indexableSchemas;
71
+ _payloadTransformers;
72
+ /**
73
+ * The schema of the diviner query payloads
74
+ */
75
+ get divinerQuerySchema() {
76
+ return this.config.divinerQuerySchema ?? PayloadDivinerQuerySchema;
77
+ }
78
+ /**
79
+ * The schema of the index query payloads
80
+ */
81
+ get indexQuerySchema() {
82
+ return this.config.indexQuerySchema ?? PayloadDivinerQuerySchema;
83
+ }
84
+ /**
85
+ * The schema of the index payloads
86
+ */
87
+ get indexSchema() {
88
+ return this.config.indexSchema ?? TemporalIndexingDivinerResultIndexSchema;
89
+ }
90
+ /**
91
+ * List of indexable schemas for this diviner
92
+ */
93
+ get indexableSchemas() {
94
+ if (!this._indexableSchemas)
95
+ this._indexableSchemas = [...Object.keys(this.schemaTransforms)];
96
+ return this._indexableSchemas;
97
+ }
98
+ /**
99
+ * Dictionary of schemas to payload transformers for creating indexes
100
+ * from the payloads within a Bound Witness
101
+ */
102
+ get payloadTransformers() {
103
+ if (!this._payloadTransformers)
104
+ this._payloadTransformers = jsonPathToTransformersDictionary(this.schemaTransforms);
105
+ return this._payloadTransformers;
106
+ }
107
+ /**
108
+ * The dictionary of schemas to JSON Path transform expressions for creating indexes
109
+ * from the payloads within a Bound Witness
110
+ */
111
+ get schemaTransforms() {
112
+ return this.config?.schemaTransforms ?? {
113
+ [this.divinerQuerySchema]: [
114
+ {
115
+ defaultValue: 1,
116
+ destinationField: "limit",
117
+ sourcePathExpression: "$.limit"
118
+ },
119
+ {
120
+ defaultValue: 0,
121
+ destinationField: "offset",
122
+ sourcePathExpression: "$.offset"
123
+ },
124
+ {
125
+ defaultValue: "desc",
126
+ destinationField: "order",
127
+ sourcePathExpression: "$.order"
128
+ }
129
+ ]
130
+ };
131
+ }
132
+ async divineHandler(payloads = []) {
133
+ const queries = payloads.filter(isPayloadOfSchemaType(this.divinerQuerySchema));
134
+ if (queries.length) {
135
+ const results = await Promise.all(
136
+ queries.map(async (query) => {
137
+ const fields = await reducePayloads(
138
+ [query],
139
+ this.payloadTransformers,
140
+ this.indexQuerySchema
141
+ );
142
+ fields.schemas = [this.indexSchema];
143
+ delete fields.sources;
144
+ return new PayloadBuilder2({ schema: this.indexQuerySchema }).fields(fields).build();
145
+ })
146
+ );
147
+ return results;
148
+ }
149
+ return Promise.resolve([]);
150
+ }
151
+ };
152
+
153
+ // src/IndexCandidateToIndexDiviner/Diviner.ts
154
+ import { containsAll } from "@xylabs/array";
155
+ import { assertEx } from "@xylabs/assert";
156
+ import { exists } from "@xylabs/exists";
157
+ import { AbstractDiviner as AbstractDiviner2 } from "@xyo-network/abstract-diviner";
158
+ import { isBoundWitness } from "@xyo-network/boundwitness-model";
159
+ import { PayloadHasher as PayloadHasher2 } from "@xyo-network/core";
160
+ import { DivinerConfigSchema as DivinerConfigSchema2 } from "@xyo-network/diviner-model";
161
+ import {
162
+ TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema,
163
+ TemporalIndexingDivinerResultIndexSchema as TemporalIndexingDivinerResultIndexSchema2
164
+ } from "@xyo-network/diviner-temporal-indexing-model";
165
+ import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
166
+ var moduleName = "TemporalIndexingDivinerIndexCandidateToIndexDiviner";
167
+ var TemporalIndexingDivinerIndexCandidateToIndexDiviner = class extends AbstractDiviner2 {
168
+ static configSchema = TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema;
169
+ static configSchemas = [DivinerConfigSchema2, TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema];
170
+ static labels = {
171
+ "network.xyo.diviner.stage": "indexCandidateToIndexDiviner"
172
+ };
173
+ _indexableSchemas;
174
+ _payloadTransformers;
175
+ /**
176
+ * List of indexable schemas for this diviner
177
+ */
178
+ get indexableSchemas() {
179
+ if (!this._indexableSchemas)
180
+ this._indexableSchemas = [...Object.keys(this.schemaTransforms)];
181
+ return this._indexableSchemas;
182
+ }
183
+ /**
184
+ * Dictionary of schemas to payload transformers for creating indexes
185
+ * from the payloads within a Bound Witness
186
+ */
187
+ get payloadTransformers() {
188
+ if (!this._payloadTransformers)
189
+ this._payloadTransformers = jsonPathToTransformersDictionary(this.schemaTransforms);
190
+ return this._payloadTransformers;
191
+ }
192
+ /**
193
+ * The dictionary of schemas to JSON Path transform expressions for creating indexes
194
+ * from the payloads within a Bound Witness
195
+ */
196
+ get schemaTransforms() {
197
+ return assertEx(this.config?.schemaTransforms, () => `${moduleName}: Missing config.schemaTransforms section`);
198
+ }
199
+ async divineHandler(payloads = []) {
200
+ const bws = payloads.filter(isBoundWitness);
201
+ const indexablePayloads = payloads.filter((p) => this.isIndexablePayload(p));
202
+ if (bws.length && indexablePayloads.length) {
203
+ const payloadDictionary = await PayloadHasher2.toMap(payloads);
204
+ const validIndexableTuples = bws.reduce((indexableTuples, bw) => {
205
+ if (!containsAll(bw.payload_schemas, this.indexableSchemas))
206
+ return indexableTuples;
207
+ const indexablePayloadPositions = this.indexableSchemas.map((schema) => bw.payload_schemas.indexOf(schema));
208
+ const indexablePayloadHashes = indexablePayloadPositions.map((index) => bw.payload_hashes?.[index]);
209
+ const indexablePayloads2 = indexablePayloadHashes.map((hash) => payloadDictionary[hash]).filter(exists);
210
+ if (indexablePayloads2.length === this.indexableSchemas.length)
211
+ indexableTuples.push([bw, ...indexablePayloads2]);
212
+ return indexableTuples;
213
+ }, []);
214
+ const indexes = await Promise.all(
215
+ validIndexableTuples.map(async ([bw, ...sourcePayloads]) => {
216
+ const indexFields = sourcePayloads.map((payload) => {
217
+ const transformers = this.payloadTransformers[payload.schema];
218
+ return transformers ? transformers.map((transform) => transform(payload)) : [];
219
+ }).flat();
220
+ const sources = Object.keys(await PayloadHasher2.toMap([bw, ...sourcePayloads]));
221
+ return new PayloadBuilder3({ schema: TemporalIndexingDivinerResultIndexSchema2 }).fields(Object.assign({ sources }, ...indexFields)).build();
222
+ })
223
+ );
224
+ return indexes.flat();
225
+ }
226
+ return Promise.resolve([]);
227
+ }
228
+ /**
229
+ * Identifies if a payload is one that is indexed by this diviner
230
+ * @param x The candidate payload
231
+ * @returns True if the payload is one indexed by this diviner, false otherwise
232
+ */
233
+ isIndexablePayload = (x) => {
234
+ return this.indexableSchemas.includes(x?.schema);
235
+ };
236
+ /**
237
+ * Identifies if a schema is one that is indexed by this diviner
238
+ * @param schema The candidate schema
239
+ * @returns True if this schema is one indexed by this diviner, false otherwise
240
+ */
241
+ isIndexableSchema = (schema) => {
242
+ return this.indexableSchemas.some((s) => s === schema);
243
+ };
244
+ };
245
+
246
+ // src/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.ts
247
+ import { AbstractDiviner as AbstractDiviner3 } from "@xyo-network/abstract-diviner";
248
+ import { DivinerConfigSchema as DivinerConfigSchema3 } from "@xyo-network/diviner-model";
249
+ import { isPayloadDivinerQueryPayload } from "@xyo-network/diviner-payload-model";
250
+ import { TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema } from "@xyo-network/diviner-temporal-indexing-model";
251
+ var TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDiviner = class extends AbstractDiviner3 {
252
+ static configSchema = TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema;
253
+ static configSchemas = [DivinerConfigSchema3, TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema];
254
+ static labels = {
255
+ "network.xyo.diviner.stage": "indexQueryResponseToDivinerQueryResponseDiviner"
256
+ };
257
+ async divineHandler(payloads = []) {
258
+ const responses = payloads.filter((p) => !isPayloadDivinerQueryPayload(p));
259
+ return await Promise.resolve(responses);
260
+ }
261
+ };
262
+
263
+ // src/StateToIndexCandidateDiviner/Diviner.ts
264
+ import { assertEx as assertEx2 } from "@xylabs/assert";
265
+ import { exists as exists2 } from "@xylabs/exists";
266
+ import { AbstractDiviner as AbstractDiviner4 } from "@xyo-network/abstract-diviner";
267
+ import { ArchivistWrapper } from "@xyo-network/archivist-wrapper";
268
+ import { isBoundWitness as isBoundWitness2 } from "@xyo-network/boundwitness-model";
269
+ import { BoundWitnessDivinerQuerySchema } from "@xyo-network/diviner-boundwitness-model";
270
+ import { DivinerConfigSchema as DivinerConfigSchema4 } from "@xyo-network/diviner-model";
271
+ import {
272
+ TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema
273
+ } from "@xyo-network/diviner-temporal-indexing-model";
274
+ import { DivinerWrapper } from "@xyo-network/diviner-wrapper";
275
+ import { isModuleState, ModuleStateSchema } from "@xyo-network/module-model";
276
+ import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
277
+ import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
278
+ import { TimestampSchema } from "@xyo-network/witness-timestamp";
279
+ var order = "asc";
280
+ var moduleName2 = "TemporalIndexingDivinerStateToIndexCandidateDiviner";
281
+ var TemporalIndexingDivinerStateToIndexCandidateDiviner = class extends AbstractDiviner4 {
282
+ static configSchema = TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema;
283
+ static configSchemas = [DivinerConfigSchema4, TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema];
284
+ static labels = {
285
+ "network.xyo.diviner.stage": "stateToIndexCandidateDiviner"
286
+ };
287
+ get payloadDivinerLimit() {
288
+ return this.config.payloadDivinerLimit ?? 1e3;
289
+ }
290
+ /**
291
+ * The required payload_schemas within BoundWitnesses to identify index candidates
292
+ */
293
+ get payload_schemas() {
294
+ const schemas = this.config.filter?.payload_schemas;
295
+ return [TimestampSchema, ...schemas ?? []];
296
+ }
297
+ async divineHandler(payloads = []) {
298
+ const lastState = payloads.find(isModuleState);
299
+ if (!lastState)
300
+ return [{ schema: ModuleStateSchema, state: { offset: 0 } }];
301
+ const { offset } = lastState.state;
302
+ const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore();
303
+ if (!boundWitnessDiviner)
304
+ return [lastState];
305
+ const query = new PayloadBuilder4({ schema: BoundWitnessDivinerQuerySchema }).fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas: this.payload_schemas }).build();
306
+ const batch = await boundWitnessDiviner.divine([query]);
307
+ if (batch.length === 0)
308
+ return [lastState];
309
+ const sourceArchivist = await this.getArchivistForStore();
310
+ if (!sourceArchivist)
311
+ return [lastState];
312
+ const indexCandidates = (await Promise.all(batch.filter(isBoundWitness2).map((bw) => this.getPayloadsInBoundWitness(bw, sourceArchivist)))).filter(exists2).flat();
313
+ const nextState = { schema: ModuleStateSchema, state: { ...lastState.state, offset: offset + batch.length } };
314
+ return [nextState, ...indexCandidates];
315
+ }
316
+ /**
317
+ * Retrieves the archivist for the payloadStore
318
+ * @returns The archivist for the payloadStore or undefined if not resolvable
319
+ */
320
+ async getArchivistForStore() {
321
+ const name = assertEx2(this.config?.payloadStore?.archivist, () => `${moduleName2}: Config for payloadStore.archivist not specified`);
322
+ const mod = await this.resolve(name);
323
+ if (!mod)
324
+ return void 0;
325
+ return ArchivistWrapper.wrap(mod, this.account);
326
+ }
327
+ /**
328
+ * Retrieves the BoundWitness Diviner for the payloadStore
329
+ * @returns The BoundWitness Diviner for the payloadStore or undefined if not resolvable
330
+ */
331
+ async getBoundWitnessDivinerForStore() {
332
+ const name = assertEx2(
333
+ this.config?.payloadStore?.boundWitnessDiviner,
334
+ () => `${moduleName2}: Config for payloadStore.boundWitnessDiviner not specified`
335
+ );
336
+ const mod = await this.resolve(name);
337
+ if (!mod)
338
+ return void 0;
339
+ return DivinerWrapper.wrap(mod, this.account);
340
+ }
341
+ async getPayloadsInBoundWitness(bw, archivist) {
342
+ const indexes = this.payload_schemas.map((schema) => bw.payload_schemas?.findIndex((s) => s === schema));
343
+ const hashes = indexes.map((index) => bw.payload_hashes?.[index]);
344
+ const results = await archivist.get(hashes);
345
+ const indexCandidateIdentityFunctions = this.payload_schemas.map(isPayloadOfSchemaType2);
346
+ const filteredResults = indexCandidateIdentityFunctions.map((is) => results.find(is));
347
+ if (filteredResults.some((f) => f === void 0))
348
+ return void 0;
349
+ const indexCandidates = filteredResults.filter(exists2);
350
+ return [bw, ...indexCandidates];
351
+ }
352
+ };
353
+
354
+ // src/Diviner.ts
355
+ var moduleName3 = "TemporalIndexingDiviner";
5
356
  var TemporalIndexingDiviner = class extends IndexingDiviner {
6
- static configSchemas = [IndexingDivinerConfigSchema, DivinerConfigSchema];
357
+ static configSchema = TemporalIndexingDivinerConfigSchema;
358
+ static configSchemas = [TemporalIndexingDivinerConfigSchema, IndexingDivinerConfigSchema, DivinerConfigSchema5];
7
359
  _divinerQueryToIndexQueryDiviner;
8
360
  _indexCandidateToIndexDiviner;
9
361
  _indexQueryResponseToDivinerQueryResponseDiviner;
10
362
  _stateToIndexCandidateDiviner;
11
- get divinerQueryToIndexQueryDiviner() {
12
- if (this._divinerQueryToIndexQueryDiviner)
13
- return this._divinerQueryToIndexQueryDiviner;
14
- throw new Error("TODO: Create diviner");
15
- }
16
- get indexCandidateToIndexDiviner() {
17
- if (this._indexCandidateToIndexDiviner)
18
- return this._indexCandidateToIndexDiviner;
19
- throw new Error("TODO: Create diviner");
20
- }
21
- get indexQueryResponseToDivinerQueryResponseDiviner() {
22
- if (this._indexQueryResponseToDivinerQueryResponseDiviner)
23
- return this._indexQueryResponseToDivinerQueryResponseDiviner;
24
- throw new Error("TODO: Create diviner");
25
- }
26
- get stateToIndexCandidateDiviner() {
27
- if (this._stateToIndexCandidateDiviner)
28
- return this._stateToIndexCandidateDiviner;
29
- throw new Error("TODO: Create diviner");
30
- }
31
363
  /**
32
364
  * Gets the Diviner for the supplied Indexing Diviner stage
33
365
  * @param transform The Indexing Diviner stage
@@ -36,21 +368,120 @@ var TemporalIndexingDiviner = class extends IndexingDiviner {
36
368
  getIndexingDivinerStage(transform) {
37
369
  switch (transform) {
38
370
  case "divinerQueryToIndexQueryDiviner":
39
- return Promise.resolve(this.divinerQueryToIndexQueryDiviner);
371
+ return this.getDivinerQueryToIndexQueryDiviner();
40
372
  case "indexCandidateToIndexDiviner":
41
- return Promise.resolve(this.indexCandidateToIndexDiviner);
373
+ return this.getIndexCandidateToIndexDiviner();
42
374
  case "indexQueryResponseToDivinerQueryResponseDiviner":
43
- return Promise.resolve(this.indexQueryResponseToDivinerQueryResponseDiviner);
375
+ return this.getIndexQueryResponseToDivinerQueryResponseDiviner();
44
376
  case "stateToIndexCandidateDiviner":
45
- return Promise.resolve(this.stateToIndexCandidateDiviner);
377
+ return this.getStateToIndexCandidateDiviner();
46
378
  }
47
379
  }
48
380
  async startHandler() {
49
381
  await super.startHandler();
50
382
  return true;
51
383
  }
384
+ /**
385
+ * Adds the supplied module to the parent Node of this Diviner
386
+ * @param mod The module to add to the parent Node of this Diviner
387
+ * @returns
388
+ */
389
+ async attachModuleToParentNode(mod) {
390
+ const parent = (await this.resolve({ maxDepth: 1, query: [["network.xyo.query.node.attach"]] })).shift();
391
+ if (parent) {
392
+ const node = asNodeInstance(parent);
393
+ if (node) {
394
+ await node.register(mod);
395
+ await node.attach(mod.address, false);
396
+ }
397
+ }
398
+ }
399
+ async getDivinerQueryToIndexQueryDiviner() {
400
+ if (!this._divinerQueryToIndexQueryDiviner) {
401
+ const name = this.config.indexingDivinerStages?.divinerQueryToIndexQueryDiviner;
402
+ if (name) {
403
+ this._divinerQueryToIndexQueryDiviner = await this.resolve(name);
404
+ } else {
405
+ const stageConfig = this.config.stageConfigs?.divinerQueryToIndexQueryDiviner;
406
+ if (stageConfig) {
407
+ const config = { schema: TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema2, ...stageConfig };
408
+ const stage = await TemporalIndexingDivinerDivinerQueryToIndexQueryDiviner.create({ config });
409
+ await this.attachModuleToParentNode(stage);
410
+ this._divinerQueryToIndexQueryDiviner = stage;
411
+ }
412
+ }
413
+ }
414
+ return assertEx3(
415
+ this._divinerQueryToIndexQueryDiviner,
416
+ () => `${moduleName3}: Failed to resolve indexing diviner stage for divinerQueryToIndexQueryDiviner`
417
+ );
418
+ }
419
+ async getIndexCandidateToIndexDiviner() {
420
+ if (!this._indexCandidateToIndexDiviner) {
421
+ const name = this.config.indexingDivinerStages?.indexCandidateToIndexDiviner;
422
+ if (name) {
423
+ this._indexCandidateToIndexDiviner = await this.resolve(name);
424
+ } else {
425
+ const stageConfig = this.config.stageConfigs?.indexCandidateToIndexDiviner;
426
+ if (stageConfig) {
427
+ const config = { schema: TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema2, ...stageConfig };
428
+ const stage = await TemporalIndexingDivinerIndexCandidateToIndexDiviner.create({ config });
429
+ await this.attachModuleToParentNode(stage);
430
+ this._indexCandidateToIndexDiviner = stage;
431
+ }
432
+ }
433
+ }
434
+ return assertEx3(
435
+ this._indexCandidateToIndexDiviner,
436
+ () => `${moduleName3}: Failed to resolve indexing diviner stage for indexCandidateToIndexDiviner`
437
+ );
438
+ }
439
+ async getIndexQueryResponseToDivinerQueryResponseDiviner() {
440
+ if (!this._indexQueryResponseToDivinerQueryResponseDiviner) {
441
+ const name = this.config.indexingDivinerStages?.indexQueryResponseToDivinerQueryResponseDiviner;
442
+ if (name) {
443
+ this._indexQueryResponseToDivinerQueryResponseDiviner = await this.resolve(name);
444
+ } else {
445
+ const stageConfig = this.config.stageConfigs?.indexQueryResponseToDivinerQueryResponseDiviner;
446
+ if (stageConfig) {
447
+ const config = { schema: TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema2, ...stageConfig };
448
+ const stage = await TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDiviner.create({ config });
449
+ await this.attachModuleToParentNode(stage);
450
+ this._indexQueryResponseToDivinerQueryResponseDiviner = stage;
451
+ }
452
+ }
453
+ }
454
+ return assertEx3(
455
+ this._indexQueryResponseToDivinerQueryResponseDiviner,
456
+ () => `${moduleName3}: Failed to resolve indexing diviner stage for indexQueryResponseToDivinerQueryResponseDiviner`
457
+ );
458
+ }
459
+ async getStateToIndexCandidateDiviner() {
460
+ if (!this._stateToIndexCandidateDiviner) {
461
+ const name = this.config.indexingDivinerStages?.stateToIndexCandidateDiviner;
462
+ if (name) {
463
+ this._stateToIndexCandidateDiviner = await this.resolve(name);
464
+ } else {
465
+ const stageConfig = this.config.stageConfigs?.stateToIndexCandidateDiviner;
466
+ if (stageConfig) {
467
+ const config = { schema: TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema2, ...stageConfig };
468
+ const stage = await TemporalIndexingDivinerStateToIndexCandidateDiviner.create({ config });
469
+ await this.attachModuleToParentNode(stage);
470
+ this._stateToIndexCandidateDiviner = stage;
471
+ }
472
+ }
473
+ }
474
+ return assertEx3(
475
+ this._stateToIndexCandidateDiviner,
476
+ () => `${moduleName3}: Failed to resolve indexing diviner stage for stateToIndexCandidateDiviner`
477
+ );
478
+ }
52
479
  };
53
480
  export {
54
- TemporalIndexingDiviner
481
+ TemporalIndexingDiviner,
482
+ TemporalIndexingDivinerDivinerQueryToIndexQueryDiviner,
483
+ TemporalIndexingDivinerIndexCandidateToIndexDiviner,
484
+ TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDiviner,
485
+ TemporalIndexingDivinerStateToIndexCandidateDiviner
55
486
  };
56
487
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Diviner.ts"],"sourcesContent":["import { IndexingDiviner } from '@xyo-network/diviner-indexing-memory'\nimport { IndexingDivinerConfigSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing-model'\nimport { DivinerConfigSchema, DivinerInstance, DivinerModule, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport { TemporalIndexingDivinerParams } from '@xyo-network/diviner-temporal-indexing-model'\nimport { Payload } from '@xyo-network/payload-model'\n\n// type ConfigStoreKey = 'indexStore' | 'stateStore'\n\n// type ConfigStore = Extract<keyof IndexingDivinerConfig, ConfigStoreKey>\n\n// const moduleName = 'TemporalIndexingDiviner'\n\nexport class TemporalIndexingDiviner<\n TParams extends TemporalIndexingDivinerParams = TemporalIndexingDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut> = DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut>,\n> extends IndexingDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchemas = [IndexingDivinerConfigSchema, DivinerConfigSchema]\n\n private _divinerQueryToIndexQueryDiviner: DivinerInstance | undefined\n private _indexCandidateToIndexDiviner: DivinerInstance | undefined\n private _indexQueryResponseToDivinerQueryResponseDiviner: DivinerInstance | undefined\n private _stateToIndexCandidateDiviner: DivinerInstance | undefined\n\n private get divinerQueryToIndexQueryDiviner(): DivinerInstance {\n if (this._divinerQueryToIndexQueryDiviner) return this._divinerQueryToIndexQueryDiviner\n throw new Error('TODO: Create diviner')\n }\n private get indexCandidateToIndexDiviner(): DivinerInstance {\n if (this._indexCandidateToIndexDiviner) return this._indexCandidateToIndexDiviner\n throw new Error('TODO: Create diviner')\n }\n private get indexQueryResponseToDivinerQueryResponseDiviner(): DivinerInstance {\n if (this._indexQueryResponseToDivinerQueryResponseDiviner) return this._indexQueryResponseToDivinerQueryResponseDiviner\n throw new Error('TODO: Create diviner')\n }\n private get stateToIndexCandidateDiviner(): DivinerInstance {\n if (this._stateToIndexCandidateDiviner) return this._stateToIndexCandidateDiviner\n throw new Error('TODO: Create diviner')\n }\n\n /**\n * Gets the Diviner for the supplied Indexing Diviner stage\n * @param transform The Indexing Diviner stage\n * @returns The diviner corresponding to the Indexing Diviner stage\n */\n protected override getIndexingDivinerStage(transform: IndexingDivinerStage) {\n switch (transform) {\n case 'divinerQueryToIndexQueryDiviner':\n return Promise.resolve(this.divinerQueryToIndexQueryDiviner)\n case 'indexCandidateToIndexDiviner':\n return Promise.resolve(this.indexCandidateToIndexDiviner)\n case 'indexQueryResponseToDivinerQueryResponseDiviner':\n return Promise.resolve(this.indexQueryResponseToDivinerQueryResponseDiviner)\n case 'stateToIndexCandidateDiviner':\n return Promise.resolve(this.stateToIndexCandidateDiviner)\n }\n }\n\n protected override async startHandler(): Promise<boolean> {\n await super.startHandler()\n return true\n }\n}\n"],"mappings":";AAAA,SAAS,uBAAuB;AAChC,SAAS,mCAAyD;AAClE,SAAS,2BAAmF;AAUrF,IAAM,0BAAN,cAKG,gBAAgD;AAAA,EACxD,OAAyB,gBAAgB,CAAC,6BAA6B,mBAAmB;AAAA,EAElF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAER,IAAY,kCAAmD;AAC7D,QAAI,KAAK;AAAkC,aAAO,KAAK;AACvD,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAAA,EACA,IAAY,+BAAgD;AAC1D,QAAI,KAAK;AAA+B,aAAO,KAAK;AACpD,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAAA,EACA,IAAY,kDAAmE;AAC7E,QAAI,KAAK;AAAkD,aAAO,KAAK;AACvE,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAAA,EACA,IAAY,+BAAgD;AAC1D,QAAI,KAAK;AAA+B,aAAO,KAAK;AACpD,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOmB,wBAAwB,WAAiC;AAC1E,YAAQ,WAAW;AAAA,MACjB,KAAK;AACH,eAAO,QAAQ,QAAQ,KAAK,+BAA+B;AAAA,MAC7D,KAAK;AACH,eAAO,QAAQ,QAAQ,KAAK,4BAA4B;AAAA,MAC1D,KAAK;AACH,eAAO,QAAQ,QAAQ,KAAK,+CAA+C;AAAA,MAC7E,KAAK;AACH,eAAO,QAAQ,QAAQ,KAAK,4BAA4B;AAAA,IAC5D;AAAA,EACF;AAAA,EAEA,MAAyB,eAAiC;AACxD,UAAM,MAAM,aAAa;AACzB,WAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/Diviner.ts","../../src/DivinerQueryToIndexQueryDiviner/Diviner.ts","../../src/jsonpath/toPayloadTransformer.ts","../../src/jsonpath/jsonPathToTransformersDictionary.ts","../../src/jsonpath/reducePayloads.ts","../../src/IndexCandidateToIndexDiviner/Diviner.ts","../../src/IndexQueryResponseToDivinerQueryResponseDiviner/Diviner.ts","../../src/StateToIndexCandidateDiviner/Diviner.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { IndexingDiviner } from '@xyo-network/diviner-indexing-memory'\nimport { IndexingDivinerConfigSchema, IndexingDivinerStage } from '@xyo-network/diviner-indexing-model'\nimport { DivinerConfigSchema, DivinerInstance, DivinerModule, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport {\n TemporalIndexingDivinerConfigSchema,\n TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema,\n TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema,\n TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema,\n TemporalIndexingDivinerParams,\n TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema,\n} from '@xyo-network/diviner-temporal-indexing-model'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { asNodeInstance } from '@xyo-network/node-model'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { TemporalIndexingDivinerDivinerQueryToIndexQueryDiviner } from './DivinerQueryToIndexQueryDiviner'\nimport { TemporalIndexingDivinerIndexCandidateToIndexDiviner } from './IndexCandidateToIndexDiviner'\nimport { TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDiviner } from './IndexQueryResponseToDivinerQueryResponseDiviner'\nimport { TemporalIndexingDivinerStateToIndexCandidateDiviner } from './StateToIndexCandidateDiviner'\n\nconst moduleName = 'TemporalIndexingDiviner'\n\nexport class TemporalIndexingDiviner<\n TParams extends TemporalIndexingDivinerParams = TemporalIndexingDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut> = DivinerModuleEventData<DivinerModule<TParams>, TIn, TOut>,\n> extends IndexingDiviner<TParams, TIn, TOut, TEventData> {\n static override readonly configSchema = TemporalIndexingDivinerConfigSchema\n static override readonly configSchemas: string[] = [TemporalIndexingDivinerConfigSchema, IndexingDivinerConfigSchema, DivinerConfigSchema]\n\n private _divinerQueryToIndexQueryDiviner: DivinerInstance | undefined\n private _indexCandidateToIndexDiviner: DivinerInstance | undefined\n private _indexQueryResponseToDivinerQueryResponseDiviner: DivinerInstance | undefined\n private _stateToIndexCandidateDiviner: DivinerInstance | undefined\n\n /**\n * Gets the Diviner for the supplied Indexing Diviner stage\n * @param transform The Indexing Diviner stage\n * @returns The diviner corresponding to the Indexing Diviner stage\n */\n protected override getIndexingDivinerStage(transform: IndexingDivinerStage) {\n switch (transform) {\n case 'divinerQueryToIndexQueryDiviner':\n return this.getDivinerQueryToIndexQueryDiviner()\n case 'indexCandidateToIndexDiviner':\n return this.getIndexCandidateToIndexDiviner()\n case 'indexQueryResponseToDivinerQueryResponseDiviner':\n return this.getIndexQueryResponseToDivinerQueryResponseDiviner()\n case 'stateToIndexCandidateDiviner':\n return this.getStateToIndexCandidateDiviner()\n }\n }\n\n protected override async startHandler(): Promise<boolean> {\n await super.startHandler()\n return true\n }\n\n /**\n * Adds the supplied module to the parent Node of this Diviner\n * @param mod The module to add to the parent Node of this Diviner\n * @returns\n */\n private async attachModuleToParentNode(mod: ModuleInstance) {\n const parent = (await this.resolve({ maxDepth: 1, query: [['network.xyo.query.node.attach']] })).shift()\n if (parent) {\n const node = asNodeInstance(parent)\n if (node) {\n await node.register(mod)\n await node.attach(mod.address, false)\n }\n }\n }\n\n private async getDivinerQueryToIndexQueryDiviner(): Promise<DivinerInstance> {\n if (!this._divinerQueryToIndexQueryDiviner) {\n const name = this.config.indexingDivinerStages?.divinerQueryToIndexQueryDiviner\n if (name) {\n this._divinerQueryToIndexQueryDiviner = await this.resolve(name)\n } else {\n const stageConfig = this.config.stageConfigs?.divinerQueryToIndexQueryDiviner\n if (stageConfig) {\n const config = { schema: TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema, ...stageConfig }\n const stage = await TemporalIndexingDivinerDivinerQueryToIndexQueryDiviner.create({ config })\n await this.attachModuleToParentNode(stage)\n this._divinerQueryToIndexQueryDiviner = stage\n }\n }\n }\n return assertEx(\n this._divinerQueryToIndexQueryDiviner,\n () => `${moduleName}: Failed to resolve indexing diviner stage for divinerQueryToIndexQueryDiviner`,\n )\n }\n private async getIndexCandidateToIndexDiviner(): Promise<DivinerInstance> {\n if (!this._indexCandidateToIndexDiviner) {\n const name = this.config.indexingDivinerStages?.indexCandidateToIndexDiviner\n if (name) {\n this._indexCandidateToIndexDiviner = await this.resolve(name)\n } else {\n const stageConfig = this.config.stageConfigs?.indexCandidateToIndexDiviner\n if (stageConfig) {\n const config = { schema: TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema, ...stageConfig }\n const stage = await TemporalIndexingDivinerIndexCandidateToIndexDiviner.create({ config })\n await this.attachModuleToParentNode(stage)\n this._indexCandidateToIndexDiviner = stage\n }\n }\n }\n return assertEx(\n this._indexCandidateToIndexDiviner,\n () => `${moduleName}: Failed to resolve indexing diviner stage for indexCandidateToIndexDiviner`,\n )\n }\n private async getIndexQueryResponseToDivinerQueryResponseDiviner(): Promise<DivinerInstance> {\n if (!this._indexQueryResponseToDivinerQueryResponseDiviner) {\n const name = this.config.indexingDivinerStages?.indexQueryResponseToDivinerQueryResponseDiviner\n if (name) {\n this._indexQueryResponseToDivinerQueryResponseDiviner = await this.resolve(name)\n } else {\n const stageConfig = this.config.stageConfigs?.indexQueryResponseToDivinerQueryResponseDiviner\n if (stageConfig) {\n const config = { schema: TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema, ...stageConfig }\n const stage = await TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDiviner.create({ config })\n await this.attachModuleToParentNode(stage)\n this._indexQueryResponseToDivinerQueryResponseDiviner = stage\n }\n }\n }\n return assertEx(\n this._indexQueryResponseToDivinerQueryResponseDiviner,\n () => `${moduleName}: Failed to resolve indexing diviner stage for indexQueryResponseToDivinerQueryResponseDiviner`,\n )\n }\n private async getStateToIndexCandidateDiviner(): Promise<DivinerInstance> {\n if (!this._stateToIndexCandidateDiviner) {\n const name = this.config.indexingDivinerStages?.stateToIndexCandidateDiviner\n if (name) {\n this._stateToIndexCandidateDiviner = await this.resolve(name)\n } else {\n const stageConfig = this.config.stageConfigs?.stateToIndexCandidateDiviner\n if (stageConfig) {\n const config = { schema: TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema, ...stageConfig }\n const stage = await TemporalIndexingDivinerStateToIndexCandidateDiviner.create({ config })\n await this.attachModuleToParentNode(stage)\n this._stateToIndexCandidateDiviner = stage\n }\n }\n }\n return assertEx(\n this._stateToIndexCandidateDiviner,\n () => `${moduleName}: Failed to resolve indexing diviner stage for stateToIndexCandidateDiviner`,\n )\n }\n}\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { PayloadDivinerQueryPayload, PayloadDivinerQuerySchema } from '@xyo-network/diviner-payload-model'\nimport {\n SchemaToJsonPathTransformExpressionsDictionary,\n SchemaToPayloadTransformersDictionary,\n TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema,\n TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerParams,\n TemporalIndexingDivinerResultIndexSchema,\n} from '@xyo-network/diviner-temporal-indexing-model'\nimport { Labels } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\nimport { jsonPathToTransformersDictionary, reducePayloads } from '../jsonpath'\n\n/**\n * A diviner that converts diviner query to index query\n */\nexport class TemporalIndexingDivinerDivinerQueryToIndexQueryDiviner<\n TParams extends TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerParams = TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerParams,\n> extends AbstractDiviner<TParams> {\n static override readonly configSchema = TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema\n static override configSchemas = [DivinerConfigSchema, TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema]\n static labels: Labels = {\n 'network.xyo.diviner.stage': 'divinerQueryToIndexQueryDiviner',\n }\n\n private _indexableSchemas: string[] | undefined\n private _payloadTransformers: SchemaToPayloadTransformersDictionary | undefined\n\n /**\n * The schema of the diviner query payloads\n */\n protected get divinerQuerySchema(): string {\n return this.config.divinerQuerySchema ?? PayloadDivinerQuerySchema\n }\n\n /**\n * The schema of the index query payloads\n */\n protected get indexQuerySchema(): string {\n return this.config.indexQuerySchema ?? PayloadDivinerQuerySchema\n }\n\n /**\n * The schema of the index payloads\n */\n protected get indexSchema(): string {\n return this.config.indexSchema ?? TemporalIndexingDivinerResultIndexSchema\n }\n\n /**\n * List of indexable schemas for this diviner\n */\n protected get indexableSchemas(): string[] {\n if (!this._indexableSchemas) this._indexableSchemas = [...Object.keys(this.schemaTransforms)]\n return this._indexableSchemas\n }\n\n /**\n * Dictionary of schemas to payload transformers for creating indexes\n * from the payloads within a Bound Witness\n */\n protected get payloadTransformers(): SchemaToPayloadTransformersDictionary {\n if (!this._payloadTransformers) this._payloadTransformers = jsonPathToTransformersDictionary(this.schemaTransforms)\n return this._payloadTransformers\n }\n\n /**\n * The dictionary of schemas to JSON Path transform expressions for creating indexes\n * from the payloads within a Bound Witness\n */\n protected get schemaTransforms(): SchemaToJsonPathTransformExpressionsDictionary {\n return (\n this.config?.schemaTransforms ?? {\n [this.divinerQuerySchema]: [\n {\n defaultValue: 1,\n destinationField: 'limit',\n sourcePathExpression: '$.limit',\n },\n {\n defaultValue: 0,\n destinationField: 'offset',\n sourcePathExpression: '$.offset',\n },\n {\n defaultValue: 'desc',\n destinationField: 'order',\n sourcePathExpression: '$.order',\n },\n ],\n }\n )\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<Payload[]> {\n const queries = payloads.filter(isPayloadOfSchemaType<PayloadDivinerQueryPayload>(this.divinerQuerySchema))\n if (queries.length) {\n const results = await Promise.all(\n queries.map(async (query) => {\n const fields = await reducePayloads<PayloadDivinerQueryPayload & { sources?: string[] }>(\n [query],\n this.payloadTransformers,\n this.indexQuerySchema,\n )\n // TODO: Make index schema configurable\n fields.schemas = [this.indexSchema]\n // TODO: Make sources not need to be deleted\n delete fields.sources\n // TODO: Add support for additional filters\n return new PayloadBuilder({ schema: this.indexQuerySchema }).fields(fields).build()\n }),\n )\n return results\n }\n return Promise.resolve([])\n }\n}\n","import { JsonPathTransformExpression, PayloadTransformer } from '@xyo-network/diviner-temporal-indexing-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport jsonpath from 'jsonpath'\n\n/**\n * Converts a JSON Path transform expression to a payload transformer\n * @param transformExpression The transform expression to convert\n * @returns The payload transformer for the JSON Path transform expression\n */\nexport const toPayloadTransformer = (transformExpression: JsonPathTransformExpression) => {\n const { defaultValue, destinationField, sourcePathExpression } = transformExpression\n const transformer: PayloadTransformer = (x: Payload) => {\n // eslint-disable-next-line import/no-named-as-default-member\n const source = jsonpath.value(x, sourcePathExpression)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const transformed = {} as { [key: string]: any }\n // Assign the source value to the destination field or the default value if the source is undefined\n const destinationValue = source === undefined ? defaultValue : source\n if (destinationValue !== undefined) transformed[destinationField] = destinationValue\n return transformed\n }\n return transformer\n}\n","import { SchemaToJsonPathTransformExpressionsDictionary, SchemaToPayloadTransformersDictionary } from '@xyo-network/diviner-temporal-indexing-model'\n\nimport { toPayloadTransformer } from './toPayloadTransformer'\n\n/**\n * Materializes the JSON-path expressions into memoized functions by converting a\n * dictionary of schema to JSON Path transform expressions to a dictionary\n * of schema to payload transformers\n * @param schemaTransforms The schema transforms to convert\n * @returns A dictionary of schema to payload transformers\n */\nexport const jsonPathToTransformersDictionary = (\n schemaTransforms: SchemaToJsonPathTransformExpressionsDictionary,\n): SchemaToPayloadTransformersDictionary => {\n return Object.fromEntries(\n Object.entries(schemaTransforms).map(([schema, jsonPathTransformerExpressions]) => {\n const transformers = jsonPathTransformerExpressions.map(toPayloadTransformer)\n return [schema, transformers]\n }),\n )\n}\n","import { PayloadHasher } from '@xyo-network/core'\nimport { SchemaToPayloadTransformersDictionary } from '@xyo-network/diviner-temporal-indexing-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadFields } from '@xyo-network/payload-model'\n\n/**\n * Reduces the payloads to a single payload using the supplied transformers\n * @param payloads The payloads to reduce\n * @param payloadTransformers The transformers to use to convert the payloads to the destination payload\n * @param destinationSchema The schema of the destination payload\n * @returns The reduced payload\n */\nexport const reducePayloads = async <T extends Payload = Payload>(\n payloads: Payload[],\n payloadTransformers: SchemaToPayloadTransformersDictionary,\n destinationSchema: string,\n): Promise<T> => {\n // Use the payload transformers to convert the fields from the source payloads to the destination fields\n const indexFields = payloads\n .map<PayloadFields[]>((payload) => {\n // Find the transformers for this payload\n const transformers = payloadTransformers[payload.schema]\n // If transformers exist, apply them to the payload otherwise return an empty array\n return transformers ? transformers.map((transform) => transform(payload)) : []\n })\n .flat()\n // Include all the sources for reference\n const sources = (await PayloadHasher.hashPairs([...payloads])).map(([, hash]) => hash)\n // Build and return the index\n return new PayloadBuilder<T>({ schema: destinationSchema }).fields(Object.assign({ sources }, ...indexFields)).build()\n}\n\n/**\n * Reduces the arrays of payload arrays to an array of payloads using the supplied transformers\n * @param payloadsArray The arrays of payloads to reduce\n * @param payloadTransformers The transformers to use to convert the payloads to the destination payloads\n * @param destinationSchema The schema of the destination payloads\n * @returns The reduced payloads\n */\nexport const reducePayloadsArray = async <T extends Payload = Payload>(\n payloadsArray: Payload[][],\n payloadTransformers: SchemaToPayloadTransformersDictionary,\n destinationSchema: string,\n): Promise<T[]> => {\n return await Promise.all(\n payloadsArray.map(async (payloads) => {\n return await reducePayloads<T>(payloads, payloadTransformers, destinationSchema)\n }),\n )\n}\n","import { containsAll } from '@xylabs/array'\nimport { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadHasher } from '@xyo-network/core'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport {\n SchemaToJsonPathTransformExpressionsDictionary,\n SchemaToPayloadTransformersDictionary,\n TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema,\n TemporalIndexingDivinerIndexCandidateToIndexDivinerParams,\n TemporalIndexingDivinerResultIndex,\n TemporalIndexingDivinerResultIndexSchema,\n} from '@xyo-network/diviner-temporal-indexing-model'\nimport { Labels } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, PayloadFields } from '@xyo-network/payload-model'\n\nimport { jsonPathToTransformersDictionary } from '../jsonpath'\n\nexport type IndexablePayloads = [BoundWitness, ...Payload[]]\n\nconst moduleName = 'TemporalIndexingDivinerIndexCandidateToIndexDiviner'\n\n/**\n * Diviner which transforms index candidates to indexes using JSON Path to map\n * source properties in the supplied payloads to destination fields in the\n * resultant index\n */\nexport class TemporalIndexingDivinerIndexCandidateToIndexDiviner<\n TParams extends TemporalIndexingDivinerIndexCandidateToIndexDivinerParams = TemporalIndexingDivinerIndexCandidateToIndexDivinerParams,\n> extends AbstractDiviner<TParams> {\n static override configSchema = TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema\n static override configSchemas = [DivinerConfigSchema, TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema]\n static labels: Labels = {\n 'network.xyo.diviner.stage': 'indexCandidateToIndexDiviner',\n }\n\n private _indexableSchemas: string[] | undefined\n private _payloadTransformers: SchemaToPayloadTransformersDictionary | undefined\n\n /**\n * List of indexable schemas for this diviner\n */\n protected get indexableSchemas(): string[] {\n if (!this._indexableSchemas) this._indexableSchemas = [...Object.keys(this.schemaTransforms)]\n return this._indexableSchemas\n }\n\n /**\n * Dictionary of schemas to payload transformers for creating indexes\n * from the payloads within a Bound Witness\n */\n protected get payloadTransformers(): SchemaToPayloadTransformersDictionary {\n if (!this._payloadTransformers) this._payloadTransformers = jsonPathToTransformersDictionary(this.schemaTransforms)\n return this._payloadTransformers\n }\n\n /**\n * The dictionary of schemas to JSON Path transform expressions for creating indexes\n * from the payloads within a Bound Witness\n */\n protected get schemaTransforms(): SchemaToJsonPathTransformExpressionsDictionary {\n return assertEx(this.config?.schemaTransforms, () => `${moduleName}: Missing config.schemaTransforms section`)\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<Payload[]> {\n const bws: BoundWitness[] = payloads.filter(isBoundWitness)\n const indexablePayloads: Payload[] = payloads.filter((p) => this.isIndexablePayload(p))\n if (bws.length && indexablePayloads.length) {\n const payloadDictionary = await PayloadHasher.toMap(payloads)\n const validIndexableTuples: IndexablePayloads[] = bws.reduce<IndexablePayloads[]>((indexableTuples, bw) => {\n // If this Bound Witness doesn't contain all the required schemas don't index it\n if (!containsAll(bw.payload_schemas, this.indexableSchemas)) return indexableTuples\n // Find the remaining indexable payloads\n const indexablePayloadPositions = this.indexableSchemas.map((schema) => bw.payload_schemas.indexOf(schema))\n const indexablePayloadHashes = indexablePayloadPositions.map((index) => bw.payload_hashes?.[index])\n const indexablePayloads = indexablePayloadHashes.map((hash) => payloadDictionary[hash]).filter(exists)\n // If we found a timestamp and the right amount of indexable payloads (of the\n // correct schema as checked above) in this BW, then index it\n if (indexablePayloads.length === this.indexableSchemas.length) indexableTuples.push([bw, ...indexablePayloads])\n return indexableTuples\n }, [])\n // Create the indexes from the tuples\n const indexes = await Promise.all(\n validIndexableTuples.map<Promise<TemporalIndexingDivinerResultIndex>>(async ([bw, ...sourcePayloads]) => {\n // Use the payload transformers to convert the fields from the source payloads to the destination fields\n const indexFields = sourcePayloads\n .map<PayloadFields[]>((payload) => {\n // Find the transformers for this payload\n const transformers = this.payloadTransformers[payload.schema]\n // If transformers exist, apply them to the payload otherwise return an empty array\n return transformers ? transformers.map((transform) => transform(payload)) : []\n })\n .flat()\n // Include all the sources for reference\n const sources = Object.keys(await PayloadHasher.toMap([bw, ...sourcePayloads]))\n // Build and return the index\n return new PayloadBuilder<TemporalIndexingDivinerResultIndex>({ schema: TemporalIndexingDivinerResultIndexSchema })\n .fields(Object.assign({ sources }, ...indexFields))\n .build()\n }),\n )\n return indexes.flat()\n }\n return Promise.resolve([])\n }\n\n /**\n * Identifies if a payload is one that is indexed by this diviner\n * @param x The candidate payload\n * @returns True if the payload is one indexed by this diviner, false otherwise\n */\n protected isIndexablePayload = (x: Payload) => {\n return this.indexableSchemas.includes(x?.schema)\n }\n\n /**\n * Identifies if a schema is one that is indexed by this diviner\n * @param schema The candidate schema\n * @returns True if this schema is one indexed by this diviner, false otherwise\n */\n protected isIndexableSchema = (schema?: string | null) => {\n return this.indexableSchemas.some((s) => s === schema)\n }\n}\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport { isPayloadDivinerQueryPayload } from '@xyo-network/diviner-payload-model'\nimport { TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema } from '@xyo-network/diviner-temporal-indexing-model'\nimport { Labels } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\n\n/**\n * Transforms an ImageThumbnailIndex response into an ImageThumbnailResponse response\n */\nexport class TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDiviner extends AbstractDiviner {\n static override readonly configSchema = TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema\n static override configSchemas = [DivinerConfigSchema, TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema]\n static labels: Labels = {\n 'network.xyo.diviner.stage': 'indexQueryResponseToDivinerQueryResponseDiviner',\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<Payload[]> {\n // NOTE: We're not doing anything with the query payloads but some diviners\n // might want to use this to transform from the query to the response (for example\n // if we use a plaintext value in the query to generate a hash key in the index)\n // const queries = payloads.filter(isPayloadDivinerQueryPayload)\n const responses = payloads.filter((p) => !isPayloadDivinerQueryPayload(p))\n return await Promise.resolve(responses)\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { exists } from '@xylabs/exists'\nimport { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport { BoundWitness, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessDivinerQueryPayload, BoundWitnessDivinerQuerySchema } from '@xyo-network/diviner-boundwitness-model'\nimport { IndexingDivinerState } from '@xyo-network/diviner-indexing-model'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport {\n TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema,\n TemporalIndexingDivinerStateToIndexCandidateDivinerParams,\n} from '@xyo-network/diviner-temporal-indexing-model'\nimport { DivinerWrapper } from '@xyo-network/diviner-wrapper'\nimport { isModuleState, Labels, ModuleState, ModuleStateSchema } from '@xyo-network/module-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\nimport { TimeStamp, TimestampSchema } from '@xyo-network/witness-timestamp'\n\n/**\n * All Payload types involved in index candidates for indexing\n */\nexport type IndexCandidate = BoundWitness | Payload | TimeStamp\n\n/**\n * The response from the TemporalStateToIndexCandidateDiviner\n */\nexport type TemporalStateToIndexCandidateDivinerResponse = [\n /**\n * The next state of the diviner\n */\n nextState: ModuleState<IndexingDivinerState>,\n /**\n * The index candidates\n */\n ...IndexCandidate[],\n]\n\n/**\n * The default order to search Bound Witnesses to identify index candidates\n */\nconst order = 'asc'\n\n/**\n * The name of the module (for logging purposes)\n */\nconst moduleName = 'TemporalIndexingDivinerStateToIndexCandidateDiviner'\n\n/**\n * Transforms candidates for image thumbnail indexing into their indexed representation\n */\nexport class TemporalIndexingDivinerStateToIndexCandidateDiviner<\n TParams extends TemporalIndexingDivinerStateToIndexCandidateDivinerParams = TemporalIndexingDivinerStateToIndexCandidateDivinerParams,\n> extends AbstractDiviner<TParams> {\n static override readonly configSchema = TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema\n static override configSchemas = [DivinerConfigSchema, TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema]\n static labels: Labels = {\n 'network.xyo.diviner.stage': 'stateToIndexCandidateDiviner',\n }\n\n get payloadDivinerLimit() {\n return this.config.payloadDivinerLimit ?? 1_000\n }\n\n /**\n * The required payload_schemas within BoundWitnesses to identify index candidates\n */\n protected get payload_schemas(): string[] {\n const schemas = this.config.filter?.payload_schemas\n return [TimestampSchema, ...(schemas ?? [])]\n }\n\n protected override async divineHandler(payloads: Payload[] = []): Promise<[ModuleState, ...IndexCandidate[]]> {\n // Retrieve the last state from what was passed in\n const lastState = payloads.find(isModuleState<IndexingDivinerState>)\n // If there is no last state, start from the beginning\n if (!lastState) return [{ schema: ModuleStateSchema, state: { offset: 0 } }]\n // Otherwise, get the last offset\n const { offset } = lastState.state\n // Get next batch of results starting from the offset\n const boundWitnessDiviner = await this.getBoundWitnessDivinerForStore()\n if (!boundWitnessDiviner) return [lastState]\n const query = new PayloadBuilder<BoundWitnessDivinerQueryPayload>({ schema: BoundWitnessDivinerQuerySchema })\n .fields({ limit: this.payloadDivinerLimit, offset, order, payload_schemas: this.payload_schemas })\n .build()\n const batch = await boundWitnessDiviner.divine([query])\n if (batch.length === 0) return [lastState]\n // Get source data\n const sourceArchivist = await this.getArchivistForStore()\n if (!sourceArchivist) return [lastState]\n const indexCandidates: IndexCandidate[] = (\n await Promise.all(batch.filter(isBoundWitness).map((bw) => this.getPayloadsInBoundWitness(bw, sourceArchivist)))\n )\n .filter(exists)\n .flat()\n const nextState = { schema: ModuleStateSchema, state: { ...lastState.state, offset: offset + batch.length } }\n return [nextState, ...indexCandidates]\n }\n /**\n * Retrieves the archivist for the payloadStore\n * @returns The archivist for the payloadStore or undefined if not resolvable\n */\n protected async getArchivistForStore(): Promise<ArchivistWrapper | undefined> {\n // It should be defined, so we'll error if it's not\n const name: string = assertEx(this.config?.payloadStore?.archivist, () => `${moduleName}: Config for payloadStore.archivist not specified`)\n // It might not be resolvable (yet), so we'll return undefined if it's not\n const mod = await this.resolve(name)\n if (!mod) return undefined\n // Return the wrapped archivist\n return ArchivistWrapper.wrap(mod, this.account)\n }\n\n /**\n * Retrieves the BoundWitness Diviner for the payloadStore\n * @returns The BoundWitness Diviner for the payloadStore or undefined if not resolvable\n */\n protected async getBoundWitnessDivinerForStore(): Promise<DivinerWrapper | undefined> {\n // It should be defined, so we'll error if it's not\n const name: string = assertEx(\n this.config?.payloadStore?.boundWitnessDiviner,\n () => `${moduleName}: Config for payloadStore.boundWitnessDiviner not specified`,\n )\n // It might not be resolvable (yet), so we'll return undefined if it's not\n const mod = await this.resolve(name)\n if (!mod) return undefined\n // Return the wrapped diviner\n return DivinerWrapper.wrap(mod, this.account)\n }\n\n protected async getPayloadsInBoundWitness(bw: BoundWitness, archivist: ArchivistInstance): Promise<IndexCandidate[] | undefined> {\n const indexes = this.payload_schemas.map((schema) => bw.payload_schemas?.findIndex((s) => s === schema))\n const hashes = indexes.map((index) => bw.payload_hashes?.[index])\n const results = await archivist.get(hashes)\n const indexCandidateIdentityFunctions = this.payload_schemas.map(isPayloadOfSchemaType)\n const filteredResults = indexCandidateIdentityFunctions.map((is) => results.find(is))\n if (filteredResults.some((f) => f === undefined)) return undefined\n const indexCandidates: IndexCandidate[] = filteredResults.filter(exists) as IndexCandidate[]\n return [bw, ...indexCandidates]\n }\n}\n"],"mappings":";AAAA,SAAS,YAAAA,iBAAgB;AACzB,SAAS,uBAAuB;AAChC,SAAS,mCAAyD;AAClE,SAAS,uBAAAC,4BAAmF;AAC5F;AAAA,EACE;AAAA,EACA,sEAAAC;AAAA,EACA,mEAAAC;AAAA,EACA,sFAAAC;AAAA,EAEA,mEAAAC;AAAA,OACK;AAEP,SAAS,sBAAsB;;;ACb/B,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AACpC,SAAqC,iCAAiC;AACtE;AAAA,EAGE;AAAA,EAEA;AAAA,OACK;AAEP,SAAS,kBAAAC,uBAAsB;AAC/B,SAAS,6BAAsC;;;ACV/C,OAAO,cAAc;AAOd,IAAM,uBAAuB,CAAC,wBAAqD;AACxF,QAAM,EAAE,cAAc,kBAAkB,qBAAqB,IAAI;AACjE,QAAM,cAAkC,CAAC,MAAe;AAEtD,UAAM,SAAS,SAAS,MAAM,GAAG,oBAAoB;AAErD,UAAM,cAAc,CAAC;AAErB,UAAM,mBAAmB,WAAW,SAAY,eAAe;AAC/D,QAAI,qBAAqB;AAAW,kBAAY,gBAAgB,IAAI;AACpE,WAAO;AAAA,EACT;AACA,SAAO;AACT;;;ACXO,IAAM,mCAAmC,CAC9C,qBAC0C;AAC1C,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,gBAAgB,EAAE,IAAI,CAAC,CAAC,QAAQ,8BAA8B,MAAM;AACjF,YAAM,eAAe,+BAA+B,IAAI,oBAAoB;AAC5E,aAAO,CAAC,QAAQ,YAAY;AAAA,IAC9B,CAAC;AAAA,EACH;AACF;;;ACpBA,SAAS,qBAAqB;AAE9B,SAAS,sBAAsB;AAUxB,IAAM,iBAAiB,OAC5B,UACA,qBACA,sBACe;AAEf,QAAM,cAAc,SACjB,IAAqB,CAAC,YAAY;AAEjC,UAAM,eAAe,oBAAoB,QAAQ,MAAM;AAEvD,WAAO,eAAe,aAAa,IAAI,CAAC,cAAc,UAAU,OAAO,CAAC,IAAI,CAAC;AAAA,EAC/E,CAAC,EACA,KAAK;AAER,QAAM,WAAW,MAAM,cAAc,UAAU,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI;AAErF,SAAO,IAAI,eAAkB,EAAE,QAAQ,kBAAkB,CAAC,EAAE,OAAO,OAAO,OAAO,EAAE,QAAQ,GAAG,GAAG,WAAW,CAAC,EAAE,MAAM;AACvH;;;AHXO,IAAM,yDAAN,cAEG,gBAAyB;AAAA,EACjC,OAAyB,eAAe;AAAA,EACxC,OAAgB,gBAAgB,CAAC,qBAAqB,kEAAkE;AAAA,EACxH,OAAO,SAAiB;AAAA,IACtB,6BAA6B;AAAA,EAC/B;AAAA,EAEQ;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAKR,IAAc,qBAA6B;AACzC,WAAO,KAAK,OAAO,sBAAsB;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,mBAA2B;AACvC,WAAO,KAAK,OAAO,oBAAoB;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,cAAsB;AAClC,WAAO,KAAK,OAAO,eAAe;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,mBAA6B;AACzC,QAAI,CAAC,KAAK;AAAmB,WAAK,oBAAoB,CAAC,GAAG,OAAO,KAAK,KAAK,gBAAgB,CAAC;AAC5F,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAc,sBAA6D;AACzE,QAAI,CAAC,KAAK;AAAsB,WAAK,uBAAuB,iCAAiC,KAAK,gBAAgB;AAClH,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAc,mBAAmE;AAC/E,WACE,KAAK,QAAQ,oBAAoB;AAAA,MAC/B,CAAC,KAAK,kBAAkB,GAAG;AAAA,QACzB;AAAA,UACE,cAAc;AAAA,UACd,kBAAkB;AAAA,UAClB,sBAAsB;AAAA,QACxB;AAAA,QACA;AAAA,UACE,cAAc;AAAA,UACd,kBAAkB;AAAA,UAClB,sBAAsB;AAAA,QACxB;AAAA,QACA;AAAA,UACE,cAAc;AAAA,UACd,kBAAkB;AAAA,UAClB,sBAAsB;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,EAEJ;AAAA,EAEA,MAAyB,cAAc,WAAsB,CAAC,GAAuB;AACnF,UAAM,UAAU,SAAS,OAAO,sBAAkD,KAAK,kBAAkB,CAAC;AAC1G,QAAI,QAAQ,QAAQ;AAClB,YAAM,UAAU,MAAM,QAAQ;AAAA,QAC5B,QAAQ,IAAI,OAAO,UAAU;AAC3B,gBAAM,SAAS,MAAM;AAAA,YACnB,CAAC,KAAK;AAAA,YACN,KAAK;AAAA,YACL,KAAK;AAAA,UACP;AAEA,iBAAO,UAAU,CAAC,KAAK,WAAW;AAElC,iBAAO,OAAO;AAEd,iBAAO,IAAIC,gBAAe,EAAE,QAAQ,KAAK,iBAAiB,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM;AAAA,QACpF,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AACA,WAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,EAC3B;AACF;;;AIvHA,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,mBAAAC,wBAAuB;AAChC,SAAuB,sBAAsB;AAC7C,SAAS,iBAAAC,sBAAqB;AAC9B,SAAS,uBAAAC,4BAA2B;AACpC;AAAA,EAGE;AAAA,EAGA,4CAAAC;AAAA,OACK;AAEP,SAAS,kBAAAC,uBAAsB;AAO/B,IAAM,aAAa;AAOZ,IAAM,sDAAN,cAEGC,iBAAyB;AAAA,EACjC,OAAgB,eAAe;AAAA,EAC/B,OAAgB,gBAAgB,CAACC,sBAAqB,+DAA+D;AAAA,EACrH,OAAO,SAAiB;AAAA,IACtB,6BAA6B;AAAA,EAC/B;AAAA,EAEQ;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAKR,IAAc,mBAA6B;AACzC,QAAI,CAAC,KAAK;AAAmB,WAAK,oBAAoB,CAAC,GAAG,OAAO,KAAK,KAAK,gBAAgB,CAAC;AAC5F,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAc,sBAA6D;AACzE,QAAI,CAAC,KAAK;AAAsB,WAAK,uBAAuB,iCAAiC,KAAK,gBAAgB;AAClH,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAc,mBAAmE;AAC/E,WAAO,SAAS,KAAK,QAAQ,kBAAkB,MAAM,GAAG,UAAU,2CAA2C;AAAA,EAC/G;AAAA,EAEA,MAAyB,cAAc,WAAsB,CAAC,GAAuB;AACnF,UAAM,MAAsB,SAAS,OAAO,cAAc;AAC1D,UAAM,oBAA+B,SAAS,OAAO,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC;AACtF,QAAI,IAAI,UAAU,kBAAkB,QAAQ;AAC1C,YAAM,oBAAoB,MAAMC,eAAc,MAAM,QAAQ;AAC5D,YAAM,uBAA4C,IAAI,OAA4B,CAAC,iBAAiB,OAAO;AAEzG,YAAI,CAAC,YAAY,GAAG,iBAAiB,KAAK,gBAAgB;AAAG,iBAAO;AAEpE,cAAM,4BAA4B,KAAK,iBAAiB,IAAI,CAAC,WAAW,GAAG,gBAAgB,QAAQ,MAAM,CAAC;AAC1G,cAAM,yBAAyB,0BAA0B,IAAI,CAAC,UAAU,GAAG,iBAAiB,KAAK,CAAC;AAClG,cAAMC,qBAAoB,uBAAuB,IAAI,CAAC,SAAS,kBAAkB,IAAI,CAAC,EAAE,OAAO,MAAM;AAGrG,YAAIA,mBAAkB,WAAW,KAAK,iBAAiB;AAAQ,0BAAgB,KAAK,CAAC,IAAI,GAAGA,kBAAiB,CAAC;AAC9G,eAAO;AAAA,MACT,GAAG,CAAC,CAAC;AAEL,YAAM,UAAU,MAAM,QAAQ;AAAA,QAC5B,qBAAqB,IAAiD,OAAO,CAAC,IAAO,iBAAc,MAAM;AAEvG,gBAAM,cAAc,eACjB,IAAqB,CAAC,YAAY;AAEjC,kBAAM,eAAe,KAAK,oBAAoB,QAAQ,MAAM;AAE5D,mBAAO,eAAe,aAAa,IAAI,CAAC,cAAc,UAAU,OAAO,CAAC,IAAI,CAAC;AAAA,UAC/E,CAAC,EACA,KAAK;AAER,gBAAM,UAAU,OAAO,KAAK,MAAMD,eAAc,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC;AAE9E,iBAAO,IAAIE,gBAAmD,EAAE,QAAQC,0CAAyC,CAAC,EAC/G,OAAO,OAAO,OAAO,EAAE,QAAQ,GAAG,GAAG,WAAW,CAAC,EACjD,MAAM;AAAA,QACX,CAAC;AAAA,MACH;AACA,aAAO,QAAQ,KAAK;AAAA,IACtB;AACA,WAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOU,qBAAqB,CAAC,MAAe;AAC7C,WAAO,KAAK,iBAAiB,SAAS,GAAG,MAAM;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOU,oBAAoB,CAAC,WAA2B;AACxD,WAAO,KAAK,iBAAiB,KAAK,CAAC,MAAM,MAAM,MAAM;AAAA,EACvD;AACF;;;AC9HA,SAAS,mBAAAC,wBAAuB;AAChC,SAAS,uBAAAC,4BAA2B;AACpC,SAAS,oCAAoC;AAC7C,SAAS,0FAA0F;AAO5F,IAAM,yEAAN,cAAqFD,iBAAgB;AAAA,EAC1G,OAAyB,eAAe;AAAA,EACxC,OAAgB,gBAAgB,CAACC,sBAAqB,kFAAkF;AAAA,EACxI,OAAO,SAAiB;AAAA,IACtB,6BAA6B;AAAA,EAC/B;AAAA,EAEA,MAAyB,cAAc,WAAsB,CAAC,GAAuB;AAKnF,UAAM,YAAY,SAAS,OAAO,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;AACzE,WAAO,MAAM,QAAQ,QAAQ,SAAS;AAAA,EACxC;AACF;;;ACzBA,SAAS,YAAAC,iBAAgB;AACzB,SAAS,UAAAC,eAAc;AACvB,SAAS,mBAAAC,wBAAuB;AAEhC,SAAS,wBAAwB;AACjC,SAAuB,kBAAAC,uBAAsB;AAC7C,SAA0C,sCAAsC;AAEhF,SAAS,uBAAAC,4BAA2B;AACpC;AAAA,EACE;AAAA,OAEK;AACP,SAAS,sBAAsB;AAC/B,SAAS,eAAoC,yBAAyB;AACtE,SAAS,kBAAAC,uBAAsB;AAC/B,SAAS,yBAAAC,8BAAsC;AAC/C,SAAoB,uBAAuB;AAwB3C,IAAM,QAAQ;AAKd,IAAMC,cAAa;AAKZ,IAAM,sDAAN,cAEGL,iBAAyB;AAAA,EACjC,OAAyB,eAAe;AAAA,EACxC,OAAgB,gBAAgB,CAACE,sBAAqB,+DAA+D;AAAA,EACrH,OAAO,SAAiB;AAAA,IACtB,6BAA6B;AAAA,EAC/B;AAAA,EAEA,IAAI,sBAAsB;AACxB,WAAO,KAAK,OAAO,uBAAuB;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAKA,IAAc,kBAA4B;AACxC,UAAM,UAAU,KAAK,OAAO,QAAQ;AACpC,WAAO,CAAC,iBAAiB,GAAI,WAAW,CAAC,CAAE;AAAA,EAC7C;AAAA,EAEA,MAAyB,cAAc,WAAsB,CAAC,GAAgD;AAE5G,UAAM,YAAY,SAAS,KAAK,aAAmC;AAEnE,QAAI,CAAC;AAAW,aAAO,CAAC,EAAE,QAAQ,mBAAmB,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;AAE3E,UAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,UAAM,sBAAsB,MAAM,KAAK,+BAA+B;AACtE,QAAI,CAAC;AAAqB,aAAO,CAAC,SAAS;AAC3C,UAAM,QAAQ,IAAIC,gBAAgD,EAAE,QAAQ,+BAA+B,CAAC,EACzG,OAAO,EAAE,OAAO,KAAK,qBAAqB,QAAQ,OAAO,iBAAiB,KAAK,gBAAgB,CAAC,EAChG,MAAM;AACT,UAAM,QAAQ,MAAM,oBAAoB,OAAO,CAAC,KAAK,CAAC;AACtD,QAAI,MAAM,WAAW;AAAG,aAAO,CAAC,SAAS;AAEzC,UAAM,kBAAkB,MAAM,KAAK,qBAAqB;AACxD,QAAI,CAAC;AAAiB,aAAO,CAAC,SAAS;AACvC,UAAM,mBACJ,MAAM,QAAQ,IAAI,MAAM,OAAOF,eAAc,EAAE,IAAI,CAAC,OAAO,KAAK,0BAA0B,IAAI,eAAe,CAAC,CAAC,GAE9G,OAAOF,OAAM,EACb,KAAK;AACR,UAAM,YAAY,EAAE,QAAQ,mBAAmB,OAAO,EAAE,GAAG,UAAU,OAAO,QAAQ,SAAS,MAAM,OAAO,EAAE;AAC5G,WAAO,CAAC,WAAW,GAAG,eAAe;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAgB,uBAA8D;AAE5E,UAAM,OAAeD,UAAS,KAAK,QAAQ,cAAc,WAAW,MAAM,GAAGO,WAAU,mDAAmD;AAE1I,UAAM,MAAM,MAAM,KAAK,QAAQ,IAAI;AACnC,QAAI,CAAC;AAAK,aAAO;AAEjB,WAAO,iBAAiB,KAAK,KAAK,KAAK,OAAO;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAgB,iCAAsE;AAEpF,UAAM,OAAeP;AAAA,MACnB,KAAK,QAAQ,cAAc;AAAA,MAC3B,MAAM,GAAGO,WAAU;AAAA,IACrB;AAEA,UAAM,MAAM,MAAM,KAAK,QAAQ,IAAI;AACnC,QAAI,CAAC;AAAK,aAAO;AAEjB,WAAO,eAAe,KAAK,KAAK,KAAK,OAAO;AAAA,EAC9C;AAAA,EAEA,MAAgB,0BAA0B,IAAkB,WAAqE;AAC/H,UAAM,UAAU,KAAK,gBAAgB,IAAI,CAAC,WAAW,GAAG,iBAAiB,UAAU,CAAC,MAAM,MAAM,MAAM,CAAC;AACvG,UAAM,SAAS,QAAQ,IAAI,CAAC,UAAU,GAAG,iBAAiB,KAAK,CAAC;AAChE,UAAM,UAAU,MAAM,UAAU,IAAI,MAAM;AAC1C,UAAM,kCAAkC,KAAK,gBAAgB,IAAID,sBAAqB;AACtF,UAAM,kBAAkB,gCAAgC,IAAI,CAAC,OAAO,QAAQ,KAAK,EAAE,CAAC;AACpF,QAAI,gBAAgB,KAAK,CAAC,MAAM,MAAM,MAAS;AAAG,aAAO;AACzD,UAAM,kBAAoC,gBAAgB,OAAOL,OAAM;AACvE,WAAO,CAAC,IAAI,GAAG,eAAe;AAAA,EAChC;AACF;;;APtHA,IAAMO,cAAa;AAEZ,IAAM,0BAAN,cAKG,gBAAgD;AAAA,EACxD,OAAyB,eAAe;AAAA,EACxC,OAAyB,gBAA0B,CAAC,qCAAqC,6BAA6BC,oBAAmB;AAAA,EAEjI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOW,wBAAwB,WAAiC;AAC1E,YAAQ,WAAW;AAAA,MACjB,KAAK;AACH,eAAO,KAAK,mCAAmC;AAAA,MACjD,KAAK;AACH,eAAO,KAAK,gCAAgC;AAAA,MAC9C,KAAK;AACH,eAAO,KAAK,mDAAmD;AAAA,MACjE,KAAK;AACH,eAAO,KAAK,gCAAgC;AAAA,IAChD;AAAA,EACF;AAAA,EAEA,MAAyB,eAAiC;AACxD,UAAM,MAAM,aAAa;AACzB,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,yBAAyB,KAAqB;AAC1D,UAAM,UAAU,MAAM,KAAK,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,+BAA+B,CAAC,EAAE,CAAC,GAAG,MAAM;AACvG,QAAI,QAAQ;AACV,YAAM,OAAO,eAAe,MAAM;AAClC,UAAI,MAAM;AACR,cAAM,KAAK,SAAS,GAAG;AACvB,cAAM,KAAK,OAAO,IAAI,SAAS,KAAK;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAc,qCAA+D;AAC3E,QAAI,CAAC,KAAK,kCAAkC;AAC1C,YAAM,OAAO,KAAK,OAAO,uBAAuB;AAChD,UAAI,MAAM;AACR,aAAK,mCAAmC,MAAM,KAAK,QAAQ,IAAI;AAAA,MACjE,OAAO;AACL,cAAM,cAAc,KAAK,OAAO,cAAc;AAC9C,YAAI,aAAa;AACf,gBAAM,SAAS,EAAE,QAAQC,qEAAoE,GAAG,YAAY;AAC5G,gBAAM,QAAQ,MAAM,uDAAuD,OAAO,EAAE,OAAO,CAAC;AAC5F,gBAAM,KAAK,yBAAyB,KAAK;AACzC,eAAK,mCAAmC;AAAA,QAC1C;AAAA,MACF;AAAA,IACF;AACA,WAAOC;AAAA,MACL,KAAK;AAAA,MACL,MAAM,GAAGH,WAAU;AAAA,IACrB;AAAA,EACF;AAAA,EACA,MAAc,kCAA4D;AACxE,QAAI,CAAC,KAAK,+BAA+B;AACvC,YAAM,OAAO,KAAK,OAAO,uBAAuB;AAChD,UAAI,MAAM;AACR,aAAK,gCAAgC,MAAM,KAAK,QAAQ,IAAI;AAAA,MAC9D,OAAO;AACL,cAAM,cAAc,KAAK,OAAO,cAAc;AAC9C,YAAI,aAAa;AACf,gBAAM,SAAS,EAAE,QAAQI,kEAAiE,GAAG,YAAY;AACzG,gBAAM,QAAQ,MAAM,oDAAoD,OAAO,EAAE,OAAO,CAAC;AACzF,gBAAM,KAAK,yBAAyB,KAAK;AACzC,eAAK,gCAAgC;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AACA,WAAOD;AAAA,MACL,KAAK;AAAA,MACL,MAAM,GAAGH,WAAU;AAAA,IACrB;AAAA,EACF;AAAA,EACA,MAAc,qDAA+E;AAC3F,QAAI,CAAC,KAAK,kDAAkD;AAC1D,YAAM,OAAO,KAAK,OAAO,uBAAuB;AAChD,UAAI,MAAM;AACR,aAAK,mDAAmD,MAAM,KAAK,QAAQ,IAAI;AAAA,MACjF,OAAO;AACL,cAAM,cAAc,KAAK,OAAO,cAAc;AAC9C,YAAI,aAAa;AACf,gBAAM,SAAS,EAAE,QAAQK,qFAAoF,GAAG,YAAY;AAC5H,gBAAM,QAAQ,MAAM,uEAAuE,OAAO,EAAE,OAAO,CAAC;AAC5G,gBAAM,KAAK,yBAAyB,KAAK;AACzC,eAAK,mDAAmD;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AACA,WAAOF;AAAA,MACL,KAAK;AAAA,MACL,MAAM,GAAGH,WAAU;AAAA,IACrB;AAAA,EACF;AAAA,EACA,MAAc,kCAA4D;AACxE,QAAI,CAAC,KAAK,+BAA+B;AACvC,YAAM,OAAO,KAAK,OAAO,uBAAuB;AAChD,UAAI,MAAM;AACR,aAAK,gCAAgC,MAAM,KAAK,QAAQ,IAAI;AAAA,MAC9D,OAAO;AACL,cAAM,cAAc,KAAK,OAAO,cAAc;AAC9C,YAAI,aAAa;AACf,gBAAM,SAAS,EAAE,QAAQM,kEAAiE,GAAG,YAAY;AACzG,gBAAM,QAAQ,MAAM,oDAAoD,OAAO,EAAE,OAAO,CAAC;AACzF,gBAAM,KAAK,yBAAyB,KAAK;AACzC,eAAK,gCAAgC;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AACA,WAAOH;AAAA,MACL,KAAK;AAAA,MACL,MAAM,GAAGH,WAAU;AAAA,IACrB;AAAA,EACF;AACF;","names":["assertEx","DivinerConfigSchema","TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema","TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema","TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema","TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema","PayloadBuilder","PayloadBuilder","AbstractDiviner","PayloadHasher","DivinerConfigSchema","TemporalIndexingDivinerResultIndexSchema","PayloadBuilder","AbstractDiviner","DivinerConfigSchema","PayloadHasher","indexablePayloads","PayloadBuilder","TemporalIndexingDivinerResultIndexSchema","AbstractDiviner","DivinerConfigSchema","assertEx","exists","AbstractDiviner","isBoundWitness","DivinerConfigSchema","PayloadBuilder","isPayloadOfSchemaType","moduleName","moduleName","DivinerConfigSchema","TemporalIndexingDivinerDivinerQueryToIndexQueryDivinerConfigSchema","assertEx","TemporalIndexingDivinerIndexCandidateToIndexDivinerConfigSchema","TemporalIndexingDivinerIndexQueryResponseToDivinerQueryResponseDivinerConfigSchema","TemporalIndexingDivinerStateToIndexCandidateDivinerConfigSchema"]}
@@ -0,0 +1,4 @@
1
+ export * from './jsonPathToTransformersDictionary';
2
+ export * from './reducePayloads';
3
+ export * from './toPayloadTransformer';
4
+ //# sourceMappingURL=index.d.ts.map