@xyo-network/crypto-nft-diviner-score-plugin 2.74.5 → 2.75.2

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 (642) hide show
  1. package/dist/browser/Diviner.cjs +407 -0
  2. package/dist/browser/Diviner.cjs.map +1 -0
  3. package/dist/browser/Diviner.d.cts.map +1 -0
  4. package/dist/browser/Diviner.d.mts.map +1 -0
  5. package/dist/browser/Diviner.d.ts +14 -0
  6. package/dist/browser/Diviner.d.ts.map +1 -0
  7. package/dist/browser/Diviner.js +36 -0
  8. package/dist/browser/Diviner.js.map +1 -0
  9. package/dist/browser/Plugin.cjs +421 -0
  10. package/dist/browser/Plugin.cjs.map +1 -0
  11. package/dist/browser/Plugin.d.cts.map +1 -0
  12. package/dist/browser/Plugin.d.mts.map +1 -0
  13. package/dist/browser/Plugin.d.ts +50 -0
  14. package/dist/browser/Plugin.d.ts.map +1 -0
  15. package/dist/browser/Plugin.js +17 -0
  16. package/dist/browser/Plugin.js.map +1 -0
  17. package/dist/{index.js → browser/index.cjs} +1 -8
  18. package/dist/browser/index.cjs.map +1 -0
  19. package/dist/browser/index.d.cts.map +1 -0
  20. package/dist/browser/index.d.mts.map +1 -0
  21. package/dist/browser/index.d.ts +6 -0
  22. package/dist/browser/index.d.ts.map +1 -0
  23. package/dist/browser/index.js +9 -0
  24. package/dist/browser/index.js.map +1 -0
  25. package/dist/browser/lib/index.cjs +378 -0
  26. package/dist/browser/lib/index.cjs.map +1 -0
  27. package/dist/browser/lib/index.d.cts.map +1 -0
  28. package/dist/browser/lib/index.d.mts.map +1 -0
  29. package/dist/browser/lib/index.d.ts +2 -0
  30. package/dist/browser/lib/index.d.ts.map +1 -0
  31. package/dist/browser/lib/index.js +2 -0
  32. package/dist/browser/lib/index.js.map +1 -0
  33. package/dist/browser/lib/rating/analyzeNft.cjs +378 -0
  34. package/dist/browser/lib/rating/analyzeNft.cjs.map +1 -0
  35. package/dist/browser/lib/rating/analyzeNft.d.cts.map +1 -0
  36. package/dist/browser/lib/rating/analyzeNft.d.mts.map +1 -0
  37. package/dist/browser/lib/rating/analyzeNft.d.ts +9 -0
  38. package/dist/browser/lib/rating/analyzeNft.d.ts.map +1 -0
  39. package/dist/browser/lib/rating/analyzeNft.js +17 -0
  40. package/dist/browser/lib/rating/analyzeNft.js.map +1 -0
  41. package/dist/browser/lib/rating/criteria/index.cjs +364 -0
  42. package/dist/browser/lib/rating/criteria/index.cjs.map +1 -0
  43. package/dist/browser/lib/rating/criteria/index.d.cts.map +1 -0
  44. package/dist/browser/lib/rating/criteria/index.d.mts.map +1 -0
  45. package/dist/browser/lib/rating/criteria/index.d.ts +2 -0
  46. package/dist/browser/lib/rating/criteria/index.d.ts.map +1 -0
  47. package/dist/browser/lib/rating/criteria/index.js +2 -0
  48. package/dist/browser/lib/rating/criteria/index.js.map +1 -0
  49. package/dist/browser/lib/rating/criteria/scoring/contract.cjs +37 -0
  50. package/dist/browser/lib/rating/criteria/scoring/contract.cjs.map +1 -0
  51. package/dist/browser/lib/rating/criteria/scoring/contract.d.cts.map +1 -0
  52. package/dist/browser/lib/rating/criteria/scoring/contract.d.mts.map +1 -0
  53. package/dist/browser/lib/rating/criteria/scoring/contract.d.ts +4 -0
  54. package/dist/browser/lib/rating/criteria/scoring/contract.d.ts.map +1 -0
  55. package/dist/browser/lib/rating/criteria/scoring/contract.js +15 -0
  56. package/dist/browser/lib/rating/criteria/scoring/contract.js.map +1 -0
  57. package/dist/browser/lib/rating/criteria/scoring/index.cjs +363 -0
  58. package/dist/browser/lib/rating/criteria/scoring/index.cjs.map +1 -0
  59. package/dist/browser/lib/rating/criteria/scoring/index.d.cts.map +1 -0
  60. package/dist/browser/lib/rating/criteria/scoring/index.d.mts.map +1 -0
  61. package/dist/browser/lib/rating/criteria/scoring/index.d.ts +6 -0
  62. package/dist/browser/lib/rating/criteria/scoring/index.d.ts.map +1 -0
  63. package/dist/browser/lib/rating/criteria/scoring/index.js +6 -0
  64. package/dist/browser/lib/rating/criteria/scoring/index.js.map +1 -0
  65. package/dist/browser/lib/rating/criteria/scoring/lib/index.cjs +43 -0
  66. package/dist/browser/lib/rating/criteria/scoring/lib/index.cjs.map +1 -0
  67. package/dist/browser/lib/rating/criteria/scoring/lib/index.d.cts.map +1 -0
  68. package/dist/browser/lib/rating/criteria/scoring/lib/index.d.mts.map +1 -0
  69. package/dist/browser/lib/rating/criteria/scoring/lib/index.d.ts +3 -0
  70. package/dist/browser/lib/rating/criteria/scoring/lib/index.d.ts.map +1 -0
  71. package/dist/browser/lib/rating/criteria/scoring/lib/index.js +3 -0
  72. package/dist/browser/lib/rating/criteria/scoring/lib/index.js.map +1 -0
  73. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.cjs +42 -0
  74. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.cjs.map +1 -0
  75. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.cts.map +1 -0
  76. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts.map +1 -0
  77. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts +2 -0
  78. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts.map +1 -0
  79. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +9 -0
  80. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +1 -0
  81. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.cjs +34 -0
  82. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.cjs.map +1 -0
  83. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.d.cts.map +1 -0
  84. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.d.mts.map +1 -0
  85. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.d.ts +3 -0
  86. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.d.ts.map +1 -0
  87. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.js +12 -0
  88. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.js.map +1 -0
  89. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.cjs +67 -0
  90. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.cjs.map +1 -0
  91. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.d.cts.map +1 -0
  92. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.d.mts.map +1 -0
  93. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.d.ts +5 -0
  94. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +1 -0
  95. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.js +28 -0
  96. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.js.map +1 -0
  97. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.cjs +103 -0
  98. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.cjs.map +1 -0
  99. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.cts.map +1 -0
  100. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map +1 -0
  101. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts +6 -0
  102. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +1 -0
  103. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +81 -0
  104. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +1 -0
  105. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.cjs +105 -0
  106. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.cjs.map +1 -0
  107. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.d.cts.map +1 -0
  108. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.d.mts.map +1 -0
  109. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.d.ts +2 -0
  110. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.d.ts.map +1 -0
  111. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.js +2 -0
  112. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.js.map +1 -0
  113. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.cjs +44 -0
  114. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.cjs.map +1 -0
  115. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.cts.map +1 -0
  116. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts.map +1 -0
  117. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts +5 -0
  118. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +1 -0
  119. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.js +22 -0
  120. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +1 -0
  121. package/dist/browser/lib/rating/criteria/scoring/metadata/description.cjs +37 -0
  122. package/dist/browser/lib/rating/criteria/scoring/metadata/description.cjs.map +1 -0
  123. package/dist/browser/lib/rating/criteria/scoring/metadata/description.d.cts.map +1 -0
  124. package/dist/browser/lib/rating/criteria/scoring/metadata/description.d.mts.map +1 -0
  125. package/dist/browser/lib/rating/criteria/scoring/metadata/description.d.ts +5 -0
  126. package/dist/browser/lib/rating/criteria/scoring/metadata/description.d.ts.map +1 -0
  127. package/dist/browser/lib/rating/criteria/scoring/metadata/description.js +15 -0
  128. package/dist/browser/lib/rating/criteria/scoring/metadata/description.js.map +1 -0
  129. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.cjs +58 -0
  130. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.cjs.map +1 -0
  131. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.d.cts.map +1 -0
  132. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.d.mts.map +1 -0
  133. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.d.ts +5 -0
  134. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +1 -0
  135. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.js +19 -0
  136. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.js.map +1 -0
  137. package/dist/browser/lib/rating/criteria/scoring/metadata/image.cjs +67 -0
  138. package/dist/browser/lib/rating/criteria/scoring/metadata/image.cjs.map +1 -0
  139. package/dist/browser/lib/rating/criteria/scoring/metadata/image.d.cts.map +1 -0
  140. package/dist/browser/lib/rating/criteria/scoring/metadata/image.d.mts.map +1 -0
  141. package/dist/browser/lib/rating/criteria/scoring/metadata/image.d.ts +5 -0
  142. package/dist/browser/lib/rating/criteria/scoring/metadata/image.d.ts.map +1 -0
  143. package/dist/browser/lib/rating/criteria/scoring/metadata/image.js +28 -0
  144. package/dist/browser/lib/rating/criteria/scoring/metadata/image.js.map +1 -0
  145. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.cjs +50 -0
  146. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.cjs.map +1 -0
  147. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.d.cts.map +1 -0
  148. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.d.mts.map +1 -0
  149. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.d.ts +5 -0
  150. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +1 -0
  151. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.js +28 -0
  152. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.js.map +1 -0
  153. package/dist/browser/lib/rating/criteria/scoring/metadata/index.cjs +287 -0
  154. package/dist/browser/lib/rating/criteria/scoring/metadata/index.cjs.map +1 -0
  155. package/dist/browser/lib/rating/criteria/scoring/metadata/index.d.cts.map +1 -0
  156. package/dist/browser/lib/rating/criteria/scoring/metadata/index.d.mts.map +1 -0
  157. package/dist/browser/lib/rating/criteria/scoring/metadata/index.d.ts +10 -0
  158. package/dist/browser/lib/rating/criteria/scoring/metadata/index.d.ts.map +1 -0
  159. package/dist/browser/lib/rating/criteria/scoring/metadata/index.js +10 -0
  160. package/dist/browser/lib/rating/criteria/scoring/metadata/index.js.map +1 -0
  161. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.cjs +48 -0
  162. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.cjs.map +1 -0
  163. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.d.cts.map +1 -0
  164. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.d.mts.map +1 -0
  165. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.d.ts +2 -0
  166. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.d.ts.map +1 -0
  167. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.js +2 -0
  168. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.js.map +1 -0
  169. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.cjs +46 -0
  170. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.cjs.map +1 -0
  171. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.cts.map +1 -0
  172. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts.map +1 -0
  173. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts +8 -0
  174. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts.map +1 -0
  175. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +24 -0
  176. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +1 -0
  177. package/dist/browser/lib/rating/criteria/scoring/metadata/name.cjs +37 -0
  178. package/dist/browser/lib/rating/criteria/scoring/metadata/name.cjs.map +1 -0
  179. package/dist/browser/lib/rating/criteria/scoring/metadata/name.d.cts.map +1 -0
  180. package/dist/browser/lib/rating/criteria/scoring/metadata/name.d.mts.map +1 -0
  181. package/dist/browser/lib/rating/criteria/scoring/metadata/name.d.ts +5 -0
  182. package/dist/browser/lib/rating/criteria/scoring/metadata/name.d.ts.map +1 -0
  183. package/dist/browser/lib/rating/criteria/scoring/metadata/name.js +15 -0
  184. package/dist/browser/lib/rating/criteria/scoring/metadata/name.js.map +1 -0
  185. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.cjs +60 -0
  186. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.cjs.map +1 -0
  187. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.cts.map +1 -0
  188. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts.map +1 -0
  189. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts +5 -0
  190. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +1 -0
  191. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.js +21 -0
  192. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +1 -0
  193. package/dist/browser/lib/rating/criteria/scoring/supply.cjs +56 -0
  194. package/dist/browser/lib/rating/criteria/scoring/supply.cjs.map +1 -0
  195. package/dist/browser/lib/rating/criteria/scoring/supply.d.cts.map +1 -0
  196. package/dist/browser/lib/rating/criteria/scoring/supply.d.mts.map +1 -0
  197. package/dist/browser/lib/rating/criteria/scoring/supply.d.ts +4 -0
  198. package/dist/browser/lib/rating/criteria/scoring/supply.d.ts.map +1 -0
  199. package/dist/browser/lib/rating/criteria/scoring/supply.js +17 -0
  200. package/dist/browser/lib/rating/criteria/scoring/supply.js.map +1 -0
  201. package/dist/browser/lib/rating/criteria/scoring/tokenId.cjs +56 -0
  202. package/dist/browser/lib/rating/criteria/scoring/tokenId.cjs.map +1 -0
  203. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.cts.map +1 -0
  204. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.mts.map +1 -0
  205. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.ts +10 -0
  206. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.ts.map +1 -0
  207. package/dist/browser/lib/rating/criteria/scoring/tokenId.js +17 -0
  208. package/dist/browser/lib/rating/criteria/scoring/tokenId.js.map +1 -0
  209. package/dist/browser/lib/rating/criteria/scoring/type.cjs +37 -0
  210. package/dist/browser/lib/rating/criteria/scoring/type.cjs.map +1 -0
  211. package/dist/browser/lib/rating/criteria/scoring/type.d.cts.map +1 -0
  212. package/dist/browser/lib/rating/criteria/scoring/type.d.mts.map +1 -0
  213. package/dist/browser/lib/rating/criteria/scoring/type.d.ts +4 -0
  214. package/dist/browser/lib/rating/criteria/scoring/type.d.ts.map +1 -0
  215. package/dist/browser/lib/rating/criteria/scoring/type.js +15 -0
  216. package/dist/browser/lib/rating/criteria/scoring/type.js.map +1 -0
  217. package/dist/browser/lib/rating/criteria/scoringCriteria.cjs +364 -0
  218. package/dist/browser/lib/rating/criteria/scoringCriteria.cjs.map +1 -0
  219. package/dist/browser/lib/rating/criteria/scoringCriteria.d.cts.map +1 -0
  220. package/dist/browser/lib/rating/criteria/scoringCriteria.d.mts.map +1 -0
  221. package/dist/browser/lib/rating/criteria/scoringCriteria.d.ts +55 -0
  222. package/dist/browser/lib/rating/criteria/scoringCriteria.d.ts.map +1 -0
  223. package/dist/browser/lib/rating/criteria/scoringCriteria.js +40 -0
  224. package/dist/browser/lib/rating/criteria/scoringCriteria.js.map +1 -0
  225. package/dist/browser/lib/rating/index.cjs +378 -0
  226. package/dist/browser/lib/rating/index.cjs.map +1 -0
  227. package/dist/browser/lib/rating/index.d.cts.map +1 -0
  228. package/dist/browser/lib/rating/index.d.mts.map +1 -0
  229. package/dist/browser/lib/rating/index.d.ts +2 -0
  230. package/dist/browser/lib/rating/index.d.ts.map +1 -0
  231. package/dist/browser/lib/rating/index.js +2 -0
  232. package/dist/browser/lib/rating/index.js.map +1 -0
  233. package/dist/docs.json +533 -533
  234. package/dist/node/Diviner.d.cts +14 -0
  235. package/dist/node/Diviner.d.cts.map +1 -0
  236. package/dist/node/Diviner.d.mts +14 -0
  237. package/dist/node/Diviner.d.mts.map +1 -0
  238. package/dist/node/Diviner.d.ts +14 -0
  239. package/dist/node/Diviner.d.ts.map +1 -0
  240. package/dist/node/Diviner.js +429 -0
  241. package/dist/node/Diviner.js.map +1 -0
  242. package/dist/node/Diviner.mjs +407 -0
  243. package/dist/node/Diviner.mjs.map +1 -0
  244. package/dist/node/Plugin.d.cts +50 -0
  245. package/dist/node/Plugin.d.cts.map +1 -0
  246. package/dist/node/Plugin.d.mts +50 -0
  247. package/dist/node/Plugin.d.mts.map +1 -0
  248. package/dist/node/Plugin.d.ts +50 -0
  249. package/dist/node/Plugin.d.ts.map +1 -0
  250. package/dist/node/Plugin.js +442 -0
  251. package/dist/node/Plugin.js.map +1 -0
  252. package/dist/node/Plugin.mjs +421 -0
  253. package/dist/node/Plugin.mjs.map +1 -0
  254. package/dist/node/index.d.cts +6 -0
  255. package/dist/node/index.d.cts.map +1 -0
  256. package/dist/node/index.d.mts +6 -0
  257. package/dist/node/index.d.mts.map +1 -0
  258. package/dist/node/index.d.ts +6 -0
  259. package/dist/node/index.d.ts.map +1 -0
  260. package/dist/node/index.js +455 -0
  261. package/dist/node/index.js.map +1 -0
  262. package/dist/{index.mjs → node/index.mjs} +41 -24
  263. package/dist/node/index.mjs.map +1 -0
  264. package/dist/node/lib/index.d.cts +2 -0
  265. package/dist/node/lib/index.d.cts.map +1 -0
  266. package/dist/node/lib/index.d.mts +2 -0
  267. package/dist/node/lib/index.d.mts.map +1 -0
  268. package/dist/node/lib/index.d.ts +2 -0
  269. package/dist/node/lib/index.d.ts.map +1 -0
  270. package/dist/node/lib/index.js +399 -0
  271. package/dist/node/lib/index.js.map +1 -0
  272. package/dist/node/lib/index.mjs +372 -0
  273. package/dist/node/lib/index.mjs.map +1 -0
  274. package/dist/node/lib/rating/analyzeNft.d.cts +9 -0
  275. package/dist/node/lib/rating/analyzeNft.d.cts.map +1 -0
  276. package/dist/node/lib/rating/analyzeNft.d.mts +9 -0
  277. package/dist/node/lib/rating/analyzeNft.d.mts.map +1 -0
  278. package/dist/node/lib/rating/analyzeNft.d.ts +9 -0
  279. package/dist/node/lib/rating/analyzeNft.d.ts.map +1 -0
  280. package/dist/node/lib/rating/analyzeNft.js +399 -0
  281. package/dist/node/lib/rating/analyzeNft.js.map +1 -0
  282. package/dist/node/lib/rating/analyzeNft.mjs +372 -0
  283. package/dist/node/lib/rating/analyzeNft.mjs.map +1 -0
  284. package/dist/node/lib/rating/criteria/index.d.cts +2 -0
  285. package/dist/node/lib/rating/criteria/index.d.cts.map +1 -0
  286. package/dist/node/lib/rating/criteria/index.d.mts +2 -0
  287. package/dist/node/lib/rating/criteria/index.d.mts.map +1 -0
  288. package/dist/node/lib/rating/criteria/index.d.ts +2 -0
  289. package/dist/node/lib/rating/criteria/index.d.ts.map +1 -0
  290. package/dist/node/lib/rating/criteria/index.js +385 -0
  291. package/dist/node/lib/rating/criteria/index.js.map +1 -0
  292. package/dist/node/lib/rating/criteria/index.mjs +358 -0
  293. package/dist/node/lib/rating/criteria/index.mjs.map +1 -0
  294. package/dist/node/lib/rating/criteria/scoring/contract.d.cts +4 -0
  295. package/dist/node/lib/rating/criteria/scoring/contract.d.cts.map +1 -0
  296. package/dist/node/lib/rating/criteria/scoring/contract.d.mts +4 -0
  297. package/dist/node/lib/rating/criteria/scoring/contract.d.mts.map +1 -0
  298. package/dist/node/lib/rating/criteria/scoring/contract.d.ts +4 -0
  299. package/dist/node/lib/rating/criteria/scoring/contract.d.ts.map +1 -0
  300. package/dist/node/lib/rating/criteria/scoring/contract.js +41 -0
  301. package/dist/node/lib/rating/criteria/scoring/contract.js.map +1 -0
  302. package/dist/node/lib/rating/criteria/scoring/contract.mjs +16 -0
  303. package/dist/node/lib/rating/criteria/scoring/contract.mjs.map +1 -0
  304. package/dist/node/lib/rating/criteria/scoring/index.d.cts +6 -0
  305. package/dist/node/lib/rating/criteria/scoring/index.d.cts.map +1 -0
  306. package/dist/node/lib/rating/criteria/scoring/index.d.mts +6 -0
  307. package/dist/node/lib/rating/criteria/scoring/index.d.mts.map +1 -0
  308. package/dist/node/lib/rating/criteria/scoring/index.d.ts +6 -0
  309. package/dist/node/lib/rating/criteria/scoring/index.d.ts.map +1 -0
  310. package/dist/node/lib/rating/criteria/scoring/index.js +406 -0
  311. package/dist/node/lib/rating/criteria/scoring/index.js.map +1 -0
  312. package/dist/node/lib/rating/criteria/scoring/index.mjs +357 -0
  313. package/dist/node/lib/rating/criteria/scoring/index.mjs.map +1 -0
  314. package/dist/node/lib/rating/criteria/scoring/lib/index.d.cts +3 -0
  315. package/dist/node/lib/rating/criteria/scoring/lib/index.d.cts.map +1 -0
  316. package/dist/node/lib/rating/criteria/scoring/lib/index.d.mts +3 -0
  317. package/dist/node/lib/rating/criteria/scoring/lib/index.d.mts.map +1 -0
  318. package/dist/node/lib/rating/criteria/scoring/lib/index.d.ts +3 -0
  319. package/dist/node/lib/rating/criteria/scoring/lib/index.d.ts.map +1 -0
  320. package/dist/node/lib/rating/criteria/scoring/lib/index.js +48 -0
  321. package/dist/node/lib/rating/criteria/scoring/lib/index.js.map +1 -0
  322. package/dist/node/lib/rating/criteria/scoring/lib/index.mjs +20 -0
  323. package/dist/node/lib/rating/criteria/scoring/lib/index.mjs.map +1 -0
  324. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.cts +2 -0
  325. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.cts.map +1 -0
  326. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts +2 -0
  327. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts.map +1 -0
  328. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts +2 -0
  329. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts.map +1 -0
  330. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +46 -0
  331. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +1 -0
  332. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.mjs +19 -0
  333. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.mjs.map +1 -0
  334. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.cts +3 -0
  335. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.cts.map +1 -0
  336. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.mts +3 -0
  337. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.mts.map +1 -0
  338. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.ts +3 -0
  339. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.ts.map +1 -0
  340. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.js +38 -0
  341. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.js.map +1 -0
  342. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.mjs +13 -0
  343. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.mjs.map +1 -0
  344. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.cts +5 -0
  345. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.cts.map +1 -0
  346. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.mts +5 -0
  347. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.mts.map +1 -0
  348. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.ts +5 -0
  349. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +1 -0
  350. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.js +79 -0
  351. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.js.map +1 -0
  352. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.mjs +53 -0
  353. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.mjs.map +1 -0
  354. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.cts +6 -0
  355. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.cts.map +1 -0
  356. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts +6 -0
  357. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map +1 -0
  358. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts +6 -0
  359. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +1 -0
  360. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +112 -0
  361. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +1 -0
  362. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.mjs +85 -0
  363. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.mjs.map +1 -0
  364. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.cts +2 -0
  365. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.cts.map +1 -0
  366. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.mts +2 -0
  367. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.mts.map +1 -0
  368. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.ts +2 -0
  369. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.ts.map +1 -0
  370. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.js +114 -0
  371. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.js.map +1 -0
  372. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.mjs +85 -0
  373. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.mjs.map +1 -0
  374. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.cts +5 -0
  375. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.cts.map +1 -0
  376. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts +5 -0
  377. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts.map +1 -0
  378. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts +5 -0
  379. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +1 -0
  380. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.js +50 -0
  381. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +1 -0
  382. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.mjs +24 -0
  383. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.mjs.map +1 -0
  384. package/dist/node/lib/rating/criteria/scoring/metadata/description.d.cts +5 -0
  385. package/dist/node/lib/rating/criteria/scoring/metadata/description.d.cts.map +1 -0
  386. package/dist/node/lib/rating/criteria/scoring/metadata/description.d.mts +5 -0
  387. package/dist/node/lib/rating/criteria/scoring/metadata/description.d.mts.map +1 -0
  388. package/dist/node/lib/rating/criteria/scoring/metadata/description.d.ts +5 -0
  389. package/dist/node/lib/rating/criteria/scoring/metadata/description.d.ts.map +1 -0
  390. package/dist/node/lib/rating/criteria/scoring/metadata/description.js +43 -0
  391. package/dist/node/lib/rating/criteria/scoring/metadata/description.js.map +1 -0
  392. package/dist/node/lib/rating/criteria/scoring/metadata/description.mjs +17 -0
  393. package/dist/node/lib/rating/criteria/scoring/metadata/description.mjs.map +1 -0
  394. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.cts +5 -0
  395. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.cts.map +1 -0
  396. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.mts +5 -0
  397. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.mts.map +1 -0
  398. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.ts +5 -0
  399. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +1 -0
  400. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.js +70 -0
  401. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.js.map +1 -0
  402. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.mjs +44 -0
  403. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.mjs.map +1 -0
  404. package/dist/node/lib/rating/criteria/scoring/metadata/image.d.cts +5 -0
  405. package/dist/node/lib/rating/criteria/scoring/metadata/image.d.cts.map +1 -0
  406. package/dist/node/lib/rating/criteria/scoring/metadata/image.d.mts +5 -0
  407. package/dist/node/lib/rating/criteria/scoring/metadata/image.d.mts.map +1 -0
  408. package/dist/node/lib/rating/criteria/scoring/metadata/image.d.ts +5 -0
  409. package/dist/node/lib/rating/criteria/scoring/metadata/image.d.ts.map +1 -0
  410. package/dist/node/lib/rating/criteria/scoring/metadata/image.js +79 -0
  411. package/dist/node/lib/rating/criteria/scoring/metadata/image.js.map +1 -0
  412. package/dist/node/lib/rating/criteria/scoring/metadata/image.mjs +53 -0
  413. package/dist/node/lib/rating/criteria/scoring/metadata/image.mjs.map +1 -0
  414. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.cts +5 -0
  415. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.cts.map +1 -0
  416. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.mts +5 -0
  417. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.mts.map +1 -0
  418. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.ts +5 -0
  419. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +1 -0
  420. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.js +56 -0
  421. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.js.map +1 -0
  422. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.mjs +30 -0
  423. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.mjs.map +1 -0
  424. package/dist/node/lib/rating/criteria/scoring/metadata/index.d.cts +10 -0
  425. package/dist/node/lib/rating/criteria/scoring/metadata/index.d.cts.map +1 -0
  426. package/dist/node/lib/rating/criteria/scoring/metadata/index.d.mts +10 -0
  427. package/dist/node/lib/rating/criteria/scoring/metadata/index.d.mts.map +1 -0
  428. package/dist/node/lib/rating/criteria/scoring/metadata/index.d.ts +10 -0
  429. package/dist/node/lib/rating/criteria/scoring/metadata/index.d.ts.map +1 -0
  430. package/dist/node/lib/rating/criteria/scoring/metadata/index.js +326 -0
  431. package/dist/node/lib/rating/criteria/scoring/metadata/index.js.map +1 -0
  432. package/dist/node/lib/rating/criteria/scoring/metadata/index.mjs +281 -0
  433. package/dist/node/lib/rating/criteria/scoring/metadata/index.mjs.map +1 -0
  434. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.cts +2 -0
  435. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.cts.map +1 -0
  436. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.mts +2 -0
  437. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.mts.map +1 -0
  438. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.ts +2 -0
  439. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.ts.map +1 -0
  440. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.js +63 -0
  441. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.js.map +1 -0
  442. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.mjs +31 -0
  443. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.mjs.map +1 -0
  444. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.cts +8 -0
  445. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.cts.map +1 -0
  446. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts +8 -0
  447. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts.map +1 -0
  448. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts +8 -0
  449. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts.map +1 -0
  450. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +61 -0
  451. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +1 -0
  452. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.mjs +31 -0
  453. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.mjs.map +1 -0
  454. package/dist/node/lib/rating/criteria/scoring/metadata/name.d.cts +5 -0
  455. package/dist/node/lib/rating/criteria/scoring/metadata/name.d.cts.map +1 -0
  456. package/dist/node/lib/rating/criteria/scoring/metadata/name.d.mts +5 -0
  457. package/dist/node/lib/rating/criteria/scoring/metadata/name.d.mts.map +1 -0
  458. package/dist/node/lib/rating/criteria/scoring/metadata/name.d.ts +5 -0
  459. package/dist/node/lib/rating/criteria/scoring/metadata/name.d.ts.map +1 -0
  460. package/dist/node/lib/rating/criteria/scoring/metadata/name.js +43 -0
  461. package/dist/node/lib/rating/criteria/scoring/metadata/name.js.map +1 -0
  462. package/dist/node/lib/rating/criteria/scoring/metadata/name.mjs +17 -0
  463. package/dist/node/lib/rating/criteria/scoring/metadata/name.mjs.map +1 -0
  464. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.cts +5 -0
  465. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.cts.map +1 -0
  466. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts +5 -0
  467. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts.map +1 -0
  468. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts +5 -0
  469. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +1 -0
  470. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.js +72 -0
  471. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +1 -0
  472. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.mjs +46 -0
  473. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.mjs.map +1 -0
  474. package/dist/node/lib/rating/criteria/scoring/supply.d.cts +4 -0
  475. package/dist/node/lib/rating/criteria/scoring/supply.d.cts.map +1 -0
  476. package/dist/node/lib/rating/criteria/scoring/supply.d.mts +4 -0
  477. package/dist/node/lib/rating/criteria/scoring/supply.d.mts.map +1 -0
  478. package/dist/node/lib/rating/criteria/scoring/supply.d.ts +4 -0
  479. package/dist/node/lib/rating/criteria/scoring/supply.d.ts.map +1 -0
  480. package/dist/node/lib/rating/criteria/scoring/supply.js +60 -0
  481. package/dist/node/lib/rating/criteria/scoring/supply.js.map +1 -0
  482. package/dist/node/lib/rating/criteria/scoring/supply.mjs +35 -0
  483. package/dist/node/lib/rating/criteria/scoring/supply.mjs.map +1 -0
  484. package/dist/node/lib/rating/criteria/scoring/tokenId.d.cts +10 -0
  485. package/dist/node/lib/rating/criteria/scoring/tokenId.d.cts.map +1 -0
  486. package/dist/node/lib/rating/criteria/scoring/tokenId.d.mts +10 -0
  487. package/dist/node/lib/rating/criteria/scoring/tokenId.d.mts.map +1 -0
  488. package/dist/node/lib/rating/criteria/scoring/tokenId.d.ts +10 -0
  489. package/dist/node/lib/rating/criteria/scoring/tokenId.d.ts.map +1 -0
  490. package/dist/node/lib/rating/criteria/scoring/tokenId.js +60 -0
  491. package/dist/node/lib/rating/criteria/scoring/tokenId.js.map +1 -0
  492. package/dist/node/lib/rating/criteria/scoring/tokenId.mjs +35 -0
  493. package/dist/node/lib/rating/criteria/scoring/tokenId.mjs.map +1 -0
  494. package/dist/node/lib/rating/criteria/scoring/type.d.cts +4 -0
  495. package/dist/node/lib/rating/criteria/scoring/type.d.cts.map +1 -0
  496. package/dist/node/lib/rating/criteria/scoring/type.d.mts +4 -0
  497. package/dist/node/lib/rating/criteria/scoring/type.d.mts.map +1 -0
  498. package/dist/node/lib/rating/criteria/scoring/type.d.ts +4 -0
  499. package/dist/node/lib/rating/criteria/scoring/type.d.ts.map +1 -0
  500. package/dist/node/lib/rating/criteria/scoring/type.js +41 -0
  501. package/dist/node/lib/rating/criteria/scoring/type.js.map +1 -0
  502. package/dist/node/lib/rating/criteria/scoring/type.mjs +16 -0
  503. package/dist/node/lib/rating/criteria/scoring/type.mjs.map +1 -0
  504. package/dist/node/lib/rating/criteria/scoringCriteria.d.cts +55 -0
  505. package/dist/node/lib/rating/criteria/scoringCriteria.d.cts.map +1 -0
  506. package/dist/node/lib/rating/criteria/scoringCriteria.d.mts +55 -0
  507. package/dist/node/lib/rating/criteria/scoringCriteria.d.mts.map +1 -0
  508. package/dist/node/lib/rating/criteria/scoringCriteria.d.ts +55 -0
  509. package/dist/node/lib/rating/criteria/scoringCriteria.d.ts.map +1 -0
  510. package/dist/node/lib/rating/criteria/scoringCriteria.js +385 -0
  511. package/dist/node/lib/rating/criteria/scoringCriteria.js.map +1 -0
  512. package/dist/node/lib/rating/criteria/scoringCriteria.mjs +358 -0
  513. package/dist/node/lib/rating/criteria/scoringCriteria.mjs.map +1 -0
  514. package/dist/node/lib/rating/index.d.cts +2 -0
  515. package/dist/node/lib/rating/index.d.cts.map +1 -0
  516. package/dist/node/lib/rating/index.d.mts +2 -0
  517. package/dist/node/lib/rating/index.d.mts.map +1 -0
  518. package/dist/node/lib/rating/index.d.ts +2 -0
  519. package/dist/node/lib/rating/index.d.ts.map +1 -0
  520. package/dist/node/lib/rating/index.js +399 -0
  521. package/dist/node/lib/rating/index.js.map +1 -0
  522. package/dist/node/lib/rating/index.mjs +372 -0
  523. package/dist/node/lib/rating/index.mjs.map +1 -0
  524. package/package.json +36 -33
  525. package/dist/Diviner.d.mts.map +0 -1
  526. package/dist/Diviner.d.ts.map +0 -1
  527. package/dist/Plugin.d.mts.map +0 -1
  528. package/dist/Plugin.d.ts.map +0 -1
  529. package/dist/index.d.mts.map +0 -1
  530. package/dist/index.d.ts.map +0 -1
  531. package/dist/index.js.map +0 -1
  532. package/dist/index.mjs.map +0 -1
  533. package/dist/lib/index.d.mts.map +0 -1
  534. package/dist/lib/index.d.ts.map +0 -1
  535. package/dist/lib/rating/analyzeNft.d.mts.map +0 -1
  536. package/dist/lib/rating/analyzeNft.d.ts.map +0 -1
  537. package/dist/lib/rating/criteria/index.d.mts.map +0 -1
  538. package/dist/lib/rating/criteria/index.d.ts.map +0 -1
  539. package/dist/lib/rating/criteria/scoring/contract.d.mts.map +0 -1
  540. package/dist/lib/rating/criteria/scoring/contract.d.ts.map +0 -1
  541. package/dist/lib/rating/criteria/scoring/index.d.mts.map +0 -1
  542. package/dist/lib/rating/criteria/scoring/index.d.ts.map +0 -1
  543. package/dist/lib/rating/criteria/scoring/lib/index.d.mts.map +0 -1
  544. package/dist/lib/rating/criteria/scoring/lib/index.d.ts.map +0 -1
  545. package/dist/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts.map +0 -1
  546. package/dist/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts.map +0 -1
  547. package/dist/lib/rating/criteria/scoring/lib/toBigNumber.d.mts.map +0 -1
  548. package/dist/lib/rating/criteria/scoring/lib/toBigNumber.d.ts.map +0 -1
  549. package/dist/lib/rating/criteria/scoring/metadata/animationUrl.d.mts.map +0 -1
  550. package/dist/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +0 -1
  551. package/dist/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map +0 -1
  552. package/dist/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +0 -1
  553. package/dist/lib/rating/criteria/scoring/metadata/attributes/index.d.mts.map +0 -1
  554. package/dist/lib/rating/criteria/scoring/metadata/attributes/index.d.ts.map +0 -1
  555. package/dist/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts.map +0 -1
  556. package/dist/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +0 -1
  557. package/dist/lib/rating/criteria/scoring/metadata/description.d.mts.map +0 -1
  558. package/dist/lib/rating/criteria/scoring/metadata/description.d.ts.map +0 -1
  559. package/dist/lib/rating/criteria/scoring/metadata/externalUrl.d.mts.map +0 -1
  560. package/dist/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +0 -1
  561. package/dist/lib/rating/criteria/scoring/metadata/image.d.mts.map +0 -1
  562. package/dist/lib/rating/criteria/scoring/metadata/image.d.ts.map +0 -1
  563. package/dist/lib/rating/criteria/scoring/metadata/imageData.d.mts.map +0 -1
  564. package/dist/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +0 -1
  565. package/dist/lib/rating/criteria/scoring/metadata/index.d.mts.map +0 -1
  566. package/dist/lib/rating/criteria/scoring/metadata/index.d.ts.map +0 -1
  567. package/dist/lib/rating/criteria/scoring/metadata/lib/index.d.mts.map +0 -1
  568. package/dist/lib/rating/criteria/scoring/metadata/lib/index.d.ts.map +0 -1
  569. package/dist/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts.map +0 -1
  570. package/dist/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts.map +0 -1
  571. package/dist/lib/rating/criteria/scoring/metadata/name.d.mts.map +0 -1
  572. package/dist/lib/rating/criteria/scoring/metadata/name.d.ts.map +0 -1
  573. package/dist/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts.map +0 -1
  574. package/dist/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +0 -1
  575. package/dist/lib/rating/criteria/scoring/supply.d.mts.map +0 -1
  576. package/dist/lib/rating/criteria/scoring/supply.d.ts.map +0 -1
  577. package/dist/lib/rating/criteria/scoring/tokenId.d.mts.map +0 -1
  578. package/dist/lib/rating/criteria/scoring/tokenId.d.ts.map +0 -1
  579. package/dist/lib/rating/criteria/scoring/type.d.mts.map +0 -1
  580. package/dist/lib/rating/criteria/scoring/type.d.ts.map +0 -1
  581. package/dist/lib/rating/criteria/scoringCriteria.d.mts.map +0 -1
  582. package/dist/lib/rating/criteria/scoringCriteria.d.ts.map +0 -1
  583. package/dist/lib/rating/index.d.mts.map +0 -1
  584. package/dist/lib/rating/index.d.ts.map +0 -1
  585. /package/dist/{Diviner.d.mts → browser/Diviner.d.cts} +0 -0
  586. /package/dist/{Diviner.d.ts → browser/Diviner.d.mts} +0 -0
  587. /package/dist/{Plugin.d.mts → browser/Plugin.d.cts} +0 -0
  588. /package/dist/{Plugin.d.ts → browser/Plugin.d.mts} +0 -0
  589. /package/dist/{index.d.mts → browser/index.d.cts} +0 -0
  590. /package/dist/{index.d.ts → browser/index.d.mts} +0 -0
  591. /package/dist/{lib/index.d.mts → browser/lib/index.d.cts} +0 -0
  592. /package/dist/{lib/index.d.ts → browser/lib/index.d.mts} +0 -0
  593. /package/dist/{lib/rating/analyzeNft.d.mts → browser/lib/rating/analyzeNft.d.cts} +0 -0
  594. /package/dist/{lib/rating/analyzeNft.d.ts → browser/lib/rating/analyzeNft.d.mts} +0 -0
  595. /package/dist/{lib/rating/criteria/index.d.mts → browser/lib/rating/criteria/index.d.cts} +0 -0
  596. /package/dist/{lib/rating/criteria/index.d.ts → browser/lib/rating/criteria/index.d.mts} +0 -0
  597. /package/dist/{lib/rating/criteria/scoring/contract.d.mts → browser/lib/rating/criteria/scoring/contract.d.cts} +0 -0
  598. /package/dist/{lib/rating/criteria/scoring/contract.d.ts → browser/lib/rating/criteria/scoring/contract.d.mts} +0 -0
  599. /package/dist/{lib/rating/criteria/scoring/index.d.mts → browser/lib/rating/criteria/scoring/index.d.cts} +0 -0
  600. /package/dist/{lib/rating/criteria/scoring/index.d.ts → browser/lib/rating/criteria/scoring/index.d.mts} +0 -0
  601. /package/dist/{lib/rating/criteria/scoring/lib/index.d.mts → browser/lib/rating/criteria/scoring/lib/index.d.cts} +0 -0
  602. /package/dist/{lib/rating/criteria/scoring/lib/index.d.ts → browser/lib/rating/criteria/scoring/lib/index.d.mts} +0 -0
  603. /package/dist/{lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts → browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.cts} +0 -0
  604. /package/dist/{lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts → browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts} +0 -0
  605. /package/dist/{lib/rating/criteria/scoring/lib/toBigNumber.d.mts → browser/lib/rating/criteria/scoring/lib/toBigNumber.d.cts} +0 -0
  606. /package/dist/{lib/rating/criteria/scoring/lib/toBigNumber.d.ts → browser/lib/rating/criteria/scoring/lib/toBigNumber.d.mts} +0 -0
  607. /package/dist/{lib/rating/criteria/scoring/metadata/animationUrl.d.mts → browser/lib/rating/criteria/scoring/metadata/animationUrl.d.cts} +0 -0
  608. /package/dist/{lib/rating/criteria/scoring/metadata/animationUrl.d.ts → browser/lib/rating/criteria/scoring/metadata/animationUrl.d.mts} +0 -0
  609. /package/dist/{lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts → browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.cts} +0 -0
  610. /package/dist/{lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts → browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts} +0 -0
  611. /package/dist/{lib/rating/criteria/scoring/metadata/attributes/index.d.mts → browser/lib/rating/criteria/scoring/metadata/attributes/index.d.cts} +0 -0
  612. /package/dist/{lib/rating/criteria/scoring/metadata/attributes/index.d.ts → browser/lib/rating/criteria/scoring/metadata/attributes/index.d.mts} +0 -0
  613. /package/dist/{lib/rating/criteria/scoring/metadata/backgroundColor.d.mts → browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.cts} +0 -0
  614. /package/dist/{lib/rating/criteria/scoring/metadata/backgroundColor.d.ts → browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts} +0 -0
  615. /package/dist/{lib/rating/criteria/scoring/metadata/description.d.mts → browser/lib/rating/criteria/scoring/metadata/description.d.cts} +0 -0
  616. /package/dist/{lib/rating/criteria/scoring/metadata/description.d.ts → browser/lib/rating/criteria/scoring/metadata/description.d.mts} +0 -0
  617. /package/dist/{lib/rating/criteria/scoring/metadata/externalUrl.d.mts → browser/lib/rating/criteria/scoring/metadata/externalUrl.d.cts} +0 -0
  618. /package/dist/{lib/rating/criteria/scoring/metadata/externalUrl.d.ts → browser/lib/rating/criteria/scoring/metadata/externalUrl.d.mts} +0 -0
  619. /package/dist/{lib/rating/criteria/scoring/metadata/image.d.mts → browser/lib/rating/criteria/scoring/metadata/image.d.cts} +0 -0
  620. /package/dist/{lib/rating/criteria/scoring/metadata/image.d.ts → browser/lib/rating/criteria/scoring/metadata/image.d.mts} +0 -0
  621. /package/dist/{lib/rating/criteria/scoring/metadata/imageData.d.mts → browser/lib/rating/criteria/scoring/metadata/imageData.d.cts} +0 -0
  622. /package/dist/{lib/rating/criteria/scoring/metadata/imageData.d.ts → browser/lib/rating/criteria/scoring/metadata/imageData.d.mts} +0 -0
  623. /package/dist/{lib/rating/criteria/scoring/metadata/index.d.mts → browser/lib/rating/criteria/scoring/metadata/index.d.cts} +0 -0
  624. /package/dist/{lib/rating/criteria/scoring/metadata/index.d.ts → browser/lib/rating/criteria/scoring/metadata/index.d.mts} +0 -0
  625. /package/dist/{lib/rating/criteria/scoring/metadata/lib/index.d.mts → browser/lib/rating/criteria/scoring/metadata/lib/index.d.cts} +0 -0
  626. /package/dist/{lib/rating/criteria/scoring/metadata/lib/index.d.ts → browser/lib/rating/criteria/scoring/metadata/lib/index.d.mts} +0 -0
  627. /package/dist/{lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts → browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.cts} +0 -0
  628. /package/dist/{lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts → browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts} +0 -0
  629. /package/dist/{lib/rating/criteria/scoring/metadata/name.d.mts → browser/lib/rating/criteria/scoring/metadata/name.d.cts} +0 -0
  630. /package/dist/{lib/rating/criteria/scoring/metadata/name.d.ts → browser/lib/rating/criteria/scoring/metadata/name.d.mts} +0 -0
  631. /package/dist/{lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts → browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.cts} +0 -0
  632. /package/dist/{lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts → browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts} +0 -0
  633. /package/dist/{lib/rating/criteria/scoring/supply.d.mts → browser/lib/rating/criteria/scoring/supply.d.cts} +0 -0
  634. /package/dist/{lib/rating/criteria/scoring/supply.d.ts → browser/lib/rating/criteria/scoring/supply.d.mts} +0 -0
  635. /package/dist/{lib/rating/criteria/scoring/tokenId.d.mts → browser/lib/rating/criteria/scoring/tokenId.d.cts} +0 -0
  636. /package/dist/{lib/rating/criteria/scoring/tokenId.d.ts → browser/lib/rating/criteria/scoring/tokenId.d.mts} +0 -0
  637. /package/dist/{lib/rating/criteria/scoring/type.d.mts → browser/lib/rating/criteria/scoring/type.d.cts} +0 -0
  638. /package/dist/{lib/rating/criteria/scoring/type.d.ts → browser/lib/rating/criteria/scoring/type.d.mts} +0 -0
  639. /package/dist/{lib/rating/criteria/scoringCriteria.d.mts → browser/lib/rating/criteria/scoringCriteria.d.cts} +0 -0
  640. /package/dist/{lib/rating/criteria/scoringCriteria.d.ts → browser/lib/rating/criteria/scoringCriteria.d.mts} +0 -0
  641. /package/dist/{lib/rating/index.d.mts → browser/lib/rating/index.d.cts} +0 -0
  642. /package/dist/{lib/rating/index.d.ts → browser/lib/rating/index.d.mts} +0 -0
