@dcl/content-validator 2.1.1-20220621212400.commit-52fa215 → 2.1.1-20220623160302.commit-0d7907b
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/content-validator.api.json +139 -218
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/the-graph-client/the-graph-client.d.ts +1 -1
- package/dist/the-graph-client/the-graph-client.d.ts.map +1 -1
- package/dist/the-graph-client/the-graph-client.js +7 -13
- package/dist/the-graph-client/the-graph-client.js.map +1 -1
- package/dist/types.d.ts +18 -26
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -16
- package/dist/types.js.map +1 -1
- package/dist/validations/ADR51.d.ts +3 -5
- package/dist/validations/ADR51.d.ts.map +1 -1
- package/dist/validations/ADR51.js +4 -0
- package/dist/validations/ADR51.js.map +1 -1
- package/dist/validations/access-checker/access.d.ts.map +1 -1
- package/dist/validations/access-checker/access.js +5 -3
- package/dist/validations/access-checker/access.js.map +1 -1
- package/dist/validations/access-checker/emotes.d.ts +3 -0
- package/dist/validations/access-checker/emotes.d.ts.map +1 -0
- package/dist/validations/access-checker/emotes.js +13 -0
- package/dist/validations/access-checker/emotes.js.map +1 -0
- package/dist/validations/access-checker/items/collection-asset.d.ts +15 -0
- package/dist/validations/access-checker/items/collection-asset.d.ts.map +1 -0
- package/dist/validations/access-checker/items/collection-asset.js +131 -0
- package/dist/validations/access-checker/items/collection-asset.js.map +1 -0
- package/dist/validations/access-checker/items/items.d.ts +13 -0
- package/dist/validations/access-checker/items/items.d.ts.map +1 -0
- package/dist/validations/access-checker/items/items.js +68 -0
- package/dist/validations/access-checker/items/items.js.map +1 -0
- package/dist/validations/access-checker/items/off-chain-asset.d.ts +3 -0
- package/dist/validations/access-checker/items/off-chain-asset.d.ts.map +1 -0
- package/dist/validations/access-checker/items/off-chain-asset.js +17 -0
- package/dist/validations/access-checker/items/off-chain-asset.js.map +1 -0
- package/dist/validations/access-checker/items/third-party-asset.d.ts +3 -0
- package/dist/validations/access-checker/items/third-party-asset.d.ts.map +1 -0
- package/dist/validations/access-checker/items/third-party-asset.js +107 -0
- package/dist/validations/access-checker/items/third-party-asset.js.map +1 -0
- package/dist/validations/access-checker/profiles.d.ts.map +1 -1
- package/dist/validations/access-checker/profiles.js +3 -3
- package/dist/validations/access-checker/profiles.js.map +1 -1
- package/dist/validations/access-checker/scenes.d.ts.map +1 -1
- package/dist/validations/access-checker/scenes.js +4 -4
- package/dist/validations/access-checker/scenes.js.map +1 -1
- package/dist/validations/access-checker/wearables.d.ts +0 -18
- package/dist/validations/access-checker/wearables.d.ts.map +1 -1
- package/dist/validations/access-checker/wearables.js +9 -308
- package/dist/validations/access-checker/wearables.js.map +1 -1
- package/dist/validations/content.d.ts +3 -0
- package/dist/validations/content.d.ts.map +1 -1
- package/dist/validations/content.js +30 -17
- package/dist/validations/content.js.map +1 -1
- package/dist/validations/index.d.ts +4 -23
- package/dist/validations/index.d.ts.map +1 -1
- package/dist/validations/index.js +4 -31
- package/dist/validations/index.js.map +1 -1
- package/dist/validations/ipfs-hashing.d.ts.map +1 -1
- package/dist/validations/ipfs-hashing.js +3 -6
- package/dist/validations/ipfs-hashing.js.map +1 -1
- package/dist/validations/items/emotes.d.ts +5 -0
- package/dist/validations/items/emotes.d.ts.map +1 -0
- package/dist/validations/items/emotes.js +35 -0
- package/dist/validations/items/emotes.js.map +1 -0
- package/dist/validations/items/items.d.ts +10 -0
- package/dist/validations/items/items.d.ts.map +1 -0
- package/dist/validations/items/items.js +79 -0
- package/dist/validations/items/items.js.map +1 -0
- package/dist/validations/{wearable.d.ts → items/wearables.d.ts} +2 -5
- package/dist/validations/items/wearables.d.ts.map +1 -0
- package/dist/validations/items/wearables.js +32 -0
- package/dist/validations/items/wearables.js.map +1 -0
- package/dist/validations/metadata-schema.d.ts +2 -5
- package/dist/validations/metadata-schema.d.ts.map +1 -1
- package/dist/validations/metadata-schema.js +37 -7
- package/dist/validations/metadata-schema.js.map +1 -1
- package/dist/validations/profile.d.ts.map +1 -1
- package/dist/validations/profile.js +8 -18
- package/dist/validations/profile.js.map +1 -1
- package/dist/validations/size.d.ts.map +1 -1
- package/dist/validations/size.js +4 -3
- package/dist/validations/size.js.map +1 -1
- package/dist/validations/timestamps.d.ts +21 -0
- package/dist/validations/timestamps.d.ts.map +1 -0
- package/dist/validations/timestamps.js +24 -0
- package/dist/validations/timestamps.js.map +1 -0
- package/dist/validations/validations.d.ts +9 -0
- package/dist/validations/validations.d.ts.map +1 -0
- package/dist/validations/validations.js +47 -0
- package/dist/validations/validations.js.map +1 -0
- package/package.json +4 -3
- package/dist/validations/wearable.d.ts.map +0 -1
- package/dist/validations/wearable.js +0 -110
- package/dist/validations/wearable.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export * from './validations';
|
|
|
5
5
|
* Creates a validator instance with given external calls.
|
|
6
6
|
* @public
|
|
7
7
|
*/
|
|
8
|
-
export declare const createValidator: (components: Pick<ContentValidatorComponents, 'externalCalls' | 'logs' | 'theGraphClient'>) => Validator;
|
|
8
|
+
export declare const createValidator: (components: Pick<ContentValidatorComponents, 'externalCalls' | 'logs' | 'theGraphClient' | 'subGraphs'>) => Validator;
|
|
9
9
|
export { createTheGraphClient } from './the-graph-client/the-graph-client';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAM,SAAS,EAAE,MAAM,SAAS,CAAA;AAGnE,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,eAAe,eACd,KAAK,0BAA0B,EAAE,eAAe,GAAG,MAAM,GAAG,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAM,SAAS,EAAE,MAAM,SAAS,CAAA;AAGnE,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,eAAe,eACd,KAAK,0BAA0B,EAAE,eAAe,GAAG,MAAM,GAAG,gBAAgB,GAAG,WAAW,CAAC,KACtG,SAeF,CAAA;AAED,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAmE;AACnE,+CAA2C;AAE3C,0CAAuB;AACvB,gDAA6B;AAE7B;;;GAGG;AACI,MAAM,eAAe,GAAG,CAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAmE;AACnE,+CAA2C;AAE3C,0CAAuB;AACvB,gDAA6B;AAE7B;;;GAGG;AACI,MAAM,eAAe,GAAG,CAC7B,UAAuG,EAC5F,EAAE;IACb,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAE1D,OAAO;QACL,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YAC7B,KAAK,MAAM,UAAU,IAAI,yBAAW,EAAE;gBACpC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;gBAChE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBAC9D,OAAO,MAAM,CAAA;iBACd;aACF;YACD,OAAO,UAAE,CAAA;QACX,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,eAAe,mBAiB3B;AAED,wEAA0E;AAAjE,wHAAA,oBAAoB,OAAA"}
|
|
@@ -6,5 +6,5 @@ export declare type PermissionResult = {
|
|
|
6
6
|
/**
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
|
-
export declare const createTheGraphClient: (components: Pick<ContentValidatorComponents, 'logs' | '
|
|
9
|
+
export declare const createTheGraphClient: (components: Pick<ContentValidatorComponents, 'logs' | 'subGraphs'>) => TheGraphClient;
|
|
10
10
|
//# sourceMappingURL=the-graph-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"the-graph-client.d.ts","sourceRoot":"","sources":["../../src/the-graph-client/the-graph-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,0BAA0B,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"the-graph-client.d.ts","sourceRoot":"","sources":["../../src/the-graph-client/the-graph-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,0BAA0B,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAIvF,oBAAY,gBAAgB,GAAG;IAC7B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,eACnB,KAAK,0BAA0B,EAAE,MAAM,GAAG,WAAW,CAAC,KACjE,cA6OF,CAAA"}
|
|
@@ -7,20 +7,13 @@ const urn_resolver_1 = require("@dcl/urn-resolver");
|
|
|
7
7
|
*/
|
|
8
8
|
const createTheGraphClient = (components) => {
|
|
9
9
|
const logger = components.logs.getLogger('TheGraphClient');
|
|
10
|
-
const urls = {
|
|
11
|
-
collectionsSubgraph: components.externalCalls.subgraphs.L1.collections,
|
|
12
|
-
blocksSubgraph: components.externalCalls.subgraphs.L1.blocks,
|
|
13
|
-
maticBlocksSubgraph: components.externalCalls.subgraphs.L2.blocks,
|
|
14
|
-
ensSubgraph: components.externalCalls.subgraphs.L1.ensOwner,
|
|
15
|
-
maticCollectionsSubgraph: components.externalCalls.subgraphs.L2.collections
|
|
16
|
-
};
|
|
17
10
|
const L1_NETWORKS = ['mainnet', 'ropsten', 'kovan', 'rinkeby', 'goerli'];
|
|
18
11
|
const L2_NETWORKS = ['matic', 'mumbai'];
|
|
19
12
|
const checkForNamesOwnershipWithTimestamp = async (ethAddress, namesToCheck, timestamp) => {
|
|
20
13
|
if (namesToCheck.length === 0) {
|
|
21
14
|
return permissionOk();
|
|
22
15
|
}
|
|
23
|
-
const blocks = await findBlocksForTimestamp(
|
|
16
|
+
const blocks = await findBlocksForTimestamp(components.subGraphs.L1.blocks, timestamp);
|
|
24
17
|
const hasPermissionOnBlock = async (blockNumber) => {
|
|
25
18
|
if (!blockNumber) {
|
|
26
19
|
return permissionError();
|
|
@@ -28,7 +21,7 @@ const createTheGraphClient = (components) => {
|
|
|
28
21
|
const runOwnedNamesOnBlockQuery = async (blockNumber) => {
|
|
29
22
|
const query = {
|
|
30
23
|
description: 'check for names ownership',
|
|
31
|
-
subgraph:
|
|
24
|
+
subgraph: components.subGraphs.L1.ensOwner,
|
|
32
25
|
query: QUERY_NAMES_FOR_ADDRESS_AT_BLOCK,
|
|
33
26
|
mapper: (response) => new Set(response.names.map(({ name }) => name))
|
|
34
27
|
};
|
|
@@ -85,8 +78,8 @@ const createTheGraphClient = (components) => {
|
|
|
85
78
|
return permissionOk();
|
|
86
79
|
}
|
|
87
80
|
const { ethereum, matic } = await splitWearablesByNetwork(wearableIdsToCheck);
|
|
88
|
-
const ethereumWearablesOwnersPromise = getOwnersByWearableWithTimestamp(ethAddress, ethereum, timestamp,
|
|
89
|
-
const maticWearablesOwnersPromise = getOwnersByWearableWithTimestamp(ethAddress, matic, timestamp,
|
|
81
|
+
const ethereumWearablesOwnersPromise = getOwnersByWearableWithTimestamp(ethAddress, ethereum, timestamp, components.subGraphs.L1.blocks, components.subGraphs.L1.collections);
|
|
82
|
+
const maticWearablesOwnersPromise = getOwnersByWearableWithTimestamp(ethAddress, matic, timestamp, components.subGraphs.L2.blocks, components.subGraphs.L2.collections);
|
|
90
83
|
const [ethereumWearablesOwners, maticWearablesOwners] = await Promise.all([
|
|
91
84
|
ethereumWearablesOwnersPromise,
|
|
92
85
|
maticWearablesOwnersPromise
|
|
@@ -137,11 +130,12 @@ const createTheGraphClient = (components) => {
|
|
|
137
130
|
};
|
|
138
131
|
const runQuery = async (query, variables) => {
|
|
139
132
|
try {
|
|
140
|
-
const response = await
|
|
133
|
+
const response = await query.subgraph.query(query.query, variables);
|
|
141
134
|
return query.mapper(response);
|
|
142
135
|
}
|
|
143
136
|
catch (error) {
|
|
144
|
-
logger.error(`Failed to execute the following query to the subgraph ${
|
|
137
|
+
logger.error(`Failed to execute the following query to the subgraph ${query.subgraph // TODO See if we can get the URL from the subgraph object
|
|
138
|
+
} ${query.description}'.`);
|
|
145
139
|
logger.error(error);
|
|
146
140
|
throw new Error('Internal server error');
|
|
147
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"the-graph-client.js","sourceRoot":"","sources":["../../src/the-graph-client/the-graph-client.ts"],"names":[],"mappings":";;;AAEA,oDAA4C;
|
|
1
|
+
{"version":3,"file":"the-graph-client.js","sourceRoot":"","sources":["../../src/the-graph-client/the-graph-client.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { AuthChain, Entity, EthAddress, WearableId } from '@dcl/schemas';
|
|
2
2
|
import { ILoggerComponent } from '@well-known-components/interfaces';
|
|
3
3
|
import { PermissionResult } from './the-graph-client/the-graph-client';
|
|
4
|
+
import { ISubgraphComponent } from '@well-known-components/thegraph-component';
|
|
5
|
+
import { Variables } from '@well-known-components/thegraph-component';
|
|
4
6
|
/**
|
|
5
7
|
* @public
|
|
6
8
|
*/
|
|
@@ -34,7 +36,7 @@ export declare type DeploymentToValidate = {
|
|
|
34
36
|
* Function used to fetch TheGraph
|
|
35
37
|
* @public
|
|
36
38
|
*/
|
|
37
|
-
export declare type QueryGraph = <T = any>(
|
|
39
|
+
export declare type QueryGraph = <T = any>(query: string, variables?: Variables, remainingAttempts?: number) => Promise<T>;
|
|
38
40
|
/**
|
|
39
41
|
* External calls interface to be provided by the servers.
|
|
40
42
|
* @public
|
|
@@ -48,20 +50,6 @@ export declare type ExternalCalls = {
|
|
|
48
50
|
}>;
|
|
49
51
|
ownerAddress: (auditInfo: LocalDeploymentAuditInfo) => string;
|
|
50
52
|
isAddressOwnedByDecentraland: (address: string) => boolean;
|
|
51
|
-
queryGraph: QueryGraph;
|
|
52
|
-
subgraphs: {
|
|
53
|
-
L1: {
|
|
54
|
-
landManager: string;
|
|
55
|
-
blocks: string;
|
|
56
|
-
collections: string;
|
|
57
|
-
ensOwner: string;
|
|
58
|
-
};
|
|
59
|
-
L2: {
|
|
60
|
-
blocks: string;
|
|
61
|
-
collections: string;
|
|
62
|
-
thirdPartyRegistry: string;
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
53
|
};
|
|
66
54
|
/**
|
|
67
55
|
* Validator interface to be used by any server.
|
|
@@ -103,23 +91,26 @@ export declare const OK: ValidationResponse;
|
|
|
103
91
|
* @public
|
|
104
92
|
*/
|
|
105
93
|
export declare const validationFailed: (...error: string[]) => ValidationResponse;
|
|
106
|
-
/**
|
|
107
|
-
* @public
|
|
108
|
-
*/
|
|
109
|
-
export declare const conditionalValidation: (condition: ConditionalValidation) => Validation;
|
|
110
94
|
/**
|
|
111
95
|
* @public
|
|
112
96
|
*/
|
|
113
97
|
export declare const fromErrors: (...errors: Errors) => ValidationResponse;
|
|
114
98
|
/**
|
|
99
|
+
* A list with all sub-graphs used for validations.
|
|
115
100
|
* @public
|
|
116
101
|
*/
|
|
117
|
-
export declare type
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
102
|
+
export declare type SubGraphs = {
|
|
103
|
+
L1: {
|
|
104
|
+
landManager: ISubgraphComponent;
|
|
105
|
+
blocks: ISubgraphComponent;
|
|
106
|
+
collections: ISubgraphComponent;
|
|
107
|
+
ensOwner: ISubgraphComponent;
|
|
108
|
+
};
|
|
109
|
+
L2: {
|
|
110
|
+
blocks: ISubgraphComponent;
|
|
111
|
+
collections: ISubgraphComponent;
|
|
112
|
+
thirdPartyRegistry: ISubgraphComponent;
|
|
113
|
+
};
|
|
123
114
|
};
|
|
124
115
|
/**
|
|
125
116
|
* @public
|
|
@@ -127,7 +118,7 @@ export declare type URLs = {
|
|
|
127
118
|
export declare type TheGraphClient = {
|
|
128
119
|
checkForNamesOwnershipWithTimestamp: (ethAddress: EthAddress, namesToCheck: string[], timestamp: number) => Promise<PermissionResult>;
|
|
129
120
|
checkForWearablesOwnershipWithTimestamp: (ethAddress: EthAddress, wearableIdsToCheck: WearableId[], timestamp: number) => Promise<PermissionResult>;
|
|
130
|
-
findBlocksForTimestamp: (subgraph:
|
|
121
|
+
findBlocksForTimestamp: (subgraph: ISubgraphComponent, timestamp: number) => Promise<BlockInformation>;
|
|
131
122
|
};
|
|
132
123
|
/**
|
|
133
124
|
* @public
|
|
@@ -144,5 +135,6 @@ export declare type ContentValidatorComponents = {
|
|
|
144
135
|
logs: ILoggerComponent;
|
|
145
136
|
theGraphClient: TheGraphClient;
|
|
146
137
|
externalCalls: ExternalCalls;
|
|
138
|
+
subGraphs: SubGraphs;
|
|
147
139
|
};
|
|
148
140
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fromErrors = exports.
|
|
3
|
+
exports.fromErrors = exports.validationFailed = exports.OK = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* @public
|
|
6
6
|
*/
|
|
@@ -13,21 +13,6 @@ const validationFailed = (...error) => ({
|
|
|
13
13
|
errors: error
|
|
14
14
|
});
|
|
15
15
|
exports.validationFailed = validationFailed;
|
|
16
|
-
/**
|
|
17
|
-
* @public
|
|
18
|
-
*/
|
|
19
|
-
const conditionalValidation = (condition) => ({
|
|
20
|
-
validate: async (components, deployment) => {
|
|
21
|
-
try {
|
|
22
|
-
return await condition.predicate(components, deployment);
|
|
23
|
-
// ^^^^^ never remove this await, it exists to ensure try {} catch
|
|
24
|
-
}
|
|
25
|
-
catch (err) {
|
|
26
|
-
return (0, exports.validationFailed)(`Validation failed: ${err}`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
exports.conditionalValidation = conditionalValidation;
|
|
31
16
|
/**
|
|
32
17
|
* @public
|
|
33
18
|
*/
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAuGA;;GAEG;AACU,QAAA,EAAE,GAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AAElD;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,GAAG,KAAe,EAAsB,EAAE,CAAC,CAAC;IAC3E,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,KAAK;CACd,CAAC,CAAA;AAHW,QAAA,gBAAgB,oBAG3B;AAEF;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,GAAG,MAAc,EAAsB,EAAE,CAAC,CAAC;IACpE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;CAC/C,CAAC,CAAA;AAHW,QAAA,UAAU,cAGrB"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { EntityType, Profile, Scene, Store, ValidateFunction, Wearable } from '@dcl/schemas';
|
|
2
|
-
export declare type AcceptedEntityType = Scene | Profile | Wearable | Store;
|
|
1
|
+
import { Emote, EntityType, Profile, Scene, Store, ValidateFunction, Wearable } from '@dcl/schemas';
|
|
3
2
|
declare type Params = {
|
|
4
|
-
validate: ValidateFunction<
|
|
3
|
+
validate: ValidateFunction<Scene | Profile | Wearable | Store | Emote>;
|
|
5
4
|
maxSizeInMB: number;
|
|
6
5
|
};
|
|
7
|
-
declare
|
|
8
|
-
export declare const entityParameters: EntityParams;
|
|
6
|
+
export declare const entityParameters: Record<EntityType, Params>;
|
|
9
7
|
export {};
|
|
10
8
|
//# sourceMappingURL=ADR51.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ADR51.d.ts","sourceRoot":"","sources":["../../src/validations/ADR51.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"ADR51.d.ts","sourceRoot":"","sources":["../../src/validations/ADR51.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEnG,aAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,gBAAgB,CAAC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAA;IACtE,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAqBvD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ADR51.js","sourceRoot":"","sources":["../../src/validations/ADR51.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ADR51.js","sourceRoot":"","sources":["../../src/validations/ADR51.ts"],"names":[],"mappings":";;;AAAA,0CAAmG;AAOtF,QAAA,gBAAgB,GAA+B;IAC1D,KAAK,EAAE;QACL,QAAQ,EAAE,eAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,EAAE;KAChB;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,iBAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,CAAC;KACf;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,kBAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,CAAC;KACf;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,eAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,CAAC;KACf;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,eAAK,CAAC,QAAQ;QACxB,WAAW,EAAE,CAAC;KACf;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/access.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/access.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,UAAU,EAAoB,MAAM,aAAa,CAAA;AAgBpF;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UAiBpB,CAAA"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.access = void 0;
|
|
4
4
|
const schemas_1 = require("@dcl/schemas");
|
|
5
|
-
const __1 = require("..");
|
|
6
5
|
const types_1 = require("../../types");
|
|
6
|
+
const timestamps_1 = require("../timestamps");
|
|
7
|
+
const emotes_1 = require("./emotes");
|
|
7
8
|
const profiles_1 = require("./profiles");
|
|
8
9
|
const scenes_1 = require("./scenes");
|
|
9
10
|
const stores_1 = require("./stores");
|
|
@@ -12,7 +13,8 @@ const accessCheckers = {
|
|
|
12
13
|
[schemas_1.EntityType.PROFILE]: profiles_1.profiles,
|
|
13
14
|
[schemas_1.EntityType.SCENE]: scenes_1.scenes,
|
|
14
15
|
[schemas_1.EntityType.WEARABLE]: wearables_1.wearables,
|
|
15
|
-
[schemas_1.EntityType.STORE]: stores_1.stores
|
|
16
|
+
[schemas_1.EntityType.STORE]: stores_1.stores,
|
|
17
|
+
[schemas_1.EntityType.EMOTE]: emotes_1.emotes
|
|
16
18
|
};
|
|
17
19
|
/**
|
|
18
20
|
* Validate that the pointers are valid, and that the Ethereum address has write access to them
|
|
@@ -21,7 +23,7 @@ const accessCheckers = {
|
|
|
21
23
|
exports.access = {
|
|
22
24
|
validate: async (components, deployment) => {
|
|
23
25
|
const { externalCalls } = components;
|
|
24
|
-
const deployedBeforeDCLLaunch = deployment.entity.timestamp <=
|
|
26
|
+
const deployedBeforeDCLLaunch = deployment.entity.timestamp <= timestamps_1.LEGACY_CONTENT_MIGRATION_TIMESTAMP;
|
|
25
27
|
const address = externalCalls.ownerAddress(deployment.auditInfo);
|
|
26
28
|
// Default scenes were removed from the Content Servers after https://github.com/decentraland/catalyst/issues/878
|
|
27
29
|
if (isDefaultScene(deployment.entity)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../src/validations/access-checker/access.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../src/validations/access-checker/access.ts"],"names":[],"mappings":";;;AAAA,0CAAiD;AACjD,uCAAoF;AACpF,8CAAkE;AAClE,qCAAiC;AACjC,yCAAqC;AACrC,qCAAiC;AACjC,qCAAiC;AACjC,2CAAuC;AAEvC,MAAM,cAAc,GAAmC;IACrD,CAAC,oBAAU,CAAC,OAAO,CAAC,EAAE,mBAAQ;IAC9B,CAAC,oBAAU,CAAC,KAAK,CAAC,EAAE,eAAM;IAC1B,CAAC,oBAAU,CAAC,QAAQ,CAAC,EAAE,qBAAS;IAChC,CAAC,oBAAU,CAAC,KAAK,CAAC,EAAE,eAAM;IAC1B,CAAC,oBAAU,CAAC,KAAK,CAAC,EAAE,eAAM;CAC3B,CAAA;AAED;;;GAGG;AACU,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,UAAgC,EAAE,EAAE;QAC/D,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAA;QACpC,MAAM,uBAAuB,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,+CAAkC,CAAA;QACjG,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAEhE,iHAAiH;QACjH,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACrC,OAAO,IAAA,wBAAgB,EACrB,yGAAyG,CAC1G,CAAA;SACF;QACD,gDAAgD;QAChD,IAAI,uBAAuB,IAAI,aAAa,CAAC,4BAA4B,CAAC,OAAO,CAAC;YAAE,OAAO,UAAE,CAAA;QAE7F,OAAO,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAChF,CAAC;CACF,CAAA;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,MAAM,CAAC,IAAI,KAAK,oBAAU,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;AAC/G,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emotes.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/emotes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,eAAO,MAAM,MAAM,EAAE,UAUpB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emotes = void 0;
|
|
4
|
+
const items_1 = require("./items/items");
|
|
5
|
+
exports.emotes = {
|
|
6
|
+
validate: async (components, deployment) => {
|
|
7
|
+
return items_1.itemsValidation.validate(components, deployment, [
|
|
8
|
+
'blockchain-collection-v2-asset',
|
|
9
|
+
'blockchain-collection-third-party'
|
|
10
|
+
]);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=emotes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emotes.js","sourceRoot":"","sources":["../../../src/validations/access-checker/emotes.ts"],"names":[],"mappings":";;;AAEA,yCAA+C;AAElC,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EACb,UAAyF,EACzF,UAAU,EACV,EAAE;QACF,OAAO,uBAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE;YACtD,gCAAgC;YAChC,mCAAmC;SACpC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AssetValidation } from './items';
|
|
2
|
+
declare type CollectionItem = {
|
|
3
|
+
managers: string[];
|
|
4
|
+
contentHash: string;
|
|
5
|
+
};
|
|
6
|
+
export declare type ItemCollection = {
|
|
7
|
+
creator: string;
|
|
8
|
+
managers: string[];
|
|
9
|
+
isApproved: boolean;
|
|
10
|
+
isCompleted: boolean;
|
|
11
|
+
items: CollectionItem[];
|
|
12
|
+
};
|
|
13
|
+
export declare const v1andV2collectionAssetValidation: AssetValidation;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=collection-asset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-asset.d.ts","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/collection-asset.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAqBzC,aAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,oBAAY,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,cAAc,EAAE,CAAA;CACxB,CAAA;AAkID,eAAO,MAAM,gCAAgC,EAAE,eAqD9C,CAAA"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.v1andV2collectionAssetValidation = void 0;
|
|
4
|
+
const hashing_1 = require("@dcl/hashing");
|
|
5
|
+
const types_1 = require("../../../types");
|
|
6
|
+
const L1_NETWORKS = ['mainnet', 'ropsten', 'kovan', 'rinkeby', 'goerli'];
|
|
7
|
+
const L2_NETWORKS = ['matic', 'mumbai'];
|
|
8
|
+
async function getCollectionItems(components, subgraphUrl, collection, itemId, block) {
|
|
9
|
+
const query = `
|
|
10
|
+
query getCollectionRoles($collection: String!, $itemId: String!, $block: Int!) {
|
|
11
|
+
collections(where:{ id: $collection }, block: { number: $block }) {
|
|
12
|
+
creator
|
|
13
|
+
managers
|
|
14
|
+
isApproved
|
|
15
|
+
isCompleted
|
|
16
|
+
items(where:{ id: $itemId }) {
|
|
17
|
+
managers
|
|
18
|
+
contentHash
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
accounts(where:{ isCommitteeMember: true }, block: { number: $block }) {
|
|
23
|
+
id
|
|
24
|
+
}
|
|
25
|
+
}`;
|
|
26
|
+
const result = await subgraphUrl.query(query, {
|
|
27
|
+
collection,
|
|
28
|
+
itemId: `${collection}-${itemId}`,
|
|
29
|
+
block
|
|
30
|
+
});
|
|
31
|
+
const collectionResult = result.collections[0];
|
|
32
|
+
const itemResult = collectionResult?.items[0];
|
|
33
|
+
return {
|
|
34
|
+
collectionCreator: collectionResult?.creator,
|
|
35
|
+
collectionManagers: collectionResult?.managers,
|
|
36
|
+
isApproved: collectionResult?.isApproved,
|
|
37
|
+
isCompleted: collectionResult?.isCompleted,
|
|
38
|
+
itemManagers: itemResult?.managers,
|
|
39
|
+
contentHash: itemResult?.contentHash,
|
|
40
|
+
committee: result.accounts.map(({ id }) => id.toLowerCase())
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
async function hasPermission(components, subgraphUrl, collection, itemId, block, entity, logger) {
|
|
44
|
+
try {
|
|
45
|
+
const { content, metadata } = entity;
|
|
46
|
+
const permissions = await getCollectionItems(components, subgraphUrl, collection, itemId, block);
|
|
47
|
+
const ethAddressLowercase = entity.ethAddress.toLowerCase();
|
|
48
|
+
if (!!permissions.contentHash) {
|
|
49
|
+
const deployedByCommittee = permissions.committee.includes(ethAddressLowercase);
|
|
50
|
+
const calculateHashes = () => {
|
|
51
|
+
// Compare both by key and hash
|
|
52
|
+
const compare = (a, b) => {
|
|
53
|
+
if (a.hash > b.hash)
|
|
54
|
+
return 1;
|
|
55
|
+
else if (a.hash < b.hash)
|
|
56
|
+
return -1;
|
|
57
|
+
else
|
|
58
|
+
return a.key > b.key ? 1 : -1;
|
|
59
|
+
};
|
|
60
|
+
const contentAsJson = (content ?? []).map(({ file, hash }) => ({ key: file, hash })).sort(compare);
|
|
61
|
+
const buffer = Buffer.from(JSON.stringify({ content: contentAsJson, metadata }));
|
|
62
|
+
return Promise.all([(0, hashing_1.hashV0)(buffer), (0, hashing_1.hashV1)(buffer)]);
|
|
63
|
+
};
|
|
64
|
+
return deployedByCommittee && (await calculateHashes()).includes(permissions.contentHash);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const addressHasAccess = (permissions.collectionCreator && permissions.collectionCreator === ethAddressLowercase) ||
|
|
68
|
+
(permissions.collectionManagers && permissions.collectionManagers.includes(ethAddressLowercase)) ||
|
|
69
|
+
(permissions.itemManagers && permissions.itemManagers.includes(ethAddressLowercase));
|
|
70
|
+
// Deployments to the content server are made after the collection is completed, so that the committee can then approve it.
|
|
71
|
+
// That's why isCompleted must be true, but isApproved must be false. After the committee approves the wearable, there can't be any more changes
|
|
72
|
+
const isCollectionValid = !permissions.isApproved && permissions.isCompleted;
|
|
73
|
+
return addressHasAccess && isCollectionValid;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
logger.error(`Error checking permission for (${collection}-${itemId}) at block ${block}`);
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async function checkCollectionAccess(components, blocksSubgraphUrl, collectionsSubgraphUrl, collection, itemId, entity, logger) {
|
|
82
|
+
const { timestamp } = entity;
|
|
83
|
+
try {
|
|
84
|
+
const { blockNumberAtDeployment, blockNumberFiveMinBeforeDeployment } = await components.theGraphClient.findBlocksForTimestamp(blocksSubgraphUrl, timestamp);
|
|
85
|
+
// It could happen that the subgraph hasn't synced yet, so someone who just lost access still managed to make a deployment. The problem would be that when other catalysts perform
|
|
86
|
+
// the same check, the subgraph might have synced and the deployment is no longer valid. So, in order to prevent inconsistencies between catalysts, we will allow all deployments that
|
|
87
|
+
// have access now, or had access 5 minutes ago.
|
|
88
|
+
const hasPermissionOnBlock = async (blockNumber) => !!blockNumber &&
|
|
89
|
+
(await hasPermission(components, collectionsSubgraphUrl, collection, itemId, blockNumber, entity, logger));
|
|
90
|
+
return ((await hasPermissionOnBlock(blockNumberAtDeployment)) ||
|
|
91
|
+
(await hasPermissionOnBlock(blockNumberFiveMinBeforeDeployment)));
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
logger.error(`Error checking wearable access (${collection}, ${itemId}, ${entity.ethAddress}, ${timestamp}, ${blocksSubgraphUrl}).`);
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.v1andV2collectionAssetValidation = {
|
|
99
|
+
async validateAsset(components, asset, deployment) {
|
|
100
|
+
const { externalCalls, subGraphs } = components;
|
|
101
|
+
const ethAddress = externalCalls.ownerAddress(deployment.auditInfo);
|
|
102
|
+
const logger = components.logs.getLogger('collection asset access validation');
|
|
103
|
+
// L1 or L2 so contractAddress is present
|
|
104
|
+
const collection = asset.contractAddress;
|
|
105
|
+
const network = asset.network;
|
|
106
|
+
const isL1 = L1_NETWORKS.includes(network);
|
|
107
|
+
const isL2 = L2_NETWORKS.includes(network);
|
|
108
|
+
if (!isL1 && !isL2)
|
|
109
|
+
return (0, types_1.validationFailed)(`Found an unknown network on the urn '${network}'`);
|
|
110
|
+
const blocksSubgraphUrl = isL1 ? subGraphs.L1.blocks : subGraphs.L2.blocks;
|
|
111
|
+
const collectionsSubgraphUrl = isL1 ? subGraphs.L1.collections : subGraphs.L2.collections;
|
|
112
|
+
const hasAccess = await checkCollectionAccess(components, blocksSubgraphUrl, collectionsSubgraphUrl, collection, asset.id, {
|
|
113
|
+
...deployment.entity,
|
|
114
|
+
ethAddress
|
|
115
|
+
}, logger);
|
|
116
|
+
if (!hasAccess) {
|
|
117
|
+
if (isL2)
|
|
118
|
+
return (0, types_1.validationFailed)(`The provided Eth Address does not have access to the following item: (${asset.contractAddress}, ${asset.id})`);
|
|
119
|
+
// L1 collections are deployed by Decentraland Address
|
|
120
|
+
const isAllowlistedCollection = asset.uri.toString().startsWith('urn:decentraland:ethereum:collections-v1');
|
|
121
|
+
if (!externalCalls.isAddressOwnedByDecentraland(ethAddress) || !isAllowlistedCollection) {
|
|
122
|
+
return (0, types_1.validationFailed)(`The provided Eth Address '${ethAddress}' does not have access to the following item: '${asset.uri}'`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return types_1.OK;
|
|
126
|
+
},
|
|
127
|
+
canValidate(asset) {
|
|
128
|
+
return asset.type === 'blockchain-collection-v1-asset' || asset.type === 'blockchain-collection-v2-asset';
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=collection-asset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-asset.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/collection-asset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BlockchainCollectionThirdParty, BlockchainCollectionV1Asset, BlockchainCollectionV2Asset, OffChainAsset } from '@dcl/urn-resolver';
|
|
2
|
+
import { DeploymentToValidate } from '../../..';
|
|
3
|
+
import { ContentValidatorComponents, ValidationResponse } from '../../../types';
|
|
4
|
+
export declare type UrnType = 'off-chain' | 'blockchain-collection-v1-asset' | 'blockchain-collection-v2-asset' | 'blockchain-collection-third-party';
|
|
5
|
+
export declare type SupportedAsset = BlockchainCollectionV1Asset | BlockchainCollectionV2Asset | OffChainAsset | BlockchainCollectionThirdParty;
|
|
6
|
+
export declare type AssetValidation = {
|
|
7
|
+
validateAsset(components: Pick<ContentValidatorComponents, 'externalCalls'>, asset: SupportedAsset, deployment: DeploymentToValidate): ValidationResponse | Promise<ValidationResponse>;
|
|
8
|
+
canValidate(asset: SupportedAsset): boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const itemsValidation: {
|
|
11
|
+
validate: (components: Pick<ContentValidatorComponents, 'externalCalls' | 'logs' | 'theGraphClient'>, deployment: DeploymentToValidate, validUrnTypesForItem: UrnType[]) => Promise<ValidationResponse>;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=items.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/items.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EAEd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAKjG,oBAAY,OAAO,GACf,WAAW,GACX,gCAAgC,GAChC,gCAAgC,GAChC,mCAAmC,CAAA;AAEvC,oBAAY,cAAc,GACtB,2BAA2B,GAC3B,2BAA2B,GAC3B,aAAa,GACb,8BAA8B,CAAA;AAElC,oBAAY,eAAe,GAAG;IAC5B,aAAa,CACX,UAAU,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,CAAC,EAC7D,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,oBAAoB,GAC/B,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACnD,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAA;CAC5C,CAAA;AAsCD,eAAO,MAAM,eAAe;2BAEZ,KAAK,0BAA0B,EAAE,eAAe,GAAG,MAAM,GAAG,gBAAgB,CAAC,cAC7E,oBAAoB,wBACV,OAAO,EAAE;CAkClC,CAAA"}
|