@xyo-network/crypto-nft-diviner-score-plugin 2.97.0-rc.1 → 2.97.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.
Files changed (148) hide show
  1. package/dist/browser/Diviner.d.cts +2 -6
  2. package/dist/browser/Diviner.d.cts.map +1 -1
  3. package/dist/browser/Diviner.d.mts +2 -6
  4. package/dist/browser/Diviner.d.mts.map +1 -1
  5. package/dist/browser/Diviner.d.ts +2 -6
  6. package/dist/browser/Diviner.d.ts.map +1 -1
  7. package/dist/browser/Plugin.d.cts +7 -7
  8. package/dist/browser/Plugin.d.mts +7 -7
  9. package/dist/browser/Plugin.d.ts +7 -7
  10. package/dist/browser/index.cjs +1 -371
  11. package/dist/browser/index.cjs.map +1 -1
  12. package/dist/browser/index.js +1 -352
  13. package/dist/browser/index.js.map +1 -1
  14. package/dist/browser/lib/rating/analyzeNft.d.cts.map +1 -1
  15. package/dist/browser/lib/rating/analyzeNft.d.mts.map +1 -1
  16. package/dist/browser/lib/rating/analyzeNft.d.ts.map +1 -1
  17. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.d.cts.map +1 -1
  18. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.d.mts.map +1 -1
  19. package/dist/browser/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +1 -1
  20. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.cts.map +1 -1
  21. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map +1 -1
  22. package/dist/browser/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +1 -1
  23. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.cts.map +1 -1
  24. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts.map +1 -1
  25. package/dist/browser/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +1 -1
  26. package/dist/browser/lib/rating/criteria/scoring/metadata/description.d.cts.map +1 -1
  27. package/dist/browser/lib/rating/criteria/scoring/metadata/description.d.mts.map +1 -1
  28. package/dist/browser/lib/rating/criteria/scoring/metadata/description.d.ts.map +1 -1
  29. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.d.cts.map +1 -1
  30. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.d.mts.map +1 -1
  31. package/dist/browser/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +1 -1
  32. package/dist/browser/lib/rating/criteria/scoring/metadata/image.d.cts.map +1 -1
  33. package/dist/browser/lib/rating/criteria/scoring/metadata/image.d.mts.map +1 -1
  34. package/dist/browser/lib/rating/criteria/scoring/metadata/image.d.ts.map +1 -1
  35. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.d.cts.map +1 -1
  36. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.d.mts.map +1 -1
  37. package/dist/browser/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +1 -1
  38. package/dist/browser/lib/rating/criteria/scoring/metadata/name.d.cts.map +1 -1
  39. package/dist/browser/lib/rating/criteria/scoring/metadata/name.d.mts.map +1 -1
  40. package/dist/browser/lib/rating/criteria/scoring/metadata/name.d.ts.map +1 -1
  41. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.cts.map +1 -1
  42. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts.map +1 -1
  43. package/dist/browser/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +1 -1
  44. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.cts +0 -6
  45. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.cts.map +1 -1
  46. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.mts +0 -6
  47. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.mts.map +1 -1
  48. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.ts +0 -6
  49. package/dist/browser/lib/rating/criteria/scoring/tokenId.d.ts.map +1 -1
  50. package/dist/neutral/Diviner.d.cts +2 -6
  51. package/dist/neutral/Diviner.d.cts.map +1 -1
  52. package/dist/neutral/Diviner.d.mts +2 -6
  53. package/dist/neutral/Diviner.d.mts.map +1 -1
  54. package/dist/neutral/Diviner.d.ts +2 -6
  55. package/dist/neutral/Diviner.d.ts.map +1 -1
  56. package/dist/neutral/Plugin.d.cts +7 -7
  57. package/dist/neutral/Plugin.d.mts +7 -7
  58. package/dist/neutral/Plugin.d.ts +7 -7
  59. package/dist/neutral/index.cjs +1 -371
  60. package/dist/neutral/index.cjs.map +1 -1
  61. package/dist/neutral/index.js +1 -352
  62. package/dist/neutral/index.js.map +1 -1
  63. package/dist/neutral/lib/rating/analyzeNft.d.cts.map +1 -1
  64. package/dist/neutral/lib/rating/analyzeNft.d.mts.map +1 -1
  65. package/dist/neutral/lib/rating/analyzeNft.d.ts.map +1 -1
  66. package/dist/neutral/lib/rating/criteria/scoring/metadata/animationUrl.d.cts.map +1 -1
  67. package/dist/neutral/lib/rating/criteria/scoring/metadata/animationUrl.d.mts.map +1 -1
  68. package/dist/neutral/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +1 -1
  69. package/dist/neutral/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.cts.map +1 -1
  70. package/dist/neutral/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map +1 -1
  71. package/dist/neutral/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +1 -1
  72. package/dist/neutral/lib/rating/criteria/scoring/metadata/backgroundColor.d.cts.map +1 -1
  73. package/dist/neutral/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts.map +1 -1
  74. package/dist/neutral/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +1 -1
  75. package/dist/neutral/lib/rating/criteria/scoring/metadata/description.d.cts.map +1 -1
  76. package/dist/neutral/lib/rating/criteria/scoring/metadata/description.d.mts.map +1 -1
  77. package/dist/neutral/lib/rating/criteria/scoring/metadata/description.d.ts.map +1 -1
  78. package/dist/neutral/lib/rating/criteria/scoring/metadata/externalUrl.d.cts.map +1 -1
  79. package/dist/neutral/lib/rating/criteria/scoring/metadata/externalUrl.d.mts.map +1 -1
  80. package/dist/neutral/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +1 -1
  81. package/dist/neutral/lib/rating/criteria/scoring/metadata/image.d.cts.map +1 -1
  82. package/dist/neutral/lib/rating/criteria/scoring/metadata/image.d.mts.map +1 -1
  83. package/dist/neutral/lib/rating/criteria/scoring/metadata/image.d.ts.map +1 -1
  84. package/dist/neutral/lib/rating/criteria/scoring/metadata/imageData.d.cts.map +1 -1
  85. package/dist/neutral/lib/rating/criteria/scoring/metadata/imageData.d.mts.map +1 -1
  86. package/dist/neutral/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +1 -1
  87. package/dist/neutral/lib/rating/criteria/scoring/metadata/name.d.cts.map +1 -1
  88. package/dist/neutral/lib/rating/criteria/scoring/metadata/name.d.mts.map +1 -1
  89. package/dist/neutral/lib/rating/criteria/scoring/metadata/name.d.ts.map +1 -1
  90. package/dist/neutral/lib/rating/criteria/scoring/metadata/youtubeUrl.d.cts.map +1 -1
  91. package/dist/neutral/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts.map +1 -1
  92. package/dist/neutral/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +1 -1
  93. package/dist/neutral/lib/rating/criteria/scoring/tokenId.d.cts +0 -6
  94. package/dist/neutral/lib/rating/criteria/scoring/tokenId.d.cts.map +1 -1
  95. package/dist/neutral/lib/rating/criteria/scoring/tokenId.d.mts +0 -6
  96. package/dist/neutral/lib/rating/criteria/scoring/tokenId.d.mts.map +1 -1
  97. package/dist/neutral/lib/rating/criteria/scoring/tokenId.d.ts +0 -6
  98. package/dist/neutral/lib/rating/criteria/scoring/tokenId.d.ts.map +1 -1
  99. package/dist/node/Diviner.d.cts +2 -6
  100. package/dist/node/Diviner.d.cts.map +1 -1
  101. package/dist/node/Diviner.d.mts +2 -6
  102. package/dist/node/Diviner.d.mts.map +1 -1
  103. package/dist/node/Diviner.d.ts +2 -6
  104. package/dist/node/Diviner.d.ts.map +1 -1
  105. package/dist/node/Plugin.d.cts +7 -7
  106. package/dist/node/Plugin.d.mts +7 -7
  107. package/dist/node/Plugin.d.ts +7 -7
  108. package/dist/node/index.cjs +1 -396
  109. package/dist/node/index.cjs.map +1 -1
  110. package/dist/node/index.js +1 -369
  111. package/dist/node/index.js.map +1 -1
  112. package/dist/node/lib/rating/analyzeNft.d.cts.map +1 -1
  113. package/dist/node/lib/rating/analyzeNft.d.mts.map +1 -1
  114. package/dist/node/lib/rating/analyzeNft.d.ts.map +1 -1
  115. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.cts.map +1 -1
  116. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.mts.map +1 -1
  117. package/dist/node/lib/rating/criteria/scoring/metadata/animationUrl.d.ts.map +1 -1
  118. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.cts.map +1 -1
  119. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.mts.map +1 -1
  120. package/dist/node/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.d.ts.map +1 -1
  121. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.cts.map +1 -1
  122. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.mts.map +1 -1
  123. package/dist/node/lib/rating/criteria/scoring/metadata/backgroundColor.d.ts.map +1 -1
  124. package/dist/node/lib/rating/criteria/scoring/metadata/description.d.cts.map +1 -1
  125. package/dist/node/lib/rating/criteria/scoring/metadata/description.d.mts.map +1 -1
  126. package/dist/node/lib/rating/criteria/scoring/metadata/description.d.ts.map +1 -1
  127. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.cts.map +1 -1
  128. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.mts.map +1 -1
  129. package/dist/node/lib/rating/criteria/scoring/metadata/externalUrl.d.ts.map +1 -1
  130. package/dist/node/lib/rating/criteria/scoring/metadata/image.d.cts.map +1 -1
  131. package/dist/node/lib/rating/criteria/scoring/metadata/image.d.mts.map +1 -1
  132. package/dist/node/lib/rating/criteria/scoring/metadata/image.d.ts.map +1 -1
  133. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.cts.map +1 -1
  134. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.mts.map +1 -1
  135. package/dist/node/lib/rating/criteria/scoring/metadata/imageData.d.ts.map +1 -1
  136. package/dist/node/lib/rating/criteria/scoring/metadata/name.d.cts.map +1 -1
  137. package/dist/node/lib/rating/criteria/scoring/metadata/name.d.mts.map +1 -1
  138. package/dist/node/lib/rating/criteria/scoring/metadata/name.d.ts.map +1 -1
  139. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.cts.map +1 -1
  140. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.mts.map +1 -1
  141. package/dist/node/lib/rating/criteria/scoring/metadata/youtubeUrl.d.ts.map +1 -1
  142. package/dist/node/lib/rating/criteria/scoring/tokenId.d.cts +0 -6
  143. package/dist/node/lib/rating/criteria/scoring/tokenId.d.cts.map +1 -1
  144. package/dist/node/lib/rating/criteria/scoring/tokenId.d.mts +0 -6
  145. package/dist/node/lib/rating/criteria/scoring/tokenId.d.mts.map +1 -1
  146. package/dist/node/lib/rating/criteria/scoring/tokenId.d.ts +0 -6
  147. package/dist/node/lib/rating/criteria/scoring/tokenId.d.ts.map +1 -1
  148. package/package.json +16 -17
