@explorins/pers-shared 2.1.97 → 2.1.99
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/cjs/shared-lib/dto/user/user.dto.d.ts +9 -0
- package/dist/cjs/shared-lib/dto/user/user.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/user/user.dto.js +35 -0
- package/dist/cjs/shared-lib/dto/user/user.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/user-status-type.dto.d.ts +1 -2
- package/dist/cjs/shared-lib/dto/user-status-type.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/user-status-type.dto.js +12 -16
- package/dist/cjs/shared-lib/dto/user-status-type.dto.js.map +1 -1
- package/dist/cjs/shared-lib/enum/balance-migration-type.enum.d.ts +13 -0
- package/dist/cjs/shared-lib/enum/balance-migration-type.enum.d.ts.map +1 -0
- package/dist/cjs/shared-lib/enum/balance-migration-type.enum.js +17 -0
- package/dist/cjs/shared-lib/enum/balance-migration-type.enum.js.map +1 -0
- package/dist/cjs/shared-lib/enum/index.d.ts +1 -0
- package/dist/cjs/shared-lib/enum/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/enum/index.js +1 -0
- package/dist/cjs/shared-lib/enum/index.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/balance-filter-options.interface.d.ts +43 -0
- package/dist/cjs/shared-lib/interfaces/balance-filter-options.interface.d.ts.map +1 -0
- package/dist/cjs/shared-lib/interfaces/balance-filter-options.interface.js +3 -0
- package/dist/cjs/shared-lib/interfaces/balance-filter-options.interface.js.map +1 -0
- package/dist/cjs/shared-lib/interfaces/index.d.ts +1 -0
- package/dist/cjs/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/interfaces/index.js +1 -0
- package/dist/cjs/shared-lib/interfaces/index.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/token-storage-data.interface.d.ts +5 -1
- package/dist/cjs/shared-lib/interfaces/token-storage-data.interface.d.ts.map +1 -1
- package/dist/cjs/shared-lib/interfaces/token-storage-data.interface.js +4 -0
- package/dist/cjs/shared-lib/interfaces/token-storage-data.interface.js.map +1 -1
- package/dist/cjs/shared-lib/types/index.d.ts +1 -0
- package/dist/cjs/shared-lib/types/index.d.ts.map +1 -1
- package/dist/cjs/shared-lib/types/index.js +1 -0
- package/dist/cjs/shared-lib/types/index.js.map +1 -1
- package/dist/cjs/shared-lib/types/user-include-relation.type.d.ts +11 -0
- package/dist/cjs/shared-lib/types/user-include-relation.type.d.ts.map +1 -0
- package/dist/cjs/shared-lib/types/user-include-relation.type.js +16 -0
- package/dist/cjs/shared-lib/types/user-include-relation.type.js.map +1 -0
- package/dist/cjs/shared-lib/value-objects/token-balance.value-object.d.ts +18 -1
- package/dist/cjs/shared-lib/value-objects/token-balance.value-object.d.ts.map +1 -1
- package/dist/cjs/shared-lib/value-objects/token-balance.value-object.js +24 -2
- package/dist/cjs/shared-lib/value-objects/token-balance.value-object.js.map +1 -1
- package/dist/cjs/shared-patterns/functions/helper.functions.d.ts +71 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.d.ts.map +1 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.js +185 -0
- package/dist/cjs/shared-patterns/functions/helper.functions.js.map +1 -0
- package/dist/esm/shared-lib/dto/user/user.dto.d.ts +9 -0
- package/dist/esm/shared-lib/dto/user/user.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/user/user.dto.js +35 -1
- package/dist/esm/shared-lib/dto/user/user.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/user-status-type.dto.d.ts +1 -2
- package/dist/esm/shared-lib/dto/user-status-type.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/user-status-type.dto.js +11 -14
- package/dist/esm/shared-lib/dto/user-status-type.dto.js.map +1 -1
- package/dist/esm/shared-lib/enum/balance-migration-type.enum.d.ts +13 -0
- package/dist/esm/shared-lib/enum/balance-migration-type.enum.d.ts.map +1 -0
- package/dist/esm/shared-lib/enum/balance-migration-type.enum.js +14 -0
- package/dist/esm/shared-lib/enum/balance-migration-type.enum.js.map +1 -0
- package/dist/esm/shared-lib/enum/index.d.ts +1 -0
- package/dist/esm/shared-lib/enum/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/enum/index.js +1 -0
- package/dist/esm/shared-lib/enum/index.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/balance-filter-options.interface.d.ts +43 -0
- package/dist/esm/shared-lib/interfaces/balance-filter-options.interface.d.ts.map +1 -0
- package/dist/esm/shared-lib/interfaces/balance-filter-options.interface.js +2 -0
- package/dist/esm/shared-lib/interfaces/balance-filter-options.interface.js.map +1 -0
- package/dist/esm/shared-lib/interfaces/index.d.ts +1 -0
- package/dist/esm/shared-lib/interfaces/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/interfaces/index.js +1 -0
- package/dist/esm/shared-lib/interfaces/index.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/token-storage-data.interface.d.ts +5 -1
- package/dist/esm/shared-lib/interfaces/token-storage-data.interface.d.ts.map +1 -1
- package/dist/esm/shared-lib/interfaces/token-storage-data.interface.js +4 -0
- package/dist/esm/shared-lib/interfaces/token-storage-data.interface.js.map +1 -1
- package/dist/esm/shared-lib/types/index.d.ts +1 -0
- package/dist/esm/shared-lib/types/index.d.ts.map +1 -1
- package/dist/esm/shared-lib/types/index.js +1 -0
- package/dist/esm/shared-lib/types/index.js.map +1 -1
- package/dist/esm/shared-lib/types/user-include-relation.type.d.ts +11 -0
- package/dist/esm/shared-lib/types/user-include-relation.type.d.ts.map +1 -0
- package/dist/esm/shared-lib/types/user-include-relation.type.js +12 -0
- package/dist/esm/shared-lib/types/user-include-relation.type.js.map +1 -0
- package/dist/esm/shared-lib/value-objects/token-balance.value-object.d.ts +18 -1
- package/dist/esm/shared-lib/value-objects/token-balance.value-object.d.ts.map +1 -1
- package/dist/esm/shared-lib/value-objects/token-balance.value-object.js +24 -2
- package/dist/esm/shared-lib/value-objects/token-balance.value-object.js.map +1 -1
- package/dist/esm/shared-patterns/functions/helper.functions.d.ts +71 -0
- package/dist/esm/shared-patterns/functions/helper.functions.d.ts.map +1 -0
- package/dist/esm/shared-patterns/functions/helper.functions.js +174 -0
- package/dist/esm/shared-patterns/functions/helper.functions.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type TokenValidityType } from '../../shared-lib/enum/token-validity-type.enum';
|
|
2
|
+
import { TokenStorageData } from '../../shared-lib/interfaces/token-storage-data.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Parses a comma-separated string into an array of strings.
|
|
5
|
+
*
|
|
6
|
+
* @param commaSeparatedString - The string to parse.
|
|
7
|
+
* @returns An array of trimmed, non-empty strings.
|
|
8
|
+
*/
|
|
9
|
+
export declare const parseCommaSeparatedStringToStringArray: (commaSeparatedString: string | null) => string[];
|
|
10
|
+
export declare const checkIfTokenIdIsUri: (tokenId: string | null) => boolean;
|
|
11
|
+
export declare const compareVersions: (version1: string, version2: string) => number;
|
|
12
|
+
/**
|
|
13
|
+
* Computes the expiry date based on validity configuration.
|
|
14
|
+
*
|
|
15
|
+
* @param validityType - The type of validity calculation
|
|
16
|
+
* @param validityDuration - Duration in days or hours (for relative types)
|
|
17
|
+
* @param fixedExpiryDate - Fixed expiry date (for fixed_date type)
|
|
18
|
+
* @param issuanceDate - The date of issuance (defaults to now)
|
|
19
|
+
* @returns The computed expiry date, or undefined if no validity is configured
|
|
20
|
+
*/
|
|
21
|
+
export declare const computeExpiryDate: (validityType?: TokenValidityType, validityDuration?: number, fixedExpiryDate?: Date, issuanceDate?: Date) => Date | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Checks if a token has expired based on its expiry date.
|
|
24
|
+
*
|
|
25
|
+
* @param expiryDate - The expiry date to check
|
|
26
|
+
* @param referenceDate - The date to compare against (defaults to now)
|
|
27
|
+
* @returns true if expired, false if still valid, undefined if no expiry date
|
|
28
|
+
*/
|
|
29
|
+
export declare const isTokenExpired: (expiryDate?: Date | null, referenceDate?: Date) => boolean | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Normalizes an array of tags for consistent storage.
|
|
32
|
+
* - Converts to lowercase
|
|
33
|
+
* - Trims whitespace
|
|
34
|
+
* - Replaces spaces with dashes
|
|
35
|
+
* - Removes duplicates
|
|
36
|
+
* - Filters out empty strings
|
|
37
|
+
*
|
|
38
|
+
* @param tags - Array of tag strings to normalize
|
|
39
|
+
* @returns Normalized, deduplicated array of tags
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* normalizeTags(['Summer', ' VIP ', 'Black Friday', 'summer'])
|
|
43
|
+
* // Returns: ['summer', 'vip', 'black-friday']
|
|
44
|
+
*/
|
|
45
|
+
export declare const normalizeTags: (tags?: string[] | null) => string[];
|
|
46
|
+
/**
|
|
47
|
+
* Extracts the expiry_date attribute from token metadata (OpenSea standard format).
|
|
48
|
+
* This is the inverse operation of computeExpiryDate - it reads the expiry that was
|
|
49
|
+
* stored in the metadata when the token was minted.
|
|
50
|
+
*
|
|
51
|
+
* @param metadata - The token metadata object containing attributes array
|
|
52
|
+
* @returns The expiry date if found, null otherwise
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* const metadata = { attributes: [{ trait_type: 'expiry_date', value: '2024-12-31T23:59:59.000Z' }] };
|
|
56
|
+
* extractExpiryDateFromMetadata(metadata); // Returns Date object
|
|
57
|
+
*/
|
|
58
|
+
export declare const extractExpiryDateFromMetadata: (metadata: TokenStorageData | null) => Date | null;
|
|
59
|
+
/**
|
|
60
|
+
* Extracts tags from token metadata (OpenSea standard format).
|
|
61
|
+
* Tags are stored as a comma-separated string in the 'Tags' attribute.
|
|
62
|
+
*
|
|
63
|
+
* @param metadata - The token metadata object containing attributes array
|
|
64
|
+
* @returns Array of tags found in the metadata, or empty array if none
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* const metadata = { attributes: [{ trait_type: 'Tags', value: 'techno, mindfulness' }] };
|
|
68
|
+
* extractTagsFromMetadata(metadata); // Returns ['techno', 'mindfulness']
|
|
69
|
+
*/
|
|
70
|
+
export declare const extractTagsFromMetadata: (metadata: TokenStorageData | null) => string[];
|
|
71
|
+
//# sourceMappingURL=helper.functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.functions.d.ts","sourceRoot":"","sources":["../../../../src/shared-patterns/functions/helper.functions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAkC,MAAM,0DAA0D,CAAC;AAE5H;;;;;KAKK;AACL,eAAO,MAAM,sCAAsC,GAAI,sBAAsB,MAAM,GAAG,IAAI,KAAG,MAAM,EAI9F,CAAA;AAGL,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,OAM5D,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,UAAU,MAAM,KAAG,MAWpE,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,eAAe,iBAAiB,EAChC,mBAAmB,MAAM,EACzB,kBAAkB,IAAI,EACtB,eAAc,IAAiB,KAC9B,IAAI,GAAG,SA6CT,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,IAAI,GAAG,IAAI,EACxB,gBAAe,IAAiB,KAC/B,OAAO,GAAG,SAGZ,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,GAAG,IAAI,KAAG,MAAM,EAgB5D,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,IAAI,GAAG,IAaxF,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,gBAAgB,GAAG,IAAI,KAAG,MAAM,EAiBjF,CAAA"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractTagsFromMetadata = exports.extractExpiryDateFromMetadata = exports.normalizeTags = exports.isTokenExpired = exports.computeExpiryDate = exports.compareVersions = exports.checkIfTokenIdIsUri = exports.parseCommaSeparatedStringToStringArray = void 0;
|
|
4
|
+
const token_validity_type_enum_1 = require("../../shared-lib/enum/token-validity-type.enum");
|
|
5
|
+
const token_storage_data_interface_1 = require("../../shared-lib/interfaces/token-storage-data.interface");
|
|
6
|
+
/**
|
|
7
|
+
* Parses a comma-separated string into an array of strings.
|
|
8
|
+
*
|
|
9
|
+
* @param commaSeparatedString - The string to parse.
|
|
10
|
+
* @returns An array of trimmed, non-empty strings.
|
|
11
|
+
*/
|
|
12
|
+
const parseCommaSeparatedStringToStringArray = (commaSeparatedString) => {
|
|
13
|
+
return commaSeparatedString
|
|
14
|
+
? commaSeparatedString.split(',').map((s) => s.trim()).filter(Boolean)
|
|
15
|
+
: [];
|
|
16
|
+
};
|
|
17
|
+
exports.parseCommaSeparatedStringToStringArray = parseCommaSeparatedStringToStringArray;
|
|
18
|
+
const checkIfTokenIdIsUri = (tokenId) => {
|
|
19
|
+
const uriRegex = /^(https?|ipfs):\/\/.*/;
|
|
20
|
+
if (!tokenId || !uriRegex.test(tokenId)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
};
|
|
25
|
+
exports.checkIfTokenIdIsUri = checkIfTokenIdIsUri;
|
|
26
|
+
const compareVersions = (version1, version2) => {
|
|
27
|
+
const v1 = version1.split('.').map(Number);
|
|
28
|
+
const v2 = version2.split('.').map(Number);
|
|
29
|
+
for (let i = 0; i < Math.max(v1.length, v2.length); i++) {
|
|
30
|
+
const num1 = v1[i] || 0;
|
|
31
|
+
const num2 = v2[i] || 0;
|
|
32
|
+
if (num1 > num2)
|
|
33
|
+
return 1;
|
|
34
|
+
if (num1 < num2)
|
|
35
|
+
return -1;
|
|
36
|
+
}
|
|
37
|
+
return 0;
|
|
38
|
+
};
|
|
39
|
+
exports.compareVersions = compareVersions;
|
|
40
|
+
/**
|
|
41
|
+
* Computes the expiry date based on validity configuration.
|
|
42
|
+
*
|
|
43
|
+
* @param validityType - The type of validity calculation
|
|
44
|
+
* @param validityDuration - Duration in days or hours (for relative types)
|
|
45
|
+
* @param fixedExpiryDate - Fixed expiry date (for fixed_date type)
|
|
46
|
+
* @param issuanceDate - The date of issuance (defaults to now)
|
|
47
|
+
* @returns The computed expiry date, or undefined if no validity is configured
|
|
48
|
+
*/
|
|
49
|
+
const computeExpiryDate = (validityType, validityDuration, fixedExpiryDate, issuanceDate = new Date()) => {
|
|
50
|
+
if (!validityType) {
|
|
51
|
+
// Fallback to fixed expiry date if no validity type specified
|
|
52
|
+
return fixedExpiryDate;
|
|
53
|
+
}
|
|
54
|
+
switch (validityType) {
|
|
55
|
+
case token_validity_type_enum_1.TokenValidityTypes.FIXED_DATE:
|
|
56
|
+
return fixedExpiryDate;
|
|
57
|
+
case token_validity_type_enum_1.TokenValidityTypes.DAYS_FROM_ISSUANCE:
|
|
58
|
+
if (!validityDuration || validityDuration <= 0)
|
|
59
|
+
return undefined;
|
|
60
|
+
const daysResult = new Date(issuanceDate);
|
|
61
|
+
daysResult.setDate(daysResult.getDate() + validityDuration);
|
|
62
|
+
return daysResult;
|
|
63
|
+
case token_validity_type_enum_1.TokenValidityTypes.HOURS_FROM_ISSUANCE:
|
|
64
|
+
if (!validityDuration || validityDuration <= 0)
|
|
65
|
+
return undefined;
|
|
66
|
+
const hoursResult = new Date(issuanceDate);
|
|
67
|
+
hoursResult.setHours(hoursResult.getHours() + validityDuration);
|
|
68
|
+
return hoursResult;
|
|
69
|
+
case token_validity_type_enum_1.TokenValidityTypes.MONTHS_FROM_ISSUANCE:
|
|
70
|
+
if (!validityDuration || validityDuration <= 0)
|
|
71
|
+
return undefined;
|
|
72
|
+
const monthsResult = new Date(issuanceDate);
|
|
73
|
+
monthsResult.setMonth(monthsResult.getMonth() + validityDuration);
|
|
74
|
+
return monthsResult;
|
|
75
|
+
case token_validity_type_enum_1.TokenValidityTypes.END_OF_MONTH:
|
|
76
|
+
const endOfMonth = new Date(issuanceDate);
|
|
77
|
+
endOfMonth.setMonth(endOfMonth.getMonth() + 1);
|
|
78
|
+
endOfMonth.setDate(0); // Last day of previous month (i.e., current month)
|
|
79
|
+
endOfMonth.setHours(23, 59, 59, 999);
|
|
80
|
+
return endOfMonth;
|
|
81
|
+
case token_validity_type_enum_1.TokenValidityTypes.END_OF_YEAR:
|
|
82
|
+
const endOfYear = new Date(issuanceDate);
|
|
83
|
+
endOfYear.setMonth(11); // December
|
|
84
|
+
endOfYear.setDate(31);
|
|
85
|
+
endOfYear.setHours(23, 59, 59, 999);
|
|
86
|
+
return endOfYear;
|
|
87
|
+
default:
|
|
88
|
+
return fixedExpiryDate;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
exports.computeExpiryDate = computeExpiryDate;
|
|
92
|
+
/**
|
|
93
|
+
* Checks if a token has expired based on its expiry date.
|
|
94
|
+
*
|
|
95
|
+
* @param expiryDate - The expiry date to check
|
|
96
|
+
* @param referenceDate - The date to compare against (defaults to now)
|
|
97
|
+
* @returns true if expired, false if still valid, undefined if no expiry date
|
|
98
|
+
*/
|
|
99
|
+
const isTokenExpired = (expiryDate, referenceDate = new Date()) => {
|
|
100
|
+
if (!expiryDate)
|
|
101
|
+
return undefined;
|
|
102
|
+
return new Date(expiryDate) < referenceDate;
|
|
103
|
+
};
|
|
104
|
+
exports.isTokenExpired = isTokenExpired;
|
|
105
|
+
/**
|
|
106
|
+
* Normalizes an array of tags for consistent storage.
|
|
107
|
+
* - Converts to lowercase
|
|
108
|
+
* - Trims whitespace
|
|
109
|
+
* - Replaces spaces with dashes
|
|
110
|
+
* - Removes duplicates
|
|
111
|
+
* - Filters out empty strings
|
|
112
|
+
*
|
|
113
|
+
* @param tags - Array of tag strings to normalize
|
|
114
|
+
* @returns Normalized, deduplicated array of tags
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* normalizeTags(['Summer', ' VIP ', 'Black Friday', 'summer'])
|
|
118
|
+
* // Returns: ['summer', 'vip', 'black-friday']
|
|
119
|
+
*/
|
|
120
|
+
const normalizeTags = (tags) => {
|
|
121
|
+
if (!tags || !Array.isArray(tags))
|
|
122
|
+
return [];
|
|
123
|
+
const normalized = tags
|
|
124
|
+
.map(tag => tag
|
|
125
|
+
.toLowerCase()
|
|
126
|
+
.trim()
|
|
127
|
+
.replace(/\s+/g, '-') // Replace spaces with dashes
|
|
128
|
+
.replace(/[^a-z0-9-]/g, '') // Remove special characters except dashes
|
|
129
|
+
.replace(/-+/g, '-') // Replace multiple dashes with single
|
|
130
|
+
.replace(/^-|-$/g, '') // Remove leading/trailing dashes
|
|
131
|
+
)
|
|
132
|
+
.filter(Boolean); // Remove empty strings
|
|
133
|
+
return [...new Set(normalized)]; // Remove duplicates
|
|
134
|
+
};
|
|
135
|
+
exports.normalizeTags = normalizeTags;
|
|
136
|
+
/**
|
|
137
|
+
* Extracts the expiry_date attribute from token metadata (OpenSea standard format).
|
|
138
|
+
* This is the inverse operation of computeExpiryDate - it reads the expiry that was
|
|
139
|
+
* stored in the metadata when the token was minted.
|
|
140
|
+
*
|
|
141
|
+
* @param metadata - The token metadata object containing attributes array
|
|
142
|
+
* @returns The expiry date if found, null otherwise
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* const metadata = { attributes: [{ trait_type: 'expiry_date', value: '2024-12-31T23:59:59.000Z' }] };
|
|
146
|
+
* extractExpiryDateFromMetadata(metadata); // Returns Date object
|
|
147
|
+
*/
|
|
148
|
+
const extractExpiryDateFromMetadata = (metadata) => {
|
|
149
|
+
if (!metadata?.attributes)
|
|
150
|
+
return null;
|
|
151
|
+
// Case-insensitive comparison to handle legacy formats
|
|
152
|
+
const expiryAttribute = metadata.attributes.find(attr => attr.trait_type.toLowerCase() === token_storage_data_interface_1.TokenStorageDataAttributesType.EXPIRY_DATE.toLowerCase());
|
|
153
|
+
if (expiryAttribute?.value) {
|
|
154
|
+
return new Date(expiryAttribute.value);
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
};
|
|
158
|
+
exports.extractExpiryDateFromMetadata = extractExpiryDateFromMetadata;
|
|
159
|
+
/**
|
|
160
|
+
* Extracts tags from token metadata (OpenSea standard format).
|
|
161
|
+
* Tags are stored as a comma-separated string in the 'Tags' attribute.
|
|
162
|
+
*
|
|
163
|
+
* @param metadata - The token metadata object containing attributes array
|
|
164
|
+
* @returns Array of tags found in the metadata, or empty array if none
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* const metadata = { attributes: [{ trait_type: 'Tags', value: 'techno, mindfulness' }] };
|
|
168
|
+
* extractTagsFromMetadata(metadata); // Returns ['techno', 'mindfulness']
|
|
169
|
+
*/
|
|
170
|
+
const extractTagsFromMetadata = (metadata) => {
|
|
171
|
+
if (!metadata?.attributes)
|
|
172
|
+
return [];
|
|
173
|
+
// Case-insensitive comparison to handle legacy formats ('Tags', 'tags', etc.)
|
|
174
|
+
const tagsAttribute = metadata.attributes.find(attr => attr.trait_type.toLowerCase() === token_storage_data_interface_1.TokenStorageDataAttributesType.TAGS.toLowerCase());
|
|
175
|
+
if (tagsAttribute?.value) {
|
|
176
|
+
// Tags are stored as comma-separated string, split and trim
|
|
177
|
+
return tagsAttribute.value
|
|
178
|
+
.split(',')
|
|
179
|
+
.map(tag => tag.trim())
|
|
180
|
+
.filter(Boolean);
|
|
181
|
+
}
|
|
182
|
+
return [];
|
|
183
|
+
};
|
|
184
|
+
exports.extractTagsFromMetadata = extractTagsFromMetadata;
|
|
185
|
+
//# sourceMappingURL=helper.functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.functions.js","sourceRoot":"","sources":["../../../../src/shared-patterns/functions/helper.functions.ts"],"names":[],"mappings":";;;AAEA,6FAA4G;AAC5G,2GAA4H;AAE5H;;;;;KAKK;AACE,MAAM,sCAAsC,GAAG,CAAC,oBAAmC,EAAY,EAAE;IACpG,OAAO,oBAAoB;QACzB,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACtE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC,CAAA;AAJQ,QAAA,sCAAsC,0CAI9C;AAGE,MAAM,mBAAmB,GAAG,CAAC,OAAsB,EAAW,EAAE;IACnE,MAAM,QAAQ,GAAG,uBAAuB,CAAC;IAC3C,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AANY,QAAA,mBAAmB,uBAM/B;AAEM,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAU,EAAE;IAC5E,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAA;AAXY,QAAA,eAAe,mBAW3B;AAED;;;;;;;;GAQG;AACI,MAAM,iBAAiB,GAAG,CAC/B,YAAgC,EAChC,gBAAyB,EACzB,eAAsB,EACtB,eAAqB,IAAI,IAAI,EAAE,EACb,EAAE;IACpB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,8DAA8D;QAC9D,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,6CAAkB,CAAC,UAAU;YAChC,OAAO,eAAe,CAAC;QAEzB,KAAK,6CAAkB,CAAC,kBAAkB;YACxC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC;YAC5D,OAAO,UAAU,CAAC;QAEpB,KAAK,6CAAkB,CAAC,mBAAmB;YACzC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjE,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3C,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC;YAChE,OAAO,WAAW,CAAC;QAErB,KAAK,6CAAkB,CAAC,oBAAoB;YAC1C,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5C,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC;YAClE,OAAO,YAAY,CAAC;QAEtB,KAAK,6CAAkB,CAAC,YAAY;YAClC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,mDAAmD;YAC1E,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACrC,OAAO,UAAU,CAAC;QAEpB,KAAK,6CAAkB,CAAC,WAAW;YACjC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;YACzC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;YACnC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtB,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACpC,OAAO,SAAS,CAAC;QAEnB;YACE,OAAO,eAAe,CAAC;IAC3B,CAAC;AACH,CAAC,CAAA;AAlDY,QAAA,iBAAiB,qBAkD7B;AAED;;;;;;GAMG;AACI,MAAM,cAAc,GAAG,CAC5B,UAAwB,EACxB,gBAAsB,IAAI,IAAI,EAAE,EACX,EAAE;IACvB,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;AAC9C,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAED;;;;;;;;;;;;;;GAcG;AACI,MAAM,aAAa,GAAG,CAAC,IAAsB,EAAY,EAAE;IAChE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,UAAU,GAAG,IAAI;SACpB,GAAG,CAAC,GAAG,CAAC,EAAE,CACT,GAAG;SACA,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,6BAA6B;SACnD,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAE,0CAA0C;SACtE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAE,sCAAsC;SAC3D,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAE,iCAAiC;KAC5D;SACA,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,uBAAuB;IAE5C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,oBAAoB;AACxD,CAAC,CAAA;AAhBY,QAAA,aAAa,iBAgBzB;AAED;;;;;;;;;;;GAWG;AACI,MAAM,6BAA6B,GAAG,CAAC,QAAiC,EAAe,EAAE;IAC9F,IAAI,CAAC,QAAQ,EAAE,UAAU;QAAE,OAAO,IAAI,CAAC;IAEvC,uDAAuD;IACvD,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAC9C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,6DAA8B,CAAC,WAAW,CAAC,WAAW,EAAE,CACnG,CAAC;IAEF,IAAI,eAAe,EAAE,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAA;AAbY,QAAA,6BAA6B,iCAazC;AAED;;;;;;;;;;GAUG;AACI,MAAM,uBAAuB,GAAG,CAAC,QAAiC,EAAY,EAAE;IACrF,IAAI,CAAC,QAAQ,EAAE,UAAU;QAAE,OAAO,EAAE,CAAC;IAErC,8EAA8E;IAC9E,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,6DAA8B,CAAC,IAAI,CAAC,WAAW,EAAE,CAC5F,CAAC;IAEF,IAAI,aAAa,EAAE,KAAK,EAAE,CAAC;QACzB,4DAA4D;QAC5D,OAAO,aAAa,CAAC,KAAK;aACvB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACtB,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAA;AAjBY,QAAA,uBAAuB,2BAiBnC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PublicWalletDTO } from "../wallet.dto";
|
|
2
2
|
import { AccountTokenBalancesDTO } from "../account-token-balances.dto";
|
|
3
|
+
import { UserStatusTypeDTO } from "../user-status-type.dto";
|
|
3
4
|
export declare class UserDTO {
|
|
4
5
|
id: string;
|
|
5
6
|
email: string | null;
|
|
@@ -24,6 +25,10 @@ export declare class UserDTO {
|
|
|
24
25
|
wallets: PublicWalletDTO[];
|
|
25
26
|
createdAt: Date | null;
|
|
26
27
|
updatedAt: Date | null;
|
|
28
|
+
included?: {
|
|
29
|
+
statusTypes?: UserStatusTypeDTO[];
|
|
30
|
+
tokenBalances?: AccountTokenBalancesDTO[];
|
|
31
|
+
};
|
|
27
32
|
}
|
|
28
33
|
export declare class PublicUserDTO {
|
|
29
34
|
id: string;
|
|
@@ -31,6 +36,10 @@ export declare class PublicUserDTO {
|
|
|
31
36
|
[key: string]: any;
|
|
32
37
|
};
|
|
33
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated Use UserDTO with include=balances pattern instead.
|
|
41
|
+
* Will be removed in future version.
|
|
42
|
+
*/
|
|
34
43
|
export declare class UserTokenBalancesDTO extends UserDTO {
|
|
35
44
|
tokenBalances: AccountTokenBalancesDTO[];
|
|
36
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/user.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"user.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/user.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,qBAAa,OAAO;IAOhB,EAAE,EAAG,MAAM,CAAM;IAIjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM5B,eAAe,EAAE,MAAM,CAAM;IAW7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMhC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAM/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEjC;;OAEG;IAQH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAQrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAMzC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAKxC,UAAU,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAOhD,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,CAAQ;IAKnD,QAAQ,EAAE,OAAO,CAAQ;IAMzB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAO9C,OAAO,EAAE,eAAe,EAAE,CAAM;IAMhC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAO9B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IA0B9B,QAAQ,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAClC,aAAa,CAAC,EAAE,uBAAuB,EAAE,CAAC;KAC7C,CAAC;CACL;AAED,qBAAa,aAAa;IAEtB,EAAE,EAAG,MAAM,CAAM;IAKjB,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAM;CAC7C;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,OAAO;IAK7C,aAAa,EAAE,uBAAuB,EAAE,CAAM;CACjD;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC"}
|
|
@@ -4,10 +4,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
|
|
7
|
+
import { ApiProperty, ApiPropertyOptional, getSchemaPath } from "@nestjs/swagger";
|
|
8
8
|
import { PublicWalletDTO } from "../wallet.dto.js";
|
|
9
9
|
import { AccountTokenBalancesDTO } from "../account-token-balances.dto.js";
|
|
10
|
+
import { UserStatusTypeDTO } from "../user-status-type.dto.js";
|
|
10
11
|
export class UserDTO {
|
|
12
|
+
// =====================================
|
|
13
|
+
// SCALAR FIELDS
|
|
14
|
+
// =====================================
|
|
11
15
|
id = '';
|
|
12
16
|
// @IsDefined()
|
|
13
17
|
email = null;
|
|
@@ -32,6 +36,12 @@ export class UserDTO {
|
|
|
32
36
|
wallets = [];
|
|
33
37
|
createdAt = null;
|
|
34
38
|
updatedAt = null;
|
|
39
|
+
// =====================================
|
|
40
|
+
// OPTIONAL INCLUDED ENTITIES
|
|
41
|
+
// =====================================
|
|
42
|
+
// Only populated when include query param is specified
|
|
43
|
+
// e.g., GET /users/me?include=status,balances
|
|
44
|
+
included;
|
|
35
45
|
}
|
|
36
46
|
__decorate([
|
|
37
47
|
ApiProperty()
|
|
@@ -117,6 +127,26 @@ __decorate([
|
|
|
117
127
|
nullable: true
|
|
118
128
|
})
|
|
119
129
|
], UserDTO.prototype, "updatedAt", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
ApiPropertyOptional({
|
|
132
|
+
description: 'Included related entities. Only populated when include parameter is specified.',
|
|
133
|
+
required: false,
|
|
134
|
+
nullable: true,
|
|
135
|
+
type: 'object',
|
|
136
|
+
properties: {
|
|
137
|
+
statusTypes: {
|
|
138
|
+
description: 'User status types earned based on token balances (via ?include=status)',
|
|
139
|
+
type: 'array',
|
|
140
|
+
items: { $ref: getSchemaPath(UserStatusTypeDTO) }
|
|
141
|
+
},
|
|
142
|
+
tokenBalances: {
|
|
143
|
+
description: 'Token balances for user wallets (via ?include=balances)',
|
|
144
|
+
type: 'array',
|
|
145
|
+
items: { $ref: getSchemaPath(AccountTokenBalancesDTO) }
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
})
|
|
149
|
+
], UserDTO.prototype, "included", void 0);
|
|
120
150
|
export class PublicUserDTO {
|
|
121
151
|
id = '';
|
|
122
152
|
publicProfile = {};
|
|
@@ -127,6 +157,10 @@ __decorate([
|
|
|
127
157
|
__decorate([
|
|
128
158
|
ApiProperty({ description: 'Public profile data' })
|
|
129
159
|
], PublicUserDTO.prototype, "publicProfile", void 0);
|
|
160
|
+
/**
|
|
161
|
+
* @deprecated Use UserDTO with include=balances pattern instead.
|
|
162
|
+
* Will be removed in future version.
|
|
163
|
+
*/
|
|
130
164
|
export class UserTokenBalancesDTO extends UserDTO {
|
|
131
165
|
tokenBalances = [];
|
|
132
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/user.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/user/user.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,10 @@ export declare class UserStatusTypeCreateRequestDTO {
|
|
|
4
4
|
minTokenBalance: number;
|
|
5
5
|
discountPercentage: number;
|
|
6
6
|
imageUrl?: string;
|
|
7
|
+
eligibleTokenAddresses?: string[];
|
|
7
8
|
tags?: string[];
|
|
8
9
|
}
|
|
9
10
|
export declare class UserStatusTypeDTO extends UserStatusTypeCreateRequestDTO {
|
|
10
11
|
id: number;
|
|
11
|
-
eligibleTokenAddresses: string[];
|
|
12
|
-
tags: string[];
|
|
13
12
|
}
|
|
14
13
|
//# sourceMappingURL=user-status-type.dto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-status-type.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-status-type.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,8BAA8B;IAMvC,IAAI,EAAE,MAAM,CAAM;IAOlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAOrB,eAAe,EAAE,MAAM,CAAK;IAO5B,kBAAkB,EAAE,MAAM,CAAK;IAO/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAUlB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,iBAAkB,SAAQ,8BAA8B;IAIjE,EAAE,EAAE,MAAM,CAAK;
|
|
1
|
+
{"version":3,"file":"user-status-type.dto.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-status-type.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,8BAA8B;IAMvC,IAAI,EAAE,MAAM,CAAM;IAOlB,WAAW,CAAC,EAAE,MAAM,CAAC;IAOrB,eAAe,EAAE,MAAM,CAAK;IAO5B,kBAAkB,EAAE,MAAM,CAAK;IAO/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAUlB,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAUlC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,qBAAa,iBAAkB,SAAQ,8BAA8B;IAIjE,EAAE,EAAE,MAAM,CAAK;CAClB"}
|
|
@@ -13,6 +13,7 @@ export class UserStatusTypeCreateRequestDTO {
|
|
|
13
13
|
minTokenBalance = 0;
|
|
14
14
|
discountPercentage = 0;
|
|
15
15
|
imageUrl;
|
|
16
|
+
eligibleTokenAddresses;
|
|
16
17
|
tags;
|
|
17
18
|
}
|
|
18
19
|
__decorate([
|
|
@@ -50,6 +51,16 @@ __decorate([
|
|
|
50
51
|
OptionalStrip(),
|
|
51
52
|
IsUrl()
|
|
52
53
|
], UserStatusTypeCreateRequestDTO.prototype, "imageUrl", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
ApiPropertyOptional({
|
|
56
|
+
description: 'Eligible token contract addresses for this status type',
|
|
57
|
+
type: [String],
|
|
58
|
+
example: ['0x1234...', '0x5678...']
|
|
59
|
+
}),
|
|
60
|
+
OptionalStrip(),
|
|
61
|
+
IsArray(),
|
|
62
|
+
IsString({ each: true })
|
|
63
|
+
], UserStatusTypeCreateRequestDTO.prototype, "eligibleTokenAddresses", void 0);
|
|
53
64
|
__decorate([
|
|
54
65
|
ApiPropertyOptional({
|
|
55
66
|
description: 'Tags for categorization and filtering',
|
|
@@ -62,24 +73,10 @@ __decorate([
|
|
|
62
73
|
], UserStatusTypeCreateRequestDTO.prototype, "tags", void 0);
|
|
63
74
|
export class UserStatusTypeDTO extends UserStatusTypeCreateRequestDTO {
|
|
64
75
|
id = 0;
|
|
65
|
-
eligibleTokenAddresses = [];
|
|
66
|
-
tags = [];
|
|
67
76
|
}
|
|
68
77
|
__decorate([
|
|
69
78
|
ApiProperty({
|
|
70
79
|
description: 'User Status Type id',
|
|
71
80
|
})
|
|
72
81
|
], UserStatusTypeDTO.prototype, "id", void 0);
|
|
73
|
-
__decorate([
|
|
74
|
-
ApiProperty({
|
|
75
|
-
description: 'User Status Type eligible Token Addresses',
|
|
76
|
-
})
|
|
77
|
-
], UserStatusTypeDTO.prototype, "eligibleTokenAddresses", void 0);
|
|
78
|
-
__decorate([
|
|
79
|
-
ApiProperty({
|
|
80
|
-
description: 'Tags for categorization and filtering',
|
|
81
|
-
type: [String],
|
|
82
|
-
default: []
|
|
83
|
-
})
|
|
84
|
-
], UserStatusTypeDTO.prototype, "tags", void 0);
|
|
85
82
|
//# sourceMappingURL=user-status-type.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-status-type.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-status-type.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,OAAO,8BAA8B;IAMvC,IAAI,GAAW,EAAE,CAAC;IAOlB,WAAW,CAAU;IAOrB,eAAe,GAAW,CAAC,CAAC;IAO5B,kBAAkB,GAAW,CAAC,CAAC;IAO/B,QAAQ,CAAU;IAUlB,IAAI,CAAY;CACnB;
|
|
1
|
+
{"version":3,"file":"user-status-type.dto.js","sourceRoot":"","sources":["../../../../src/shared-lib/dto/user-status-type.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,OAAO,8BAA8B;IAMvC,IAAI,GAAW,EAAE,CAAC;IAOlB,WAAW,CAAU;IAOrB,eAAe,GAAW,CAAC,CAAC;IAO5B,kBAAkB,GAAW,CAAC,CAAC;IAO/B,QAAQ,CAAU;IAUlB,sBAAsB,CAAY;IAUlC,IAAI,CAAY;CACnB;AAjDG;IALC,WAAW,CAAC;QACT,WAAW,EAAE,uBAAuB;KACvC,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;4DACO;AAOlB;IALC,mBAAmB,CAAC;QACjB,WAAW,EAAE,8BAA8B;KAC9C,CAAC;IACD,aAAa,EAAE;IACf,QAAQ,EAAE;mEACU;AAOrB;IALC,WAAW,CAAC;QACT,WAAW,EAAE,2CAA2C;KAC3D,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;uEACiB;AAO5B;IALC,WAAW,CAAC;QACT,WAAW,EAAE,8CAA8C;KAC9D,CAAC;IACD,UAAU,EAAE;IACZ,QAAQ,EAAE;0EACoB;AAO/B;IALC,mBAAmB,CAAC;QACjB,WAAW,EAAE,4BAA4B;KAC5C,CAAC;IACD,aAAa,EAAE;IACf,KAAK,EAAE;gEACU;AAUlB;IARC,mBAAmB,CAAC;QACjB,WAAW,EAAE,wDAAwD;QACrE,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;KACtC,CAAC;IACD,aAAa,EAAE;IACf,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;8EACS;AAUlC;IARC,mBAAmB,CAAC;QACjB,WAAW,EAAE,uCAAuC;QACpD,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC;KACtC,CAAC;IACD,aAAa,EAAE;IACf,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;4DACT;AAGpB,MAAM,OAAO,iBAAkB,SAAQ,8BAA8B;IAIjE,EAAE,GAAW,CAAC,CAAC;CAClB;AADG;IAHC,WAAW,CAAC;QACT,WAAW,EAAE,qBAAqB;KACrC,CAAC;6CACa"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Balance Migration Type
|
|
3
|
+
*
|
|
4
|
+
* Defines how token balances should be migrated between accounts.
|
|
5
|
+
* Used during user merge operations and account balance transfers.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum BalanceMigrationType {
|
|
8
|
+
/** Replace: New balance = from balance - to balance (diff only) */
|
|
9
|
+
REPLACE = "replace",
|
|
10
|
+
/** Merge: New balance = from balance (full transfer) */
|
|
11
|
+
MERGE = "merge"
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=balance-migration-type.enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balance-migration-type.enum.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/enum/balance-migration-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,oBAAoB;IAC5B,mEAAmE;IACnE,OAAO,YAAY;IACnB,wDAAwD;IACxD,KAAK,UAAU;CAClB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Balance Migration Type
|
|
3
|
+
*
|
|
4
|
+
* Defines how token balances should be migrated between accounts.
|
|
5
|
+
* Used during user merge operations and account balance transfers.
|
|
6
|
+
*/
|
|
7
|
+
export var BalanceMigrationType;
|
|
8
|
+
(function (BalanceMigrationType) {
|
|
9
|
+
/** Replace: New balance = from balance - to balance (diff only) */
|
|
10
|
+
BalanceMigrationType["REPLACE"] = "replace";
|
|
11
|
+
/** Merge: New balance = from balance (full transfer) */
|
|
12
|
+
BalanceMigrationType["MERGE"] = "merge";
|
|
13
|
+
})(BalanceMigrationType || (BalanceMigrationType = {}));
|
|
14
|
+
//# sourceMappingURL=balance-migration-type.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balance-migration-type.enum.js","sourceRoot":"","sources":["../../../../src/shared-lib/enum/balance-migration-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,mEAAmE;IACnE,2CAAmB,CAAA;IACnB,wDAAwD;IACxD,uCAAe,CAAA;AACnB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B"}
|
|
@@ -19,6 +19,7 @@ export * from './process-record-status.enum';
|
|
|
19
19
|
export * from './file-upload-entity-type.enum';
|
|
20
20
|
export * from './signed-url-type.enum';
|
|
21
21
|
export * from './token-validity-type.enum';
|
|
22
|
+
export * from './balance-migration-type.enum';
|
|
22
23
|
export * from './purchase';
|
|
23
24
|
export * from './campaign';
|
|
24
25
|
export * from './ai-operation-type.enum';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/enum/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/enum/index.ts"],"names":[],"mappings":"AACA,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,YAAY,CAAC;AAE3B,cAAc,YAAY,CAAC;AAE3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -20,6 +20,7 @@ export * from './process-record-status.enum.js';
|
|
|
20
20
|
export * from './file-upload-entity-type.enum.js';
|
|
21
21
|
export * from './signed-url-type.enum.js';
|
|
22
22
|
export * from './token-validity-type.enum.js';
|
|
23
|
+
export * from './balance-migration-type.enum.js';
|
|
23
24
|
export * from './purchase/index.js';
|
|
24
25
|
export * from './campaign/index.js';
|
|
25
26
|
export * from './ai-operation-type.enum.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/enum/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/enum/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,YAAY,CAAC;AAE3B,cAAc,YAAY,CAAC;AAE3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAE3C,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { NativeTokenType } from '../types/native-token.type';
|
|
2
|
+
/**
|
|
3
|
+
* Filter options for retrieving token balances.
|
|
4
|
+
* Provides flexible filtering by token type, tags, contract addresses, and expiry status.
|
|
5
|
+
*/
|
|
6
|
+
export interface BalanceFilterOptions {
|
|
7
|
+
/** Only return balances for active tokens (default: true) */
|
|
8
|
+
activeOnly?: boolean;
|
|
9
|
+
/** Filter out tokens that have expired based on metadata expiry_date attribute */
|
|
10
|
+
excludeExpired?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Filter by token types.
|
|
13
|
+
* - If not specified (undefined), no type filtering is applied
|
|
14
|
+
* - Set to null to explicitly disable type filtering
|
|
15
|
+
* - Provide specific types like ['ERC721', 'ERC1155'] to filter by type
|
|
16
|
+
*
|
|
17
|
+
* Note: When tokenTypes is null and includeContractAddresses is set,
|
|
18
|
+
* ONLY the specified contract addresses will be returned (exclusive filter).
|
|
19
|
+
*/
|
|
20
|
+
tokenTypes?: NativeTokenType[] | null;
|
|
21
|
+
/**
|
|
22
|
+
* Filter by tags from on-chain metadata (IPFS).
|
|
23
|
+
* Applied AFTER fetching balances - filters by each token's IPFS metadata tags.
|
|
24
|
+
* - If not specified or empty, includes all tokens regardless of tags
|
|
25
|
+
* - If specified, only returns tokens that have at least one matching tag
|
|
26
|
+
*
|
|
27
|
+
* Note: This adds network calls to fetch metadata from IPFS for each token with balance.
|
|
28
|
+
*/
|
|
29
|
+
tags?: string[];
|
|
30
|
+
/**
|
|
31
|
+
* Contract addresses to include in the results.
|
|
32
|
+
*
|
|
33
|
+
* Behavior depends on tokenTypes:
|
|
34
|
+
* - If tokenTypes is null: Acts as EXCLUSIVE filter - ONLY these addresses are returned
|
|
35
|
+
* - If tokenTypes has values: These addresses are ALWAYS included IN ADDITION to tokenTypes filter
|
|
36
|
+
*
|
|
37
|
+
* This allows two usage patterns:
|
|
38
|
+
* 1. Exclusive: { tokenTypes: null, includeContractAddresses: ['0x...'] } - Only specific contracts
|
|
39
|
+
* 2. Additive: { tokenTypes: ['ERC721'], includeContractAddresses: ['0x...'] } - ERC721 + specific contracts
|
|
40
|
+
*/
|
|
41
|
+
includeContractAddresses?: string[];
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=balance-filter-options.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balance-filter-options.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/balance-filter-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACjC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACtC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;CACvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balance-filter-options.interface.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/balance-filter-options.interface.ts"],"names":[],"mappings":""}
|
|
@@ -18,4 +18,5 @@ export * from './transaction.interface';
|
|
|
18
18
|
export * from './counterfactual-wallet-response.interface';
|
|
19
19
|
export * from './campaign';
|
|
20
20
|
export * from './ai-prompt-config.interface';
|
|
21
|
+
export * from './balance-filter-options.interface';
|
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC"}
|
|
@@ -19,4 +19,5 @@ export * from './transaction.interface.js';
|
|
|
19
19
|
export * from './counterfactual-wallet-response.interface.js';
|
|
20
20
|
export * from './campaign/index.js';
|
|
21
21
|
export * from './ai-prompt-config.interface.js';
|
|
22
|
+
export * from './balance-filter-options.interface.js';
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC"}
|