@@ -41,12 +41,19 @@ var toUrl = (url) => {
41
41
  }
42
42
  };
43
43
  var isValidUrl = (url) => toUrl(url) !== void 0;
44
- var isWeb3 = (url) => web3Protocols.some((protocol) => protocol === toUrl(url)?.protocol);
45
- var isSecure = (url) => isWeb3(url) || toUrl(url)?.protocol === "https:";
44
+ var isWeb3 = (url) => web3Protocols.some((protocol) => {
45
+ var _a;
46
+ return protocol === ((_a = toUrl(url)) == null ? void 0 : _a.protocol);
47
+ });
48
+ var isSecure = (url) => {
49
+ var _a;
50
+ return isWeb3(url) || ((_a = toUrl(url)) == null ? void 0 : _a.protocol) === "https:";
51
+ };
46
52
 
47
53
  // src/lib/rating/criteria/scoring/metadata/animationUrl.ts
48
54
  var scoreNftAnimationUrl = (nft) => {
49
- return scoreAnimationUrl(nft.metadata?.animation_url);
55
+ var _a;
56
+ return scoreAnimationUrl((_a = nft.metadata) == null ? void 0 : _a.animation_url);
50
57
  };
51
58
  var scoreAnimationUrl = (animation_url) => {
52
59
  const score = [0, 0];
@@ -84,7 +91,10 @@ var isNumber = (value) => typeof value === "number";
84
91
  var isPercentage = (value) => isNumber(value) && value >= 0 && value <= 100;
85
92
  var isNonEmptyString = (value) => typeof value === "string" && value.length > 0;
86
93
  var isNonEmptyStringOrNumber = (value) => value === "number" || isNonEmptyString(value);
87
- var evaluateNftAttributes = (nft) => !nft?.metadata?.attributes ? [0, 1] : evaluateAttributes(nft?.metadata?.attributes);
94
+ var evaluateNftAttributes = (nft) => {
95
+ var _a, _b;
96
+ return !((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.attributes) ? [0, 1] : evaluateAttributes((_b = nft == null ? void 0 : nft.metadata) == null ? void 0 : _b.attributes);
97
+ };
88
98
  var evaluateAttributes = (attributes) => {
89
99
  if (!attributes || !Array.isArray(attributes) || attributes.length === 0)
90
100
  return [0, 1];
@@ -97,9 +107,9 @@ var evaluateAttributes = (attributes) => {
97
107
  };
98
108
  var evaluateAttribute = (attribute) => {
99
109
  const score = [0, 1];
100
- const max_value = attribute?.max_value;
101
- const trait_type = attribute?.trait_type;
102
- const value = attribute?.value;
110
+ const max_value = attribute == null ? void 0 : attribute.max_value;
111
+ const trait_type = attribute == null ? void 0 : attribute.trait_type;
112
+ const value = attribute == null ? void 0 : attribute.value;
103
113
  if (!attribute || typeof attribute !== "object" || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value))
104
114
  return score;
105
115
  incrementTotal2(score);
@@ -114,26 +124,26 @@ var evaluateAttribute = (attribute) => {
114
124
  return score;
115
125
  };
116
126
  var validDisplayType = (attribute) => {
117
- switch (attribute?.display_type) {
127
+ switch (attribute == null ? void 0 : attribute.display_type) {
118
128
  case "number":
119
129
  case "boost_number": {
120
- if (isNumber(attribute?.value))
130
+ if (isNumber(attribute == null ? void 0 : attribute.value))
121
131
  return true;
122
132
  break;
123
133
  }
124
134
  case "boost_percentage": {
125
- if (isPercentage(attribute?.value))
135
+ if (isPercentage(attribute == null ? void 0 : attribute.value))
126
136
  return true;
127
137
  break;
128
138
  }
129
139
  case "date": {
130
- if (isDate(attribute?.value))
140
+ if (isDate(attribute == null ? void 0 : attribute.value))
131
141
  return true;
132
142
  break;
133
143
  }
134
144
  case "string":
135
145
  case void 0: {
136
- if (isNonEmptyString(attribute?.value))
146
+ if (isNonEmptyString(attribute == null ? void 0 : attribute.value))
137
147
  return true;
138
148
  break;
139
149
  }
@@ -148,7 +158,8 @@ var validDisplayType = (attribute) => {
148
158
  import { incrementPossible as incrementPossible3, incrementTotal as incrementTotal3, incrementTotalAndPossible as incrementTotalAndPossible3, PASS as PASS3 } from "@xyo-network/crypto-nft-score-model";
149
159
  var isHexColor = /^[0-9A-F]{6}$/i;
150
160
  var scoreNftBackgroundColor = (nft) => {
151
- return scoreBackgroundColor(nft.metadata?.background_color);
161
+ var _a;
162
+ return scoreBackgroundColor((_a = nft.metadata) == null ? void 0 : _a.background_color);
152
163
  };
153
164
  var scoreBackgroundColor = (background_color) => {
154
165
  const score = [0, 0];
@@ -166,7 +177,8 @@ var scoreBackgroundColor = (background_color) => {
166
177
  // src/lib/rating/criteria/scoring/metadata/description.ts
167
178
  import { incrementTotal as incrementTotal4 } from "@xyo-network/crypto-nft-score-model";
168
179
  var scoreNftDescription = (nft) => {
169
- return scoreDescription(nft.metadata?.description);
180
+ var _a;
181
+ return scoreDescription((_a = nft.metadata) == null ? void 0 : _a.description);
170
182
  };
171
183
  var scoreDescription = (description) => {
172
184
  const score = [0, 1];
@@ -178,7 +190,8 @@ var scoreDescription = (description) => {
178
190
  // src/lib/rating/criteria/scoring/metadata/externalUrl.ts
179
191
  import { incrementTotal as incrementTotal5 } from "@xyo-network/crypto-nft-score-model";
180
192
  var scoreNftExternalUrl = (nft) => {
181
- return scoreExternalUrl(nft?.metadata?.external_url);
193
+ var _a;
194
+ return scoreExternalUrl((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.external_url);
182
195
  };
183
196
  var scoreExternalUrl = (external_url) => {
184
197
  const score = [0, 2];
@@ -194,10 +207,11 @@ var scoreExternalUrl = (external_url) => {
194
207
  import { incrementTotal as incrementTotal6, PASS as PASS4 } from "@xyo-network/crypto-nft-score-model";
195
208
  var MaxPossibleImageScore = 3;
196
209
  var scoreNftImage = (nft) => {
197
- if (!nft?.metadata?.image) {
198
- return nft.metadata?.image_data ? PASS4 : [0, MaxPossibleImageScore];
210
+ var _a, _b, _c;
211
+ if (!((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.image)) {
212
+ return ((_b = nft.metadata) == null ? void 0 : _b.image_data) ? PASS4 : [0, MaxPossibleImageScore];
199
213
  } else {
200
- return scoreImage(nft.metadata?.image);
214
+ return scoreImage((_c = nft.metadata) == null ? void 0 : _c.image);
201
215
  }
202
216
  };
203
217
  var scoreImage = (image) => {
@@ -229,10 +243,11 @@ var isValidImageData = (image_data) => {
229
243
  }
230
244
  };
231
245
  var scoreNftImageData = (nft) => {
232
- if (!nft?.metadata?.image_data) {
233
- return nft.metadata?.image ? PASS5 : [0, MaxPossibleImageDataScore];
246
+ var _a, _b, _c;
247
+ if (!((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.image_data)) {
248
+ return ((_b = nft.metadata) == null ? void 0 : _b.image) ? PASS5 : [0, MaxPossibleImageDataScore];
234
249
  } else {
235
- return scoreImageData(nft.metadata?.image_data);
250
+ return scoreImageData((_c = nft.metadata) == null ? void 0 : _c.image_data);
236
251
  }
237
252
  };
238
253
  var scoreImageData = (image_data) => {
@@ -242,7 +257,8 @@ var scoreImageData = (image_data) => {
242
257
  // src/lib/rating/criteria/scoring/metadata/name.ts
243
258
  import { incrementTotal as incrementTotal7 } from "@xyo-network/crypto-nft-score-model";
244
259
  var scoreNftName = (nft) => {
245
- return scoreName(nft.metadata?.name);
260
+ var _a;
261
+ return scoreName((_a = nft.metadata) == null ? void 0 : _a.name);
246
262
  };
247
263
  var scoreName = (name) => {
248
264
  const score = [0, 1];
@@ -254,7 +270,8 @@ var scoreName = (name) => {
254
270
  // src/lib/rating/criteria/scoring/metadata/youtubeUrl.ts
255
271
  import { incrementTotal as incrementTotal8, PASS as PASS6 } from "@xyo-network/crypto-nft-score-model";
256
272
  var scoreNftYoutubeUrl = (nft) => {
257
- return scoreYoutubeUrl(nft?.metadata?.youtube_url);
273
+ var _a;
274
+ return scoreYoutubeUrl((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.youtube_url);
258
275
  };
259
276
  var scoreYoutubeUrl = (youtube_url) => {
260
277
  if (youtube_url === void 0 || youtube_url === null)
@@ -373,7 +390,7 @@ var isNftScore = (payload) => payload.schema === NftScoreSchema;
373
390
  var NftScoreDiviner = class extends AbstractDiviner {
374
391
  static configSchemas = [NftScoreDivinerConfigSchema];
375
392
  divineHandler = async (payloads) => {
376
- const nftInfos = payloads?.filter(isNftInfo) ?? [];
393
+ const nftInfos = (payloads == null ? void 0 : payloads.filter(isNftInfo)) ?? [];
377
394
  const results = await Promise.all(
378
395
  nftInfos.map(async (nftInfo) => {
379
396
  const [score, sourceHash] = await Promise.all([
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Plugin.ts","../../src/Diviner.ts","../../src/lib/rating/criteria/scoring/contract.ts","../../src/lib/rating/criteria/scoring/metadata/animationUrl.ts","../../src/lib/rating/criteria/scoring/metadata/lib/urlHelpers.ts","../../src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts","../../src/lib/rating/criteria/scoring/metadata/backgroundColor.ts","../../src/lib/rating/criteria/scoring/metadata/description.ts","../../src/lib/rating/criteria/scoring/metadata/externalUrl.ts","../../src/lib/rating/criteria/scoring/metadata/image.ts","../../src/lib/rating/criteria/scoring/metadata/imageData.ts","../../src/lib/rating/criteria/scoring/metadata/name.ts","../../src/lib/rating/criteria/scoring/metadata/youtubeUrl.ts","../../src/lib/rating/criteria/scoring/supply.ts","../../src/lib/rating/criteria/scoring/lib/toBigNumber.ts","../../src/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.ts","../../src/lib/rating/criteria/scoring/tokenId.ts","../../src/lib/rating/criteria/scoring/type.ts","../../src/lib/rating/criteria/scoringCriteria.ts","../../src/lib/rating/analyzeNft.ts","../../src/index.ts"],"sourcesContent":["import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetDivinerPlugin } from '@xyo-network/payloadset-plugin'\n\nimport { NftScoreDiviner } from './Diviner'\n\nexport const NftScoreDivinerPlugin = () =>\n createPayloadSetDivinerPlugin<NftScoreDiviner>(\n { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },\n {\n diviner: async (params) => {\n const result = await NftScoreDiviner.create(params)\n return result\n },\n },\n )\n","import { AbstractDiviner } from '@xyo-network/abstract-diviner'\nimport { PayloadHasher } from '@xyo-network/core'\nimport {\n isNftInfo,\n NftInfo,\n NftScore,\n NftScoreDivinerConfig,\n NftScoreDivinerConfigSchema,\n NftScoreSchema,\n} from '@xyo-network/crypto-nft-payload-plugin'\nimport { DivinerParams } from '@xyo-network/diviner-model'\nimport { AnyConfigSchema } from '@xyo-network/module'\nimport { Payload } from '@xyo-network/payload-model'\n\nimport { analyzeNft, NftAnalysis } from './lib'\n\nexport type NftScoreDivinerParams = DivinerParams<AnyConfigSchema<NftScoreDivinerConfig>>\n\nconst toNftScorePayload = (nftInfo: NftInfo, scores: NftAnalysis): NftScore => {\n const { address, chainId, type } = nftInfo\n return { address, chainId, schema: NftScoreSchema, scores, type }\n}\n\nexport const isNftScore = (payload: Payload): payload is NftScore => payload.schema === NftScoreSchema\n\nexport class NftScoreDiviner<TParams extends NftScoreDivinerParams = NftScoreDivinerParams> extends AbstractDiviner<TParams> {\n static override configSchemas = [NftScoreDivinerConfigSchema]\n\n protected override divineHandler = async (payloads?: Payload[]): Promise<Payload[]> => {\n const nftInfos = payloads?.filter(isNftInfo) ?? []\n const results = await Promise.all(\n nftInfos.map<Promise<NftScore>>(async (nftInfo) => {\n const [score, sourceHash] = await Promise.all([\n // Analyze the NFT\n toNftScorePayload(nftInfo, await analyzeNft(nftInfo)),\n // Hash the source payload\n PayloadHasher.hashAsync(nftInfo),\n ])\n return { ...score, sources: [sourceHash] }\n }),\n )\n return results\n }\n}\n","import { isAddress } from '@ethersproject/address'\nimport { NftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { FAIL, PASS, PassFailScoringFunction } from '@xyo-network/crypto-nft-score-model'\n\nexport const scoreContractAddress: PassFailScoringFunction<NftInfoFields> = (nft: NftInfoFields) => {\n if (!nft.address) return FAIL\n if (typeof nft.address !== 'string') return FAIL\n if (!isAddress(nft.address)) return FAIL\n return PASS\n}\n","import { NftInfoFields, OpenSeaNftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { incrementPossible, incrementTotal, incrementTotalAndPossible, PASS, ScaledScore } from '@xyo-network/crypto-nft-score-model'\n\nimport { isSecure, isValidUrl, isWeb3 } from './lib'\n\nexport const scoreNftAnimationUrl = (nft: NftInfoFields | OpenSeaNftInfoFields): ScaledScore => {\n return scoreAnimationUrl(nft.metadata?.animation_url)\n}\n\nexport const scoreAnimationUrl = (animation_url: unknown): ScaledScore => {\n const score: ScaledScore = [0, 0]\n if (animation_url === undefined || animation_url === null) return PASS\n incrementPossible(score)\n if (typeof animation_url !== 'string') return score\n incrementTotalAndPossible(score)\n if (!isValidUrl(animation_url)) return score\n incrementTotalAndPossible(score)\n if (!isSecure(animation_url)) return score\n incrementTotalAndPossible(score)\n if (!isWeb3(animation_url)) return score\n return incrementTotal(score)\n}\n","import { URL } from '@xylabs/url'\n\nexport const web3Protocols = ['ipfs:', 'ar:']\n\nexport const toUrl = (url?: string | null): URL | undefined => {\n if (!url) return undefined\n try {\n return new URL(url)\n } catch (e) {\n return undefined\n }\n}\n\nexport const isValidUrl = (url?: string | null): boolean => toUrl(url) !== undefined\nexport const isWeb3 = (url?: string | null): boolean => web3Protocols.some((protocol) => protocol === toUrl(url)?.protocol)\nexport const isWeb2 = (url?: string | null): boolean => !isWeb3(url)\nexport const isSecure = (url?: string | null): boolean => isWeb3(url) || toUrl(url)?.protocol === 'https:'\n","import { NftAttribute, NftInfoFields, OpenSeaNftAttribute, OpenSeaNftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { incrementPossible, incrementTotal, incrementTotalAndPossible, ScaledScore } from '@xyo-network/crypto-nft-score-model'\n\nconst isDate = (value: unknown): value is Date => {\n if (isNumber(value)) {\n try {\n new Date(value)\n return true\n } catch (error) {\n return false\n }\n }\n return false\n}\n\nconst isNumber = (value: unknown): value is number => typeof value === 'number'\n\nconst isPercentage = (value: unknown): boolean => isNumber(value) && value >= 0 && value <= 100\n\nconst isNonEmptyString = (value: unknown): value is string => typeof value === 'string' && value.length > 0\n\nconst isNonEmptyStringOrNumber = (value: unknown): value is string | number => value === 'number' || isNonEmptyString(value)\n\nexport const evaluateNftAttributes = (nft: NftInfoFields | OpenSeaNftInfoFields): ScaledScore =>\n !nft?.metadata?.attributes ? [0, 1] : evaluateAttributes(nft?.metadata?.attributes)\n\nexport const evaluateAttributes = (attributes: NftAttribute[] | OpenSeaNftAttribute[] | unknown): ScaledScore => {\n if (!attributes || !Array.isArray(attributes) || attributes.length === 0) return [0, 1]\n const score: ScaledScore = [0, 0]\n for (const attribute of attributes) {\n const [attributeTotal, attributePossible] = evaluateAttribute(attribute)\n incrementTotalAndPossible(score, attributeTotal, attributePossible)\n }\n return [1, 1]\n}\n\nexport const evaluateAttribute = (attribute: OpenSeaNftAttribute): ScaledScore => {\n const score: ScaledScore = [0, 1]\n const max_value = attribute?.max_value\n const trait_type = attribute?.trait_type\n const value = attribute?.value\n\n // Validate trait_type & value\n if (!attribute || typeof attribute !== 'object' || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value)) return score\n incrementTotal(score)\n\n // Validate display_type\n incrementPossible(score)\n if (validDisplayType(attribute)) incrementTotal(score)\n\n // Validate max_value\n if (max_value !== undefined) {\n incrementPossible(score)\n if (isNumber(max_value) && isNumber(value) && value <= max_value) incrementTotal(score)\n }\n\n return score\n}\n\nconst validDisplayType = (attribute: OpenSeaNftAttribute): boolean => {\n switch (attribute?.display_type) {\n case 'number':\n case 'boost_number': {\n if (isNumber(attribute?.value)) return true\n break\n }\n case 'boost_percentage': {\n if (isPercentage(attribute?.value)) return true\n break\n }\n case 'date': {\n if (isDate(attribute?.value)) return true\n break\n }\n case 'string':\n case undefined: {\n if (isNonEmptyString(attribute?.value)) return true\n break\n }\n default: {\n break\n }\n }\n return false\n}\n","import { NftInfoFields, OpenSeaNftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { incrementPossible, incrementTotal, incrementTotalAndPossible, PASS, ScaledScore } from '@xyo-network/crypto-nft-score-model'\n\nconst isHexColor = /^[0-9A-F]{6}$/i\n\nexport const scoreNftBackgroundColor = (nft: NftInfoFields | OpenSeaNftInfoFields): ScaledScore => {\n return scoreBackgroundColor(nft.metadata?.background_color)\n}\n\nexport const scoreBackgroundColor = (background_color: unknown): ScaledScore => {\n const score: ScaledScore = [0, 0]\n if (background_color === undefined || background_color === null) return PASS\n incrementPossible(score)\n if (typeof background_color !== 'string') return score\n incrementTotalAndPossible(score)\n if (!background_color.toUpperCase().match(isHexColor)) return score\n return incrementTotal(score)\n}\n","import { NftInfoFields, OpenSeaNftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { incrementTotal, ScaledScore } from '@xyo-network/crypto-nft-score-model'\n\nexport const scoreNftDescription = (nft: NftInfoFields | OpenSeaNftInfoFields): ScaledScore => {\n return scoreDescription(nft.metadata?.description)\n}\n\nexport const scoreDescription = (description: unknown): ScaledScore => {\n const score: ScaledScore = [0, 1]\n if (!description || typeof description !== 'string') return score\n return incrementTotal(score)\n}\n","import { NftInfoFields, OpenSeaNftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { incrementTotal, ScaledScore } from '@xyo-network/crypto-nft-score-model'\n\nimport { isSecure, isValidUrl } from './lib'\n\nexport const scoreNftExternalUrl = (nft: NftInfoFields | OpenSeaNftInfoFields): ScaledScore => {\n return scoreExternalUrl(nft?.metadata?.external_url)\n}\nexport const scoreExternalUrl = (external_url: unknown): ScaledScore => {\n const score: ScaledScore = [0, 2]\n if (external_url === undefined || external_url === null || typeof external_url !== 'string' || !isValidUrl(external_url)) return score\n incrementTotal(score)\n if (!isSecure(external_url)) return score\n return incrementTotal(score)\n}\n","import { NftInfoFields, OpenSeaNftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { incrementTotal, PASS, ScaledScore } from '@xyo-network/crypto-nft-score-model'\n\nimport { isSecure, isValidUrl, isWeb3 } from './lib'\n\nconst MaxPossibleImageScore = 3\n\nexport const scoreNftImage = (nft: NftInfoFields | OpenSeaNftInfoFields): ScaledScore => {\n // If there's no image data\n if (!nft?.metadata?.image) {\n // but there is image data, skip this scoring criteria, otherwise fail it completely\n return nft.metadata?.image_data ? PASS : [0, MaxPossibleImageScore]\n } else {\n return scoreImage(nft.metadata?.image)\n }\n}\n\nexport const scoreImage = (image: unknown): ScaledScore => {\n const score: ScaledScore = [0, MaxPossibleImageScore]\n if (!image || typeof image !== 'string' || !isValidUrl(image)) return score\n incrementTotal(score)\n if (!isSecure(image)) return score\n incrementTotal(score)\n if (!isWeb3(image)) return score\n incrementTotal(score)\n return score\n}\n","import { NftInfoFields, OpenSeaNftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { PASS, ScaledScore } from '@xyo-network/crypto-nft-score-model'\nimport { parse } from 'svg-parser'\n\nconst MaxPossibleImageDataScore = 1\n\n// NOTE: There is probably a deeper check we can do\n// here, but this is a good start\nconst isValidImageData = (image_data: string): boolean => {\n // If it doesn't start with an svg tag, it's not an svg\n if (!image_data.startsWith('<svg')) return false\n try {\n // If it can't be parsed, it's not an svg\n parse(image_data)\n return true\n } catch (error) {\n return false\n }\n}\n\nexport const scoreNftImageData = (nft: NftInfoFields | OpenSeaNftInfoFields): ScaledScore => {\n // If there's no image data\n if (!nft?.metadata?.image_data) {\n // but there is an image, skip this scoring criteria, otherwise fail it completely\n return nft.metadata?.image ? PASS : [0, MaxPossibleImageDataScore]\n } else {\n return scoreImageData(nft.metadata?.image_data)\n }\n}\n\nexport const scoreImageData = (image_data: unknown): ScaledScore => {\n return !image_data || typeof image_data !== 'string' || !isValidImageData(image_data)\n ? [0, MaxPossibleImageDataScore]\n : [MaxPossibleImageDataScore, MaxPossibleImageDataScore]\n}\n","import { NftInfoFields, OpenSeaNftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { incrementTotal, ScaledScore } from '@xyo-network/crypto-nft-score-model'\n\nexport const scoreNftName = (nft: NftInfoFields | OpenSeaNftInfoFields): ScaledScore => {\n return scoreName(nft.metadata?.name)\n}\nexport const scoreName = (name: unknown): ScaledScore => {\n const score: ScaledScore = [0, 1]\n if (!name || typeof name !== 'string') return score\n return incrementTotal(score)\n}\n","import { NftInfoFields, OpenSeaNftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { incrementTotal, PASS, ScaledScore } from '@xyo-network/crypto-nft-score-model'\n\nimport { isSecure, isValidUrl } from './lib'\n\nexport const scoreNftYoutubeUrl = (nft: NftInfoFields | OpenSeaNftInfoFields): ScaledScore => {\n return scoreYoutubeUrl(nft?.metadata?.youtube_url)\n}\nexport const scoreYoutubeUrl = (youtube_url: unknown): ScaledScore => {\n if (youtube_url === undefined || youtube_url === null) return PASS\n const score: ScaledScore = [0, 2]\n if (typeof youtube_url !== 'string' || !isValidUrl(youtube_url)) return score\n incrementTotal(score)\n if (!isSecure(youtube_url)) return score\n return incrementTotal(score)\n}\n","import { NftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { FAIL, PASS, PassFailScoringFunction } from '@xyo-network/crypto-nft-score-model'\n\nimport { isValidPositiveBigNumber } from './lib'\n\nexport const scoreSupply: PassFailScoringFunction<NftInfoFields> = (nft: NftInfoFields) => {\n if (!nft.supply) return FAIL\n if (typeof nft.supply !== 'string') return FAIL\n try {\n // Check for positive BigNumber since data type is uint256\n return isValidPositiveBigNumber(nft.supply) ? PASS : FAIL\n } catch (_error) {\n return FAIL\n }\n}\n","import { BigNumber } from '@xylabs/bignumber'\n\nexport const toBigNumber = (value: string): BigNumber | undefined => {\n try {\n return new BigNumber(value)\n } catch (error) {\n return undefined\n }\n}\n","import { toBigNumber } from './toBigNumber'\n\nexport const isValidPositiveBigNumber = (value: string): boolean => {\n const num = toBigNumber(value)\n return !num || num.isNeg() ? false : true\n}\n","import { NftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { FAIL, PASS, PassFailScoringFunction } from '@xyo-network/crypto-nft-score-model'\n\nimport { isValidPositiveBigNumber } from './lib'\n\n/**\n * Callers SHALL NOT assume that ID numbers have any specific pattern to them, and\n * MUST treat the ID as a \"black box\"\n * @param nft\n * @returns\n */\nexport const scoreTokenId: PassFailScoringFunction<NftInfoFields> = (nft: NftInfoFields) => {\n if (!nft.tokenId) return FAIL\n if (typeof nft.tokenId !== 'string') return FAIL\n try {\n // Check for positive BigNumber since data type is uint256\n return isValidPositiveBigNumber(nft.tokenId) ? PASS : FAIL\n } catch (_error) {\n return FAIL\n }\n}\n","import { NftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { FAIL, PASS, PassFailScoringFunction } from '@xyo-network/crypto-nft-score-model'\n\nexport const scoreType: PassFailScoringFunction<NftInfoFields> = (nft: NftInfoFields) => {\n if (!nft.type) return FAIL\n if (typeof nft.type !== 'string') return FAIL\n const type = nft.type.toUpperCase()\n if (type !== 'ERC721' && type !== 'ERC1155') return FAIL\n return PASS\n}\n","import {\n evaluateNftAttributes,\n scoreContractAddress,\n scoreNftAnimationUrl,\n scoreNftBackgroundColor,\n scoreNftDescription,\n scoreNftExternalUrl,\n scoreNftImage,\n scoreNftImageData,\n scoreNftName,\n scoreNftYoutubeUrl,\n scoreSupply,\n scoreTokenId,\n scoreType,\n} from './scoring'\n\nconst attributesScoringCriteria = {\n Attributes: { score: evaluateNftAttributes, weight: 1 },\n}\n\nconst metadataScoringCriteria = {\n 'Animation URL': { score: scoreNftAnimationUrl, weight: 1 },\n 'Background Color': { score: scoreNftBackgroundColor, weight: 1 },\n Description: { score: scoreNftDescription, weight: 1 },\n 'External Url': { score: scoreNftExternalUrl, weight: 1 },\n Image: { score: scoreNftImage, weight: 1 },\n 'Image Data': { score: scoreNftImageData, weight: 1 },\n Name: { score: scoreNftName, weight: 1 },\n 'YouTube URL': { score: scoreNftYoutubeUrl, weight: 1 },\n ...attributesScoringCriteria,\n}\n\nexport const scoringCriteria = {\n 'Contract Address': { score: scoreContractAddress, weight: 1 },\n Supply: { score: scoreSupply, weight: 1 },\n 'Token Id': { score: scoreTokenId, weight: 1 },\n Type: { score: scoreType, weight: 1 },\n ...metadataScoringCriteria,\n}\n","import { NftInfoFields } from '@xyo-network/crypto-nft-payload-plugin'\nimport { Score } from '@xyo-network/crypto-nft-score-model'\n\nimport { scoringCriteria } from './criteria'\n\nexport type ScoringCriteriaKey = keyof typeof scoringCriteria & PropertyKey\n\nexport type NftAnalysis = {\n [key in ScoringCriteriaKey]: Score\n}\n\nexport const analyzeNft = async (\n /**\n * The NFT to evaluate\n */\n nft: NftInfoFields,\n): Promise<NftAnalysis> => {\n const result = Object.fromEntries(\n await Promise.all(\n Object.entries(scoringCriteria).map(async ([key, { score, weight }]) => {\n const rawScore = await score(nft)\n const weighted = rawScore.map((v) => v * weight) as Score\n return [key, weighted] as const\n }),\n ),\n ) as NftAnalysis\n return result\n}\n","import { NftScoreDivinerPlugin } from './Plugin'\n\nexport * from './Diviner'\nexport * from './lib'\n\nexport { NftScoreDivinerPlugin }\n\n// eslint-disable-next-line import/no-default-export\nexport default NftScoreDivinerPlugin\n"],"mappings":"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","names":["PASS","PASS","incrementPossible","incrementTotal","incrementTotalAndPossible","incrementPossible","incrementTotal","incrementTotalAndPossible","PASS","incrementTotal","incrementTotal","incrementTotal","incrementTotal","PASS","PASS","incrementTotal","PASS","incrementTotal","incrementTotal","PASS","PASS","incrementTotal","FAIL","PASS","FAIL","PASS","FAIL","PASS","FAIL","PASS","FAIL","PASS"]}
@@ -0,0 +1,2 @@
1
+ export * from './rating';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './rating';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './rating';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,399 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/index.ts
21
+ var lib_exports = {};
22
+ __export(lib_exports, {
23
+ analyzeNft: () => analyzeNft
24
+ });
25
+ module.exports = __toCommonJS(lib_exports);
26
+
27
+ // src/lib/rating/criteria/scoring/contract.ts
28
+ var import_address = require("@ethersproject/address");
29
+ var import_crypto_nft_score_model = require("@xyo-network/crypto-nft-score-model");
30
+ var scoreContractAddress = (nft) => {
31
+ if (!nft.address)
32
+ return import_crypto_nft_score_model.FAIL;
33
+ if (typeof nft.address !== "string")
34
+ return import_crypto_nft_score_model.FAIL;
35
+ if (!(0, import_address.isAddress)(nft.address))
36
+ return import_crypto_nft_score_model.FAIL;
37
+ return import_crypto_nft_score_model.PASS;
38
+ };
39
+
40
+ // src/lib/rating/criteria/scoring/metadata/animationUrl.ts
41
+ var import_crypto_nft_score_model2 = require("@xyo-network/crypto-nft-score-model");
42
+
43
+ // src/lib/rating/criteria/scoring/metadata/lib/urlHelpers.ts
44
+ var import_url = require("@xylabs/url");
45
+ var web3Protocols = ["ipfs:", "ar:"];
46
+ var toUrl = (url) => {
47
+ if (!url)
48
+ return void 0;
49
+ try {
50
+ return new import_url.URL(url);
51
+ } catch (e) {
52
+ return void 0;
53
+ }
54
+ };
55
+ var isValidUrl = (url) => toUrl(url) !== void 0;
56
+ var isWeb3 = (url) => web3Protocols.some((protocol) => {
57
+ var _a;
58
+ return protocol === ((_a = toUrl(url)) == null ? void 0 : _a.protocol);
59
+ });
60
+ var isSecure = (url) => {
61
+ var _a;
62
+ return isWeb3(url) || ((_a = toUrl(url)) == null ? void 0 : _a.protocol) === "https:";
63
+ };
64
+
65
+ // src/lib/rating/criteria/scoring/metadata/animationUrl.ts
66
+ var scoreNftAnimationUrl = (nft) => {
67
+ var _a;
68
+ return scoreAnimationUrl((_a = nft.metadata) == null ? void 0 : _a.animation_url);
69
+ };
70
+ var scoreAnimationUrl = (animation_url) => {
71
+ const score = [0, 0];
72
+ if (animation_url === void 0 || animation_url === null)
73
+ return import_crypto_nft_score_model2.PASS;
74
+ (0, import_crypto_nft_score_model2.incrementPossible)(score);
75
+ if (typeof animation_url !== "string")
76
+ return score;
77
+ (0, import_crypto_nft_score_model2.incrementTotalAndPossible)(score);
78
+ if (!isValidUrl(animation_url))
79
+ return score;
80
+ (0, import_crypto_nft_score_model2.incrementTotalAndPossible)(score);
81
+ if (!isSecure(animation_url))
82
+ return score;
83
+ (0, import_crypto_nft_score_model2.incrementTotalAndPossible)(score);
84
+ if (!isWeb3(animation_url))
85
+ return score;
86
+ return (0, import_crypto_nft_score_model2.incrementTotal)(score);
87
+ };
88
+
89
+ // src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts
90
+ var import_crypto_nft_score_model3 = require("@xyo-network/crypto-nft-score-model");
91
+ var isDate = (value) => {
92
+ if (isNumber(value)) {
93
+ try {
94
+ new Date(value);
95
+ return true;
96
+ } catch (error) {
97
+ return false;
98
+ }
99
+ }
100
+ return false;
101
+ };
102
+ var isNumber = (value) => typeof value === "number";
103
+ var isPercentage = (value) => isNumber(value) && value >= 0 && value <= 100;
104
+ var isNonEmptyString = (value) => typeof value === "string" && value.length > 0;
105
+ var isNonEmptyStringOrNumber = (value) => value === "number" || isNonEmptyString(value);
106
+ var evaluateNftAttributes = (nft) => {
107
+ var _a, _b;
108
+ return !((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.attributes) ? [0, 1] : evaluateAttributes((_b = nft == null ? void 0 : nft.metadata) == null ? void 0 : _b.attributes);
109
+ };
110
+ var evaluateAttributes = (attributes) => {
111
+ if (!attributes || !Array.isArray(attributes) || attributes.length === 0)
112
+ return [0, 1];
113
+ const score = [0, 0];
114
+ for (const attribute of attributes) {
115
+ const [attributeTotal, attributePossible] = evaluateAttribute(attribute);
116
+ (0, import_crypto_nft_score_model3.incrementTotalAndPossible)(score, attributeTotal, attributePossible);
117
+ }
118
+ return [1, 1];
119
+ };
120
+ var evaluateAttribute = (attribute) => {
121
+ const score = [0, 1];
122
+ const max_value = attribute == null ? void 0 : attribute.max_value;
123
+ const trait_type = attribute == null ? void 0 : attribute.trait_type;
124
+ const value = attribute == null ? void 0 : attribute.value;
125
+ if (!attribute || typeof attribute !== "object" || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value))
126
+ return score;
127
+ (0, import_crypto_nft_score_model3.incrementTotal)(score);
128
+ (0, import_crypto_nft_score_model3.incrementPossible)(score);
129
+ if (validDisplayType(attribute))
130
+ (0, import_crypto_nft_score_model3.incrementTotal)(score);
131
+ if (max_value !== void 0) {
132
+ (0, import_crypto_nft_score_model3.incrementPossible)(score);
133
+ if (isNumber(max_value) && isNumber(value) && value <= max_value)
134
+ (0, import_crypto_nft_score_model3.incrementTotal)(score);
135
+ }
136
+ return score;
137
+ };
138
+ var validDisplayType = (attribute) => {
139
+ switch (attribute == null ? void 0 : attribute.display_type) {
140
+ case "number":
141
+ case "boost_number": {
142
+ if (isNumber(attribute == null ? void 0 : attribute.value))
143
+ return true;
144
+ break;
145
+ }
146
+ case "boost_percentage": {
147
+ if (isPercentage(attribute == null ? void 0 : attribute.value))
148
+ return true;
149
+ break;
150
+ }
151
+ case "date": {
152
+ if (isDate(attribute == null ? void 0 : attribute.value))
153
+ return true;
154
+ break;
155
+ }
156
+ case "string":
157
+ case void 0: {
158
+ if (isNonEmptyString(attribute == null ? void 0 : attribute.value))
159
+ return true;
160
+ break;
161
+ }
162
+ default: {
163
+ break;
164
+ }
165
+ }
166
+ return false;
167
+ };
168
+
169
+ // src/lib/rating/criteria/scoring/metadata/backgroundColor.ts
170
+ var import_crypto_nft_score_model4 = require("@xyo-network/crypto-nft-score-model");
171
+ var isHexColor = /^[0-9A-F]{6}$/i;
172
+ var scoreNftBackgroundColor = (nft) => {
173
+ var _a;
174
+ return scoreBackgroundColor((_a = nft.metadata) == null ? void 0 : _a.background_color);
175
+ };
176
+ var scoreBackgroundColor = (background_color) => {
177
+ const score = [0, 0];
178
+ if (background_color === void 0 || background_color === null)
179
+ return import_crypto_nft_score_model4.PASS;
180
+ (0, import_crypto_nft_score_model4.incrementPossible)(score);
181
+ if (typeof background_color !== "string")
182
+ return score;
183
+ (0, import_crypto_nft_score_model4.incrementTotalAndPossible)(score);
184
+ if (!background_color.toUpperCase().match(isHexColor))
185
+ return score;
186
+ return (0, import_crypto_nft_score_model4.incrementTotal)(score);
187
+ };
188
+
189
+ // src/lib/rating/criteria/scoring/metadata/description.ts
190
+ var import_crypto_nft_score_model5 = require("@xyo-network/crypto-nft-score-model");
191
+ var scoreNftDescription = (nft) => {
192
+ var _a;
193
+ return scoreDescription((_a = nft.metadata) == null ? void 0 : _a.description);
194
+ };
195
+ var scoreDescription = (description) => {
196
+ const score = [0, 1];
197
+ if (!description || typeof description !== "string")
198
+ return score;
199
+ return (0, import_crypto_nft_score_model5.incrementTotal)(score);
200
+ };
201
+
202
+ // src/lib/rating/criteria/scoring/metadata/externalUrl.ts
203
+ var import_crypto_nft_score_model6 = require("@xyo-network/crypto-nft-score-model");
204
+ var scoreNftExternalUrl = (nft) => {
205
+ var _a;
206
+ return scoreExternalUrl((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.external_url);
207
+ };
208
+ var scoreExternalUrl = (external_url) => {
209
+ const score = [0, 2];
210
+ if (external_url === void 0 || external_url === null || typeof external_url !== "string" || !isValidUrl(external_url))
211
+ return score;
212
+ (0, import_crypto_nft_score_model6.incrementTotal)(score);
213
+ if (!isSecure(external_url))
214
+ return score;
215
+ return (0, import_crypto_nft_score_model6.incrementTotal)(score);
216
+ };
217
+
218
+ // src/lib/rating/criteria/scoring/metadata/image.ts
219
+ var import_crypto_nft_score_model7 = require("@xyo-network/crypto-nft-score-model");
220
+ var MaxPossibleImageScore = 3;
221
+ var scoreNftImage = (nft) => {
222
+ var _a, _b, _c;
223
+ if (!((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.image)) {
224
+ return ((_b = nft.metadata) == null ? void 0 : _b.image_data) ? import_crypto_nft_score_model7.PASS : [0, MaxPossibleImageScore];
225
+ } else {
226
+ return scoreImage((_c = nft.metadata) == null ? void 0 : _c.image);
227
+ }
228
+ };
229
+ var scoreImage = (image) => {
230
+ const score = [0, MaxPossibleImageScore];
231
+ if (!image || typeof image !== "string" || !isValidUrl(image))
232
+ return score;
233
+ (0, import_crypto_nft_score_model7.incrementTotal)(score);
234
+ if (!isSecure(image))
235
+ return score;
236
+ (0, import_crypto_nft_score_model7.incrementTotal)(score);
237
+ if (!isWeb3(image))
238
+ return score;
239
+ (0, import_crypto_nft_score_model7.incrementTotal)(score);
240
+ return score;
241
+ };
242
+
243
+ // src/lib/rating/criteria/scoring/metadata/imageData.ts
244
+ var import_crypto_nft_score_model8 = require("@xyo-network/crypto-nft-score-model");
245
+ var import_svg_parser = require("svg-parser");
246
+ var MaxPossibleImageDataScore = 1;
247
+ var isValidImageData = (image_data) => {
248
+ if (!image_data.startsWith("<svg"))
249
+ return false;
250
+ try {
251
+ (0, import_svg_parser.parse)(image_data);
252
+ return true;
253
+ } catch (error) {
254
+ return false;
255
+ }
256
+ };
257
+ var scoreNftImageData = (nft) => {
258
+ var _a, _b, _c;
259
+ if (!((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.image_data)) {
260
+ return ((_b = nft.metadata) == null ? void 0 : _b.image) ? import_crypto_nft_score_model8.PASS : [0, MaxPossibleImageDataScore];
261
+ } else {
262
+ return scoreImageData((_c = nft.metadata) == null ? void 0 : _c.image_data);
263
+ }
264
+ };
265
+ var scoreImageData = (image_data) => {
266
+ return !image_data || typeof image_data !== "string" || !isValidImageData(image_data) ? [0, MaxPossibleImageDataScore] : [MaxPossibleImageDataScore, MaxPossibleImageDataScore];
267
+ };
268
+
269
+ // src/lib/rating/criteria/scoring/metadata/name.ts
270
+ var import_crypto_nft_score_model9 = require("@xyo-network/crypto-nft-score-model");
271
+ var scoreNftName = (nft) => {
272
+ var _a;
273
+ return scoreName((_a = nft.metadata) == null ? void 0 : _a.name);
274
+ };
275
+ var scoreName = (name) => {
276
+ const score = [0, 1];
277
+ if (!name || typeof name !== "string")
278
+ return score;
279
+ return (0, import_crypto_nft_score_model9.incrementTotal)(score);
280
+ };
281
+
282
+ // src/lib/rating/criteria/scoring/metadata/youtubeUrl.ts
283
+ var import_crypto_nft_score_model10 = require("@xyo-network/crypto-nft-score-model");
284
+ var scoreNftYoutubeUrl = (nft) => {
285
+ var _a;
286
+ return scoreYoutubeUrl((_a = nft == null ? void 0 : nft.metadata) == null ? void 0 : _a.youtube_url);
287
+ };
288
+ var scoreYoutubeUrl = (youtube_url) => {
289
+ if (youtube_url === void 0 || youtube_url === null)
290
+ return import_crypto_nft_score_model10.PASS;
291
+ const score = [0, 2];
292
+ if (typeof youtube_url !== "string" || !isValidUrl(youtube_url))
293
+ return score;
294
+ (0, import_crypto_nft_score_model10.incrementTotal)(score);
295
+ if (!isSecure(youtube_url))
296
+ return score;
297
+ return (0, import_crypto_nft_score_model10.incrementTotal)(score);
298
+ };
299
+
300
+ // src/lib/rating/criteria/scoring/supply.ts
301
+ var import_crypto_nft_score_model11 = require("@xyo-network/crypto-nft-score-model");
302
+
303
+ // src/lib/rating/criteria/scoring/lib/toBigNumber.ts
304
+ var import_bignumber = require("@xylabs/bignumber");
305
+ var toBigNumber = (value) => {
306
+ try {
307
+ return new import_bignumber.BigNumber(value);
308
+ } catch (error) {
309
+ return void 0;
310
+ }
311
+ };
312
+
313
+ // src/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.ts
314
+ var isValidPositiveBigNumber = (value) => {
315
+ const num = toBigNumber(value);
316
+ return !num || num.isNeg() ? false : true;
317
+ };
318
+
319
+ // src/lib/rating/criteria/scoring/supply.ts
320
+ var scoreSupply = (nft) => {
321
+ if (!nft.supply)
322
+ return import_crypto_nft_score_model11.FAIL;
323
+ if (typeof nft.supply !== "string")
324
+ return import_crypto_nft_score_model11.FAIL;
325
+ try {
326
+ return isValidPositiveBigNumber(nft.supply) ? import_crypto_nft_score_model11.PASS : import_crypto_nft_score_model11.FAIL;
327
+ } catch (_error) {
328
+ return import_crypto_nft_score_model11.FAIL;
329
+ }
330
+ };
331
+
332
+ // src/lib/rating/criteria/scoring/tokenId.ts
333
+ var import_crypto_nft_score_model12 = require("@xyo-network/crypto-nft-score-model");
334
+ var scoreTokenId = (nft) => {
335
+ if (!nft.tokenId)
336
+ return import_crypto_nft_score_model12.FAIL;
337
+ if (typeof nft.tokenId !== "string")
338
+ return import_crypto_nft_score_model12.FAIL;
339
+ try {
340
+ return isValidPositiveBigNumber(nft.tokenId) ? import_crypto_nft_score_model12.PASS : import_crypto_nft_score_model12.FAIL;
341
+ } catch (_error) {
342
+ return import_crypto_nft_score_model12.FAIL;
343
+ }
344
+ };
345
+
346
+ // src/lib/rating/criteria/scoring/type.ts
347
+ var import_crypto_nft_score_model13 = require("@xyo-network/crypto-nft-score-model");
348
+ var scoreType = (nft) => {
349
+ if (!nft.type)
350
+ return import_crypto_nft_score_model13.FAIL;
351
+ if (typeof nft.type !== "string")
352
+ return import_crypto_nft_score_model13.FAIL;
353
+ const type = nft.type.toUpperCase();
354
+ if (type !== "ERC721" && type !== "ERC1155")
355
+ return import_crypto_nft_score_model13.FAIL;
356
+ return import_crypto_nft_score_model13.PASS;
357
+ };
358
+
359
+ // src/lib/rating/criteria/scoringCriteria.ts
360
+ var attributesScoringCriteria = {
361
+ Attributes: { score: evaluateNftAttributes, weight: 1 }
362
+ };
363
+ var metadataScoringCriteria = {
364
+ "Animation URL": { score: scoreNftAnimationUrl, weight: 1 },
365
+ "Background Color": { score: scoreNftBackgroundColor, weight: 1 },
366
+ Description: { score: scoreNftDescription, weight: 1 },
367
+ "External Url": { score: scoreNftExternalUrl, weight: 1 },
368
+ Image: { score: scoreNftImage, weight: 1 },
369
+ "Image Data": { score: scoreNftImageData, weight: 1 },
370
+ Name: { score: scoreNftName, weight: 1 },
371
+ "YouTube URL": { score: scoreNftYoutubeUrl, weight: 1 },
372
+ ...attributesScoringCriteria
373
+ };
374
+ var scoringCriteria = {
375
+ "Contract Address": { score: scoreContractAddress, weight: 1 },
376
+ Supply: { score: scoreSupply, weight: 1 },
377
+ "Token Id": { score: scoreTokenId, weight: 1 },
378
+ Type: { score: scoreType, weight: 1 },
379
+ ...metadataScoringCriteria
380
+ };
381
+
382
+ // src/lib/rating/analyzeNft.ts
383
+ var analyzeNft = async (nft) => {
384
+ const result = Object.fromEntries(
385
+ await Promise.all(
386
+ Object.entries(scoringCriteria).map(async ([key, { score, weight }]) => {
387
+ const rawScore = await score(nft);
388
+ const weighted = rawScore.map((v) => v * weight);
389
+ return [key, weighted];
390
+ })
391
+ )
392
+ );
393
+ return result;
394
+ };
395
+ // Annotate the CommonJS export names for ESM import in node:
396
+ 0 && (module.exports = {
397
+ analyzeNft
398
+ });
399
+ //# sourceMappingURL=index.js.map