@xyo-network/crypto-nft-diviner-score-plugin 2.75.14 → 2.75.16

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 (249) hide show
  1. package/dist/browser/Diviner.d.cts +1 -1
  2. package/dist/browser/Diviner.d.cts.map +1 -1
  3. package/dist/browser/Diviner.d.mts +1 -1
  4. package/dist/browser/Diviner.d.mts.map +1 -1
  5. package/dist/browser/Diviner.d.ts +1 -1
  6. package/dist/browser/Diviner.d.ts.map +1 -1
  7. package/dist/browser/Plugin.d.cts +2 -2
  8. package/dist/browser/Plugin.d.mts +2 -2
  9. package/dist/browser/Plugin.d.ts +2 -2
  10. package/dist/browser/index.cjs.map +1 -1
  11. package/dist/browser/index.js.map +1 -1
  12. package/dist/docs.json +789 -392
  13. package/dist/node/Diviner.d.cts +1 -1
  14. package/dist/node/Diviner.d.cts.map +1 -1
  15. package/dist/node/Diviner.d.mts +1 -1
  16. package/dist/node/Diviner.d.mts.map +1 -1
  17. package/dist/node/Diviner.d.ts +1 -1
  18. package/dist/node/Diviner.d.ts.map +1 -1
  19. package/dist/node/Plugin.d.cts +2 -2
  20. package/dist/node/Plugin.d.mts +2 -2
  21. package/dist/node/Plugin.d.ts +2 -2
  22. package/dist/node/index.js.map +1 -1
  23. package/dist/node/index.mjs.map +1 -1
  24. package/package.json +16 -16
  25. package/src/Diviner.ts +1 -1
  26. package/dist/browser/Diviner.cjs +0 -407
  27. package/dist/browser/Diviner.cjs.map +0 -1
  28. package/dist/browser/Diviner.js +0 -390
  29. package/dist/browser/Diviner.js.map +0 -1
  30. package/dist/browser/Plugin.cjs +0 -421
  31. package/dist/browser/Plugin.cjs.map +0 -1
  32. package/dist/browser/Plugin.js +0 -404
  33. package/dist/browser/Plugin.js.map +0 -1
  34. package/dist/browser/lib/index.cjs +0 -378
  35. package/dist/browser/lib/index.cjs.map +0 -1
  36. package/dist/browser/lib/index.js +0 -355
  37. package/dist/browser/lib/index.js.map +0 -1
  38. package/dist/browser/lib/rating/analyzeNft.cjs +0 -378
  39. package/dist/browser/lib/rating/analyzeNft.cjs.map +0 -1
  40. package/dist/browser/lib/rating/analyzeNft.js +0 -355
  41. package/dist/browser/lib/rating/analyzeNft.js.map +0 -1
  42. package/dist/browser/lib/rating/criteria/index.cjs +0 -364
  43. package/dist/browser/lib/rating/criteria/index.cjs.map +0 -1
  44. package/dist/browser/lib/rating/criteria/index.js +0 -341
  45. package/dist/browser/lib/rating/criteria/index.js.map +0 -1
  46. package/dist/browser/lib/rating/criteria/scoring/contract.cjs +0 -37
  47. package/dist/browser/lib/rating/criteria/scoring/contract.cjs.map +0 -1
  48. package/dist/browser/lib/rating/criteria/scoring/contract.js +0 -16
  49. package/dist/browser/lib/rating/criteria/scoring/contract.js.map +0 -1
  50. package/dist/browser/lib/rating/criteria/scoring/index.cjs +0 -363
  51. package/dist/browser/lib/rating/criteria/scoring/index.cjs.map +0 -1
  52. package/dist/browser/lib/rating/criteria/scoring/index.js +0 -340
  53. package/dist/browser/lib/rating/criteria/scoring/index.js.map +0 -1
  54. package/dist/browser/lib/rating/criteria/scoring/lib/index.cjs +0 -43
  55. package/dist/browser/lib/rating/criteria/scoring/lib/index.cjs.map +0 -1
  56. package/dist/browser/lib/rating/criteria/scoring/lib/index.js +0 -20
  57. package/dist/browser/lib/rating/criteria/scoring/lib/index.js.map +0 -1
  58. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.cjs +0 -42
  59. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.cjs.map +0 -1
  60. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +0 -19
  61. package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +0 -1
  62. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.cjs +0 -34
  63. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.cjs.map +0 -1
  64. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.js +0 -13
  65. package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.js.map +0 -1
  66. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.cjs +0 -67
  67. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.cjs.map +0 -1
  68. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.js +0 -46
  69. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.js.map +0 -1
  70. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.cjs +0 -103
  71. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.cjs.map +0 -1
  72. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +0 -82
  73. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +0 -1
  74. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.cjs +0 -105
  75. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.cjs.map +0 -1
  76. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.js +0 -82
  77. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.js.map +0 -1
  78. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.cjs +0 -44
  79. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.cjs.map +0 -1
  80. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.js +0 -23
  81. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +0 -1
  82. package/dist/browser/lib/rating/criteria/scoring/metadata/description.cjs +0 -37
  83. package/dist/browser/lib/rating/criteria/scoring/metadata/description.cjs.map +0 -1
  84. package/dist/browser/lib/rating/criteria/scoring/metadata/description.js +0 -16
  85. package/dist/browser/lib/rating/criteria/scoring/metadata/description.js.map +0 -1
  86. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.cjs +0 -58
  87. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.cjs.map +0 -1
  88. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.js +0 -37
  89. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.js.map +0 -1
  90. package/dist/browser/lib/rating/criteria/scoring/metadata/image.cjs +0 -67
  91. package/dist/browser/lib/rating/criteria/scoring/metadata/image.cjs.map +0 -1
  92. package/dist/browser/lib/rating/criteria/scoring/metadata/image.js +0 -46
  93. package/dist/browser/lib/rating/criteria/scoring/metadata/image.js.map +0 -1
  94. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.cjs +0 -50
  95. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.cjs.map +0 -1
  96. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.js +0 -29
  97. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.js.map +0 -1
  98. package/dist/browser/lib/rating/criteria/scoring/metadata/index.cjs +0 -287
  99. package/dist/browser/lib/rating/criteria/scoring/metadata/index.cjs.map +0 -1
  100. package/dist/browser/lib/rating/criteria/scoring/metadata/index.js +0 -264
  101. package/dist/browser/lib/rating/criteria/scoring/metadata/index.js.map +0 -1
  102. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.cjs +0 -48
  103. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.cjs.map +0 -1
  104. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.js +0 -25
  105. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.js.map +0 -1
  106. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.cjs +0 -46
  107. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.cjs.map +0 -1
  108. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +0 -25
  109. package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +0 -1
  110. package/dist/browser/lib/rating/criteria/scoring/metadata/name.cjs +0 -37
  111. package/dist/browser/lib/rating/criteria/scoring/metadata/name.cjs.map +0 -1
  112. package/dist/browser/lib/rating/criteria/scoring/metadata/name.js +0 -16
  113. package/dist/browser/lib/rating/criteria/scoring/metadata/name.js.map +0 -1
  114. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.cjs +0 -60
  115. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.cjs.map +0 -1
  116. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.js +0 -39
  117. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +0 -1
  118. package/dist/browser/lib/rating/criteria/scoring/supply.cjs +0 -56
  119. package/dist/browser/lib/rating/criteria/scoring/supply.cjs.map +0 -1
  120. package/dist/browser/lib/rating/criteria/scoring/supply.js +0 -35
  121. package/dist/browser/lib/rating/criteria/scoring/supply.js.map +0 -1
  122. package/dist/browser/lib/rating/criteria/scoring/tokenId.cjs +0 -56
  123. package/dist/browser/lib/rating/criteria/scoring/tokenId.cjs.map +0 -1
  124. package/dist/browser/lib/rating/criteria/scoring/tokenId.js +0 -35
  125. package/dist/browser/lib/rating/criteria/scoring/tokenId.js.map +0 -1
  126. package/dist/browser/lib/rating/criteria/scoring/type.cjs +0 -37
  127. package/dist/browser/lib/rating/criteria/scoring/type.cjs.map +0 -1
  128. package/dist/browser/lib/rating/criteria/scoring/type.js +0 -16
  129. package/dist/browser/lib/rating/criteria/scoring/type.js.map +0 -1
  130. package/dist/browser/lib/rating/criteria/scoringCriteria.cjs +0 -364
  131. package/dist/browser/lib/rating/criteria/scoringCriteria.cjs.map +0 -1
  132. package/dist/browser/lib/rating/criteria/scoringCriteria.js +0 -341
  133. package/dist/browser/lib/rating/criteria/scoringCriteria.js.map +0 -1
  134. package/dist/browser/lib/rating/index.cjs +0 -378
  135. package/dist/browser/lib/rating/index.cjs.map +0 -1
  136. package/dist/browser/lib/rating/index.js +0 -355
  137. package/dist/browser/lib/rating/index.js.map +0 -1
  138. package/dist/node/Diviner.js +0 -429
  139. package/dist/node/Diviner.js.map +0 -1
  140. package/dist/node/Diviner.mjs +0 -407
  141. package/dist/node/Diviner.mjs.map +0 -1
  142. package/dist/node/Plugin.js +0 -442
  143. package/dist/node/Plugin.js.map +0 -1
  144. package/dist/node/Plugin.mjs +0 -421
  145. package/dist/node/Plugin.mjs.map +0 -1
  146. package/dist/node/lib/index.js +0 -399
  147. package/dist/node/lib/index.js.map +0 -1
  148. package/dist/node/lib/index.mjs +0 -372
  149. package/dist/node/lib/index.mjs.map +0 -1
  150. package/dist/node/lib/rating/analyzeNft.js +0 -399
  151. package/dist/node/lib/rating/analyzeNft.js.map +0 -1
  152. package/dist/node/lib/rating/analyzeNft.mjs +0 -372
  153. package/dist/node/lib/rating/analyzeNft.mjs.map +0 -1
  154. package/dist/node/lib/rating/criteria/index.js +0 -385
  155. package/dist/node/lib/rating/criteria/index.js.map +0 -1
  156. package/dist/node/lib/rating/criteria/index.mjs +0 -358
  157. package/dist/node/lib/rating/criteria/index.mjs.map +0 -1
  158. package/dist/node/lib/rating/criteria/scoring/contract.js +0 -41
  159. package/dist/node/lib/rating/criteria/scoring/contract.js.map +0 -1
  160. package/dist/node/lib/rating/criteria/scoring/contract.mjs +0 -16
  161. package/dist/node/lib/rating/criteria/scoring/contract.mjs.map +0 -1
  162. package/dist/node/lib/rating/criteria/scoring/index.js +0 -406
  163. package/dist/node/lib/rating/criteria/scoring/index.js.map +0 -1
  164. package/dist/node/lib/rating/criteria/scoring/index.mjs +0 -357
  165. package/dist/node/lib/rating/criteria/scoring/index.mjs.map +0 -1
  166. package/dist/node/lib/rating/criteria/scoring/lib/index.js +0 -48
  167. package/dist/node/lib/rating/criteria/scoring/lib/index.js.map +0 -1
  168. package/dist/node/lib/rating/criteria/scoring/lib/index.mjs +0 -20
  169. package/dist/node/lib/rating/criteria/scoring/lib/index.mjs.map +0 -1
  170. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +0 -46
  171. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +0 -1
  172. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.mjs +0 -19
  173. package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.mjs.map +0 -1
  174. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.js +0 -38
  175. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.js.map +0 -1
  176. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.mjs +0 -13
  177. package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.mjs.map +0 -1
  178. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.js +0 -79
  179. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.js.map +0 -1
  180. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.mjs +0 -53
  181. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.mjs.map +0 -1
  182. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +0 -112
  183. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +0 -1
  184. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.mjs +0 -85
  185. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.mjs.map +0 -1
  186. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.js +0 -114
  187. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.js.map +0 -1
  188. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.mjs +0 -85
  189. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.mjs.map +0 -1
  190. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.js +0 -50
  191. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +0 -1
  192. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.mjs +0 -24
  193. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.mjs.map +0 -1
  194. package/dist/node/lib/rating/criteria/scoring/metadata/description.js +0 -43
  195. package/dist/node/lib/rating/criteria/scoring/metadata/description.js.map +0 -1
  196. package/dist/node/lib/rating/criteria/scoring/metadata/description.mjs +0 -17
  197. package/dist/node/lib/rating/criteria/scoring/metadata/description.mjs.map +0 -1
  198. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.js +0 -70
  199. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.js.map +0 -1
  200. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.mjs +0 -44
  201. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.mjs.map +0 -1
  202. package/dist/node/lib/rating/criteria/scoring/metadata/image.js +0 -79
  203. package/dist/node/lib/rating/criteria/scoring/metadata/image.js.map +0 -1
  204. package/dist/node/lib/rating/criteria/scoring/metadata/image.mjs +0 -53
  205. package/dist/node/lib/rating/criteria/scoring/metadata/image.mjs.map +0 -1
  206. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.js +0 -56
  207. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.js.map +0 -1
  208. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.mjs +0 -30
  209. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.mjs.map +0 -1
  210. package/dist/node/lib/rating/criteria/scoring/metadata/index.js +0 -326
  211. package/dist/node/lib/rating/criteria/scoring/metadata/index.js.map +0 -1
  212. package/dist/node/lib/rating/criteria/scoring/metadata/index.mjs +0 -281
  213. package/dist/node/lib/rating/criteria/scoring/metadata/index.mjs.map +0 -1
  214. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.js +0 -63
  215. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.js.map +0 -1
  216. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.mjs +0 -31
  217. package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.mjs.map +0 -1
  218. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +0 -61
  219. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +0 -1
  220. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.mjs +0 -31
  221. package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.mjs.map +0 -1
  222. package/dist/node/lib/rating/criteria/scoring/metadata/name.js +0 -43
  223. package/dist/node/lib/rating/criteria/scoring/metadata/name.js.map +0 -1
  224. package/dist/node/lib/rating/criteria/scoring/metadata/name.mjs +0 -17
  225. package/dist/node/lib/rating/criteria/scoring/metadata/name.mjs.map +0 -1
  226. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.js +0 -72
  227. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +0 -1
  228. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.mjs +0 -46
  229. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.mjs.map +0 -1
  230. package/dist/node/lib/rating/criteria/scoring/supply.js +0 -60
  231. package/dist/node/lib/rating/criteria/scoring/supply.js.map +0 -1
  232. package/dist/node/lib/rating/criteria/scoring/supply.mjs +0 -35
  233. package/dist/node/lib/rating/criteria/scoring/supply.mjs.map +0 -1
  234. package/dist/node/lib/rating/criteria/scoring/tokenId.js +0 -60
  235. package/dist/node/lib/rating/criteria/scoring/tokenId.js.map +0 -1
  236. package/dist/node/lib/rating/criteria/scoring/tokenId.mjs +0 -35
  237. package/dist/node/lib/rating/criteria/scoring/tokenId.mjs.map +0 -1
  238. package/dist/node/lib/rating/criteria/scoring/type.js +0 -41
  239. package/dist/node/lib/rating/criteria/scoring/type.js.map +0 -1
  240. package/dist/node/lib/rating/criteria/scoring/type.mjs +0 -16
  241. package/dist/node/lib/rating/criteria/scoring/type.mjs.map +0 -1
  242. package/dist/node/lib/rating/criteria/scoringCriteria.js +0 -385
  243. package/dist/node/lib/rating/criteria/scoringCriteria.js.map +0 -1
  244. package/dist/node/lib/rating/criteria/scoringCriteria.mjs +0 -358
  245. package/dist/node/lib/rating/criteria/scoringCriteria.mjs.map +0 -1
  246. package/dist/node/lib/rating/index.js +0 -399
  247. package/dist/node/lib/rating/index.js.map +0 -1
  248. package/dist/node/lib/rating/index.mjs +0 -372
  249. package/dist/node/lib/rating/index.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/animationUrl.ts","../../../../../../../src/lib/rating/criteria/scoring/metadata/lib/urlHelpers.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oCAAgG;;;ACDhG,iBAAoB;AAEb,IAAM,gBAAgB,CAAC,SAAS,KAAK;AAErC,IAAM,QAAQ,CAAC,QAAyC;AAC7D,MAAI,CAAC;AAAK,WAAO;AACjB,MAAI;AACF,WAAO,IAAI,eAAI,GAAG;AAAA,EACpB,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEO,IAAM,aAAa,CAAC,QAAiC,MAAM,GAAG,MAAM;AACpE,IAAM,SAAS,CAAC,QAAiC,cAAc,KAAK,CAAC,aAAa,aAAa,MAAM,GAAG,GAAG,QAAQ;AAEnH,IAAM,WAAW,CAAC,QAAiC,OAAO,GAAG,KAAK,MAAM,GAAG,GAAG,aAAa;;;ADX3F,IAAM,uBAAuB,CAAC,QAA2D;AAC9F,SAAO,kBAAkB,IAAI,UAAU,aAAa;AACtD;AAEO,IAAM,oBAAoB,CAAC,kBAAwC;AACxE,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,MAAI,kBAAkB,UAAa,kBAAkB;AAAM,WAAO;AAClE,uDAAkB,KAAK;AACvB,MAAI,OAAO,kBAAkB;AAAU,WAAO;AAC9C,+DAA0B,KAAK;AAC/B,MAAI,CAAC,WAAW,aAAa;AAAG,WAAO;AACvC,+DAA0B,KAAK;AAC/B,MAAI,CAAC,SAAS,aAAa;AAAG,WAAO;AACrC,+DAA0B,KAAK;AAC/B,MAAI,CAAC,OAAO,aAAa;AAAG,WAAO;AACnC,aAAO,8CAAe,KAAK;AAC7B;","names":[]}