@@ -1,14 +1,10 @@
1
- import { NftScoreDivinerConfig } from '@xyo-network/crypto-nft-payload-plugin';
1
+ import { NftScore, NftScoreDivinerConfig } from '@xyo-network/crypto-nft-payload-plugin';
2
2
  import { AbstractDiviner } from '@xyo-network/diviner-abstract';
3
3
  import { DivinerParams } from '@xyo-network/diviner-model';
4
4
  import { AnyConfigSchema } from '@xyo-network/module-model';
5
5
  import { Payload, Schema } from '@xyo-network/payload-model';
6
6
  export type NftScoreDivinerParams = DivinerParams<AnyConfigSchema<NftScoreDivinerConfig>>;
7
- export declare const isNftScore: (payload: Payload) => payload is import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/crypto-nft-payload-plugin").NftContractInformation & import("@xyo-network/crypto-nft-payload-plugin").NftScores & {
8
- sources?: string[] | undefined;
9
- } & {
10
- schema: "network.xyo.crypto.nft.score";
11
- };
7
+ export declare const isNftScore: (payload: Payload) => payload is NftScore;
12
8
  export declare class NftScoreDiviner<TParams extends NftScoreDivinerParams = NftScoreDivinerParams> extends AbstractDiviner<TParams> {
13
9
  static readonly configSchemas: Schema[];
14
10
  static readonly defaultConfigSchema: Schema;
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EAGtB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI5D,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAOzF,eAAO,MAAM,UAAU,YAAa,OAAO;;;;CAA2D,CAAA;AAEtG,qBAAa,eAAe,CAAC,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC1H,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,UAAmB,aAAa,cAAqB,OAAO,EAAE,KAAG,QAAQ,OAAO,EAAE,CAAC,CAclF;CACF"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,qBAAqB,EAGtB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI5D,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAOzF,eAAO,MAAM,UAAU,YAAa,OAAO,KAAG,OAAO,IAAI,QAA6C,CAAA;AAEtG,qBAAa,eAAe,CAAC,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC1H,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,UAAmB,aAAa,cAAqB,OAAO,EAAE,KAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAclF;CACF"}
@@ -1,14 +1,10 @@
1
- import { NftScoreDivinerConfig } from '@xyo-network/crypto-nft-payload-plugin';
1
+ import { NftScore, NftScoreDivinerConfig } from '@xyo-network/crypto-nft-payload-plugin';
2
2
  import { AbstractDiviner } from '@xyo-network/diviner-abstract';
