@xyo-network/crypto-nft-diviner-score-plugin 2.74.5 → 2.75.0
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.
- package/dist/browser/Diviner.cjs +407 -0
- package/dist/browser/Diviner.cjs.map +1 -0
- package/dist/browser/Diviner.d.mts.map +1 -0
- package/dist/browser/Diviner.d.ts.map +1 -0
- package/dist/browser/Diviner.js +390 -0
- package/dist/browser/Diviner.js.map +1 -0
- package/dist/browser/Plugin.cjs +421 -0
- package/dist/browser/Plugin.cjs.map +1 -0
- package/dist/browser/Plugin.d.mts.map +1 -0
- package/dist/browser/Plugin.d.ts.map +1 -0
- package/dist/browser/Plugin.js +404 -0
- package/dist/browser/Plugin.js.map +1 -0
- package/dist/{index.js → browser/index.cjs} +1 -8
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/{index.mjs → browser/index.js} +1 -1
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/lib/index.cjs +378 -0
- package/dist/browser/lib/index.cjs.map +1 -0
- package/dist/browser/lib/index.d.mts.map +1 -0
- package/dist/browser/lib/index.d.ts.map +1 -0
- package/dist/browser/lib/index.js +355 -0
- package/dist/browser/lib/index.js.map +1 -0
- package/dist/browser/lib/rating/analyzeNft.cjs +378 -0
- package/dist/browser/lib/rating/analyzeNft.cjs.map +1 -0
- package/dist/browser/lib/rating/analyzeNft.d.mts.map +1 -0
- package/dist/browser/lib/rating/analyzeNft.d.ts.map +1 -0
- package/dist/browser/lib/rating/analyzeNft.js +355 -0
- package/dist/browser/lib/rating/analyzeNft.js.map +1 -0
- package/dist/browser/lib/rating/criteria/index.cjs +364 -0
- package/dist/browser/lib/rating/criteria/index.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/index.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/index.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/index.js +341 -0
- package/dist/browser/lib/rating/criteria/index.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/contract.cjs +37 -0
- package/dist/browser/lib/rating/criteria/scoring/contract.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/contract.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/contract.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/contract.js +16 -0
- package/dist/browser/lib/rating/criteria/scoring/contract.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/index.cjs +363 -0
- package/dist/browser/lib/rating/criteria/scoring/index.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/index.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/index.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/index.js +340 -0
- package/dist/browser/lib/rating/criteria/scoring/index.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/index.cjs +43 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/index.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/index.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/index.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/index.js +20 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/index.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.cjs +42 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +19 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.cjs +34 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.js +13 -0
- package/dist/browser/lib/rating/criteria/scoring/lib/toBigNumber.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.cjs +67 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.js +46 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.cjs +103 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +82 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.cjs +105 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.js +82 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/index.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.cjs +44 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.js +23 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/description.cjs +37 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/description.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/description.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/description.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/description.js +16 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/description.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.cjs +58 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.js +37 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/image.cjs +67 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/image.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/image.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/image.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/image.js +46 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/image.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.cjs +50 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.js +29 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/index.cjs +287 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/index.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/index.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/index.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/index.js +264 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/index.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.cjs +48 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.js +25 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/index.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.cjs +46 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +25 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/name.cjs +37 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/name.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/name.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/name.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/name.js +16 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/name.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.cjs +60 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.js +39 -0
- package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/supply.cjs +56 -0
- package/dist/browser/lib/rating/criteria/scoring/supply.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/supply.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/supply.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/supply.js +35 -0
- package/dist/browser/lib/rating/criteria/scoring/supply.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/tokenId.cjs +56 -0
- package/dist/browser/lib/rating/criteria/scoring/tokenId.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/tokenId.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/tokenId.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/tokenId.js +35 -0
- package/dist/browser/lib/rating/criteria/scoring/tokenId.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/type.cjs +37 -0
- package/dist/browser/lib/rating/criteria/scoring/type.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/type.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/type.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoring/type.js +16 -0
- package/dist/browser/lib/rating/criteria/scoring/type.js.map +1 -0
- package/dist/browser/lib/rating/criteria/scoringCriteria.cjs +364 -0
- package/dist/browser/lib/rating/criteria/scoringCriteria.cjs.map +1 -0
- package/dist/browser/lib/rating/criteria/scoringCriteria.d.mts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoringCriteria.d.ts.map +1 -0
- package/dist/browser/lib/rating/criteria/scoringCriteria.js +341 -0
- package/dist/browser/lib/rating/criteria/scoringCriteria.js.map +1 -0
- package/dist/browser/lib/rating/index.cjs +378 -0
- package/dist/browser/lib/rating/index.cjs.map +1 -0
- package/dist/browser/lib/rating/index.d.mts.map +1 -0
- package/dist/browser/lib/rating/index.d.ts.map +1 -0
- package/dist/browser/lib/rating/index.js +355 -0
- package/dist/browser/lib/rating/index.js.map +1 -0
- package/dist/node/Diviner.d.mts +14 -0
- package/dist/node/Diviner.d.mts.map +1 -0
- package/dist/node/Diviner.d.ts +14 -0
- package/dist/node/Diviner.d.ts.map +1 -0
- package/dist/node/Diviner.js +57 -0
- package/dist/node/Diviner.js.map +1 -0
- package/dist/node/Diviner.mjs +36 -0
- package/dist/node/Diviner.mjs.map +1 -0
- package/dist/node/Plugin.d.mts +50 -0
- package/dist/node/Plugin.d.mts.map +1 -0
- package/dist/node/Plugin.d.ts +50 -0
- package/dist/node/Plugin.d.ts.map +1 -0
- package/dist/node/Plugin.js +41 -0
- package/dist/node/Plugin.js.map +1 -0
- package/dist/node/Plugin.mjs +17 -0
- package/dist/node/Plugin.mjs.map +1 -0
- package/dist/node/index.d.mts +6 -0
- package/dist/node/index.d.mts.map +1 -0
- package/dist/node/index.d.ts +6 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +36 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/index.mjs +9 -0
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/index.d.mts +2 -0
- package/dist/node/lib/index.d.mts.map +1 -0
- package/dist/node/lib/index.d.ts +2 -0
- package/dist/node/lib/index.d.ts.map +1 -0
- package/dist/node/lib/index.js +23 -0
- package/dist/node/lib/index.js.map +1 -0
- package/dist/node/lib/index.mjs +2 -0
- package/dist/node/lib/index.mjs.map +1 -0
- package/dist/node/lib/rating/analyzeNft.d.mts +9 -0
- package/dist/node/lib/rating/analyzeNft.d.mts.map +1 -0
- package/dist/node/lib/rating/analyzeNft.d.ts +9 -0
- package/dist/node/lib/rating/analyzeNft.d.ts.map +1 -0
- package/dist/node/lib/rating/analyzeNft.js +41 -0
- package/dist/node/lib/rating/analyzeNft.js.map +1 -0
- package/dist/node/lib/rating/analyzeNft.mjs +17 -0
- package/dist/node/lib/rating/analyzeNft.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/index.d.mts +2 -0
- package/dist/node/lib/rating/criteria/index.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/index.d.ts +2 -0
- package/dist/node/lib/rating/criteria/index.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/index.js +23 -0
- package/dist/node/lib/rating/criteria/index.js.map +1 -0
- package/dist/node/lib/rating/criteria/index.mjs +2 -0
- package/dist/node/lib/rating/criteria/index.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/contract.d.mts +4 -0
- package/dist/node/lib/rating/criteria/scoring/contract.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/contract.d.ts +4 -0
- package/dist/node/lib/rating/criteria/scoring/contract.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/contract.js +39 -0
- package/dist/node/lib/rating/criteria/scoring/contract.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/contract.mjs +15 -0
- package/dist/node/lib/rating/criteria/scoring/contract.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/index.d.mts +6 -0
- package/dist/node/lib/rating/criteria/scoring/index.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/index.d.ts +6 -0
- package/dist/node/lib/rating/criteria/scoring/index.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/index.js +31 -0
- package/dist/node/lib/rating/criteria/scoring/index.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/index.mjs +6 -0
- package/dist/node/lib/rating/criteria/scoring/index.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/index.d.mts +3 -0
- package/dist/node/lib/rating/criteria/scoring/lib/index.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/index.d.ts +3 -0
- package/dist/node/lib/rating/criteria/scoring/lib/index.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/index.js +25 -0
- package/dist/node/lib/rating/criteria/scoring/lib/index.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/index.mjs +3 -0
- package/dist/node/lib/rating/criteria/scoring/lib/index.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts +2 -0
- package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts +2 -0
- package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js +33 -0
- package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.mjs +9 -0
- package/dist/node/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.mts +3 -0
- package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.ts +3 -0
- package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.js +36 -0
- package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.mjs +12 -0
- package/dist/node/lib/rating/criteria/scoring/lib/toBigNumber.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.mts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.ts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.js +53 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.mjs +28 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts +6 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts +6 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js +107 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.mjs +81 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.mts +2 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.ts +2 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.js +23 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.mjs +2 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/attributes/index.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.js +47 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.mjs +22 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/description.d.mts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/description.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/description.d.ts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/description.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/description.js +40 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/description.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/description.mjs +15 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/description.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.mts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.ts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.js +44 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.mjs +19 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/image.d.mts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/image.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/image.d.ts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/image.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/image.js +53 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/image.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/image.mjs +28 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/image.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.mts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.ts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/imageData.js +53 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/imageData.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/imageData.mjs +28 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/imageData.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/index.d.mts +10 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/index.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/index.d.ts +10 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/index.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/index.js +39 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/index.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/index.mjs +10 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/index.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.mts +2 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.ts +2 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.js +23 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.mjs +2 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/index.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts +8 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts +8 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js +53 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.mjs +24 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/lib/urlHelpers.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/name.d.mts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/name.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/name.d.ts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/name.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/name.js +40 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/name.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/name.mjs +15 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/name.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts +5 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.js +46 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.mjs +21 -0
- package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/supply.d.mts +4 -0
- package/dist/node/lib/rating/criteria/scoring/supply.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/supply.d.ts +4 -0
- package/dist/node/lib/rating/criteria/scoring/supply.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/supply.js +41 -0
- package/dist/node/lib/rating/criteria/scoring/supply.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/supply.mjs +17 -0
- package/dist/node/lib/rating/criteria/scoring/supply.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/tokenId.d.mts +10 -0
- package/dist/node/lib/rating/criteria/scoring/tokenId.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/tokenId.d.ts +10 -0
- package/dist/node/lib/rating/criteria/scoring/tokenId.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/tokenId.js +41 -0
- package/dist/node/lib/rating/criteria/scoring/tokenId.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/tokenId.mjs +17 -0
- package/dist/node/lib/rating/criteria/scoring/tokenId.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/type.d.mts +4 -0
- package/dist/node/lib/rating/criteria/scoring/type.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/type.d.ts +4 -0
- package/dist/node/lib/rating/criteria/scoring/type.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/type.js +39 -0
- package/dist/node/lib/rating/criteria/scoring/type.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoring/type.mjs +15 -0
- package/dist/node/lib/rating/criteria/scoring/type.mjs.map +1 -0
- package/dist/node/lib/rating/criteria/scoringCriteria.d.mts +55 -0
- package/dist/node/lib/rating/criteria/scoringCriteria.d.mts.map +1 -0
- package/dist/node/lib/rating/criteria/scoringCriteria.d.ts +55 -0
- package/dist/node/lib/rating/criteria/scoringCriteria.d.ts.map +1 -0
- package/dist/node/lib/rating/criteria/scoringCriteria.js +50 -0
- package/dist/node/lib/rating/criteria/scoringCriteria.js.map +1 -0
- package/dist/node/lib/rating/criteria/scoringCriteria.mjs +40 -0
- package/dist/node/lib/rating/criteria/scoringCriteria.mjs.map +1 -0
- package/dist/node/lib/rating/index.d.mts +2 -0
- package/dist/node/lib/rating/index.d.mts.map +1 -0
- package/dist/node/lib/rating/index.d.ts +2 -0
- package/dist/node/lib/rating/index.d.ts.map +1 -0
- package/dist/node/lib/rating/index.js +23 -0
- package/dist/node/lib/rating/index.js.map +1 -0
- package/dist/node/lib/rating/index.mjs +2 -0
- package/dist/node/lib/rating/index.mjs.map +1 -0
- package/package.json +36 -33
- package/dist/Diviner.d.mts.map +0 -1
- package/dist/Diviner.d.ts.map +0 -1
- package/dist/Plugin.d.mts.map +0 -1
- package/dist/Plugin.d.ts.map +0 -1
- package/dist/docs.json +0 -21969
- package/dist/index.d.mts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/lib/index.d.mts.map +0 -1
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/rating/analyzeNft.d.mts.map +0 -1
- package/dist/lib/rating/analyzeNft.d.ts.map +0 -1
- package/dist/lib/rating/criteria/index.d.mts.map +0 -1
- package/dist/lib/rating/criteria/index.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/contract.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/contract.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/index.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/index.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/lib/index.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/lib/index.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/lib/toBigNumber.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/lib/toBigNumber.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/animationUrl.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/attributes/index.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/attributes/index.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/description.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/description.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/externalUrl.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/image.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/image.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/imageData.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/index.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/index.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/lib/index.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/lib/index.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/name.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/name.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/supply.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/supply.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/tokenId.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/tokenId.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoring/type.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoring/type.d.ts.map +0 -1
- package/dist/lib/rating/criteria/scoringCriteria.d.mts.map +0 -1
- package/dist/lib/rating/criteria/scoringCriteria.d.ts.map +0 -1
- package/dist/lib/rating/index.d.mts.map +0 -1
- package/dist/lib/rating/index.d.ts.map +0 -1
- /package/dist/{Diviner.d.mts → browser/Diviner.d.mts} +0 -0
- /package/dist/{Diviner.d.ts → browser/Diviner.d.ts} +0 -0
- /package/dist/{Plugin.d.mts → browser/Plugin.d.mts} +0 -0
- /package/dist/{Plugin.d.ts → browser/Plugin.d.ts} +0 -0
- /package/dist/{index.d.mts → browser/index.d.mts} +0 -0
- /package/dist/{index.d.ts → browser/index.d.ts} +0 -0
- /package/dist/{lib → browser/lib}/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/index.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/analyzeNft.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/analyzeNft.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/index.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/contract.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/contract.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/index.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/lib/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/lib/index.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/lib/isValidPositiveBigNumber.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/lib/toBigNumber.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/lib/toBigNumber.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/animationUrl.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/animationUrl.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/attributes/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/attributes/index.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/backgroundColor.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/backgroundColor.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/description.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/description.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/externalUrl.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/externalUrl.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/image.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/image.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/imageData.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/imageData.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/index.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/lib/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/lib/index.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/lib/urlHelpers.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/lib/urlHelpers.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/name.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/name.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/youtubeUrl.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/metadata/youtubeUrl.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/supply.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/supply.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/tokenId.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/tokenId.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/type.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoring/type.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoringCriteria.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/criteria/scoringCriteria.d.ts +0 -0
- /package/dist/{lib → browser/lib}/rating/index.d.mts +0 -0
- /package/dist/{lib → browser/lib}/rating/index.d.ts +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
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/animationUrl.ts
|
|
21
|
+
var animationUrl_exports = {};
|
|
22
|
+
__export(animationUrl_exports, {
|
|
23
|
+
scoreAnimationUrl: () => scoreAnimationUrl,
|
|
24
|
+
scoreNftAnimationUrl: () => scoreNftAnimationUrl
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(animationUrl_exports);
|
|
27
|
+
var import_crypto_nft_score_model = require("@xyo-network/crypto-nft-score-model");
|
|
28
|
+
|
|
29
|
+
// src/lib/rating/criteria/scoring/metadata/lib/urlHelpers.ts
|
|
30
|
+
var import_url = require("@xylabs/url");
|
|
31
|
+
var web3Protocols = ["ipfs:", "ar:"];
|
|
32
|
+
var toUrl = (url) => {
|
|
33
|
+
if (!url)
|
|
34
|
+
return void 0;
|
|
35
|
+
try {
|
|
36
|
+
return new import_url.URL(url);
|
|
37
|
+
} catch (e) {
|
|
38
|
+
return void 0;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var isValidUrl = (url) => toUrl(url) !== void 0;
|
|
42
|
+
var isWeb3 = (url) => web3Protocols.some((protocol) => protocol === toUrl(url)?.protocol);
|
|
43
|
+
var isSecure = (url) => isWeb3(url) || toUrl(url)?.protocol === "https:";
|
|
44
|
+
|
|
45
|
+
// src/lib/rating/criteria/scoring/metadata/animationUrl.ts
|
|
46
|
+
var scoreNftAnimationUrl = (nft) => {
|
|
47
|
+
return scoreAnimationUrl(nft.metadata?.animation_url);
|
|
48
|
+
};
|
|
49
|
+
var scoreAnimationUrl = (animation_url) => {
|
|
50
|
+
const score = [0, 0];
|
|
51
|
+
if (animation_url === void 0 || animation_url === null)
|
|
52
|
+
return import_crypto_nft_score_model.PASS;
|
|
53
|
+
(0, import_crypto_nft_score_model.incrementPossible)(score);
|
|
54
|
+
if (typeof animation_url !== "string")
|
|
55
|
+
return score;
|
|
56
|
+
(0, import_crypto_nft_score_model.incrementTotalAndPossible)(score);
|
|
57
|
+
if (!isValidUrl(animation_url))
|
|
58
|
+
return score;
|
|
59
|
+
(0, import_crypto_nft_score_model.incrementTotalAndPossible)(score);
|
|
60
|
+
if (!isSecure(animation_url))
|
|
61
|
+
return score;
|
|
62
|
+
(0, import_crypto_nft_score_model.incrementTotalAndPossible)(score);
|
|
63
|
+
if (!isWeb3(animation_url))
|
|
64
|
+
return score;
|
|
65
|
+
return (0, import_crypto_nft_score_model.incrementTotal)(score);
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=animationUrl.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animationUrl.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/animationUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC5F,OAAO,EAAsE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAIrI,eAAO,MAAM,oBAAoB,QAAS,aAAa,GAAG,oBAAoB,gBAE7E,CAAA;AAED,eAAO,MAAM,iBAAiB,kBAAmB,OAAO,gBAYvD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animationUrl.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/animationUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC5F,OAAO,EAAsE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAIrI,eAAO,MAAM,oBAAoB,QAAS,aAAa,GAAG,oBAAoB,gBAE7E,CAAA;AAED,eAAO,MAAM,iBAAiB,kBAAmB,OAAO,gBAYvD,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,103 @@
|
|
|
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
|
package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluateAttributes.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC/H,OAAO,EAAgE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAsB/H,eAAO,MAAM,qBAAqB,QAAS,aAAa,GAAG,oBAAoB,gBACM,CAAA;AAErF,eAAO,MAAM,kBAAkB,eAAgB,YAAY,EAAE,GAAG,mBAAmB,EAAE,GAAG,OAAO,gBAQ9F,CAAA;AAED,eAAO,MAAM,iBAAiB,cAAe,mBAAmB,gBAqB/D,CAAA"}
|
package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluateAttributes.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC/H,OAAO,EAAgE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAsB/H,eAAO,MAAM,qBAAqB,QAAS,aAAa,GAAG,oBAAoB,gBACM,CAAA;AAErF,eAAO,MAAM,kBAAkB,eAAgB,YAAY,EAAE,GAAG,mBAAmB,EAAE,GAAG,OAAO,gBAQ9F,CAAA;AAED,eAAO,MAAM,iBAAiB,cAAe,mBAAmB,gBAqB/D,CAAA"}
|
|
@@ -0,0 +1,82 @@
|
|
|
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
|
package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/lib/rating/criteria/scoring/metadata/attributes/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,82 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backgroundColor.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/backgroundColor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC5F,OAAO,EAAsE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAIrI,eAAO,MAAM,uBAAuB,QAAS,aAAa,GAAG,oBAAoB,gBAEhF,CAAA;AAED,eAAO,MAAM,oBAAoB,qBAAsB,OAAO,gBAQ7D,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backgroundColor.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/rating/criteria/scoring/metadata/backgroundColor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC5F,OAAO,EAAsE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAIrI,eAAO,MAAM,uBAAuB,QAAS,aAAa,GAAG,oBAAoB,gBAEhF,CAAA;AAED,eAAO,MAAM,oBAAoB,qBAAsB,OAAO,gBAQ7D,CAAA"}
|