@@ -1,46 +0,0 @@
1
- // src/lib/rating/criteria/scoring/metadata/animationUrl.ts
2
- import { incrementPossible, incrementTotal, incrementTotalAndPossible, PASS } from "@xyo-network/crypto-nft-score-model";
3
-
4
- // src/lib/rating/criteria/scoring/metadata/lib/urlHelpers.ts
5
- import { URL } from "@xylabs/url";
6
- var web3Protocols = ["ipfs:", "ar:"];
7
- var toUrl = (url) => {
8
- if (!url)
9
- return void 0;
10
- try {
11
- return new URL(url);
12
- } catch (e) {
13
- return void 0;
14
- }
15
- };
16
- var isValidUrl = (url) => toUrl(url) !== void 0;
17
- var isWeb3 = (url) => web3Protocols.some((protocol) => protocol === toUrl(url)?.protocol);
18
- var isSecure = (url) => isWeb3(url) || toUrl(url)?.protocol === "https:";
19
-
20
- // src/lib/rating/criteria/scoring/metadata/animationUrl.ts
21
- var scoreNftAnimationUrl = (nft) => {
22
- return scoreAnimationUrl(nft.metadata?.animation_url);
23
- };
24
- var scoreAnimationUrl = (animation_url) => {
25
- const score = [0, 0];
26
- if (animation_url === void 0 || animation_url === null)
27
- return PASS;
28
- incrementPossible(score);
29
- if (typeof animation_url !== "string")
30
- return score;
31
- incrementTotalAndPossible(score);
32
- if (!isValidUrl(animation_url))
33
- return score;
34
- incrementTotalAndPossible(score);
35
- if (!isSecure(animation_url))
36
- return score;
37
- incrementTotalAndPossible(score);
38
- if (!isWeb3(animation_url))
39
- return score;
40
- return incrementTotal(score);
41
- };
42
- export {
43
- scoreAnimationUrl,
44
- scoreNftAnimationUrl
45
- };
46
- //# sourceMappingURL=animationUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/animationUrl.ts","../../../../../../../src/lib/rating/criteria/scoring/metadata/lib/urlHelpers.ts"],"sourcesContent":["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"],"mappings":";AACA,SAAS,mBAAmB,gBAAgB,2BAA2B,YAAyB;;;ACDhG,SAAS,WAAW;AAEb,IAAM,gBAAgB,CAAC,SAAS,KAAK;AAErC,IAAM,QAAQ,CAAC,QAAyC;AAC7D,MAAI,CAAC;AAAK,WAAO;AACjB,MAAI;AACF,WAAO,IAAI,IAAI,GAAG;AAAA,EACpB,SAAS,GAAG;AACV,WAAO;AAAA,EACT;AACF;AAEO,IAAM,aAAa,CAAC,QAAiC,MAAM,GAAG,MAAM;AACpE,IAAM,SAAS,CAAC,QAAiC,cAAc,KAAK,CAAC,aAAa,aAAa,MAAM,GAAG,GAAG,QAAQ;AAEnH,IAAM,WAAW,CAAC,QAAiC,OAAO,GAAG,KAAK,MAAM,GAAG,GAAG,aAAa;;;ADX3F,IAAM,uBAAuB,CAAC,QAA2D;AAC9F,SAAO,kBAAkB,IAAI,UAAU,aAAa;AACtD;AAEO,IAAM,oBAAoB,CAAC,kBAAwC;AACxE,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,MAAI,kBAAkB,UAAa,kBAAkB;AAAM,WAAO;AAClE,oBAAkB,KAAK;AACvB,MAAI,OAAO,kBAAkB;AAAU,WAAO;AAC9C,4BAA0B,KAAK;AAC/B,MAAI,CAAC,WAAW,aAAa;AAAG,WAAO;AACvC,4BAA0B,KAAK;AAC/B,MAAI,CAAC,SAAS,aAAa;AAAG,WAAO;AACrC,4BAA0B,KAAK;AAC/B,MAAI,CAAC,OAAO,aAAa;AAAG,WAAO;AACnC,SAAO,eAAe,KAAK;AAC7B;","names":[]}
@@ -1,103 +0,0 @@
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/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts
21
- var evaluateAttributes_exports = {};
22
- __export(evaluateAttributes_exports, {
23
- evaluateAttribute: () => evaluateAttribute,
24
- evaluateAttributes: () => evaluateAttributes,
25
- evaluateNftAttributes: () => evaluateNftAttributes
26
- });
27
- module.exports = __toCommonJS(evaluateAttributes_exports);
28
- var import_crypto_nft_score_model = require("@xyo-network/crypto-nft-score-model");
29
- var isDate = (value) => {
30
- if (isNumber(value)) {
31
- try {
32
- new Date(value);
33
- return true;
34
- } catch (error) {
35
- return false;
36
- }
37
- }
38
- return false;
39
- };
40
- var isNumber = (value) => typeof value === "number";
41
- var isPercentage = (value) => isNumber(value) && value >= 0 && value <= 100;
42
- var isNonEmptyString = (value) => typeof value === "string" && value.length > 0;
43
- var isNonEmptyStringOrNumber = (value) => value === "number" || isNonEmptyString(value);
44
- var evaluateNftAttributes = (nft) => !nft?.metadata?.attributes ? [0, 1] : evaluateAttributes(nft?.metadata?.attributes);
45
- var evaluateAttributes = (attributes) => {
46
- if (!attributes || !Array.isArray(attributes) || attributes.length === 0)
47
- return [0, 1];
48
- const score = [0, 0];
49
- for (const attribute of attributes) {
50
- const [attributeTotal, attributePossible] = evaluateAttribute(attribute);
51
- (0, import_crypto_nft_score_model.incrementTotalAndPossible)(score, attributeTotal, attributePossible);
52
- }
53
- return [1, 1];
54
- };
55
- var evaluateAttribute = (attribute) => {
56
- const score = [0, 1];
57
- const max_value = attribute?.max_value;
58
- const trait_type = attribute?.trait_type;
59
- const value = attribute?.value;
60
- if (!attribute || typeof attribute !== "object" || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value))
61
- return score;
62
- (0, import_crypto_nft_score_model.incrementTotal)(score);
63
- (0, import_crypto_nft_score_model.incrementPossible)(score);
64
- if (validDisplayType(attribute))
65
- (0, import_crypto_nft_score_model.incrementTotal)(score);
66
- if (max_value !== void 0) {
67
- (0, import_crypto_nft_score_model.incrementPossible)(score);
68
- if (isNumber(max_value) && isNumber(value) && value <= max_value)
69
- (0, import_crypto_nft_score_model.incrementTotal)(score);
70
- }
71
- return score;
72
- };
73
- var validDisplayType = (attribute) => {
74
- switch (attribute?.display_type) {
75
- case "number":
76
- case "boost_number": {
77
- if (isNumber(attribute?.value))
78
- return true;
79
- break;
80
- }
81
- case "boost_percentage": {
82
- if (isPercentage(attribute?.value))
83
- return true;
84
- break;
85
- }
86
- case "date": {
87
- if (isDate(attribute?.value))
88
- return true;
89
- break;
90
- }
91
- case "string":
92
- case void 0: {
93
- if (isNonEmptyString(attribute?.value))
94
- return true;
95
- break;
96
- }
97
- default: {
98
- break;
99
- }
100
- }
101
- return false;
102
- };
103
- //# sourceMappingURL=evaluateAttributes.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oCAA0F;AAE1F,IAAM,SAAS,CAAC,UAAkC;AAChD,MAAI,SAAS,KAAK,GAAG;AACnB,QAAI;AACF,UAAI,KAAK,KAAK;AACd,aAAO;AAAA,IACT,SAAS,OAAO;AACd,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,WAAW,CAAC,UAAoC,OAAO,UAAU;AAEvE,IAAM,eAAe,CAAC,UAA4B,SAAS,KAAK,KAAK,SAAS,KAAK,SAAS;AAE5F,IAAM,mBAAmB,CAAC,UAAoC,OAAO,UAAU,YAAY,MAAM,SAAS;AAE1G,IAAM,2BAA2B,CAAC,UAA6C,UAAU,YAAY,iBAAiB,KAAK;AAEpH,IAAM,wBAAwB,CAAC,QACpC,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,CAAC,IAAI,mBAAmB,KAAK,UAAU,UAAU;AAE7E,IAAM,qBAAqB,CAAC,eAA8E;AAC/G,MAAI,CAAC,cAAc,CAAC,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW;AAAG,WAAO,CAAC,GAAG,CAAC;AACtF,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,aAAW,aAAa,YAAY;AAClC,UAAM,CAAC,gBAAgB,iBAAiB,IAAI,kBAAkB,SAAS;AACvE,iEAA0B,OAAO,gBAAgB,iBAAiB;AAAA,EACpE;AACA,SAAO,CAAC,GAAG,CAAC;AACd;AAEO,IAAM,oBAAoB,CAAC,cAAgD;AAChF,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,QAAM,YAAY,WAAW;AAC7B,QAAM,aAAa,WAAW;AAC9B,QAAM,QAAQ,WAAW;AAGzB,MAAI,CAAC,aAAa,OAAO,cAAc,YAAY,CAAC,iBAAiB,UAAU,KAAK,CAAC,yBAAyB,KAAK;AAAG,WAAO;AAC7H,oDAAe,KAAK;AAGpB,uDAAkB,KAAK;AACvB,MAAI,iBAAiB,SAAS;AAAG,sDAAe,KAAK;AAGrD,MAAI,cAAc,QAAW;AAC3B,yDAAkB,KAAK;AACvB,QAAI,SAAS,SAAS,KAAK,SAAS,KAAK,KAAK,SAAS;AAAW,wDAAe,KAAK;AAAA,EACxF;AAEA,SAAO;AACT;AAEA,IAAM,mBAAmB,CAAC,cAA4C;AACpE,UAAQ,WAAW,cAAc;AAAA,IAC/B,KAAK;AAAA,IACL,KAAK,gBAAgB;AACnB,UAAI,SAAS,WAAW,KAAK;AAAG,eAAO;AACvC;AAAA,IACF;AAAA,IACA,KAAK,oBAAoB;AACvB,UAAI,aAAa,WAAW,KAAK;AAAG,eAAO;AAC3C;AAAA,IACF;AAAA,IACA,KAAK,QAAQ;AACX,UAAI,OAAO,WAAW,KAAK;AAAG,eAAO;AACrC;AAAA,IACF;AAAA,IACA,KAAK;AAAA,IACL,KAAK,QAAW;AACd,UAAI,iBAAiB,WAAW,KAAK;AAAG,eAAO;AAC/C;AAAA,IACF;AAAA,IACA,SAAS;AACP;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
@@ -1,82 +0,0 @@
1
- // src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts
2
- import { incrementPossible, incrementTotal, incrementTotalAndPossible } from "@xyo-network/crypto-nft-score-model";
3
- var isDate = (value) => {
4
- if (isNumber(value)) {
5
- try {
6
- new Date(value);
7
- return true;
8
- } catch (error) {
9
- return false;
10
- }
11
- }
12
- return false;
13
- };
14
- var isNumber = (value) => typeof value === "number";
15
- var isPercentage = (value) => isNumber(value) && value >= 0 && value <= 100;
16
- var isNonEmptyString = (value) => typeof value === "string" && value.length > 0;
17
- var isNonEmptyStringOrNumber = (value) => value === "number" || isNonEmptyString(value);
18
- var evaluateNftAttributes = (nft) => !nft?.metadata?.attributes ? [0, 1] : evaluateAttributes(nft?.metadata?.attributes);
19
- var evaluateAttributes = (attributes) => {
20
- if (!attributes || !Array.isArray(attributes) || attributes.length === 0)
21
- return [0, 1];
22
- const score = [0, 0];
23
- for (const attribute of attributes) {
24
- const [attributeTotal, attributePossible] = evaluateAttribute(attribute);
25
- incrementTotalAndPossible(score, attributeTotal, attributePossible);
26
- }
27
- return [1, 1];
28
- };
29
- var evaluateAttribute = (attribute) => {
30
- const score = [0, 1];
31
- const max_value = attribute?.max_value;
32
- const trait_type = attribute?.trait_type;
33
- const value = attribute?.value;
34
- if (!attribute || typeof attribute !== "object" || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value))
35
- return score;
36
- incrementTotal(score);
37
- incrementPossible(score);
38
- if (validDisplayType(attribute))
39
- incrementTotal(score);
40
- if (max_value !== void 0) {
41
- incrementPossible(score);
42
- if (isNumber(max_value) && isNumber(value) && value <= max_value)
43
- incrementTotal(score);
44
- }
45
- return score;
46
- };
47
- var validDisplayType = (attribute) => {
48
- switch (attribute?.display_type) {
49
- case "number":
50
- case "boost_number": {
51
- if (isNumber(attribute?.value))
52
- return true;
53
- break;
54
- }
55
- case "boost_percentage": {
56
- if (isPercentage(attribute?.value))
57
- return true;
58
- break;
59
- }
60
- case "date": {
61
- if (isDate(attribute?.value))
62
- return true;
63
- break;
64
- }
65
- case "string":
66
- case void 0: {
67
- if (isNonEmptyString(attribute?.value))
68
- return true;
69
- break;
70
- }
71
- default: {
72
- break;
73
- }
74
- }
75
- return false;
76
- };
77
- export {
78
- evaluateAttribute,
79
- evaluateAttributes,
80
- evaluateNftAttributes
81
- };
82
- //# sourceMappingURL=evaluateAttributes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts"],"sourcesContent":["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"],"mappings":";AACA,SAAS,mBAAmB,gBAAgB,iCAA8C;AAE1F,IAAM,SAAS,CAAC,UAAkC;AAChD,MAAI,SAAS,KAAK,GAAG;AACnB,QAAI;AACF,UAAI,KAAK,KAAK;AACd,aAAO;AAAA,IACT,SAAS,OAAO;AACd,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,WAAW,CAAC,UAAoC,OAAO,UAAU;AAEvE,IAAM,eAAe,CAAC,UAA4B,SAAS,KAAK,KAAK,SAAS,KAAK,SAAS;AAE5F,IAAM,mBAAmB,CAAC,UAAoC,OAAO,UAAU,YAAY,MAAM,SAAS;AAE1G,IAAM,2BAA2B,CAAC,UAA6C,UAAU,YAAY,iBAAiB,KAAK;AAEpH,IAAM,wBAAwB,CAAC,QACpC,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,CAAC,IAAI,mBAAmB,KAAK,UAAU,UAAU;AAE7E,IAAM,qBAAqB,CAAC,eAA8E;AAC/G,MAAI,CAAC,cAAc,CAAC,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW;AAAG,WAAO,CAAC,GAAG,CAAC;AACtF,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,aAAW,aAAa,YAAY;AAClC,UAAM,CAAC,gBAAgB,iBAAiB,IAAI,kBAAkB,SAAS;AACvE,8BAA0B,OAAO,gBAAgB,iBAAiB;AAAA,EACpE;AACA,SAAO,CAAC,GAAG,CAAC;AACd;AAEO,IAAM,oBAAoB,CAAC,cAAgD;AAChF,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,QAAM,YAAY,WAAW;AAC7B,QAAM,aAAa,WAAW;AAC9B,QAAM,QAAQ,WAAW;AAGzB,MAAI,CAAC,aAAa,OAAO,cAAc,YAAY,CAAC,iBAAiB,UAAU,KAAK,CAAC,yBAAyB,KAAK;AAAG,WAAO;AAC7H,iBAAe,KAAK;AAGpB,oBAAkB,KAAK;AACvB,MAAI,iBAAiB,SAAS;AAAG,mBAAe,KAAK;AAGrD,MAAI,cAAc,QAAW;AAC3B,sBAAkB,KAAK;AACvB,QAAI,SAAS,SAAS,KAAK,SAAS,KAAK,KAAK,SAAS;AAAW,qBAAe,KAAK;AAAA,EACxF;AAEA,SAAO;AACT;AAEA,IAAM,mBAAmB,CAAC,cAA4C;AACpE,UAAQ,WAAW,cAAc;AAAA,IAC/B,KAAK;AAAA,IACL,KAAK,gBAAgB;AACnB,UAAI,SAAS,WAAW,KAAK;AAAG,eAAO;AACvC;AAAA,IACF;AAAA,IACA,KAAK,oBAAoB;AACvB,UAAI,aAAa,WAAW,KAAK;AAAG,eAAO;AAC3C;AAAA,IACF;AAAA,IACA,KAAK,QAAQ;AACX,UAAI,OAAO,WAAW,KAAK;AAAG,eAAO;AACrC;AAAA,IACF;AAAA,IACA,KAAK;AAAA,IACL,KAAK,QAAW;AACd,UAAI,iBAAiB,WAAW,KAAK;AAAG,eAAO;AAC/C;AAAA,IACF;AAAA,IACA,SAAS;AACP;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
@@ -1,105 +0,0 @@
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/rating/criteria/scoring/metadata/attributes/index.ts
21
- var attributes_exports = {};
22
- __export(attributes_exports, {
23
- evaluateAttribute: () => evaluateAttribute,
24
- evaluateAttributes: () => evaluateAttributes,
25
- evaluateNftAttributes: () => evaluateNftAttributes
26
- });
27
- module.exports = __toCommonJS(attributes_exports);
28
-
29
- // src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts
30
- var import_crypto_nft_score_model = require("@xyo-network/crypto-nft-score-model");
31
- var isDate = (value) => {
32
- if (isNumber(value)) {
33
- try {
34
- new Date(value);
35
- return true;
36
- } catch (error) {
37
- return false;
38
- }
39
- }
40
- return false;
41
- };
42
- var isNumber = (value) => typeof value === "number";
43
- var isPercentage = (value) => isNumber(value) && value >= 0 && value <= 100;
44
- var isNonEmptyString = (value) => typeof value === "string" && value.length > 0;
45
- var isNonEmptyStringOrNumber = (value) => value === "number" || isNonEmptyString(value);
46
- var evaluateNftAttributes = (nft) => !nft?.metadata?.attributes ? [0, 1] : evaluateAttributes(nft?.metadata?.attributes);
47
- var evaluateAttributes = (attributes) => {
48
- if (!attributes || !Array.isArray(attributes) || attributes.length === 0)
49
- return [0, 1];
50
- const score = [0, 0];
51
- for (const attribute of attributes) {
52
- const [attributeTotal, attributePossible] = evaluateAttribute(attribute);
53
- (0, import_crypto_nft_score_model.incrementTotalAndPossible)(score, attributeTotal, attributePossible);
54
- }
55
- return [1, 1];
56
- };
57
- var evaluateAttribute = (attribute) => {
58
- const score = [0, 1];
59
- const max_value = attribute?.max_value;
60
- const trait_type = attribute?.trait_type;
61
- const value = attribute?.value;
62
- if (!attribute || typeof attribute !== "object" || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value))
63
- return score;
64
- (0, import_crypto_nft_score_model.incrementTotal)(score);
65
- (0, import_crypto_nft_score_model.incrementPossible)(score);
66
- if (validDisplayType(attribute))
67
- (0, import_crypto_nft_score_model.incrementTotal)(score);
68
- if (max_value !== void 0) {
69
- (0, import_crypto_nft_score_model.incrementPossible)(score);
70
- if (isNumber(max_value) && isNumber(value) && value <= max_value)
71
- (0, import_crypto_nft_score_model.incrementTotal)(score);
72
- }
73
- return score;
74
- };
75
- var validDisplayType = (attribute) => {
76
- switch (attribute?.display_type) {
77
- case "number":
78
- case "boost_number": {
79
- if (isNumber(attribute?.value))
80
- return true;
81
- break;
82
- }
83
- case "boost_percentage": {
84
- if (isPercentage(attribute?.value))
85
- return true;
86
- break;
87
- }
88
- case "date": {
89
- if (isDate(attribute?.value))
90
- return true;
91
- break;
92
- }
93
- case "string":
94
- case void 0: {
95
- if (isNonEmptyString(attribute?.value))
96
- return true;
97
- break;
98
- }
99
- default: {
100
- break;
101
- }
102
- }
103
- return false;
104
- };
105
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/index.ts","../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts"],"sourcesContent":["export * from './evaluateAttributes'\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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,oCAA0F;AAE1F,IAAM,SAAS,CAAC,UAAkC;AAChD,MAAI,SAAS,KAAK,GAAG;AACnB,QAAI;AACF,UAAI,KAAK,KAAK;AACd,aAAO;AAAA,IACT,SAAS,OAAO;AACd,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,WAAW,CAAC,UAAoC,OAAO,UAAU;AAEvE,IAAM,eAAe,CAAC,UAA4B,SAAS,KAAK,KAAK,SAAS,KAAK,SAAS;AAE5F,IAAM,mBAAmB,CAAC,UAAoC,OAAO,UAAU,YAAY,MAAM,SAAS;AAE1G,IAAM,2BAA2B,CAAC,UAA6C,UAAU,YAAY,iBAAiB,KAAK;AAEpH,IAAM,wBAAwB,CAAC,QACpC,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,CAAC,IAAI,mBAAmB,KAAK,UAAU,UAAU;AAE7E,IAAM,qBAAqB,CAAC,eAA8E;AAC/G,MAAI,CAAC,cAAc,CAAC,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW;AAAG,WAAO,CAAC,GAAG,CAAC;AACtF,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,aAAW,aAAa,YAAY;AAClC,UAAM,CAAC,gBAAgB,iBAAiB,IAAI,kBAAkB,SAAS;AACvE,iEAA0B,OAAO,gBAAgB,iBAAiB;AAAA,EACpE;AACA,SAAO,CAAC,GAAG,CAAC;AACd;AAEO,IAAM,oBAAoB,CAAC,cAAgD;AAChF,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,QAAM,YAAY,WAAW;AAC7B,QAAM,aAAa,WAAW;AAC9B,QAAM,QAAQ,WAAW;AAGzB,MAAI,CAAC,aAAa,OAAO,cAAc,YAAY,CAAC,iBAAiB,UAAU,KAAK,CAAC,yBAAyB,KAAK;AAAG,WAAO;AAC7H,oDAAe,KAAK;AAGpB,uDAAkB,KAAK;AACvB,MAAI,iBAAiB,SAAS;AAAG,sDAAe,KAAK;AAGrD,MAAI,cAAc,QAAW;AAC3B,yDAAkB,KAAK;AACvB,QAAI,SAAS,SAAS,KAAK,SAAS,KAAK,KAAK,SAAS;AAAW,wDAAe,KAAK;AAAA,EACxF;AAEA,SAAO;AACT;AAEA,IAAM,mBAAmB,CAAC,cAA4C;AACpE,UAAQ,WAAW,cAAc;AAAA,IAC/B,KAAK;AAAA,IACL,KAAK,gBAAgB;AACnB,UAAI,SAAS,WAAW,KAAK;AAAG,eAAO;AACvC;AAAA,IACF;AAAA,IACA,KAAK,oBAAoB;AACvB,UAAI,aAAa,WAAW,KAAK;AAAG,eAAO;AAC3C;AAAA,IACF;AAAA,IACA,KAAK,QAAQ;AACX,UAAI,OAAO,WAAW,KAAK;AAAG,eAAO;AACrC;AAAA,IACF;AAAA,IACA,KAAK;AAAA,IACL,KAAK,QAAW;AACd,UAAI,iBAAiB,WAAW,KAAK;AAAG,eAAO;AAC/C;AAAA,IACF;AAAA,IACA,SAAS;AACP;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
@@ -1,82 +0,0 @@
1
- // src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts
2
- import { incrementPossible, incrementTotal, incrementTotalAndPossible } from "@xyo-network/crypto-nft-score-model";
3
- var isDate = (value) => {
4
- if (isNumber(value)) {
5
- try {
6
- new Date(value);
7
- return true;
8
- } catch (error) {
9
- return false;
10
- }
11
- }
12
- return false;
13
- };
14
- var isNumber = (value) => typeof value === "number";
15
- var isPercentage = (value) => isNumber(value) && value >= 0 && value <= 100;
16
- var isNonEmptyString = (value) => typeof value === "string" && value.length > 0;
17
- var isNonEmptyStringOrNumber = (value) => value === "number" || isNonEmptyString(value);
18
- var evaluateNftAttributes = (nft) => !nft?.metadata?.attributes ? [0, 1] : evaluateAttributes(nft?.metadata?.attributes);
19
- var evaluateAttributes = (attributes) => {
20
- if (!attributes || !Array.isArray(attributes) || attributes.length === 0)
21
- return [0, 1];
22
- const score = [0, 0];
23
- for (const attribute of attributes) {
24
- const [attributeTotal, attributePossible] = evaluateAttribute(attribute);
25
- incrementTotalAndPossible(score, attributeTotal, attributePossible);
26
- }
27
- return [1, 1];
28
- };
29
- var evaluateAttribute = (attribute) => {
30
- const score = [0, 1];
31
- const max_value = attribute?.max_value;
32
- const trait_type = attribute?.trait_type;
33
- const value = attribute?.value;
34
- if (!attribute || typeof attribute !== "object" || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value))
35
- return score;
36
- incrementTotal(score);
37
- incrementPossible(score);
38
- if (validDisplayType(attribute))
39
- incrementTotal(score);
40
- if (max_value !== void 0) {
41
- incrementPossible(score);
42
- if (isNumber(max_value) && isNumber(value) && value <= max_value)
43
- incrementTotal(score);
44
- }
45
- return score;
46
- };
47
- var validDisplayType = (attribute) => {
48
- switch (attribute?.display_type) {
49
- case "number":
50
- case "boost_number": {
51
- if (isNumber(attribute?.value))
52
- return true;
53
- break;
54
- }
55
- case "boost_percentage": {
56
- if (isPercentage(attribute?.value))
57
- return true;
58
- break;
59
- }
60
- case "date": {
61
- if (isDate(attribute?.value))
62
- return true;
63
- break;
64
- }
65
- case "string":
66
- case void 0: {
67
- if (isNonEmptyString(attribute?.value))
68
- return true;
69
- break;
70
- }
71
- default: {
72
- break;
73
- }
74
- }
75
- return false;
76
- };
77
- export {
78
- evaluateAttribute,
79
- evaluateAttributes,
80
- evaluateNftAttributes
81
- };
82
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts"],"sourcesContent":["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"],"mappings":";AACA,SAAS,mBAAmB,gBAAgB,iCAA8C;AAE1F,IAAM,SAAS,CAAC,UAAkC;AAChD,MAAI,SAAS,KAAK,GAAG;AACnB,QAAI;AACF,UAAI,KAAK,KAAK;AACd,aAAO;AAAA,IACT,SAAS,OAAO;AACd,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,WAAW,CAAC,UAAoC,OAAO,UAAU;AAEvE,IAAM,eAAe,CAAC,UAA4B,SAAS,KAAK,KAAK,SAAS,KAAK,SAAS;AAE5F,IAAM,mBAAmB,CAAC,UAAoC,OAAO,UAAU,YAAY,MAAM,SAAS;AAE1G,IAAM,2BAA2B,CAAC,UAA6C,UAAU,YAAY,iBAAiB,KAAK;AAEpH,IAAM,wBAAwB,CAAC,QACpC,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,CAAC,IAAI,mBAAmB,KAAK,UAAU,UAAU;AAE7E,IAAM,qBAAqB,CAAC,eAA8E;AAC/G,MAAI,CAAC,cAAc,CAAC,MAAM,QAAQ,UAAU,KAAK,WAAW,WAAW;AAAG,WAAO,CAAC,GAAG,CAAC;AACtF,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,aAAW,aAAa,YAAY;AAClC,UAAM,CAAC,gBAAgB,iBAAiB,IAAI,kBAAkB,SAAS;AACvE,8BAA0B,OAAO,gBAAgB,iBAAiB;AAAA,EACpE;AACA,SAAO,CAAC,GAAG,CAAC;AACd;AAEO,IAAM,oBAAoB,CAAC,cAAgD;AAChF,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,QAAM,YAAY,WAAW;AAC7B,QAAM,aAAa,WAAW;AAC9B,QAAM,QAAQ,WAAW;AAGzB,MAAI,CAAC,aAAa,OAAO,cAAc,YAAY,CAAC,iBAAiB,UAAU,KAAK,CAAC,yBAAyB,KAAK;AAAG,WAAO;AAC7H,iBAAe,KAAK;AAGpB,oBAAkB,KAAK;AACvB,MAAI,iBAAiB,SAAS;AAAG,mBAAe,KAAK;AAGrD,MAAI,cAAc,QAAW;AAC3B,sBAAkB,KAAK;AACvB,QAAI,SAAS,SAAS,KAAK,SAAS,KAAK,KAAK,SAAS;AAAW,qBAAe,KAAK;AAAA,EACxF;AAEA,SAAO;AACT;AAEA,IAAM,mBAAmB,CAAC,cAA4C;AACpE,UAAQ,WAAW,cAAc;AAAA,IAC/B,KAAK;AAAA,IACL,KAAK,gBAAgB;AACnB,UAAI,SAAS,WAAW,KAAK;AAAG,eAAO;AACvC;AAAA,IACF;AAAA,IACA,KAAK,oBAAoB;AACvB,UAAI,aAAa,WAAW,KAAK;AAAG,eAAO;AAC3C;AAAA,IACF;AAAA,IACA,KAAK,QAAQ;AACX,UAAI,OAAO,WAAW,KAAK;AAAG,eAAO;AACrC;AAAA,IACF;AAAA,IACA,KAAK;AAAA,IACL,KAAK,QAAW;AACd,UAAI,iBAAiB,WAAW,KAAK;AAAG,eAAO;AAC/C;AAAA,IACF;AAAA,IACA,SAAS;AACP;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
@@ -1,44 +0,0 @@
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/rating/criteria/scoring/metadata/backgroundColor.ts
21
- var backgroundColor_exports = {};
22
- __export(backgroundColor_exports, {
23
- scoreBackgroundColor: () => scoreBackgroundColor,
24
- scoreNftBackgroundColor: () => scoreNftBackgroundColor
25
- });
26
- module.exports = __toCommonJS(backgroundColor_exports);
27
- var import_crypto_nft_score_model = require("@xyo-network/crypto-nft-score-model");
28
- var isHexColor = /^[0-9A-F]{6}$/i;
29
- var scoreNftBackgroundColor = (nft) => {
30
- return scoreBackgroundColor(nft.metadata?.background_color);
31
- };
32
- var scoreBackgroundColor = (background_color) => {
33
- const score = [0, 0];
34
- if (background_color === void 0 || background_color === null)
35
- return import_crypto_nft_score_model.PASS;
36
- (0, import_crypto_nft_score_model.incrementPossible)(score);
37
- if (typeof background_color !== "string")
38
- return score;
39
- (0, import_crypto_nft_score_model.incrementTotalAndPossible)(score);
40
- if (!background_color.toUpperCase().match(isHexColor))
41
- return score;
42
- return (0, import_crypto_nft_score_model.incrementTotal)(score);
43
- };
44
- //# sourceMappingURL=backgroundColor.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/backgroundColor.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oCAAgG;AAEhG,IAAM,aAAa;AAEZ,IAAM,0BAA0B,CAAC,QAA2D;AACjG,SAAO,qBAAqB,IAAI,UAAU,gBAAgB;AAC5D;AAEO,IAAM,uBAAuB,CAAC,qBAA2C;AAC9E,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,MAAI,qBAAqB,UAAa,qBAAqB;AAAM,WAAO;AACxE,uDAAkB,KAAK;AACvB,MAAI,OAAO,qBAAqB;AAAU,WAAO;AACjD,+DAA0B,KAAK;AAC/B,MAAI,CAAC,iBAAiB,YAAY,EAAE,MAAM,UAAU;AAAG,WAAO;AAC9D,aAAO,8CAAe,KAAK;AAC7B;","names":[]}
@@ -1,23 +0,0 @@
1
- // src/lib/rating/criteria/scoring/metadata/backgroundColor.ts
2
- import { incrementPossible, incrementTotal, incrementTotalAndPossible, PASS } from "@xyo-network/crypto-nft-score-model";
3
- var isHexColor = /^[0-9A-F]{6}$/i;
4
- var scoreNftBackgroundColor = (nft) => {
5
- return scoreBackgroundColor(nft.metadata?.background_color);
6
- };
7
- var scoreBackgroundColor = (background_color) => {
8
- const score = [0, 0];
9
- if (background_color === void 0 || background_color === null)
10
- return PASS;
11
- incrementPossible(score);
12
- if (typeof background_color !== "string")
13
- return score;
14
- incrementTotalAndPossible(score);
15
- if (!background_color.toUpperCase().match(isHexColor))
16
- return score;
17
- return incrementTotal(score);
18
- };
19
- export {
20
- scoreBackgroundColor,
21
- scoreNftBackgroundColor
22
- };
23
- //# sourceMappingURL=backgroundColor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/backgroundColor.ts"],"sourcesContent":["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"],"mappings":";AACA,SAAS,mBAAmB,gBAAgB,2BAA2B,YAAyB;AAEhG,IAAM,aAAa;AAEZ,IAAM,0BAA0B,CAAC,QAA2D;AACjG,SAAO,qBAAqB,IAAI,UAAU,gBAAgB;AAC5D;AAEO,IAAM,uBAAuB,CAAC,qBAA2C;AAC9E,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,MAAI,qBAAqB,UAAa,qBAAqB;AAAM,WAAO;AACxE,oBAAkB,KAAK;AACvB,MAAI,OAAO,qBAAqB;AAAU,WAAO;AACjD,4BAA0B,KAAK;AAC/B,MAAI,CAAC,iBAAiB,YAAY,EAAE,MAAM,UAAU;AAAG,WAAO;AAC9D,SAAO,eAAe,KAAK;AAC7B;","names":[]}
@@ -1,37 +0,0 @@
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/rating/criteria/scoring/metadata/description.ts
21
- var description_exports = {};
22
- __export(description_exports, {
23
- scoreDescription: () => scoreDescription,
24
- scoreNftDescription: () => scoreNftDescription
25
- });
26
- module.exports = __toCommonJS(description_exports);
27
- var import_crypto_nft_score_model = require("@xyo-network/crypto-nft-score-model");
28
- var scoreNftDescription = (nft) => {
29
- return scoreDescription(nft.metadata?.description);
30
- };
31
- var scoreDescription = (description) => {
32
- const score = [0, 1];
33
- if (!description || typeof description !== "string")
34
- return score;
35
- return (0, import_crypto_nft_score_model.incrementTotal)(score);
36
- };
37
- //# sourceMappingURL=description.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/description.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oCAA4C;AAErC,IAAM,sBAAsB,CAAC,QAA2D;AAC7F,SAAO,iBAAiB,IAAI,UAAU,WAAW;AACnD;AAEO,IAAM,mBAAmB,CAAC,gBAAsC;AACrE,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,MAAI,CAAC,eAAe,OAAO,gBAAgB;AAAU,WAAO;AAC5D,aAAO,8CAAe,KAAK;AAC7B;","names":[]}
@@ -1,16 +0,0 @@
1
- // src/lib/rating/criteria/scoring/metadata/description.ts
2
- import { incrementTotal } from "@xyo-network/crypto-nft-score-model";
3
- var scoreNftDescription = (nft) => {
4
- return scoreDescription(nft.metadata?.description);
5
- };
6
- var scoreDescription = (description) => {
7
- const score = [0, 1];
8
- if (!description || typeof description !== "string")
9
- return score;
10
- return incrementTotal(score);
11
- };
12
- export {
13
- scoreDescription,
14
- scoreNftDescription
15
- };
16
- //# sourceMappingURL=description.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/description.ts"],"sourcesContent":["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"],"mappings":";AACA,SAAS,sBAAmC;AAErC,IAAM,sBAAsB,CAAC,QAA2D;AAC7F,SAAO,iBAAiB,IAAI,UAAU,WAAW;AACnD;AAEO,IAAM,mBAAmB,CAAC,gBAAsC;AACrE,QAAM,QAAqB,CAAC,GAAG,CAAC;AAChC,MAAI,CAAC,eAAe,OAAO,gBAAgB;AAAU,WAAO;AAC5D,SAAO,eAAe,KAAK;AAC7B;","names":[]}