3
3
  import { DivinerParams } from '@xyo-network/diviner-model';
4
4
  import { AnyConfigSchema } from '@xyo-network/module-model';
5
5
  import { Payload, Schema } from '@xyo-network/payload-model';
6
6
  export type NftScoreDivinerParams = DivinerParams<AnyConfigSchema<NftScoreDivinerConfig>>;
7
- export declare const isNftScore: (payload: Payload) => payload is import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/crypto-nft-payload-plugin").NftContractInformation & import("@xyo-network/crypto-nft-payload-plugin").NftScores & {
8
- sources?: string[] | undefined;
9
- } & {
10
- schema: "network.xyo.crypto.nft.score";
11
- };
7
+ export declare const isNftScore: (payload: Payload) => payload is NftScore;
12
8
  export declare class NftScoreDiviner<TParams extends NftScoreDivinerParams = NftScoreDivinerParams> extends AbstractDiviner<TParams> {
13
9
  static readonly configSchemas: Schema[];
14
10
  static readonly defaultConfigSchema: Schema;
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EAGtB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI5D,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAOzF,eAAO,MAAM,UAAU,YAAa,OAAO;;;;CAA2D,CAAA;AAEtG,qBAAa,eAAe,CAAC,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC1H,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,UAAmB,aAAa,cAAqB,OAAO,EAAE,KAAG,QAAQ,OAAO,EAAE,CAAC,CAclF;CACF"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,qBAAqB,EAGtB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI5D,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAOzF,eAAO,MAAM,UAAU,YAAa,OAAO,KAAG,OAAO,IAAI,QAA6C,CAAA;AAEtG,qBAAa,eAAe,CAAC,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC1H,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,UAAmB,aAAa,cAAqB,OAAO,EAAE,KAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAclF;CACF"}
@@ -1,14 +1,10 @@
1
- import { NftScoreDivinerConfig } from '@xyo-network/crypto-nft-payload-plugin';
1
+ import { NftScore, NftScoreDivinerConfig } from '@xyo-network/crypto-nft-payload-plugin';
2
2
  import { AbstractDiviner } from '@xyo-network/diviner-abstract';
3
3
  import { DivinerParams } from '@xyo-network/diviner-model';
4
4
  import { AnyConfigSchema } from '@xyo-network/module-model';
5
5
  import { Payload, Schema } from '@xyo-network/payload-model';
6
6
  export type NftScoreDivinerParams = DivinerParams<AnyConfigSchema<NftScoreDivinerConfig>>;
7
- export declare const isNftScore: (payload: Payload) => payload is import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/crypto-nft-payload-plugin").NftContractInformation & import("@xyo-network/crypto-nft-payload-plugin").NftScores & {
8
- sources?: string[] | undefined;
9
- } & {
10
- schema: "network.xyo.crypto.nft.score";
11
- };
7
+ export declare const isNftScore: (payload: Payload) => payload is NftScore;
12
8
  export declare class NftScoreDiviner<TParams extends NftScoreDivinerParams = NftScoreDivinerParams> extends AbstractDiviner<TParams> {
13
9
  static readonly configSchemas: Schema[];
14
10
  static readonly defaultConfigSchema: Schema;
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EAGtB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI5D,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAOzF,eAAO,MAAM,UAAU,YAAa,OAAO;;;;CAA2D,CAAA;AAEtG,qBAAa,eAAe,CAAC,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC1H,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,UAAmB,aAAa,cAAqB,OAAO,EAAE,KAAG,QAAQ,OAAO,EAAE,CAAC,CAclF;CACF"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,qBAAqB,EAGtB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAI5D,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,CAAA;AAOzF,eAAO,MAAM,UAAU,YAAa,OAAO,KAAG,OAAO,IAAI,QAA6C,CAAA;AAEtG,qBAAa,eAAe,CAAC,OAAO,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC1H,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAwD;IACxG,gBAAyB,mBAAmB,EAAE,MAAM,CAA8B;IAElF,UAAmB,aAAa,cAAqB,OAAO,EAAE,KAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAclF;CACF"}
@@ -1,19 +1,19 @@
1
1
  import { NftScoreDiviner } from './Diviner';
