@sudobility/types 1.9.37 → 1.9.39
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/index.js +7 -45
- package/dist/index.js.map +1 -1
- package/dist/types/blockchain/common.js +9 -16
- package/dist/types/blockchain/common.js.map +1 -1
- package/dist/types/blockchain/index.js +2 -16
- package/dist/types/blockchain/index.js.map +1 -1
- package/dist/types/blockchain/validation.js +6 -12
- package/dist/types/blockchain/validation.js.map +1 -1
- package/dist/types/business/enums.js +46 -49
- package/dist/types/business/enums.js.map +1 -1
- package/dist/types/business/index.js +2 -31
- package/dist/types/business/index.js.map +1 -1
- package/dist/types/business/wallet-status.js +10 -16
- package/dist/types/business/wallet-status.js.map +1 -1
- package/dist/types/common.js +1 -2
- package/dist/types/common.js.map +1 -1
- package/dist/types/config/app-config.js +1 -2
- package/dist/types/config/app-config.js.map +1 -1
- package/dist/types/config/environment.js +2 -5
- package/dist/types/config/environment.js.map +1 -1
- package/dist/types/config/index.js +1 -5
- package/dist/types/config/index.js.map +1 -1
- package/dist/types/entity/entity.cjs +48 -0
- package/dist/types/entity/entity.d.ts +135 -0
- package/dist/types/entity/entity.d.ts.map +1 -0
- package/dist/types/entity/entity.js +45 -0
- package/dist/types/entity/entity.js.map +1 -0
- package/dist/types/entity/index.cjs +29 -0
- package/dist/types/entity/index.d.ts +9 -0
- package/dist/types/entity/index.d.ts.map +1 -0
- package/dist/types/entity/index.js +13 -0
- package/dist/types/entity/index.js.map +1 -0
- package/dist/types/entity/permissions.cjs +91 -0
- package/dist/types/entity/permissions.d.ts +50 -0
- package/dist/types/entity/permissions.d.ts.map +1 -0
- package/dist/types/entity/permissions.js +86 -0
- package/dist/types/entity/permissions.js.map +1 -0
- package/dist/types/entity/requests.cjs +7 -0
- package/dist/types/entity/requests.d.ts +64 -0
- package/dist/types/entity/requests.d.ts.map +1 -0
- package/dist/types/entity/requests.js +6 -0
- package/dist/types/entity/requests.js.map +1 -0
- package/dist/types/entity/responses.cjs +7 -0
- package/dist/types/entity/responses.d.ts +48 -0
- package/dist/types/entity/responses.d.ts.map +1 -0
- package/dist/types/entity/responses.js +6 -0
- package/dist/types/entity/responses.js.map +1 -0
- package/dist/types/index.cjs +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +8 -22
- package/dist/types/index.js.map +1 -1
- package/dist/types/infrastructure/analytics.js +3 -7
- package/dist/types/infrastructure/analytics.js.map +1 -1
- package/dist/types/infrastructure/api.js +5 -9
- package/dist/types/infrastructure/api.js.map +1 -1
- package/dist/types/infrastructure/index.js +4 -14
- package/dist/types/infrastructure/index.js.map +1 -1
- package/dist/types/infrastructure/navigation.js +1 -2
- package/dist/types/infrastructure/network.js +1 -4
- package/dist/types/infrastructure/network.js.map +1 -1
- package/dist/types/infrastructure/wallet.js +2 -5
- package/dist/types/infrastructure/wallet.js.map +1 -1
- package/dist/types/subscription/index.js +1 -17
- package/dist/types/subscription/index.js.map +1 -1
- package/dist/types/subscription/rate-limits.js +2 -5
- package/dist/types/subscription/rate-limits.js.map +1 -1
- package/dist/utils/async-helpers.js +7 -16
- package/dist/utils/async-helpers.js.map +1 -1
- package/dist/utils/auth/auth.js +14 -24
- package/dist/utils/auth/auth.js.map +1 -1
- package/dist/utils/auth/index.js +1 -12
- package/dist/utils/auth/index.js.map +1 -1
- package/dist/utils/blockchain/address.js +20 -31
- package/dist/utils/blockchain/address.js.map +1 -1
- package/dist/utils/blockchain/event-helpers.js +9 -20
- package/dist/utils/blockchain/event-helpers.js.map +1 -1
- package/dist/utils/blockchain/index.js +3 -26
- package/dist/utils/blockchain/index.js.map +1 -1
- package/dist/utils/constants/application.js +2 -20
- package/dist/utils/constants/application.js.map +1 -1
- package/dist/utils/constants/index.js +2 -23
- package/dist/utils/constants/index.js.map +1 -1
- package/dist/utils/constants/status-values.js +1 -4
- package/dist/utils/constants/status-values.js.map +1 -1
- package/dist/utils/formatting/currency.js +6 -11
- package/dist/utils/formatting/currency.js.map +1 -1
- package/dist/utils/formatting/date.js +7 -16
- package/dist/utils/formatting/date.js.map +1 -1
- package/dist/utils/formatting/index.js +3 -33
- package/dist/utils/formatting/index.js.map +1 -1
- package/dist/utils/formatting/string.js +16 -34
- package/dist/utils/formatting/string.js.map +1 -1
- package/dist/utils/index.js +8 -24
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logging/index.js +1 -11
- package/dist/utils/logging/index.js.map +1 -1
- package/dist/utils/logging/logger.js +2 -10
- package/dist/utils/logging/logger.js.map +1 -1
- package/dist/utils/url/index.js +1 -8
- package/dist/utils/url/index.js.map +1 -1
- package/dist/utils/url/url-params.js +1 -6
- package/dist/utils/url/url-params.js.map +1 -1
- package/dist/utils/validation/index.js +2 -24
- package/dist/utils/validation/index.js.map +1 -1
- package/dist/utils/validation/type-validation.js +27 -48
- package/dist/utils/validation/type-validation.js.map +1 -1
- package/dist/utils/validation/web3-username-validator.js +6 -10
- package/dist/utils/validation/web3-username-validator.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Type validation utilities for runtime type checking
|
|
4
3
|
*
|
|
5
4
|
* These utilities help ensure type safety at runtime, especially useful
|
|
6
5
|
* for validating API responses and external data.
|
|
7
6
|
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.parseJson = exports.createAssertion = exports.isUrl = exports.isEmail = exports.isValidDate = exports.isErrorResponse = exports.isSuccessResponse = exports.isApiResponse = exports.optional = exports.validateArray = exports.hasRequiredProperties = exports.isNullish = exports.isArray = exports.isObject = exports.isBoolean = exports.isNumber = exports.isString = exports.createValidator = void 0;
|
|
10
7
|
/**
|
|
11
8
|
* Creates a validation function that safely checks if a value matches expected type
|
|
12
9
|
*/
|
|
13
|
-
const createValidator = (validationFn, typeName) => {
|
|
10
|
+
export const createValidator = (validationFn, typeName) => {
|
|
14
11
|
return (data) => {
|
|
15
12
|
try {
|
|
16
13
|
if (validationFn(data)) {
|
|
@@ -27,95 +24,80 @@ const createValidator = (validationFn, typeName) => {
|
|
|
27
24
|
}
|
|
28
25
|
};
|
|
29
26
|
};
|
|
30
|
-
exports.createValidator = createValidator;
|
|
31
27
|
/**
|
|
32
28
|
* Basic type validators
|
|
33
29
|
*/
|
|
34
|
-
const isString = (value) => typeof value === 'string';
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
41
|
-
exports.isObject = isObject;
|
|
42
|
-
const isArray = (value) => Array.isArray(value);
|
|
43
|
-
exports.isArray = isArray;
|
|
44
|
-
const isNullish = (value) => value === null || value === undefined;
|
|
45
|
-
exports.isNullish = isNullish;
|
|
30
|
+
export const isString = (value) => typeof value === 'string';
|
|
31
|
+
export const isNumber = (value) => typeof value === 'number' && !isNaN(value);
|
|
32
|
+
export const isBoolean = (value) => typeof value === 'boolean';
|
|
33
|
+
export const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
34
|
+
export const isArray = (value) => Array.isArray(value);
|
|
35
|
+
export const isNullish = (value) => value === null || value === undefined;
|
|
46
36
|
/**
|
|
47
37
|
* Validates that an object has required properties
|
|
48
38
|
*/
|
|
49
|
-
const hasRequiredProperties = (obj, requiredProps) => {
|
|
50
|
-
if (!
|
|
39
|
+
export const hasRequiredProperties = (obj, requiredProps) => {
|
|
40
|
+
if (!isObject(obj))
|
|
51
41
|
return false;
|
|
52
42
|
return requiredProps.every((prop) => prop in obj);
|
|
53
43
|
};
|
|
54
|
-
exports.hasRequiredProperties = hasRequiredProperties;
|
|
55
44
|
/**
|
|
56
45
|
* Validates array of objects with a validator function
|
|
57
46
|
*/
|
|
58
|
-
const validateArray = (data, itemValidator) => {
|
|
59
|
-
if (!
|
|
47
|
+
export const validateArray = (data, itemValidator) => {
|
|
48
|
+
if (!isArray(data))
|
|
60
49
|
return false;
|
|
61
50
|
return data.every(itemValidator);
|
|
62
51
|
};
|
|
63
|
-
exports.validateArray = validateArray;
|
|
64
52
|
/**
|
|
65
53
|
* Creates optional property validator
|
|
66
54
|
*/
|
|
67
|
-
const optional = (validator) => (value) => {
|
|
55
|
+
export const optional = (validator) => (value) => {
|
|
68
56
|
return value === undefined || validator(value);
|
|
69
57
|
};
|
|
70
|
-
exports.optional = optional;
|
|
71
58
|
/**
|
|
72
59
|
* Common pattern validators for API responses
|
|
73
60
|
*/
|
|
74
|
-
const isApiResponse = (data) => {
|
|
75
|
-
return
|
|
61
|
+
export const isApiResponse = (data) => {
|
|
62
|
+
return isObject(data) && isBoolean(data.success);
|
|
76
63
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (!(0, exports.isApiResponse)(data) || !data.success)
|
|
64
|
+
export const isSuccessResponse = (data, dataValidator) => {
|
|
65
|
+
if (!isApiResponse(data) || !data.success)
|
|
80
66
|
return false;
|
|
81
67
|
if (dataValidator && 'data' in data) {
|
|
82
68
|
return dataValidator(data.data);
|
|
83
69
|
}
|
|
84
70
|
return true;
|
|
85
71
|
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return ((0, exports.isApiResponse)(data) &&
|
|
72
|
+
export const isErrorResponse = (data) => {
|
|
73
|
+
return (isApiResponse(data) &&
|
|
89
74
|
!data.success &&
|
|
90
75
|
'error' in data &&
|
|
91
|
-
|
|
76
|
+
isString(data.error));
|
|
92
77
|
};
|
|
93
|
-
exports.isErrorResponse = isErrorResponse;
|
|
94
78
|
/**
|
|
95
79
|
* Date validation
|
|
96
80
|
*/
|
|
97
|
-
const isValidDate = (value) => {
|
|
98
|
-
if (!
|
|
81
|
+
export const isValidDate = (value) => {
|
|
82
|
+
if (!isString(value))
|
|
99
83
|
return false;
|
|
100
84
|
const date = new Date(value);
|
|
101
85
|
return !isNaN(date.getTime());
|
|
102
86
|
};
|
|
103
|
-
exports.isValidDate = isValidDate;
|
|
104
87
|
/**
|
|
105
88
|
* Email validation (basic)
|
|
106
89
|
*/
|
|
107
|
-
const isEmail = (value) => {
|
|
108
|
-
if (!
|
|
90
|
+
export const isEmail = (value) => {
|
|
91
|
+
if (!isString(value))
|
|
109
92
|
return false;
|
|
110
93
|
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
111
94
|
return emailRegex.test(value);
|
|
112
95
|
};
|
|
113
|
-
exports.isEmail = isEmail;
|
|
114
96
|
/**
|
|
115
97
|
* URL validation (basic)
|
|
116
98
|
*/
|
|
117
|
-
const isUrl = (value) => {
|
|
118
|
-
if (!
|
|
99
|
+
export const isUrl = (value) => {
|
|
100
|
+
if (!isString(value))
|
|
119
101
|
return false;
|
|
120
102
|
try {
|
|
121
103
|
new URL(value);
|
|
@@ -125,22 +107,20 @@ const isUrl = (value) => {
|
|
|
125
107
|
return false;
|
|
126
108
|
}
|
|
127
109
|
};
|
|
128
|
-
exports.isUrl = isUrl;
|
|
129
110
|
/**
|
|
130
111
|
* Creates a type assertion function that throws on invalid data
|
|
131
112
|
*/
|
|
132
|
-
const createAssertion = (validator, typeName) => {
|
|
113
|
+
export const createAssertion = (validator, typeName) => {
|
|
133
114
|
return (data, context = typeName) => {
|
|
134
115
|
if (!validator(data)) {
|
|
135
116
|
throw new TypeError(`Invalid ${context}: expected ${typeName}`);
|
|
136
117
|
}
|
|
137
118
|
};
|
|
138
119
|
};
|
|
139
|
-
exports.createAssertion = createAssertion;
|
|
140
120
|
/**
|
|
141
121
|
* Safe JSON parsing with validation
|
|
142
122
|
*/
|
|
143
|
-
const parseJson = (jsonString, validator) => {
|
|
123
|
+
export const parseJson = (jsonString, validator) => {
|
|
144
124
|
try {
|
|
145
125
|
const parsed = JSON.parse(jsonString);
|
|
146
126
|
if (validator) {
|
|
@@ -163,5 +143,4 @@ const parseJson = (jsonString, validator) => {
|
|
|
163
143
|
};
|
|
164
144
|
}
|
|
165
145
|
};
|
|
166
|
-
exports.parseJson = parseJson;
|
|
167
146
|
//# sourceMappingURL=type-validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-validation.js","sourceRoot":"","sources":["../../../src/utils/validation/type-validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-validation.js","sourceRoot":"","sources":["../../../src/utils/validation/type-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @fileoverview Address Validation Utility
|
|
4
3
|
* @description Centralized address validation for EVM, Solana, ENS, and SNS addresses
|
|
@@ -6,11 +5,9 @@
|
|
|
6
5
|
*
|
|
7
6
|
* Pure TypeScript implementation with no external dependencies
|
|
8
7
|
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.Web3UsernameValidator = void 0;
|
|
11
8
|
// Import ChainType from business enums
|
|
12
|
-
|
|
13
|
-
class Web3UsernameValidator {
|
|
9
|
+
import { ChainType } from '../../types/business/enums';
|
|
10
|
+
export class Web3UsernameValidator {
|
|
14
11
|
/**
|
|
15
12
|
* Comprehensive address validation for API endpoint
|
|
16
13
|
* Returns AddressValidationResult for valid addresses, undefined for invalid ones
|
|
@@ -24,7 +21,7 @@ class Web3UsernameValidator {
|
|
|
24
21
|
return {
|
|
25
22
|
name: null,
|
|
26
23
|
address: address.toLowerCase(),
|
|
27
|
-
chainType:
|
|
24
|
+
chainType: ChainType.EVM,
|
|
28
25
|
};
|
|
29
26
|
}
|
|
30
27
|
// 2. Check if it's a valid Solana address (Base58, 32-44 characters, no 0x prefix)
|
|
@@ -35,7 +32,7 @@ class Web3UsernameValidator {
|
|
|
35
32
|
return {
|
|
36
33
|
name: null,
|
|
37
34
|
address: address, // Keep case for Solana
|
|
38
|
-
chainType:
|
|
35
|
+
chainType: ChainType.SOLANA,
|
|
39
36
|
};
|
|
40
37
|
}
|
|
41
38
|
// 3. Check if it's a valid ENS name (.eth or .box)
|
|
@@ -46,7 +43,7 @@ class Web3UsernameValidator {
|
|
|
46
43
|
return {
|
|
47
44
|
name: address.toLowerCase(),
|
|
48
45
|
address: null,
|
|
49
|
-
chainType:
|
|
46
|
+
chainType: ChainType.EVM, // ENS resolves to EVM addresses
|
|
50
47
|
};
|
|
51
48
|
}
|
|
52
49
|
// 4. Check if it's a valid SNS name (Solana Name Service)
|
|
@@ -60,7 +57,7 @@ class Web3UsernameValidator {
|
|
|
60
57
|
return {
|
|
61
58
|
name: address.toLowerCase(),
|
|
62
59
|
address: null,
|
|
63
|
-
chainType:
|
|
60
|
+
chainType: ChainType.SOLANA, // SNS resolves to Solana addresses
|
|
64
61
|
};
|
|
65
62
|
}
|
|
66
63
|
}
|
|
@@ -107,7 +104,6 @@ class Web3UsernameValidator {
|
|
|
107
104
|
name.length >= 1);
|
|
108
105
|
}
|
|
109
106
|
}
|
|
110
|
-
exports.Web3UsernameValidator = Web3UsernameValidator;
|
|
111
107
|
// Regex patterns for different address types
|
|
112
108
|
Web3UsernameValidator.EVM_REGEX = /^0x[a-fA-F0-9]{40}$/;
|
|
113
109
|
Web3UsernameValidator.BASE58_REGEX = /^[1-9A-HJ-NP-Za-km-z]+$/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web3-username-validator.js","sourceRoot":"","sources":["../../../src/utils/validation/web3-username-validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web3-username-validator.js","sourceRoot":"","sources":["../../../src/utils/validation/web3-username-validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/types",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.39",
|
|
4
4
|
"description": "Comprehensive TypeScript types, interfaces, and utilities for Web3 email applications - optimized for AI-assisted development",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "npm run build:esm && npm run build:cjs",
|
|
27
27
|
"build:esm": "tsc -p tsconfig.esm.json",
|
|
28
|
-
"build:cjs": "tsc -p tsconfig.cjs.json && npm run build:cjs-
|
|
29
|
-
"build:cjs-
|
|
30
|
-
"clean": "rimraf dist",
|
|
28
|
+
"build:cjs": "tsc -p tsconfig.cjs.json && npm run build:cjs-copy",
|
|
29
|
+
"build:cjs-copy": "find dist-cjs -name '*.js' | while read f; do cp \"$f\" \"dist/$(echo \"$f\" | sed 's|dist-cjs/||' | sed 's/.js$/.cjs/')\"; done && rm -rf dist-cjs",
|
|
30
|
+
"clean": "rimraf dist dist-cjs",
|
|
31
31
|
"dev": "tsc --watch",
|
|
32
32
|
"test": "vitest",
|
|
33
33
|
"test:watch": "vitest --watch",
|