@xyo-network/crypto-nft-diviner-score-plugin 2.73.3 → 2.73.4

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 (183) hide show
  1. package/dist/docs.json +46 -46
  2. package/dist/index.d.mts +135 -0
  3. package/dist/index.d.ts +135 -0
  4. package/dist/index.js +438 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +412 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +39 -26
  9. package/tsup.config.ts +16 -0
  10. package/dist/cjs/Diviner.js +0 -36
  11. package/dist/cjs/Diviner.js.map +0 -1
  12. package/dist/cjs/Plugin.js +0 -16
  13. package/dist/cjs/Plugin.js.map +0 -1
  14. package/dist/cjs/index.js +0 -11
  15. package/dist/cjs/index.js.map +0 -1
  16. package/dist/cjs/lib/index.js +0 -5
  17. package/dist/cjs/lib/index.js.map +0 -1
  18. package/dist/cjs/lib/rating/analyzeNft.js +0 -19
  19. package/dist/cjs/lib/rating/analyzeNft.js.map +0 -1
  20. package/dist/cjs/lib/rating/criteria/index.js +0 -5
  21. package/dist/cjs/lib/rating/criteria/index.js.map +0 -1
  22. package/dist/cjs/lib/rating/criteria/scoring/contract.js +0 -16
  23. package/dist/cjs/lib/rating/criteria/scoring/contract.js.map +0 -1
  24. package/dist/cjs/lib/rating/criteria/scoring/index.js +0 -9
  25. package/dist/cjs/lib/rating/criteria/scoring/index.js.map +0 -1
  26. package/dist/cjs/lib/rating/criteria/scoring/lib/index.js +0 -6
  27. package/dist/cjs/lib/rating/criteria/scoring/lib/index.js.map +0 -1
  28. package/dist/cjs/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +0 -10
  29. package/dist/cjs/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +0 -1
  30. package/dist/cjs/lib/rating/criteria/scoring/lib/toBigNumber.js +0 -14
  31. package/dist/cjs/lib/rating/criteria/scoring/lib/toBigNumber.js.map +0 -1
  32. package/dist/cjs/lib/rating/criteria/scoring/metadata/animationUrl.js +0 -30
  33. package/dist/cjs/lib/rating/criteria/scoring/metadata/animationUrl.js.map +0 -1
  34. package/dist/cjs/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +0 -86
  35. package/dist/cjs/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +0 -1
  36. package/dist/cjs/lib/rating/criteria/scoring/metadata/attributes/index.js +0 -5
  37. package/dist/cjs/lib/rating/criteria/scoring/metadata/attributes/index.js.map +0 -1
  38. package/dist/cjs/lib/rating/criteria/scoring/metadata/backgroundColor.js +0 -24
  39. package/dist/cjs/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +0 -1
  40. package/dist/cjs/lib/rating/criteria/scoring/metadata/description.js +0 -17
  41. package/dist/cjs/lib/rating/criteria/scoring/metadata/description.js.map +0 -1
  42. package/dist/cjs/lib/rating/criteria/scoring/metadata/externalUrl.js +0 -21
  43. package/dist/cjs/lib/rating/criteria/scoring/metadata/externalUrl.js.map +0 -1
  44. package/dist/cjs/lib/rating/criteria/scoring/metadata/image.js +0 -33
  45. package/dist/cjs/lib/rating/criteria/scoring/metadata/image.js.map +0 -1
  46. package/dist/cjs/lib/rating/criteria/scoring/metadata/imageData.js +0 -40
  47. package/dist/cjs/lib/rating/criteria/scoring/metadata/imageData.js.map +0 -1
  48. package/dist/cjs/lib/rating/criteria/scoring/metadata/index.js +0 -13
  49. package/dist/cjs/lib/rating/criteria/scoring/metadata/index.js.map +0 -1
  50. package/dist/cjs/lib/rating/criteria/scoring/metadata/lib/index.js +0 -5
  51. package/dist/cjs/lib/rating/criteria/scoring/metadata/lib/index.js.map +0 -1
  52. package/dist/cjs/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +0 -25
  53. package/dist/cjs/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +0 -1
  54. package/dist/cjs/lib/rating/criteria/scoring/metadata/name.js +0 -17
  55. package/dist/cjs/lib/rating/criteria/scoring/metadata/name.js.map +0 -1
  56. package/dist/cjs/lib/rating/criteria/scoring/metadata/youtubeUrl.js +0 -23
  57. package/dist/cjs/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +0 -1
  58. package/dist/cjs/lib/rating/criteria/scoring/supply.js +0 -20
  59. package/dist/cjs/lib/rating/criteria/scoring/supply.js.map +0 -1
  60. package/dist/cjs/lib/rating/criteria/scoring/tokenId.js +0 -26
  61. package/dist/cjs/lib/rating/criteria/scoring/tokenId.js.map +0 -1
  62. package/dist/cjs/lib/rating/criteria/scoring/type.js +0 -16
  63. package/dist/cjs/lib/rating/criteria/scoring/type.js.map +0 -1
  64. package/dist/cjs/lib/rating/criteria/scoringCriteria.js +0 -10
  65. package/dist/cjs/lib/rating/criteria/scoringCriteria.js.map +0 -1
  66. package/dist/cjs/lib/rating/index.js +0 -5
  67. package/dist/cjs/lib/rating/index.js.map +0 -1
  68. package/dist/esm/Diviner.js +0 -26
  69. package/dist/esm/Diviner.js.map +0 -1
  70. package/dist/esm/Plugin.js +0 -11
  71. package/dist/esm/Plugin.js.map +0 -1
  72. package/dist/esm/index.js +0 -7
  73. package/dist/esm/index.js.map +0 -1
  74. package/dist/esm/lib/index.js +0 -2
  75. package/dist/esm/lib/index.js.map +0 -1
  76. package/dist/esm/lib/rating/analyzeNft.js +0 -14
  77. package/dist/esm/lib/rating/analyzeNft.js.map +0 -1
  78. package/dist/esm/lib/rating/criteria/index.js +0 -2
  79. package/dist/esm/lib/rating/criteria/index.js.map +0 -1
  80. package/dist/esm/lib/rating/criteria/scoring/contract.js +0 -12
  81. package/dist/esm/lib/rating/criteria/scoring/contract.js.map +0 -1
  82. package/dist/esm/lib/rating/criteria/scoring/index.js +0 -6
  83. package/dist/esm/lib/rating/criteria/scoring/index.js.map +0 -1
  84. package/dist/esm/lib/rating/criteria/scoring/lib/index.js +0 -3
  85. package/dist/esm/lib/rating/criteria/scoring/lib/index.js.map +0 -1
  86. package/dist/esm/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +0 -6
  87. package/dist/esm/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +0 -1
  88. package/dist/esm/lib/rating/criteria/scoring/lib/toBigNumber.js +0 -10
  89. package/dist/esm/lib/rating/criteria/scoring/lib/toBigNumber.js.map +0 -1
  90. package/dist/esm/lib/rating/criteria/scoring/metadata/animationUrl.js +0 -24
  91. package/dist/esm/lib/rating/criteria/scoring/metadata/animationUrl.js.map +0 -1
  92. package/dist/esm/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +0 -80
  93. package/dist/esm/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +0 -1
  94. package/dist/esm/lib/rating/criteria/scoring/metadata/attributes/index.js +0 -2
  95. package/dist/esm/lib/rating/criteria/scoring/metadata/attributes/index.js.map +0 -1
  96. package/dist/esm/lib/rating/criteria/scoring/metadata/backgroundColor.js +0 -18
  97. package/dist/esm/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +0 -1
  98. package/dist/esm/lib/rating/criteria/scoring/metadata/description.js +0 -11
  99. package/dist/esm/lib/rating/criteria/scoring/metadata/description.js.map +0 -1
  100. package/dist/esm/lib/rating/criteria/scoring/metadata/externalUrl.js +0 -15
  101. package/dist/esm/lib/rating/criteria/scoring/metadata/externalUrl.js.map +0 -1
  102. package/dist/esm/lib/rating/criteria/scoring/metadata/image.js +0 -27
  103. package/dist/esm/lib/rating/criteria/scoring/metadata/image.js.map +0 -1
  104. package/dist/esm/lib/rating/criteria/scoring/metadata/imageData.js +0 -34
  105. package/dist/esm/lib/rating/criteria/scoring/metadata/imageData.js.map +0 -1
  106. package/dist/esm/lib/rating/criteria/scoring/metadata/index.js +0 -10
  107. package/dist/esm/lib/rating/criteria/scoring/metadata/index.js.map +0 -1
  108. package/dist/esm/lib/rating/criteria/scoring/metadata/lib/index.js +0 -2
  109. package/dist/esm/lib/rating/criteria/scoring/metadata/lib/index.js.map +0 -1
  110. package/dist/esm/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +0 -17
  111. package/dist/esm/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +0 -1
  112. package/dist/esm/lib/rating/criteria/scoring/metadata/name.js +0 -11
  113. package/dist/esm/lib/rating/criteria/scoring/metadata/name.js.map +0 -1
  114. package/dist/esm/lib/rating/criteria/scoring/metadata/youtubeUrl.js +0 -17
  115. package/dist/esm/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +0 -1
  116. package/dist/esm/lib/rating/criteria/scoring/supply.js +0 -16
  117. package/dist/esm/lib/rating/criteria/scoring/supply.js.map +0 -1
  118. package/dist/esm/lib/rating/criteria/scoring/tokenId.js +0 -22
  119. package/dist/esm/lib/rating/criteria/scoring/tokenId.js.map +0 -1
  120. package/dist/esm/lib/rating/criteria/scoring/type.js +0 -12
  121. package/dist/esm/lib/rating/criteria/scoring/type.js.map +0 -1
  122. package/dist/esm/lib/rating/criteria/scoringCriteria.js +0 -23
  123. package/dist/esm/lib/rating/criteria/scoringCriteria.js.map +0 -1
  124. package/dist/esm/lib/rating/index.js +0 -2
  125. package/dist/esm/lib/rating/index.js.map +0 -1
  126. package/dist/types/Diviner.d.ts +0 -14
  127. package/dist/types/Diviner.d.ts.map +0 -1
  128. package/dist/types/Plugin.d.ts +0 -50
  129. package/dist/types/Plugin.d.ts.map +0 -1
  130. package/dist/types/index.d.ts +0 -6
  131. package/dist/types/index.d.ts.map +0 -1
  132. package/dist/types/lib/index.d.ts +0 -2
  133. package/dist/types/lib/index.d.ts.map +0 -1
  134. package/dist/types/lib/rating/analyzeNft.d.ts +0 -9
  135. package/dist/types/lib/rating/analyzeNft.d.ts.map +0 -1
  136. package/dist/types/lib/rating/criteria/index.d.ts +0 -2
  137. package/dist/types/lib/rating/criteria/index.d.ts.map +0 -1
  138. package/dist/types/lib/rating/criteria/scoring/contract.d.ts +0 -4
  139. package/dist/types/lib/rating/criteria/scoring/contract.d.ts.map +0 -1
  140. package/dist/types/lib/rating/criteria/scoring/index.d.ts +0 -6
  141. package/dist/types/lib/rating/criteria/scoring/index.d.ts.map +0 -1
  142. package/dist/types/lib/rating/criteria/scoring/lib/index.d.ts +0 -3
  143. package/dist/types/lib/rating/criteria/scoring/lib/index.d.ts.map +0 -1
  144. package/dist/types/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts +0 -2
  145. package/dist/types/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts.map +0 -1
  146. package/dist/types/lib/rating/criteria/scoring/lib/toBigNumber.d.ts +0 -3
  147. package/dist/types/lib/rating/criteria/scoring/lib/toBigNumber.d.ts.map +0 -1
  148. package/dist/types/lib/rating/criteria/scoring/metadata/animationUrl.d.ts +0 -5
  149. package/dist/types/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +0 -1
  150. package/dist/types/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts +0 -6
  151. package/dist/types/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +0 -1
  152. package/dist/types/lib/rating/criteria/scoring/metadata/attributes/index.d.ts +0 -2
  153. package/dist/types/lib/rating/criteria/scoring/metadata/attributes/index.d.ts.map +0 -1
  154. package/dist/types/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts +0 -5
  155. package/dist/types/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +0 -1
  156. package/dist/types/lib/rating/criteria/scoring/metadata/description.d.ts +0 -5
  157. package/dist/types/lib/rating/criteria/scoring/metadata/description.d.ts.map +0 -1
  158. package/dist/types/lib/rating/criteria/scoring/metadata/externalUrl.d.ts +0 -5
  159. package/dist/types/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +0 -1
  160. package/dist/types/lib/rating/criteria/scoring/metadata/image.d.ts +0 -5
  161. package/dist/types/lib/rating/criteria/scoring/metadata/image.d.ts.map +0 -1
  162. package/dist/types/lib/rating/criteria/scoring/metadata/imageData.d.ts +0 -5
  163. package/dist/types/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +0 -1
  164. package/dist/types/lib/rating/criteria/scoring/metadata/index.d.ts +0 -10
  165. package/dist/types/lib/rating/criteria/scoring/metadata/index.d.ts.map +0 -1
  166. package/dist/types/lib/rating/criteria/scoring/metadata/lib/index.d.ts +0 -2
  167. package/dist/types/lib/rating/criteria/scoring/metadata/lib/index.d.ts.map +0 -1
  168. package/dist/types/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts +0 -8
  169. package/dist/types/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts.map +0 -1
  170. package/dist/types/lib/rating/criteria/scoring/metadata/name.d.ts +0 -5
  171. package/dist/types/lib/rating/criteria/scoring/metadata/name.d.ts.map +0 -1
  172. package/dist/types/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts +0 -5
  173. package/dist/types/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +0 -1
  174. package/dist/types/lib/rating/criteria/scoring/supply.d.ts +0 -4
  175. package/dist/types/lib/rating/criteria/scoring/supply.d.ts.map +0 -1
  176. package/dist/types/lib/rating/criteria/scoring/tokenId.d.ts +0 -10
  177. package/dist/types/lib/rating/criteria/scoring/tokenId.d.ts.map +0 -1
  178. package/dist/types/lib/rating/criteria/scoring/type.d.ts +0 -4
  179. package/dist/types/lib/rating/criteria/scoring/type.d.ts.map +0 -1
  180. package/dist/types/lib/rating/criteria/scoringCriteria.d.ts +0 -55
  181. package/dist/types/lib/rating/criteria/scoringCriteria.d.ts.map +0 -1
  182. package/dist/types/lib/rating/index.d.ts +0 -2
  183. package/dist/types/lib/rating/index.d.ts.map +0 -1
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./rating"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,mDAAwB"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.analyzeNft = void 0;
4
- const tslib_1 = require("tslib");
5
- const criteria_1 = require("./criteria");
6
- const analyzeNft = (
7
- /**
8
- * The NFT to evaluate
9
- */
10
- nft) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
11
- const result = Object.fromEntries(yield Promise.all(Object.entries(criteria_1.scoringCriteria).map(([key, { score, weight }]) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
12
- const rawScore = yield score(nft);
13
- const weighted = rawScore.map((v) => v * weight);
14
- return [key, weighted];
15
- }))));
16
- return result;
17
- });
18
- exports.analyzeNft = analyzeNft;
19
- //# sourceMappingURL=analyzeNft.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzeNft.js","sourceRoot":"","sources":["../../../../src/lib/rating/analyzeNft.ts"],"names":[],"mappings":";;;;AAGA,yCAA4C;AAQrC,MAAM,UAAU,GAAG;AACxB;;GAEG;AACH,GAAkB,EACI,EAAE;IACxB,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,0BAAe,CAAC,CAAC,GAAG,CAAC,CAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE;QACrE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAU,CAAA;QACzD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAU,CAAA;IACjC,CAAC,CAAA,CAAC,CACH,CACa,CAAA;IAChB,OAAO,MAAM,CAAA;AACf,CAAC,CAAA,CAAA;AAhBY,QAAA,UAAU,cAgBtB"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./scoringCriteria"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/rating/criteria/index.ts"],"names":[],"mappings":";;;AAAA,4DAAiC"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreContractAddress = void 0;
4
- const address_1 = require("@ethersproject/address");
5
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
6
- const scoreContractAddress = (nft) => {
7
- if (!nft.address)
8
- return crypto_nft_score_model_1.FAIL;
9
- if (typeof nft.address !== 'string')
10
- return crypto_nft_score_model_1.FAIL;
11
- if (!(0, address_1.isAddress)(nft.address))
12
- return crypto_nft_score_model_1.FAIL;
13
- return crypto_nft_score_model_1.PASS;
14
- };
15
- exports.scoreContractAddress = scoreContractAddress;
16
- //# sourceMappingURL=contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/contract.ts"],"names":[],"mappings":";;;AAAA,oDAAkD;AAElD,gFAAyF;AAElF,MAAM,oBAAoB,GAA2C,CAAC,GAAkB,EAAE,EAAE;IACjG,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,6BAAI,CAAA;IAC7B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,6BAAI,CAAA;IAChD,IAAI,CAAC,IAAA,mBAAS,EAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,6BAAI,CAAA;IACxC,OAAO,6BAAI,CAAA;AACb,CAAC,CAAA;AALY,QAAA,oBAAoB,wBAKhC"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./contract"), exports);
5
- tslib_1.__exportStar(require("./metadata"), exports);
6
- tslib_1.__exportStar(require("./supply"), exports);
7
- tslib_1.__exportStar(require("./tokenId"), exports);
8
- tslib_1.__exportStar(require("./type"), exports);
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0B;AAC1B,qDAA0B;AAC1B,mDAAwB;AACxB,oDAAyB;AACzB,iDAAsB"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./isValidPositiveBigNumber"), exports);
5
- tslib_1.__exportStar(require("./toBigNumber"), exports);
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/lib/index.ts"],"names":[],"mappings":";;;AAAA,qEAA0C;AAC1C,wDAA6B"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isValidPositiveBigNumber = void 0;
4
- const toBigNumber_1 = require("./toBigNumber");
5
- const isValidPositiveBigNumber = (value) => {
6
- const num = (0, toBigNumber_1.toBigNumber)(value);
7
- return !num || num.isNeg() ? false : true;
8
- };
9
- exports.isValidPositiveBigNumber = isValidPositiveBigNumber;
10
- //# sourceMappingURL=isValidPositiveBigNumber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isValidPositiveBigNumber.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAEpC,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAW,EAAE;IACjE,MAAM,GAAG,GAAG,IAAA,yBAAW,EAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3C,CAAC,CAAA;AAHY,QAAA,wBAAwB,4BAGpC"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toBigNumber = void 0;
4
- const bignumber_1 = require("@xylabs/bignumber");
5
- const toBigNumber = (value) => {
6
- try {
7
- return new bignumber_1.BigNumber(value);
8
- }
9
- catch (error) {
10
- return undefined;
11
- }
12
- };
13
- exports.toBigNumber = toBigNumber;
14
- //# sourceMappingURL=toBigNumber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toBigNumber.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/lib/toBigNumber.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAEtC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAyB,EAAE;IAClE,IAAI;QACF,OAAO,IAAI,qBAAS,CAAC,KAAK,CAAC,CAAA;KAC5B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,SAAS,CAAA;KACjB;AACH,CAAC,CAAA;AANY,QAAA,WAAW,eAMvB"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreAnimationUrl = exports.scoreNftAnimationUrl = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const lib_1 = require("./lib");
6
- const scoreNftAnimationUrl = (nft) => {
7
- var _a;
8
- return (0, exports.scoreAnimationUrl)((_a = nft.metadata) === null || _a === void 0 ? void 0 : _a.animation_url);
9
- };
10
- exports.scoreNftAnimationUrl = scoreNftAnimationUrl;
11
- const scoreAnimationUrl = (animation_url) => {
12
- const score = [0, 0];
13
- if (animation_url === undefined || animation_url === null)
14
- return crypto_nft_score_model_1.PASS;
15
- (0, crypto_nft_score_model_1.incrementPossible)(score);
16
- if (typeof animation_url !== 'string')
17
- return score;
18
- (0, crypto_nft_score_model_1.incrementTotalAndPossible)(score);
19
- if (!(0, lib_1.isValidUrl)(animation_url))
20
- return score;
21
- (0, crypto_nft_score_model_1.incrementTotalAndPossible)(score);
22
- if (!(0, lib_1.isSecure)(animation_url))
23
- return score;
24
- (0, crypto_nft_score_model_1.incrementTotalAndPossible)(score);
25
- if (!(0, lib_1.isWeb3)(animation_url))
26
- return score;
27
- return (0, crypto_nft_score_model_1.incrementTotal)(score);
28
- };
29
- exports.scoreAnimationUrl = scoreAnimationUrl;
30
- //# sourceMappingURL=animationUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"animationUrl.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/animationUrl.ts"],"names":[],"mappings":";;;AACA,gFAAqI;AAErI,+BAAoD;AAE7C,MAAM,oBAAoB,GAAG,CAAC,GAAyC,EAAe,EAAE;;IAC7F,OAAO,IAAA,yBAAiB,EAAC,MAAA,GAAG,CAAC,QAAQ,0CAAE,aAAa,CAAC,CAAA;AACvD,CAAC,CAAA;AAFY,QAAA,oBAAoB,wBAEhC;AAEM,MAAM,iBAAiB,GAAG,CAAC,aAAsB,EAAe,EAAE;IACvE,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI;QAAE,OAAO,6BAAI,CAAA;IACtE,IAAA,0CAAiB,EAAC,KAAK,CAAC,CAAA;IACxB,IAAI,OAAO,aAAa,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACnD,IAAA,kDAAyB,EAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,IAAA,gBAAU,EAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAA;IAC5C,IAAA,kDAAyB,EAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,IAAA,cAAQ,EAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1C,IAAA,kDAAyB,EAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,IAAA,YAAM,EAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,OAAO,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AAZY,QAAA,iBAAiB,qBAY7B"}
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.evaluateAttribute = exports.evaluateAttributes = exports.evaluateNftAttributes = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const isDate = (value) => {
6
- if (isNumber(value)) {
7
- try {
8
- new Date(value);
9
- return true;
10
- }
11
- catch (error) {
12
- return false;
13
- }
14
- }
15
- return false;
16
- };
17
- const isNumber = (value) => typeof value === 'number';
18
- const isPercentage = (value) => isNumber(value) && value >= 0 && value <= 100;
19
- const isNonEmptyString = (value) => typeof value === 'string' && value.length > 0;
20
- const isNonEmptyStringOrNumber = (value) => value === 'number' || isNonEmptyString(value);
21
- const evaluateNftAttributes = (nft) => { var _a, _b; return !((_a = nft === null || nft === void 0 ? void 0 : nft.metadata) === null || _a === void 0 ? void 0 : _a.attributes) ? [0, 1] : (0, exports.evaluateAttributes)((_b = nft === null || nft === void 0 ? void 0 : nft.metadata) === null || _b === void 0 ? void 0 : _b.attributes); };
22
- exports.evaluateNftAttributes = evaluateNftAttributes;
23
- const evaluateAttributes = (attributes) => {
24
- if (!attributes || !Array.isArray(attributes) || attributes.length === 0)
25
- return [0, 1];
26
- const score = [0, 0];
27
- for (const attribute of attributes) {
28
- const [attributeTotal, attributePossible] = (0, exports.evaluateAttribute)(attribute);
29
- (0, crypto_nft_score_model_1.incrementTotalAndPossible)(score, attributeTotal, attributePossible);
30
- }
31
- return [1, 1];
32
- };
33
- exports.evaluateAttributes = evaluateAttributes;
34
- const evaluateAttribute = (attribute) => {
35
- const score = [0, 1];
36
- const max_value = attribute === null || attribute === void 0 ? void 0 : attribute.max_value;
37
- const trait_type = attribute === null || attribute === void 0 ? void 0 : attribute.trait_type;
38
- const value = attribute === null || attribute === void 0 ? void 0 : attribute.value;
39
- // Validate trait_type & value
40
- if (!attribute || typeof attribute !== 'object' || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value))
41
- return score;
42
- (0, crypto_nft_score_model_1.incrementTotal)(score);
43
- // Validate display_type
44
- (0, crypto_nft_score_model_1.incrementPossible)(score);
45
- if (validDisplayType(attribute))
46
- (0, crypto_nft_score_model_1.incrementTotal)(score);
47
- // Validate max_value
48
- if (max_value !== undefined) {
49
- (0, crypto_nft_score_model_1.incrementPossible)(score);
50
- if (isNumber(max_value) && isNumber(value) && value <= max_value)
51
- (0, crypto_nft_score_model_1.incrementTotal)(score);
52
- }
53
- return score;
54
- };
55
- exports.evaluateAttribute = evaluateAttribute;
56
- const validDisplayType = (attribute) => {
57
- switch (attribute === null || attribute === void 0 ? void 0 : attribute.display_type) {
58
- case 'number':
59
- case 'boost_number': {
60
- if (isNumber(attribute === null || attribute === void 0 ? void 0 : attribute.value))
61
- return true;
62
- break;
63
- }
64
- case 'boost_percentage': {
65
- if (isPercentage(attribute === null || attribute === void 0 ? void 0 : attribute.value))
66
- return true;
67
- break;
68
- }
69
- case 'date': {
70
- if (isDate(attribute === null || attribute === void 0 ? void 0 : attribute.value))
71
- return true;
72
- break;
73
- }
74
- case 'string':
75
- case undefined: {
76
- if (isNonEmptyString(attribute === null || attribute === void 0 ? void 0 : attribute.value))
77
- return true;
78
- break;
79
- }
80
- default: {
81
- break;
82
- }
83
- }
84
- return false;
85
- };
86
- //# sourceMappingURL=evaluateAttributes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluateAttributes.js","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./evaluateAttributes"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/index.ts"],"names":[],"mappings":";;;AAAA,+DAAoC"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreBackgroundColor = exports.scoreNftBackgroundColor = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const isHexColor = /^[0-9A-F]{6}$/i;
6
- const scoreNftBackgroundColor = (nft) => {
7
- var _a;
8
- return (0, exports.scoreBackgroundColor)((_a = nft.metadata) === null || _a === void 0 ? void 0 : _a.background_color);
9
- };
10
- exports.scoreNftBackgroundColor = scoreNftBackgroundColor;
11
- const scoreBackgroundColor = (background_color) => {
12
- const score = [0, 0];
13
- if (background_color === undefined || background_color === null)
14
- return crypto_nft_score_model_1.PASS;
15
- (0, crypto_nft_score_model_1.incrementPossible)(score);
16
- if (typeof background_color !== 'string')
17
- return score;
18
- (0, crypto_nft_score_model_1.incrementTotalAndPossible)(score);
19
- if (!background_color.toUpperCase().match(isHexColor))
20
- return score;
21
- return (0, crypto_nft_score_model_1.incrementTotal)(score);
22
- };
23
- exports.scoreBackgroundColor = scoreBackgroundColor;
24
- //# sourceMappingURL=backgroundColor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backgroundColor.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/backgroundColor.ts"],"names":[],"mappings":";;;AACA,gFAAqI;AAErI,MAAM,UAAU,GAAG,gBAAgB,CAAA;AAE5B,MAAM,uBAAuB,GAAG,CAAC,GAAyC,EAAe,EAAE;;IAChG,OAAO,IAAA,4BAAoB,EAAC,MAAA,GAAG,CAAC,QAAQ,0CAAE,gBAAgB,CAAC,CAAA;AAC7D,CAAC,CAAA;AAFY,QAAA,uBAAuB,2BAEnC;AAEM,MAAM,oBAAoB,GAAG,CAAC,gBAAyB,EAAe,EAAE;IAC7E,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,6BAAI,CAAA;IAC5E,IAAA,0CAAiB,EAAC,KAAK,CAAC,CAAA;IACxB,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACtD,IAAA,kDAAyB,EAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAA;IACnE,OAAO,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AARY,QAAA,oBAAoB,wBAQhC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreDescription = exports.scoreNftDescription = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const scoreNftDescription = (nft) => {
6
- var _a;
7
- return (0, exports.scoreDescription)((_a = nft.metadata) === null || _a === void 0 ? void 0 : _a.description);
8
- };
9
- exports.scoreNftDescription = scoreNftDescription;
10
- const scoreDescription = (description) => {
11
- const score = [0, 1];
12
- if (!description || typeof description !== 'string')
13
- return score;
14
- return (0, crypto_nft_score_model_1.incrementTotal)(score);
15
- };
16
- exports.scoreDescription = scoreDescription;
17
- //# sourceMappingURL=description.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"description.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/description.ts"],"names":[],"mappings":";;;AACA,gFAAiF;AAE1E,MAAM,mBAAmB,GAAG,CAAC,GAAyC,EAAe,EAAE;;IAC5F,OAAO,IAAA,wBAAgB,EAAC,MAAA,GAAG,CAAC,QAAQ,0CAAE,WAAW,CAAC,CAAA;AACpD,CAAC,CAAA;AAFY,QAAA,mBAAmB,uBAE/B;AAEM,MAAM,gBAAgB,GAAG,CAAC,WAAoB,EAAe,EAAE;IACpE,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACjE,OAAO,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AAJY,QAAA,gBAAgB,oBAI5B"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreExternalUrl = exports.scoreNftExternalUrl = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const lib_1 = require("./lib");
6
- const scoreNftExternalUrl = (nft) => {
7
- var _a;
8
- return (0, exports.scoreExternalUrl)((_a = nft === null || nft === void 0 ? void 0 : nft.metadata) === null || _a === void 0 ? void 0 : _a.external_url);
9
- };
10
- exports.scoreNftExternalUrl = scoreNftExternalUrl;
11
- const scoreExternalUrl = (external_url) => {
12
- const score = [0, 2];
13
- if (external_url === undefined || external_url === null || typeof external_url !== 'string' || !(0, lib_1.isValidUrl)(external_url))
14
- return score;
15
- (0, crypto_nft_score_model_1.incrementTotal)(score);
16
- if (!(0, lib_1.isSecure)(external_url))
17
- return score;
18
- return (0, crypto_nft_score_model_1.incrementTotal)(score);
19
- };
20
- exports.scoreExternalUrl = scoreExternalUrl;
21
- //# sourceMappingURL=externalUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"externalUrl.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/externalUrl.ts"],"names":[],"mappings":";;;AACA,gFAAiF;AAEjF,+BAA4C;AAErC,MAAM,mBAAmB,GAAG,CAAC,GAAyC,EAAe,EAAE;;IAC5F,OAAO,IAAA,wBAAgB,EAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,YAAY,CAAC,CAAA;AACtD,CAAC,CAAA;AAFY,QAAA,mBAAmB,uBAE/B;AACM,MAAM,gBAAgB,GAAG,CAAC,YAAqB,EAAe,EAAE;IACrE,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAU,EAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAA;IACtI,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,IAAA,cAAQ,EAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,OAAO,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreImage = exports.scoreNftImage = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const lib_1 = require("./lib");
6
- const MaxPossibleImageScore = 3;
7
- const scoreNftImage = (nft) => {
8
- var _a, _b, _c;
9
- // If there's no image data
10
- if (!((_a = nft === null || nft === void 0 ? void 0 : nft.metadata) === null || _a === void 0 ? void 0 : _a.image)) {
11
- // but there is image data, skip this scoring criteria, otherwise fail it completely
12
- return ((_b = nft.metadata) === null || _b === void 0 ? void 0 : _b.image_data) ? crypto_nft_score_model_1.PASS : [0, MaxPossibleImageScore];
13
- }
14
- else {
15
- return (0, exports.scoreImage)((_c = nft.metadata) === null || _c === void 0 ? void 0 : _c.image);
16
- }
17
- };
18
- exports.scoreNftImage = scoreNftImage;
19
- const scoreImage = (image) => {
20
- const score = [0, MaxPossibleImageScore];
21
- if (!image || typeof image !== 'string' || !(0, lib_1.isValidUrl)(image))
22
- return score;
23
- (0, crypto_nft_score_model_1.incrementTotal)(score);
24
- if (!(0, lib_1.isSecure)(image))
25
- return score;
26
- (0, crypto_nft_score_model_1.incrementTotal)(score);
27
- if (!(0, lib_1.isWeb3)(image))
28
- return score;
29
- (0, crypto_nft_score_model_1.incrementTotal)(score);
30
- return score;
31
- };
32
- exports.scoreImage = scoreImage;
33
- //# sourceMappingURL=image.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/image.ts"],"names":[],"mappings":";;;AACA,gFAAuF;AAEvF,+BAAoD;AAEpD,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAExB,MAAM,aAAa,GAAG,CAAC,GAAyC,EAAe,EAAE;;IACtF,2BAA2B;IAC3B,IAAI,CAAC,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,KAAK,CAAA,EAAE;QACzB,oFAAoF;QACpF,OAAO,CAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,UAAU,EAAC,CAAC,CAAC,6BAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;KACpE;SAAM;QACL,OAAO,IAAA,kBAAU,EAAC,MAAA,GAAG,CAAC,QAAQ,0CAAE,KAAK,CAAC,CAAA;KACvC;AACH,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB;AAEM,MAAM,UAAU,GAAG,CAAC,KAAc,EAAe,EAAE;IACxD,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACrD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAU,EAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3E,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,IAAA,cAAQ,EAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAClC,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,IAAA,YAAM,EAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAChC,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;IACrB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AATY,QAAA,UAAU,cAStB"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreImageData = exports.scoreNftImageData = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const svg_parser_1 = require("svg-parser");
6
- const MaxPossibleImageDataScore = 1;
7
- // NOTE: There is probably a deeper check we can do
8
- // here, but this is a good start
9
- const isValidImageData = (image_data) => {
10
- // If it doesn't start with an svg tag, it's not an svg
11
- if (!image_data.startsWith('<svg'))
12
- return false;
13
- try {
14
- // If it can't be parsed, it's not an svg
15
- (0, svg_parser_1.parse)(image_data);
16
- return true;
17
- }
18
- catch (error) {
19
- return false;
20
- }
21
- };
22
- const scoreNftImageData = (nft) => {
23
- var _a, _b, _c;
24
- // If there's no image data
25
- if (!((_a = nft === null || nft === void 0 ? void 0 : nft.metadata) === null || _a === void 0 ? void 0 : _a.image_data)) {
26
- // but there is an image, skip this scoring criteria, otherwise fail it completely
27
- return ((_b = nft.metadata) === null || _b === void 0 ? void 0 : _b.image) ? crypto_nft_score_model_1.PASS : [0, MaxPossibleImageDataScore];
28
- }
29
- else {
30
- return (0, exports.scoreImageData)((_c = nft.metadata) === null || _c === void 0 ? void 0 : _c.image_data);
31
- }
32
- };
33
- exports.scoreNftImageData = scoreNftImageData;
34
- const scoreImageData = (image_data) => {
35
- return !image_data || typeof image_data !== 'string' || !isValidImageData(image_data)
36
- ? [0, MaxPossibleImageDataScore]
37
- : [MaxPossibleImageDataScore, MaxPossibleImageDataScore];
38
- };
39
- exports.scoreImageData = scoreImageData;
40
- //# sourceMappingURL=imageData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imageData.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/imageData.ts"],"names":[],"mappings":";;;AACA,gFAAuE;AACvE,2CAAkC;AAElC,MAAM,yBAAyB,GAAG,CAAC,CAAA;AAEnC,mDAAmD;AACnD,iCAAiC;AACjC,MAAM,gBAAgB,GAAG,CAAC,UAAkB,EAAW,EAAE;IACvD,uDAAuD;IACvD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IAChD,IAAI;QACF,yCAAyC;QACzC,IAAA,kBAAK,EAAC,UAAU,CAAC,CAAA;QACjB,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,KAAK,CAAA;KACb;AACH,CAAC,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAAC,GAAyC,EAAe,EAAE;;IAC1F,2BAA2B;IAC3B,IAAI,CAAC,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,UAAU,CAAA,EAAE;QAC9B,kFAAkF;QAClF,OAAO,CAAA,MAAA,GAAG,CAAC,QAAQ,0CAAE,KAAK,EAAC,CAAC,CAAC,6BAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAA;KACnE;SAAM;QACL,OAAO,IAAA,sBAAc,EAAC,MAAA,GAAG,CAAC,QAAQ,0CAAE,UAAU,CAAC,CAAA;KAChD;AACH,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B;AAEM,MAAM,cAAc,GAAG,CAAC,UAAmB,EAAe,EAAE;IACjE,OAAO,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACnF,CAAC,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC;QAChC,CAAC,CAAC,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAA;AAC5D,CAAC,CAAA;AAJY,QAAA,cAAc,kBAI1B"}
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./animationUrl"), exports);
5
- tslib_1.__exportStar(require("./attributes"), exports);
6
- tslib_1.__exportStar(require("./backgroundColor"), exports);
7
- tslib_1.__exportStar(require("./description"), exports);
8
- tslib_1.__exportStar(require("./externalUrl"), exports);
9
- tslib_1.__exportStar(require("./image"), exports);
10
- tslib_1.__exportStar(require("./imageData"), exports);
11
- tslib_1.__exportStar(require("./name"), exports);
12
- tslib_1.__exportStar(require("./youtubeUrl"), exports);
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/index.ts"],"names":[],"mappings":";;;AAAA,yDAA8B;AAC9B,uDAA4B;AAC5B,4DAAiC;AACjC,wDAA6B;AAC7B,wDAA6B;AAC7B,kDAAuB;AACvB,sDAA2B;AAC3B,iDAAsB;AACtB,uDAA4B"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./urlHelpers"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/lib/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSecure = exports.isWeb2 = exports.isWeb3 = exports.isValidUrl = exports.toUrl = exports.web3Protocols = void 0;
4
- const url_1 = require("@xylabs/url");
5
- exports.web3Protocols = ['ipfs:', 'ar:'];
6
- const toUrl = (url) => {
7
- if (!url)
8
- return undefined;
9
- try {
10
- return new url_1.URL(url);
11
- }
12
- catch (e) {
13
- return undefined;
14
- }
15
- };
16
- exports.toUrl = toUrl;
17
- const isValidUrl = (url) => (0, exports.toUrl)(url) !== undefined;
18
- exports.isValidUrl = isValidUrl;
19
- const isWeb3 = (url) => exports.web3Protocols.some((protocol) => { var _a; return protocol === ((_a = (0, exports.toUrl)(url)) === null || _a === void 0 ? void 0 : _a.protocol); });
20
- exports.isWeb3 = isWeb3;
21
- const isWeb2 = (url) => !(0, exports.isWeb3)(url);
22
- exports.isWeb2 = isWeb2;
23
- const isSecure = (url) => { var _a; return (0, exports.isWeb3)(url) || ((_a = (0, exports.toUrl)(url)) === null || _a === void 0 ? void 0 : _a.protocol) === 'https:'; };
24
- exports.isSecure = isSecure;
25
- //# sourceMappingURL=urlHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"urlHelpers.js","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/lib/urlHelpers.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAEpB,QAAA,aAAa,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAEtC,MAAM,KAAK,GAAG,CAAC,GAAmB,EAAmB,EAAE;IAC5D,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,IAAI;QACF,OAAO,IAAI,SAAG,CAAC,GAAG,CAAC,CAAA;KACpB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,SAAS,CAAA;KACjB;AACH,CAAC,CAAA;AAPY,QAAA,KAAK,SAOjB;AAEM,MAAM,UAAU,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,IAAA,aAAK,EAAC,GAAG,CAAC,KAAK,SAAS,CAAA;AAAvE,QAAA,UAAU,cAA6D;AAC7E,MAAM,MAAM,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,qBAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,WAAC,OAAA,QAAQ,MAAK,MAAA,IAAA,aAAK,EAAC,GAAG,CAAC,0CAAE,QAAQ,CAAA,CAAA,EAAA,CAAC,CAAA;AAA9G,QAAA,MAAM,UAAwG;AACpH,MAAM,MAAM,GAAG,CAAC,GAAmB,EAAW,EAAE,CAAC,CAAC,IAAA,cAAM,EAAC,GAAG,CAAC,CAAA;AAAvD,QAAA,MAAM,UAAiD;AAC7D,MAAM,QAAQ,GAAG,CAAC,GAAmB,EAAW,EAAE,WAAC,OAAA,IAAA,cAAM,EAAC,GAAG,CAAC,IAAI,CAAA,MAAA,IAAA,aAAK,EAAC,GAAG,CAAC,0CAAE,QAAQ,MAAK,QAAQ,CAAA,EAAA,CAAA;AAA7F,QAAA,QAAQ,YAAqF"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreName = exports.scoreNftName = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const scoreNftName = (nft) => {
6
- var _a;
7
- return (0, exports.scoreName)((_a = nft.metadata) === null || _a === void 0 ? void 0 : _a.name);
8
- };
9
- exports.scoreNftName = scoreNftName;
10
- const scoreName = (name) => {
11
- const score = [0, 1];
12
- if (!name || typeof name !== 'string')
13
- return score;
14
- return (0, crypto_nft_score_model_1.incrementTotal)(score);
15
- };
16
- exports.scoreName = scoreName;
17
- //# sourceMappingURL=name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"name.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/name.ts"],"names":[],"mappings":";;;AACA,gFAAiF;AAE1E,MAAM,YAAY,GAAG,CAAC,GAAyC,EAAe,EAAE;;IACrF,OAAO,IAAA,iBAAS,EAAC,MAAA,GAAG,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAA;AACtC,CAAC,CAAA;AAFY,QAAA,YAAY,gBAExB;AACM,MAAM,SAAS,GAAG,CAAC,IAAa,EAAe,EAAE;IACtD,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACnD,OAAO,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AAJY,QAAA,SAAS,aAIrB"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreYoutubeUrl = exports.scoreNftYoutubeUrl = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const lib_1 = require("./lib");
6
- const scoreNftYoutubeUrl = (nft) => {
7
- var _a;
8
- return (0, exports.scoreYoutubeUrl)((_a = nft === null || nft === void 0 ? void 0 : nft.metadata) === null || _a === void 0 ? void 0 : _a.youtube_url);
9
- };
10
- exports.scoreNftYoutubeUrl = scoreNftYoutubeUrl;
11
- const scoreYoutubeUrl = (youtube_url) => {
12
- if (youtube_url === undefined || youtube_url === null)
13
- return crypto_nft_score_model_1.PASS;
14
- const score = [0, 2];
15
- if (typeof youtube_url !== 'string' || !(0, lib_1.isValidUrl)(youtube_url))
16
- return score;
17
- (0, crypto_nft_score_model_1.incrementTotal)(score);
18
- if (!(0, lib_1.isSecure)(youtube_url))
19
- return score;
20
- return (0, crypto_nft_score_model_1.incrementTotal)(score);
21
- };
22
- exports.scoreYoutubeUrl = scoreYoutubeUrl;
23
- //# sourceMappingURL=youtubeUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"youtubeUrl.js","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/youtubeUrl.ts"],"names":[],"mappings":";;;AACA,gFAAuF;AAEvF,+BAA4C;AAErC,MAAM,kBAAkB,GAAG,CAAC,GAAyC,EAAe,EAAE;;IAC3F,OAAO,IAAA,uBAAe,EAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,WAAW,CAAC,CAAA;AACpD,CAAC,CAAA;AAFY,QAAA,kBAAkB,sBAE9B;AACM,MAAM,eAAe,GAAG,CAAC,WAAoB,EAAe,EAAE;IACnE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,6BAAI,CAAA;IAClE,MAAM,KAAK,GAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAU,EAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IAC7E,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;IACrB,IAAI,CAAC,IAAA,cAAQ,EAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IACxC,OAAO,IAAA,uCAAc,EAAC,KAAK,CAAC,CAAA;AAC9B,CAAC,CAAA;AAPY,QAAA,eAAe,mBAO3B"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreSupply = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const lib_1 = require("./lib");
6
- const scoreSupply = (nft) => {
7
- if (!nft.supply)
8
- return crypto_nft_score_model_1.FAIL;
9
- if (typeof nft.supply !== 'string')
10
- return crypto_nft_score_model_1.FAIL;
11
- try {
12
- // Check for positive BigNumber since data type is uint256
13
- return (0, lib_1.isValidPositiveBigNumber)(nft.supply) ? crypto_nft_score_model_1.PASS : crypto_nft_score_model_1.FAIL;
14
- }
15
- catch (_error) {
16
- return crypto_nft_score_model_1.FAIL;
17
- }
18
- };
19
- exports.scoreSupply = scoreSupply;
20
- //# sourceMappingURL=supply.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supply.js","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/supply.ts"],"names":[],"mappings":";;;AACA,gFAAyF;AAEzF,+BAAgD;AAEzC,MAAM,WAAW,GAA2C,CAAC,GAAkB,EAAE,EAAE;IACxF,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,6BAAI,CAAA;IAC5B,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,6BAAI,CAAA;IAC/C,IAAI;QACF,0DAA0D;QAC1D,OAAO,IAAA,8BAAwB,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,6BAAI,CAAC,CAAC,CAAC,6BAAI,CAAA;KAC1D;IAAC,OAAO,MAAM,EAAE;QACf,OAAO,6BAAI,CAAA;KACZ;AACH,CAAC,CAAA;AATY,QAAA,WAAW,eASvB"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scoreTokenId = void 0;
4
- const crypto_nft_score_model_1 = require("@xyo-network/crypto-nft-score-model");
5
- const lib_1 = require("./lib");
6
- /**
7
- * Callers SHALL NOT assume that ID numbers have any specific pattern to them, and
8
- * MUST treat the ID as a "black box"
9
- * @param nft
10
- * @returns
11
- */
12
- const scoreTokenId = (nft) => {
13
- if (!nft.tokenId)
14
- return crypto_nft_score_model_1.FAIL;
15
- if (typeof nft.tokenId !== 'string')
16
- return crypto_nft_score_model_1.FAIL;
17
- try {
18
- // Check for positive BigNumber since data type is uint256
19
- return (0, lib_1.isValidPositiveBigNumber)(nft.tokenId) ? crypto_nft_score_model_1.PASS : crypto_nft_score_model_1.FAIL;
20
- }
21
- catch (_error) {
22
- return crypto_nft_score_model_1.FAIL;
23
- }
24
- };
25
- exports.scoreTokenId = scoreTokenId;
26
- //# sourceMappingURL=tokenId.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenId.js","sourceRoot":"","sources":["../../../../../../src/lib/rating/criteria/scoring/tokenId.ts"],"names":[],"mappings":";;;AACA,gFAAyF;AAEzF,+BAAgD;AAEhD;;;;;GAKG;AACI,MAAM,YAAY,GAA2C,CAAC,GAAkB,EAAE,EAAE;IACzF,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO,6BAAI,CAAA;IAC7B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,6BAAI,CAAA;IAChD,IAAI;QACF,0DAA0D;QAC1D,OAAO,IAAA,8BAAwB,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,6BAAI,CAAC,CAAC,CAAC,6BAAI,CAAA;KAC3D;IAAC,OAAO,MAAM,EAAE;QACf,OAAO,6BAAI,CAAA;KACZ;AACH,CAAC,CAAA;AATY,QAAA,YAAY,gBASxB"}