2
2
  export declare const NftScoreDivinerPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<NftScoreDiviner<import("@xylabs/object").BaseParamsFields & {
3
- account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
4
- addToResolvers?: boolean | undefined;
5
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[] | undefined;
6
- allowNameResolution?: boolean | undefined;
3
+ account?: import("@xyo-network/account-model").AccountInstance | "random";
4
+ addToResolvers?: boolean;
5
+ additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
6
+ allowNameResolution?: boolean;
7
7
  config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
8
8
  schema: "network.xyo.crypto.nft.score.diviner.config";
9
9
  } & {
10
- schema: "network.xyo.crypto.nft.score.diviner.config";
10
+ schema: import("@xyo-network/crypto-nft-payload-plugin").NftScoreDivinerConfigSchema;
11
11
  }, "schema"> & {
12
12
  schema: "network.xyo.crypto.nft.score.diviner.config";
13
13
  }, "schema"> & {
14
14
  schema: string;
15
15
  };
16
- ephemeralQueryAccountEnabled?: boolean | undefined;
17
- moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
16
+ ephemeralQueryAccountEnabled?: boolean;
17
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
18
18
  }>>;
19
19
  //# sourceMappingURL=Plugin.d.ts.map
@@ -1,19 +1,19 @@
1
1
  import { NftScoreDiviner } from './Diviner';
2
2
  export declare const NftScoreDivinerPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<NftScoreDiviner<import("@xylabs/object").BaseParamsFields & {
3
- account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
4
- addToResolvers?: boolean | undefined;
5
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[] | undefined;
6
- allowNameResolution?: boolean | undefined;
3
+ account?: import("@xyo-network/account-model").AccountInstance | "random";
4
+ addToResolvers?: boolean;
5
+ additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
6
+ allowNameResolution?: boolean;
7
7
  config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
8
8
  schema: "network.xyo.crypto.nft.score.diviner.config";
9
9
  } & {
10
- schema: "network.xyo.crypto.nft.score.diviner.config";
10
+ schema: import("@xyo-network/crypto-nft-payload-plugin").NftScoreDivinerConfigSchema;
11
11
  }, "schema"> & {
12
12
  schema: "network.xyo.crypto.nft.score.diviner.config";
13
13
  }, "schema"> & {
14
14
  schema: string;
15
15
  };
16
- ephemeralQueryAccountEnabled?: boolean | undefined;
17
- moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
16
+ ephemeralQueryAccountEnabled?: boolean;
17
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
18
18
  }>>;
19
19
  //# sourceMappingURL=Plugin.d.ts.map
@@ -1,19 +1,19 @@
1
1
  import { NftScoreDiviner } from './Diviner';
2
2
  export declare const NftScoreDivinerPlugin: () => import("@xyo-network/payloadset-plugin").PayloadSetDivinerPlugin<NftScoreDiviner<import("@xylabs/object").BaseParamsFields & {
3
- account?: import("@xyo-network/account-model").AccountInstance | "random" | undefined;
4
- addToResolvers?: boolean | undefined;
5
- additionalSigners?: import("@xyo-network/account-model").AccountInstance[] | undefined;
6
- allowNameResolution?: boolean | undefined;
3
+ account?: import("@xyo-network/account-model").AccountInstance | "random";
4
+ addToResolvers?: boolean;
5
+ additionalSigners?: import("@xyo-network/account-model").AccountInstance[];
6
+ allowNameResolution?: boolean;
7
7
  config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & {
8
8
  schema: "network.xyo.crypto.nft.score.diviner.config";
9
9
  } & {
10
- schema: "network.xyo.crypto.nft.score.diviner.config";
10
+ schema: import("@xyo-network/crypto-nft-payload-plugin").NftScoreDivinerConfigSchema;
11
11
  }, "schema"> & {
12
12
  schema: "network.xyo.crypto.nft.score.diviner.config";
13
13
  }, "schema"> & {
14
14
  schema: string;
15
15
  };
16
- ephemeralQueryAccountEnabled?: boolean | undefined;
17
- moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
16
+ ephemeralQueryAccountEnabled?: boolean;
17
+ moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[];
18
18
  }>>;
19
19
  //# sourceMappingURL=Plugin.d.ts.map
@@ -1,372 +1,2 @@
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/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
23
- NftScoreDiviner: () => NftScoreDiviner,
24
- NftScoreDivinerPlugin: () => NftScoreDivinerPlugin,
25
- analyzeNft: () => analyzeNft,
26
- default: () => NftScoreDivinerPlugin,
27
- isNftScore: () => isNftScore,
28
- scoringCriteria: () => scoringCriteria
29
- });
30
- module.exports = __toCommonJS(src_exports);
31
-
32
- // src/Diviner.ts
33
- var import_crypto_nft_payload_plugin = require("@xyo-network/crypto-nft-payload-plugin");
34
- var import_diviner_abstract = require("@xyo-network/diviner-abstract");
35
- var import_payload_builder = require("@xyo-network/payload-builder");
36
-
37
- // src/lib/rating/criteria/scoring/contract.ts
38
- var import_crypto_nft_score_model = require("@xyo-network/crypto-nft-score-model");
39
- var import_ethers = require("ethers");
40
- var scoreContractAddress = (nft) => {
41
- if (!nft.address) return import_crypto_nft_score_model.FAIL;
42
- if (typeof nft.address !== "string") return import_crypto_nft_score_model.FAIL;
43
- if (!(0, import_ethers.isAddress)(nft.address)) return import_crypto_nft_score_model.FAIL;
44
- return import_crypto_nft_score_model.PASS;
45
- };
46
-
47
- // src/lib/rating/criteria/scoring/metadata/animationUrl.ts
48
- var import_crypto_nft_score_model2 = require("@xyo-network/crypto-nft-score-model");
49
-
50
- // src/lib/rating/criteria/scoring/metadata/lib/urlHelpers.ts
51
- var import_url = require("@xylabs/url");
52
- var web3Protocols = ["ipfs:", "ar:"];
53
- var toUrl = (url) => {
54
- if (!url) return void 0;
55
- try {
56
- return new import_url.URL(url);
57
- } catch {
58
- return void 0;
59
- }
60
- };
61
- var isValidUrl = (url) => toUrl(url) !== void 0;
62
- var isWeb3 = (url) => web3Protocols.some((protocol) => protocol === toUrl(url)?.protocol);
63
- var isSecure = (url) => isWeb3(url) || toUrl(url)?.protocol === "https:";
64
-
65
- // src/lib/rating/criteria/scoring/metadata/animationUrl.ts
66
- var scoreNftAnimationUrl = (nft) => {
67
- return scoreAnimationUrl(nft.metadata?.animation_url);
68
- };
69
- var scoreAnimationUrl = (animation_url) => {
70
- const score = [0, 0];
71
- if (animation_url === void 0 || animation_url === null) return import_crypto_nft_score_model2.PASS;
72
- (0, import_crypto_nft_score_model2.incrementPossible)(score);
73
- if (typeof animation_url !== "string") return score;
74
- (0, import_crypto_nft_score_model2.incrementTotalAndPossible)(score);
75
- if (!isValidUrl(animation_url)) return score;
76
- (0, import_crypto_nft_score_model2.incrementTotalAndPossible)(score);
77
- if (!isSecure(animation_url)) return score;
78
- (0, import_crypto_nft_score_model2.incrementTotalAndPossible)(score);
79
- if (!isWeb3(animation_url)) return score;
80
- return (0, import_crypto_nft_score_model2.incrementTotal)(score);
81
- };
82
-
83
- // src/lib/rating/criteria/scoring/metadata/attributes/evaluateAttributes.ts
84
- var import_crypto_nft_score_model3 = require("@xyo-network/crypto-nft-score-model");
85
- var isDate = (value) => {
86
- if (isNumber(value)) {
87
- try {
88
- new Date(value);
89
- return true;
90
- } catch {
91
- return false;
92
- }
93
- }
94
- return false;
95
- };
96
- var isNumber = (value) => typeof value === "number";
97
- var isPercentage = (value) => isNumber(value) && value >= 0 && value <= 100;
98
- var isNonEmptyString = (value) => typeof value === "string" && value.length > 0;
99
- var isNonEmptyStringOrNumber = (value) => value === "number" || isNonEmptyString(value);
100
- var evaluateNftAttributes = (nft) => nft?.metadata?.attributes ? evaluateAttributes(nft?.metadata?.attributes) : [0, 1];
101
- var evaluateAttributes = (attributes) => {
102
- if (!attributes || !Array.isArray(attributes) || attributes.length === 0) return [0, 1];
103
- const score = [0, 0];
104
- for (const attribute of attributes) {
105
- const [attributeTotal, attributePossible] = evaluateAttribute(attribute);
106
- (0, import_crypto_nft_score_model3.incrementTotalAndPossible)(score, attributeTotal, attributePossible);
107
- }
108
- return [1, 1];
109
- };
110
- var evaluateAttribute = (attribute) => {
111
- const score = [0, 1];
112
- const max_value = attribute?.max_value;
113
- const trait_type = attribute?.trait_type;
114
- const value = attribute?.value;
115
- if (!attribute || typeof attribute !== "object" || !isNonEmptyString(trait_type) || !isNonEmptyStringOrNumber(value)) return score;
116
- (0, import_crypto_nft_score_model3.incrementTotal)(score);
117
- (0, import_crypto_nft_score_model3.incrementPossible)(score);
118
- if (validDisplayType(attribute)) (0, import_crypto_nft_score_model3.incrementTotal)(score);
119
- if (max_value !== void 0) {
120
- (0, import_crypto_nft_score_model3.incrementPossible)(score);
121
- if (isNumber(max_value) && isNumber(value) && value <= max_value) (0, import_crypto_nft_score_model3.incrementTotal)(score);
122
- }
123
- return score;
124
- };
125
- var validDisplayType = (attribute) => {
126
- switch (attribute?.display_type) {
127
- case "number":
128
- case "boost_number": {
129
- if (isNumber(attribute?.value)) return true;
130
- break;
131
- }
132
- case "boost_percentage": {
133
- if (isPercentage(attribute?.value)) return true;
134
- break;
135
- }
136
- case "date": {
137
- if (isDate(attribute?.value)) return true;
138
- break;
139
- }
140
- case "string":
141
- case void 0: {
142
- if (isNonEmptyString(attribute?.value)) return true;
143
- break;
144
- }
145
- default: {
146
- break;
147
- }
148
- }
149
- return false;
150
- };
151
-
152
- // src/lib/rating/criteria/scoring/metadata/backgroundColor.ts
153
- var import_crypto_nft_score_model4 = require("@xyo-network/crypto-nft-score-model");
154
- var isHexColor = /^[\da-f]{6}$/i;
155
- var scoreNftBackgroundColor = (nft) => {
156
- return scoreBackgroundColor(nft.metadata?.background_color);
157
- };
158
- var scoreBackgroundColor = (background_color) => {
159
- const score = [0, 0];
160
- if (background_color === void 0 || background_color === null) return import_crypto_nft_score_model4.PASS;
161
- (0, import_crypto_nft_score_model4.incrementPossible)(score);
162
- if (typeof background_color !== "string") return score;
163
- (0, import_crypto_nft_score_model4.incrementTotalAndPossible)(score);
164
- if (!isHexColor.test(background_color.toUpperCase())) return score;
165
- return (0, import_crypto_nft_score_model4.incrementTotal)(score);
166
- };
167
-
168
- // src/lib/rating/criteria/scoring/metadata/description.ts
169
- var import_crypto_nft_score_model5 = require("@xyo-network/crypto-nft-score-model");
170
- var scoreNftDescription = (nft) => {
171
- return scoreDescription(nft.metadata?.description);
172
- };
173
- var scoreDescription = (description) => {
174
- const score = [0, 1];
175
- if (!description || typeof description !== "string") return score;
176
- return (0, import_crypto_nft_score_model5.incrementTotal)(score);
177
- };
178
-
179
- // src/lib/rating/criteria/scoring/metadata/externalUrl.ts
180
- var import_crypto_nft_score_model6 = require("@xyo-network/crypto-nft-score-model");
181
- var scoreNftExternalUrl = (nft) => {
182
- return scoreExternalUrl(nft?.metadata?.external_url);
183
- };
184
- var scoreExternalUrl = (external_url) => {
185
- const score = [0, 2];
186
- if (external_url === void 0 || external_url === null || typeof external_url !== "string" || !isValidUrl(external_url)) return score;
187
- (0, import_crypto_nft_score_model6.incrementTotal)(score);
188
- if (!isSecure(external_url)) return score;
189
- return (0, import_crypto_nft_score_model6.incrementTotal)(score);
190
- };
191
-
192
- // src/lib/rating/criteria/scoring/metadata/image.ts
193
- var import_crypto_nft_score_model7 = require("@xyo-network/crypto-nft-score-model");
194
- var MaxPossibleImageScore = 3;
195
- var scoreNftImage = (nft) => {
196
- if (nft?.metadata?.image) {
197
- return scoreImage(nft.metadata?.image);
198
- } else {
199
- return nft.metadata?.image_data ? import_crypto_nft_score_model7.PASS : [0, MaxPossibleImageScore];
200
- }
201
- };
202
- var scoreImage = (image) => {
203
- const score = [0, MaxPossibleImageScore];
204
- if (!image || typeof image !== "string" || !isValidUrl(image)) return score;
205
- (0, import_crypto_nft_score_model7.incrementTotal)(score);
206
- if (!isSecure(image)) return score;
207
- (0, import_crypto_nft_score_model7.incrementTotal)(score);
208
- if (!isWeb3(image)) return score;
209
- (0, import_crypto_nft_score_model7.incrementTotal)(score);
210
- return score;
211
- };
212
-
213
- // src/lib/rating/criteria/scoring/metadata/imageData.ts
214
- var import_crypto_nft_score_model8 = require("@xyo-network/crypto-nft-score-model");
215
- var import_svg_parser = require("svg-parser");
216
- var MaxPossibleImageDataScore = 1;
217
- var isValidImageData = (image_data) => {
218
- if (!image_data.startsWith("<svg")) return false;
219
- try {
220
- (0, import_svg_parser.parse)(image_data);
221
- return true;
222
- } catch {
223
- return false;
224
- }
225
- };
226
- var scoreNftImageData = (nft) => {
227
- if (nft?.metadata?.image_data) {
228
- return scoreImageData(nft.metadata?.image_data);
229
- } else {
230
- return nft.metadata?.image ? import_crypto_nft_score_model8.PASS : [0, MaxPossibleImageDataScore];
231
- }
232
- };
233
- var scoreImageData = (image_data) => {
234
- return !image_data || typeof image_data !== "string" || !isValidImageData(image_data) ? [0, MaxPossibleImageDataScore] : [MaxPossibleImageDataScore, MaxPossibleImageDataScore];
235
- };
236
-
237
- // src/lib/rating/criteria/scoring/metadata/name.ts
238
- var import_crypto_nft_score_model9 = require("@xyo-network/crypto-nft-score-model");
239
- var scoreNftName = (nft) => {
240
- return scoreName(nft.metadata?.name);
241
- };
242
- var scoreName = (name) => {
243
- const score = [0, 1];
244
- if (!name || typeof name !== "string") return score;
245
- return (0, import_crypto_nft_score_model9.incrementTotal)(score);
246
- };
247
-
248
- // src/lib/rating/criteria/scoring/metadata/youtubeUrl.ts
249
- var import_crypto_nft_score_model10 = require("@xyo-network/crypto-nft-score-model");
250
- var scoreNftYoutubeUrl = (nft) => {
251
- return scoreYoutubeUrl(nft?.metadata?.youtube_url);
252
- };
253
- var scoreYoutubeUrl = (youtube_url) => {
254
- if (youtube_url === void 0 || youtube_url === null) return import_crypto_nft_score_model10.PASS;
255
- const score = [0, 2];
256
- if (typeof youtube_url !== "string" || !isValidUrl(youtube_url)) return score;
257
- (0, import_crypto_nft_score_model10.incrementTotal)(score);
258
- if (!isSecure(youtube_url)) return score;
259
- return (0, import_crypto_nft_score_model10.incrementTotal)(score);
260
- };
261
-
262
- // src/lib/rating/criteria/scoring/supply.ts
263
- var import_crypto_nft_score_model11 = require("@xyo-network/crypto-nft-score-model");
264
- var scoreSupply = (nft) => {
265
- if (!nft.supply) return import_crypto_nft_score_model11.FAIL;
266
- if (typeof nft.supply !== "string") return import_crypto_nft_score_model11.FAIL;
267
- try {
268
- return BigInt(nft.tokenId) >= 0n && BigInt(nft.tokenId) < 2n ** 256n ? import_crypto_nft_score_model11.PASS : import_crypto_nft_score_model11.FAIL;
269
- } catch {
270
- return import_crypto_nft_score_model11.FAIL;
271
- }
272
- };
273
-
274
- // src/lib/rating/criteria/scoring/tokenId.ts
275
- var import_crypto_nft_score_model12 = require("@xyo-network/crypto-nft-score-model");
276
- var scoreTokenId = (nft) => {
277
- if (!nft.tokenId) return import_crypto_nft_score_model12.FAIL;
278
- if (typeof nft.tokenId !== "string") return import_crypto_nft_score_model12.FAIL;
279
- try {
280
- return BigInt(nft.tokenId) >= 0n && BigInt(nft.tokenId) < 2n ** 256n ? import_crypto_nft_score_model12.PASS : import_crypto_nft_score_model12.FAIL;
281
- } catch {
282
- return import_crypto_nft_score_model12.FAIL;
283
- }
284
- };
285
-
286
- // src/lib/rating/criteria/scoring/type.ts
287
- var import_crypto_nft_score_model13 = require("@xyo-network/crypto-nft-score-model");
288
- var scoreType = (nft) => {
289
- if (!nft.type) return import_crypto_nft_score_model13.FAIL;
290
- if (typeof nft.type !== "string") return import_crypto_nft_score_model13.FAIL;
291
- const type = nft.type.toUpperCase();
292
- if (type !== "ERC721" && type !== "ERC1155") return import_crypto_nft_score_model13.FAIL;
293
- return import_crypto_nft_score_model13.PASS;
294
- };
295
-
296
- // src/lib/rating/criteria/scoringCriteria.ts
297
- var attributesScoringCriteria = {
298
- Attributes: { score: evaluateNftAttributes, weight: 1 }
299
- };
300
- var metadataScoringCriteria = {
301
- "Animation URL": { score: scoreNftAnimationUrl, weight: 1 },
302
- "Background Color": { score: scoreNftBackgroundColor, weight: 1 },
303
- Description: { score: scoreNftDescription, weight: 1 },
304
- "External Url": { score: scoreNftExternalUrl, weight: 1 },
305
- Image: { score: scoreNftImage, weight: 1 },
306
- "Image Data": { score: scoreNftImageData, weight: 1 },
307
- Name: { score: scoreNftName, weight: 1 },
308
- "YouTube URL": { score: scoreNftYoutubeUrl, weight: 1 },
309
- ...attributesScoringCriteria
310
- };
311
- var scoringCriteria = {
312
- "Contract Address": { score: scoreContractAddress, weight: 1 },
313
- Supply: { score: scoreSupply, weight: 1 },
314
- "Token Id": { score: scoreTokenId, weight: 1 },
315
- Type: { score: scoreType, weight: 1 },
316
- ...metadataScoringCriteria
317
- };
318
-
319
- // src/lib/rating/analyzeNft.ts
320
- var analyzeNft = async (nft) => {
321
- const result = Object.fromEntries(
322
- await Promise.all(
323
- Object.entries(scoringCriteria).map(async ([key, { score, weight }]) => {
324
- const rawScore = await score(nft);
325
- const weighted = rawScore.map((v) => v * weight);
326
- return [key, weighted];
327
- })
328
- )
329
- );
330
- return result;
331
- };
332
-
333
- // src/Diviner.ts
334
- var toNftScorePayload = (nftInfo, scores) => {
335
- const { address, chainId, type } = nftInfo;
336
- return { address, chainId, schema: import_crypto_nft_payload_plugin.NftScoreSchema, scores, type };
337
- };
338
- var isNftScore = (payload) => payload.schema === import_crypto_nft_payload_plugin.NftScoreSchema;
339
- var NftScoreDiviner = class extends import_diviner_abstract.AbstractDiviner {
340
- static configSchemas = [...super.configSchemas, import_crypto_nft_payload_plugin.NftScoreDivinerConfigSchema];
341
- static defaultConfigSchema = import_crypto_nft_payload_plugin.NftScoreDivinerConfigSchema;
342
- divineHandler = async (payloads) => {
343
- const nftInfos = payloads?.filter(import_crypto_nft_payload_plugin.isNftInfo) ?? [];
344
- const results = await Promise.all(
345
- nftInfos.map(async (nftInfo) => {
346
- const [score, sourceHash] = await Promise.all([
347
- // Analyze the NFT
348
- toNftScorePayload(nftInfo, await analyzeNft(nftInfo)),
349
- // Hash the source payload
350
- import_payload_builder.PayloadBuilder.dataHash(nftInfo)
351
- ]);
352
- return { ...score, sources: [sourceHash] };
353
- })
354
- );
355
- return results;
356
- };
357
- };
358
-
359
- // src/Plugin.ts
360
- var import_crypto_nft_payload_plugin2 = require("@xyo-network/crypto-nft-payload-plugin");
361
- var import_payload_model = require("@xyo-network/payload-model");
362
- var import_payloadset_plugin = require("@xyo-network/payloadset-plugin");
363
- var NftScoreDivinerPlugin = () => (0, import_payloadset_plugin.createPayloadSetDivinerPlugin)(
364
- { required: { [import_crypto_nft_payload_plugin2.NftSchema]: 1 }, schema: import_payload_model.PayloadSetSchema },
365
- {
366
- diviner: async (params) => {
367
- const result = await NftScoreDiviner.create(params);
368
- return result;
369
- }
370
- }
371
- );
1
+ "use strict";var x=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var ie=(e,r)=>{for(var o in r)x(e,o,{get:r[o],enumerable:!0})},se=(e,r,o,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of oe(r))!ne.call(e,t)&&t!==o&&x(e,t,{get:()=>r[t],enumerable:!(n=te(r,t))||n.enumerable});return e};var ae=e=>se(x({},"__esModule",{value:!0}),e);var De={};ie(De,{NftScoreDiviner:()=>y,NftScoreDivinerPlugin:()=>v,analyzeNft:()=>k,default:()=>v,isNftScore:()=>ve,scoringCriteria:()=>w});module.exports=ae(De);var l=require("@xyo-network/crypto-nft-payload-plugin"),Q=require("@xyo-network/diviner-abstract"),X=require("@xyo-network/payload-builder");var p=require("@xyo-network/crypto-nft-score-model"),C=require("ethers"),O=e=>e.address?typeof e.address!="string"?p.FAIL:(0,C.isAddress)(e.address)?p.PASS:p.FAIL:p.FAIL;var i=require("@xyo-network/crypto-nft-score-model");var T=require("@xylabs/url"),ce=["ipfs:","ar:"],A=e=>{if(e)try{return new T.URL(e)}catch{return}},a=e=>A(e)!==void 0,N=e=>ce.some(r=>r===A(e)?.protocol);var c=e=>N(e)||A(e)?.protocol==="https:";var U=e=>fe(e.metadata?.animation_url),fe=e=>{let r=[0,0];return e==null?i.PASS:((0,i.incrementPossible)(r),typeof e!="string"||((0,i.incrementTotalAndPossible)(r),!a(e))||((0,i.incrementTotalAndPossible)(r),!c(e))||((0,i.incrementTotalAndPossible)(r),!N(e))?r:(0,i.incrementTotal)(r))};var s=require("@xyo-network/crypto-nft-score-model"),le=e=>{if(g(e))try{return new Date(e),!0}catch{return!1}return!1},g=e=>typeof e=="number",de=e=>g(e)&&e>=0&&e<=100,b=e=>typeof e=="string"&&e.length>0,me=e=>e==="number"||b(e),B=e=>e?.metadata?.attributes?pe(e?.metadata?.attributes):[0,1],pe=e=>{if(!e||!Array.isArray(e)||e.length===0)return[0,1];let r=[0,0];for(let o of e){let[n,t]=Se(o);(0,s.incrementTotalAndPossible)(r,n,t)}return[1,1]},Se=e=>{let r=[0,1],o=e?.max_value,n=e?.trait_type,t=e?.value;return!e||typeof e!="object"||!b(n)||!me(t)||((0,s.incrementTotal)(r),(0,s.incrementPossible)(r),ue(e)&&(0,s.incrementTotal)(r),o!==void 0&&((0,s.incrementPossible)(r),g(o)&&g(t)&&t<=o&&(0,s.incrementTotal)(r))),r},ue=e=>{switch(e?.display_type){case"number":case"boost_number":{if(g(e?.value))return!0;break}case"boost_percentage":{if(de(e?.value))return!0;break}case"date":{if(le(e?.value))return!0;break}case"string":case void 0:{if(b(e?.value))return!0;break}default:break}return!1};var f=require("@xyo-network/crypto-nft-score-model"),Ne=/^[\da-f]{6}$/i,E=e=>ge(e.metadata?.background_color),ge=e=>{let r=[0,0];return e==null?f.PASS:((0,f.incrementPossible)(r),typeof e!="string"||((0,f.incrementTotalAndPossible)(r),!Ne.test(e.toUpperCase()))?r:(0,f.incrementTotal)(r))};var L=require("@xyo-network/crypto-nft-score-model"),R=e=>Ie(e.metadata?.description),Ie=e=>{let r=[0,1];return!e||typeof e!="string"?r:(0,L.incrementTotal)(r)};var h=require("@xyo-network/crypto-nft-score-model");var V=e=>ye(e?.metadata?.external_url),ye=e=>{let r=[0,2];return e==null||typeof e!="string"||!a(e)||((0,h.incrementTotal)(r),!c(e))?r:(0,h.incrementTotal)(r)};var S=require("@xyo-network/crypto-nft-score-model");var W=3,H=e=>e?.metadata?.image?Fe(e.metadata?.image):e.metadata?.image_data?S.PASS:[0,W],Fe=e=>{let r=[0,W];return!e||typeof e!="string"||!a(e)||((0,S.incrementTotal)(r),!c(e))||((0,S.incrementTotal)(r),!N(e))||(0,S.incrementTotal)(r),r};var Y=require("@xyo-network/crypto-nft-score-model"),j=require("svg-parser"),F=1,Pe=e=>{if(!e.startsWith("<svg"))return!1;try{return(0,j.parse)(e),!0}catch{return!1}},K=e=>e?.metadata?.image_data?xe(e.metadata?.image_data):e.metadata?.image?Y.PASS:[0,F],xe=e=>!e||typeof e!="string"||!Pe(e)?[0,F]:[F,F];var z=require("@xyo-network/crypto-nft-score-model"),M=e=>Ae(e.metadata?.name),Ae=e=>{let r=[0,1];return!e||typeof e!="string"?r:(0,z.incrementTotal)(r)};var I=require("@xyo-network/crypto-nft-score-model");var q=e=>be(e?.metadata?.youtube_url),be=e=>{if(e==null)return I.PASS;let r=[0,2];return typeof e!="string"||!a(e)||((0,I.incrementTotal)(r),!c(e))?r:(0,I.incrementTotal)(r)};var d=require("@xyo-network/crypto-nft-score-model"),$=e=>{if(!e.supply)return d.FAIL;if(typeof e.supply!="string")return d.FAIL;try{return BigInt(e.tokenId)>=0n&&BigInt(e.tokenId)<2n**256n?d.PASS:d.FAIL}catch{return d.FAIL}};var m=require("@xyo-network/crypto-nft-score-model"),G=e=>{if(!e.tokenId)return m.FAIL;if(typeof e.tokenId!="string")return m.FAIL;try{return BigInt(e.tokenId)>=0n&&BigInt(e.tokenId)<2n**256n?m.PASS:m.FAIL}catch{return m.FAIL}};var u=require("@xyo-network/crypto-nft-score-model"),J=e=>{if(!e.type)return u.FAIL;if(typeof e.type!="string")return u.FAIL;let r=e.type.toUpperCase();return r!=="ERC721"&&r!=="ERC1155"?u.FAIL:u.PASS};var he={Attributes:{score:B,weight:1}},we={"Animation URL":{score:U,weight:1},"Background Color":{score:E,weight:1},Description:{score:R,weight:1},"External Url":{score:V,weight:1},Image:{score:H,weight:1},"Image Data":{score:K,weight:1},Name:{score:M,weight:1},"YouTube URL":{score:q,weight:1},...he},w={"Contract Address":{score:O,weight:1},Supply:{score:$,weight:1},"Token Id":{score:G,weight:1},Type:{score:J,weight:1},...we};var k=async e=>Object.fromEntries(await Promise.all(Object.entries(w).map(async([o,{score:n,weight:t}])=>{let P=(await n(e)).map(re=>re*t);return[o,P]})));var ke=(e,r)=>{let{address:o,chainId:n,type:t}=e;return{address:o,chainId:n,schema:l.NftScoreSchema,scores:r,type:t}},ve=e=>e.schema===l.NftScoreSchema,y=class extends Q.AbstractDiviner{static configSchemas=[...super.configSchemas,l.NftScoreDivinerConfigSchema];static defaultConfigSchema=l.NftScoreDivinerConfigSchema;divineHandler=async r=>{let o=r?.filter(l.isNftInfo)??[];return await Promise.all(o.map(async t=>{let[D,P]=await Promise.all([ke(t,await k(t)),X.PayloadBuilder.dataHash(t)]);return{...D,sources:[P]}}))}};var Z=require("@xyo-network/crypto-nft-payload-plugin"),_=require("@xyo-network/payload-model"),ee=require("@xyo-network/payloadset-plugin");var v=()=>(0,ee.createPayloadSetDivinerPlugin)({required:{[Z.NftSchema]:1},schema:_.PayloadSetSchema},{diviner:async e=>await y.create(e)});
372
2
  //# sourceMappingURL=index.cjs.map