@sudobility/types 1.8.21
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/CLAUDE.md +285 -0
- package/README.md +310 -0
- package/dist/index.cjs +62 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +62 -0
- package/dist/index.js.map +1 -0
- package/dist/types/blockchain/common.cjs +102 -0
- package/dist/types/blockchain/common.d.ts +262 -0
- package/dist/types/blockchain/common.d.ts.map +1 -0
- package/dist/types/blockchain/common.js +102 -0
- package/dist/types/blockchain/common.js.map +1 -0
- package/dist/types/blockchain/index.cjs +18 -0
- package/dist/types/blockchain/index.d.ts +4 -0
- package/dist/types/blockchain/index.d.ts.map +1 -0
- package/dist/types/blockchain/index.js +18 -0
- package/dist/types/blockchain/index.js.map +1 -0
- package/dist/types/blockchain/validation.cjs +88 -0
- package/dist/types/blockchain/validation.d.ts +9 -0
- package/dist/types/blockchain/validation.d.ts.map +1 -0
- package/dist/types/blockchain/validation.js +88 -0
- package/dist/types/blockchain/validation.js.map +1 -0
- package/dist/types/business/enums.cjs +314 -0
- package/dist/types/business/enums.d.ts +227 -0
- package/dist/types/business/enums.d.ts.map +1 -0
- package/dist/types/business/enums.js +314 -0
- package/dist/types/business/enums.js.map +1 -0
- package/dist/types/business/index.cjs +33 -0
- package/dist/types/business/index.d.ts +5 -0
- package/dist/types/business/index.d.ts.map +1 -0
- package/dist/types/business/index.js +33 -0
- package/dist/types/business/index.js.map +1 -0
- package/dist/types/business/wallet-status.cjs +38 -0
- package/dist/types/business/wallet-status.d.ts +32 -0
- package/dist/types/business/wallet-status.d.ts.map +1 -0
- package/dist/types/business/wallet-status.js +38 -0
- package/dist/types/business/wallet-status.js.map +1 -0
- package/dist/types/common.cjs +6 -0
- package/dist/types/common.d.ts +142 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +6 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/config/app-config.cjs +6 -0
- package/dist/types/config/app-config.d.ts +67 -0
- package/dist/types/config/app-config.d.ts.map +1 -0
- package/dist/types/config/app-config.js +6 -0
- package/dist/types/config/app-config.js.map +1 -0
- package/dist/types/config/environment.cjs +24 -0
- package/dist/types/config/environment.d.ts +68 -0
- package/dist/types/config/environment.d.ts.map +1 -0
- package/dist/types/config/environment.js +24 -0
- package/dist/types/config/environment.js.map +1 -0
- package/dist/types/config/index.cjs +6 -0
- package/dist/types/config/index.d.ts +4 -0
- package/dist/types/config/index.d.ts.map +1 -0
- package/dist/types/config/index.js +6 -0
- package/dist/types/config/index.js.map +1 -0
- package/dist/types/index.cjs +35 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +35 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/indexer/index.cjs +19 -0
- package/dist/types/indexer/index.d.ts +3 -0
- package/dist/types/indexer/index.d.ts.map +1 -0
- package/dist/types/indexer/index.js +19 -0
- package/dist/types/indexer/index.js.map +1 -0
- package/dist/types/indexer/indexer-guards.cjs +145 -0
- package/dist/types/indexer/indexer-guards.d.ts +26 -0
- package/dist/types/indexer/indexer-guards.d.ts.map +1 -0
- package/dist/types/indexer/indexer-guards.js +145 -0
- package/dist/types/indexer/indexer-guards.js.map +1 -0
- package/dist/types/indexer/indexer-responses.cjs +8 -0
- package/dist/types/indexer/indexer-responses.d.ts +136 -0
- package/dist/types/indexer/indexer-responses.d.ts.map +1 -0
- package/dist/types/indexer/indexer-responses.js +8 -0
- package/dist/types/indexer/indexer-responses.js.map +1 -0
- package/dist/types/infrastructure/analytics.cjs +212 -0
- package/dist/types/infrastructure/analytics.d.ts +449 -0
- package/dist/types/infrastructure/analytics.d.ts.map +1 -0
- package/dist/types/infrastructure/analytics.js +212 -0
- package/dist/types/infrastructure/analytics.js.map +1 -0
- package/dist/types/infrastructure/api.cjs +17 -0
- package/dist/types/infrastructure/api.d.ts +152 -0
- package/dist/types/infrastructure/api.d.ts.map +1 -0
- package/dist/types/infrastructure/api.js +17 -0
- package/dist/types/infrastructure/api.js.map +1 -0
- package/dist/types/infrastructure/index.cjs +14 -0
- package/dist/types/infrastructure/index.d.ts +9 -0
- package/dist/types/infrastructure/index.d.ts.map +1 -0
- package/dist/types/infrastructure/index.js +14 -0
- package/dist/types/infrastructure/index.js.map +1 -0
- package/dist/types/infrastructure/navigation.cjs +3 -0
- package/dist/types/infrastructure/navigation.d.ts +56 -0
- package/dist/types/infrastructure/navigation.d.ts.map +1 -0
- package/dist/types/infrastructure/navigation.js +3 -0
- package/dist/types/infrastructure/navigation.js.map +1 -0
- package/dist/types/infrastructure/network.cjs +18 -0
- package/dist/types/infrastructure/network.d.ts +48 -0
- package/dist/types/infrastructure/network.d.ts.map +1 -0
- package/dist/types/infrastructure/network.js +18 -0
- package/dist/types/infrastructure/network.js.map +1 -0
- package/dist/types/infrastructure/wallet.cjs +37 -0
- package/dist/types/infrastructure/wallet.d.ts +33 -0
- package/dist/types/infrastructure/wallet.d.ts.map +1 -0
- package/dist/types/infrastructure/wallet.js +37 -0
- package/dist/types/infrastructure/wallet.js.map +1 -0
- package/dist/types/kyc/index.cjs +19 -0
- package/dist/types/kyc/index.d.ts +2 -0
- package/dist/types/kyc/index.d.ts.map +1 -0
- package/dist/types/kyc/index.js +19 -0
- package/dist/types/kyc/index.js.map +1 -0
- package/dist/types/kyc/kyc-types.cjs +12 -0
- package/dist/types/kyc/kyc-types.d.ts +260 -0
- package/dist/types/kyc/kyc-types.d.ts.map +1 -0
- package/dist/types/kyc/kyc-types.js +12 -0
- package/dist/types/kyc/kyc-types.js.map +1 -0
- package/dist/types/mailer/index.cjs +19 -0
- package/dist/types/mailer/index.d.ts +2 -0
- package/dist/types/mailer/index.d.ts.map +1 -0
- package/dist/types/mailer/index.js +19 -0
- package/dist/types/mailer/index.js.map +1 -0
- package/dist/types/mailer/mail-types.cjs +38 -0
- package/dist/types/mailer/mail-types.d.ts +296 -0
- package/dist/types/mailer/mail-types.d.ts.map +1 -0
- package/dist/types/mailer/mail-types.js +38 -0
- package/dist/types/mailer/mail-types.js.map +1 -0
- package/dist/types/wildduck/index.cjs +19 -0
- package/dist/types/wildduck/index.d.ts +2 -0
- package/dist/types/wildduck/index.d.ts.map +1 -0
- package/dist/types/wildduck/index.js +19 -0
- package/dist/types/wildduck/index.js.map +1 -0
- package/dist/types/wildduck/wildduck-types.cjs +48 -0
- package/dist/types/wildduck/wildduck-types.d.ts +1239 -0
- package/dist/types/wildduck/wildduck-types.d.ts.map +1 -0
- package/dist/types/wildduck/wildduck-types.js +48 -0
- package/dist/types/wildduck/wildduck-types.js.map +1 -0
- package/dist/utils/async-helpers.cjs +130 -0
- package/dist/utils/async-helpers.d.ts +35 -0
- package/dist/utils/async-helpers.d.ts.map +1 -0
- package/dist/utils/async-helpers.js +130 -0
- package/dist/utils/async-helpers.js.map +1 -0
- package/dist/utils/auth/auth.cjs +96 -0
- package/dist/utils/auth/auth.d.ts +40 -0
- package/dist/utils/auth/auth.d.ts.map +1 -0
- package/dist/utils/auth/auth.js +96 -0
- package/dist/utils/auth/auth.js.map +1 -0
- package/dist/utils/auth/index.cjs +14 -0
- package/dist/utils/auth/index.d.ts +2 -0
- package/dist/utils/auth/index.d.ts.map +1 -0
- package/dist/utils/auth/index.js +14 -0
- package/dist/utils/auth/index.js.map +1 -0
- package/dist/utils/blockchain/address.cjs +231 -0
- package/dist/utils/blockchain/address.d.ts +65 -0
- package/dist/utils/blockchain/address.d.ts.map +1 -0
- package/dist/utils/blockchain/address.js +231 -0
- package/dist/utils/blockchain/address.js.map +1 -0
- package/dist/utils/blockchain/event-helpers.cjs +143 -0
- package/dist/utils/blockchain/event-helpers.d.ts +87 -0
- package/dist/utils/blockchain/event-helpers.d.ts.map +1 -0
- package/dist/utils/blockchain/event-helpers.js +143 -0
- package/dist/utils/blockchain/event-helpers.js.map +1 -0
- package/dist/utils/blockchain/index.cjs +30 -0
- package/dist/utils/blockchain/index.d.ts +8 -0
- package/dist/utils/blockchain/index.d.ts.map +1 -0
- package/dist/utils/blockchain/index.js +30 -0
- package/dist/utils/blockchain/index.js.map +1 -0
- package/dist/utils/blockchain/rpc-helpers.cjs +865 -0
- package/dist/utils/blockchain/rpc-helpers.d.ts +251 -0
- package/dist/utils/blockchain/rpc-helpers.d.ts.map +1 -0
- package/dist/utils/blockchain/rpc-helpers.js +865 -0
- package/dist/utils/blockchain/rpc-helpers.js.map +1 -0
- package/dist/utils/constants/application.cjs +158 -0
- package/dist/utils/constants/application.d.ts +119 -0
- package/dist/utils/constants/application.d.ts.map +1 -0
- package/dist/utils/constants/application.js +158 -0
- package/dist/utils/constants/application.js.map +1 -0
- package/dist/utils/constants/index.cjs +30 -0
- package/dist/utils/constants/index.d.ts +7 -0
- package/dist/utils/constants/index.d.ts.map +1 -0
- package/dist/utils/constants/index.js +30 -0
- package/dist/utils/constants/index.js.map +1 -0
- package/dist/utils/constants/status-values.cjs +14 -0
- package/dist/utils/constants/status-values.d.ts +12 -0
- package/dist/utils/constants/status-values.d.ts.map +1 -0
- package/dist/utils/constants/status-values.js +14 -0
- package/dist/utils/constants/status-values.js.map +1 -0
- package/dist/utils/formatting/currency.cjs +36 -0
- package/dist/utils/formatting/currency.d.ts +26 -0
- package/dist/utils/formatting/currency.d.ts.map +1 -0
- package/dist/utils/formatting/currency.js +36 -0
- package/dist/utils/formatting/currency.js.map +1 -0
- package/dist/utils/formatting/date.cjs +138 -0
- package/dist/utils/formatting/date.d.ts +33 -0
- package/dist/utils/formatting/date.d.ts.map +1 -0
- package/dist/utils/formatting/date.js +138 -0
- package/dist/utils/formatting/date.js.map +1 -0
- package/dist/utils/formatting/index.cjs +37 -0
- package/dist/utils/formatting/index.d.ts +4 -0
- package/dist/utils/formatting/index.d.ts.map +1 -0
- package/dist/utils/formatting/index.js +37 -0
- package/dist/utils/formatting/index.js.map +1 -0
- package/dist/utils/formatting/string.cjs +193 -0
- package/dist/utils/formatting/string.d.ts +69 -0
- package/dist/utils/formatting/string.d.ts.map +1 -0
- package/dist/utils/formatting/string.js +193 -0
- package/dist/utils/formatting/string.js.map +1 -0
- package/dist/utils/index.cjs +28 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +28 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logging/index.cjs +16 -0
- package/dist/utils/logging/index.d.ts +5 -0
- package/dist/utils/logging/index.d.ts.map +1 -0
- package/dist/utils/logging/index.js +16 -0
- package/dist/utils/logging/index.js.map +1 -0
- package/dist/utils/logging/logger.cjs +92 -0
- package/dist/utils/logging/logger.d.ts +70 -0
- package/dist/utils/logging/logger.d.ts.map +1 -0
- package/dist/utils/logging/logger.js +92 -0
- package/dist/utils/logging/logger.js.map +1 -0
- package/dist/utils/url/index.cjs +13 -0
- package/dist/utils/url/index.d.ts +5 -0
- package/dist/utils/url/index.d.ts.map +1 -0
- package/dist/utils/url/index.js +13 -0
- package/dist/utils/url/index.js.map +1 -0
- package/dist/utils/url/url-params.cjs +128 -0
- package/dist/utils/url/url-params.d.ts +36 -0
- package/dist/utils/url/url-params.d.ts.map +1 -0
- package/dist/utils/url/url-params.js +128 -0
- package/dist/utils/url/url-params.js.map +1 -0
- package/dist/utils/validation/index.cjs +25 -0
- package/dist/utils/validation/index.d.ts +5 -0
- package/dist/utils/validation/index.d.ts.map +1 -0
- package/dist/utils/validation/index.js +25 -0
- package/dist/utils/validation/index.js.map +1 -0
- package/dist/utils/validation/type-validation.cjs +167 -0
- package/dist/utils/validation/type-validation.d.ts +68 -0
- package/dist/utils/validation/type-validation.d.ts.map +1 -0
- package/dist/utils/validation/type-validation.js +167 -0
- package/dist/utils/validation/type-validation.js.map +1 -0
- package/dist/utils/validation/web3-username-validator.cjs +132 -0
- package/dist/utils/validation/web3-username-validator.d.ts +43 -0
- package/dist/utils/validation/web3-username-validator.d.ts.map +1 -0
- package/dist/utils/validation/web3-username-validator.js +132 -0
- package/dist/utils/validation/web3-username-validator.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Analytics types and interfaces
|
|
4
|
+
* Platform-agnostic analytics service interface for dependency injection
|
|
5
|
+
*
|
|
6
|
+
* @ai-context Core analytics interface for dependency injection
|
|
7
|
+
* @ai-pattern Service interface with comprehensive event tracking
|
|
8
|
+
* @ai-platform Cross-platform compatible (Web, React Native, Node.js)
|
|
9
|
+
* @ai-usage Implement this interface to create analytics services for Firebase, Mixpanel, etc.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AnalyticsEventBuilder = exports.AnalyticsEvent = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Standardized analytics events enumeration.
|
|
15
|
+
*
|
|
16
|
+
* Provides consistent event naming for common application analytics scenarios.
|
|
17
|
+
* Organized by functional categories for better code organization and analytics reporting.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Use predefined events for consistency
|
|
22
|
+
* analytics.track(AnalyticsEvent.USER_LOGIN, { method: 'email' });
|
|
23
|
+
* analytics.track(AnalyticsEvent.EMAIL_OPENED, { email_id: 'msg-123' });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
var AnalyticsEvent;
|
|
27
|
+
(function (AnalyticsEvent) {
|
|
28
|
+
/** User successfully logged into the application */
|
|
29
|
+
AnalyticsEvent["USER_LOGIN"] = "user_login";
|
|
30
|
+
/** User logged out of the application */
|
|
31
|
+
AnalyticsEvent["USER_LOGOUT"] = "user_logout";
|
|
32
|
+
/** New user completed account registration */
|
|
33
|
+
AnalyticsEvent["USER_SIGNUP"] = "user_signup";
|
|
34
|
+
/** User sent an email message */
|
|
35
|
+
AnalyticsEvent["EMAIL_SENT"] = "email_sent";
|
|
36
|
+
/** User received a new email message */
|
|
37
|
+
AnalyticsEvent["EMAIL_RECEIVED"] = "email_received";
|
|
38
|
+
/** User opened an email message (consolidated from EMAIL_OPENED and EMAIL_OPEN) */
|
|
39
|
+
AnalyticsEvent["EMAIL_OPENED"] = "email_opened";
|
|
40
|
+
/** User replied to an email message */
|
|
41
|
+
AnalyticsEvent["EMAIL_REPLY"] = "email_reply";
|
|
42
|
+
/** User forwarded an email message */
|
|
43
|
+
AnalyticsEvent["EMAIL_FORWARD"] = "email_forward";
|
|
44
|
+
/** User deleted an email message */
|
|
45
|
+
AnalyticsEvent["EMAIL_DELETE"] = "email_delete";
|
|
46
|
+
/** User starred an email message */
|
|
47
|
+
AnalyticsEvent["EMAIL_STAR"] = "email_star";
|
|
48
|
+
/** User composed a new email */
|
|
49
|
+
AnalyticsEvent["EMAIL_COMPOSE"] = "email_compose";
|
|
50
|
+
/** User clicked a link within an email */
|
|
51
|
+
AnalyticsEvent["EMAIL_CLICKED"] = "email_clicked";
|
|
52
|
+
/** User viewed a web page */
|
|
53
|
+
AnalyticsEvent["PAGE_VIEW"] = "page_view";
|
|
54
|
+
/** User viewed a mobile screen */
|
|
55
|
+
AnalyticsEvent["SCREEN_VIEW"] = "screen_view";
|
|
56
|
+
/** User switched between folders */
|
|
57
|
+
AnalyticsEvent["FOLDER_SWITCH"] = "folder_switch";
|
|
58
|
+
/** User viewed subscription options */
|
|
59
|
+
AnalyticsEvent["SUBSCRIPTION_VIEW"] = "subscription_view";
|
|
60
|
+
/** User purchased a subscription */
|
|
61
|
+
AnalyticsEvent["SUBSCRIPTION_PURCHASE"] = "subscription_purchase";
|
|
62
|
+
/** User cancelled a subscription */
|
|
63
|
+
AnalyticsEvent["SUBSCRIPTION_CANCEL"] = "subscription_cancel";
|
|
64
|
+
/** User performed a search */
|
|
65
|
+
AnalyticsEvent["SEARCH_PERFORMED"] = "search_performed";
|
|
66
|
+
/** User changed application settings */
|
|
67
|
+
AnalyticsEvent["SETTINGS_CHANGED"] = "settings_changed";
|
|
68
|
+
/** An application error occurred */
|
|
69
|
+
AnalyticsEvent["ERROR_OCCURRED"] = "error_occurred";
|
|
70
|
+
/** User viewed an A/B test variant */
|
|
71
|
+
AnalyticsEvent["AB_TEST_VIEWED"] = "ab_test_viewed";
|
|
72
|
+
/** User converted on an A/B test */
|
|
73
|
+
AnalyticsEvent["AB_TEST_CONVERTED"] = "ab_test_converted";
|
|
74
|
+
/** Custom application-specific event */
|
|
75
|
+
AnalyticsEvent["CUSTOM_EVENT"] = "custom_event";
|
|
76
|
+
})(AnalyticsEvent || (exports.AnalyticsEvent = AnalyticsEvent = {}));
|
|
77
|
+
/**
|
|
78
|
+
* Utility class for building standardized analytics event properties.
|
|
79
|
+
*
|
|
80
|
+
* Provides static methods to create consistent event property objects
|
|
81
|
+
* for common analytics scenarios. Ensures proper naming conventions
|
|
82
|
+
* and includes standard fields like timestamps.
|
|
83
|
+
*
|
|
84
|
+
* @ai-utility-class Event property builders
|
|
85
|
+
* @ai-pattern Factory pattern for event properties
|
|
86
|
+
* @ai-standardization Ensures consistent event property naming
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* // Use builders to create standardized event properties
|
|
91
|
+
* const properties = AnalyticsEventBuilder.emailAction('read', 'email-123', 'inbox');
|
|
92
|
+
* analytics.trackEvent(AnalyticsEvent.EMAIL_OPENED, properties);
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
class AnalyticsEventBuilder {
|
|
96
|
+
/**
|
|
97
|
+
* Build properties for email action events.
|
|
98
|
+
*
|
|
99
|
+
* @param action Email action performed (read, sent, archived, etc.)
|
|
100
|
+
* @param emailId Unique identifier for the email
|
|
101
|
+
* @param folder Email folder context (inbox, sent, trash, etc.)
|
|
102
|
+
* @returns Standardized event properties object
|
|
103
|
+
*
|
|
104
|
+
* @ai-builder Email action properties
|
|
105
|
+
* @ai-standardization Consistent email event tracking
|
|
106
|
+
*/
|
|
107
|
+
static emailAction(action, emailId, folder) {
|
|
108
|
+
return {
|
|
109
|
+
action,
|
|
110
|
+
email_id: emailId,
|
|
111
|
+
folder,
|
|
112
|
+
timestamp: Date.now(),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Build properties for page/screen view events.
|
|
117
|
+
*
|
|
118
|
+
* @param pageName Human-readable page name
|
|
119
|
+
* @param pagePath URL path or screen identifier
|
|
120
|
+
* @returns Standardized page view properties
|
|
121
|
+
*
|
|
122
|
+
* @ai-builder Navigation tracking properties
|
|
123
|
+
* @ai-cross-platform Works for web pages and mobile screens
|
|
124
|
+
*/
|
|
125
|
+
static pageView(pageName, pagePath) {
|
|
126
|
+
return {
|
|
127
|
+
page_name: pageName,
|
|
128
|
+
page_path: pagePath,
|
|
129
|
+
timestamp: Date.now(),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Build properties for error tracking events.
|
|
134
|
+
*
|
|
135
|
+
* @param errorType Category of error (network, validation, runtime, etc.)
|
|
136
|
+
* @param errorMessage Error message or description
|
|
137
|
+
* @param pageName Page/screen where error occurred
|
|
138
|
+
* @returns Standardized error event properties
|
|
139
|
+
*
|
|
140
|
+
* @ai-builder Error tracking properties
|
|
141
|
+
* @ai-debugging Consistent error event structure
|
|
142
|
+
*/
|
|
143
|
+
static error(errorType, errorMessage, pageName) {
|
|
144
|
+
return {
|
|
145
|
+
error_type: errorType,
|
|
146
|
+
error_message: errorMessage,
|
|
147
|
+
page_name: pageName,
|
|
148
|
+
timestamp: Date.now(),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Build properties for subscription/revenue events.
|
|
153
|
+
*
|
|
154
|
+
* @param action Subscription action (subscribe, upgrade, cancel, etc.)
|
|
155
|
+
* @param planType Subscription plan type (free, premium, pro, etc.)
|
|
156
|
+
* @param amount Monetary amount (for revenue tracking)
|
|
157
|
+
* @param currency Currency code (USD, EUR, etc.)
|
|
158
|
+
* @returns Standardized subscription event properties
|
|
159
|
+
*
|
|
160
|
+
* @ai-builder Revenue tracking properties
|
|
161
|
+
* @ai-business-metrics Subscription and revenue analytics
|
|
162
|
+
*/
|
|
163
|
+
static subscription(action, planType, amount, currency) {
|
|
164
|
+
return {
|
|
165
|
+
action,
|
|
166
|
+
plan_type: planType,
|
|
167
|
+
amount,
|
|
168
|
+
currency,
|
|
169
|
+
timestamp: Date.now(),
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Build properties for user engagement events.
|
|
174
|
+
*
|
|
175
|
+
* @param feature Feature name or component identifier
|
|
176
|
+
* @param interaction Type of interaction (click, scroll, hover, etc.)
|
|
177
|
+
* @param duration Time spent on interaction (milliseconds)
|
|
178
|
+
* @returns Standardized engagement event properties
|
|
179
|
+
*
|
|
180
|
+
* @ai-builder User engagement properties
|
|
181
|
+
* @ai-ux-analytics User experience and interaction tracking
|
|
182
|
+
*/
|
|
183
|
+
static engagement(feature, interaction, duration) {
|
|
184
|
+
return {
|
|
185
|
+
feature,
|
|
186
|
+
interaction,
|
|
187
|
+
duration,
|
|
188
|
+
timestamp: Date.now(),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Build properties for performance monitoring events.
|
|
193
|
+
*
|
|
194
|
+
* @param metric Performance metric name (load_time, api_response, etc.)
|
|
195
|
+
* @param value Metric value (usually in milliseconds)
|
|
196
|
+
* @param context Additional context about the performance event
|
|
197
|
+
* @returns Standardized performance event properties
|
|
198
|
+
*
|
|
199
|
+
* @ai-builder Performance monitoring properties
|
|
200
|
+
* @ai-performance Application performance tracking
|
|
201
|
+
*/
|
|
202
|
+
static performance(metric, value, context) {
|
|
203
|
+
return {
|
|
204
|
+
metric,
|
|
205
|
+
value,
|
|
206
|
+
context,
|
|
207
|
+
timestamp: Date.now(),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
exports.AnalyticsEventBuilder = AnalyticsEventBuilder;
|
|
212
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../src/types/infrastructure/analytics.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAeH;;;;;;;;;;;;GAYG;AACH,IAAY,cAsDX;AAtDD,WAAY,cAAc;IACxB,oDAAoD;IACpD,2CAAyB,CAAA;IACzB,yCAAyC;IACzC,6CAA2B,CAAA;IAC3B,8CAA8C;IAC9C,6CAA2B,CAAA;IAE3B,iCAAiC;IACjC,2CAAyB,CAAA;IACzB,wCAAwC;IACxC,mDAAiC,CAAA;IACjC,mFAAmF;IACnF,+CAA6B,CAAA;IAC7B,uCAAuC;IACvC,6CAA2B,CAAA;IAC3B,sCAAsC;IACtC,iDAA+B,CAAA;IAC/B,oCAAoC;IACpC,+CAA6B,CAAA;IAC7B,oCAAoC;IACpC,2CAAyB,CAAA;IACzB,gCAAgC;IAChC,iDAA+B,CAAA;IAC/B,0CAA0C;IAC1C,iDAA+B,CAAA;IAE/B,6BAA6B;IAC7B,yCAAuB,CAAA;IACvB,kCAAkC;IAClC,6CAA2B,CAAA;IAC3B,oCAAoC;IACpC,iDAA+B,CAAA;IAE/B,uCAAuC;IACvC,yDAAuC,CAAA;IACvC,oCAAoC;IACpC,iEAA+C,CAAA;IAC/C,oCAAoC;IACpC,6DAA2C,CAAA;IAE3C,8BAA8B;IAC9B,uDAAqC,CAAA;IACrC,wCAAwC;IACxC,uDAAqC,CAAA;IACrC,oCAAoC;IACpC,mDAAiC,CAAA;IACjC,sCAAsC;IACtC,mDAAiC,CAAA;IACjC,oCAAoC;IACpC,yDAAuC,CAAA;IAEvC,wCAAwC;IACxC,+CAA6B,CAAA;AAC/B,CAAC,EAtDW,cAAc,8BAAd,cAAc,QAsDzB;AAyUD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAa,qBAAqB;IAChC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,WAAW,CAChB,MAAc,EACd,OAAe,EACf,MAAyB;QAEzB,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,OAAO;YACjB,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,QAAQ,CACb,QAAgB,EAChB,QAAgB;QAEhB,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,KAAK,CACV,SAAiB,EACjB,YAAoB,EACpB,QAA2B;QAE3B,OAAO;YACL,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,YAAY;YAC3B,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,YAAY,CACjB,MAAc,EACd,QAA2B,EAC3B,MAAyB,EACzB,QAA2B;QAE3B,OAAO;YACL,MAAM;YACN,SAAS,EAAE,QAAQ;YACnB,MAAM;YACN,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,UAAU,CACf,OAAe,EACf,WAAmB,EACnB,QAA2B;QAE3B,OAAO;YACL,OAAO;YACP,WAAW;YACX,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,WAAW,CAChB,MAAc,EACd,KAAa,EACb,OAA0B;QAE1B,OAAO;YACL,MAAM;YACN,KAAK;YACL,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;CACF;AAhJD,sDAgJC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Core API Type Definitions
|
|
4
|
+
* @description Centralized type definitions for API requests/responses and data structures
|
|
5
|
+
* @version 2.0.0
|
|
6
|
+
*
|
|
7
|
+
* This file provides comprehensive type safety for:
|
|
8
|
+
* - API request/response interfaces
|
|
9
|
+
* - Multi-chain data structures
|
|
10
|
+
* - Database entity interfaces
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ChainType = void 0;
|
|
14
|
+
// Re-export ChainType from business enums
|
|
15
|
+
var enums_1 = require("../business/enums");
|
|
16
|
+
Object.defineProperty(exports, "ChainType", { enumerable: true, get: function () { return enums_1.ChainType; } });
|
|
17
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Core API Type Definitions
|
|
3
|
+
* @description Centralized type definitions for API requests/responses and data structures
|
|
4
|
+
* @version 2.0.0
|
|
5
|
+
*
|
|
6
|
+
* This file provides comprehensive type safety for:
|
|
7
|
+
* - API request/response interfaces
|
|
8
|
+
* - Multi-chain data structures
|
|
9
|
+
* - Database entity interfaces
|
|
10
|
+
*/
|
|
11
|
+
import { Optional, BaseResponse, PaginationInfo } from '../common';
|
|
12
|
+
export { ChainType } from '../business/enums';
|
|
13
|
+
export type ApiResponse<T = unknown> = BaseResponse<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Signature-protected API request base interface
|
|
16
|
+
* All signature-protected endpoints should extend this
|
|
17
|
+
*/
|
|
18
|
+
export interface SignatureProtectedRequest {
|
|
19
|
+
/** Wallet address (EVM 0x format or Solana Base58) */
|
|
20
|
+
walletAddress: string;
|
|
21
|
+
/** Cryptographic signature proving wallet ownership */
|
|
22
|
+
signature: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* GraphQL query result wrapper
|
|
26
|
+
* @template T The entity type being queried
|
|
27
|
+
*/
|
|
28
|
+
export interface GraphQLResult<T> {
|
|
29
|
+
items: T[];
|
|
30
|
+
pageInfo?: Optional<PaginationInfo>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Multi-chain entity ID components
|
|
34
|
+
* Used for creating unique identifiers across all chains
|
|
35
|
+
*/
|
|
36
|
+
export interface MultiChainId {
|
|
37
|
+
chainId: number;
|
|
38
|
+
txHash: string;
|
|
39
|
+
logIndex: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* User-specific multi-chain identifier
|
|
43
|
+
*/
|
|
44
|
+
export interface UserChainId {
|
|
45
|
+
chainId: number;
|
|
46
|
+
address: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Chain-specific metadata for all entities
|
|
50
|
+
*/
|
|
51
|
+
export interface ChainMetadata {
|
|
52
|
+
chainId: number;
|
|
53
|
+
blockNumber: bigint;
|
|
54
|
+
blockHash: string;
|
|
55
|
+
txHash: string;
|
|
56
|
+
logIndex: number;
|
|
57
|
+
timestamp: bigint;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Mail message entity - represents individual mail messages
|
|
61
|
+
*/
|
|
62
|
+
export interface MailEntity extends ChainMetadata {
|
|
63
|
+
id: string;
|
|
64
|
+
from: string;
|
|
65
|
+
to: string;
|
|
66
|
+
subject: string;
|
|
67
|
+
body?: Optional<string>;
|
|
68
|
+
contractAddress: string;
|
|
69
|
+
feesPaid: bigint;
|
|
70
|
+
priority: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Prepared mail entity - represents pre-prepared mail messages
|
|
74
|
+
*/
|
|
75
|
+
export interface PreparedMailEntity extends ChainMetadata {
|
|
76
|
+
id: string;
|
|
77
|
+
mailHash: string;
|
|
78
|
+
from: string;
|
|
79
|
+
contractAddress: string;
|
|
80
|
+
feesPaid: bigint;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Delegation entity - represents wallet delegations per chain
|
|
84
|
+
*/
|
|
85
|
+
export interface DelegationEntity extends ChainMetadata {
|
|
86
|
+
id: string;
|
|
87
|
+
delegator: string;
|
|
88
|
+
delegateTo?: Optional<string>;
|
|
89
|
+
contractAddress: string;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Per-chain statistics
|
|
93
|
+
*/
|
|
94
|
+
export interface StatisticsEntity {
|
|
95
|
+
id: string;
|
|
96
|
+
chainId: number;
|
|
97
|
+
totalMails: bigint;
|
|
98
|
+
totalPreparedMails: bigint;
|
|
99
|
+
totalUsers: bigint;
|
|
100
|
+
totalDelegations: bigint;
|
|
101
|
+
totalVolume: bigint;
|
|
102
|
+
lastUpdated: bigint;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Per-user, per-chain statistics
|
|
106
|
+
*/
|
|
107
|
+
export interface UserStatisticsEntity {
|
|
108
|
+
id: string;
|
|
109
|
+
chainId: number;
|
|
110
|
+
address: string;
|
|
111
|
+
mailsSent: bigint;
|
|
112
|
+
mailsReceived: bigint;
|
|
113
|
+
preparedMailsSent: bigint;
|
|
114
|
+
totalFeesPaid: bigint;
|
|
115
|
+
totalFeesReceived: bigint;
|
|
116
|
+
lastActivity: bigint;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Cross-chain global statistics
|
|
120
|
+
*/
|
|
121
|
+
export interface ChainStatisticsEntity {
|
|
122
|
+
id: 'global';
|
|
123
|
+
totalChains: number;
|
|
124
|
+
totalMails: bigint;
|
|
125
|
+
totalPreparedMails: bigint;
|
|
126
|
+
totalUsers: bigint;
|
|
127
|
+
totalDelegations: bigint;
|
|
128
|
+
totalVolume: bigint;
|
|
129
|
+
lastUpdated: bigint;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Event log entity - complete audit trail for debugging
|
|
133
|
+
*/
|
|
134
|
+
export interface EventLogEntity extends ChainMetadata {
|
|
135
|
+
id: string;
|
|
136
|
+
eventName: string;
|
|
137
|
+
contractAddress: string;
|
|
138
|
+
eventData: string;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Supported network chain IDs
|
|
142
|
+
*/
|
|
143
|
+
export type SupportedChainId = 1 | 137 | 42161 | 10 | 8453 | 56 | 43114 | 250 | 100 | 42220 | 31337 | 11155111 | 80001 | 421614 | 11155420 | 84532 | -101 | -102 | -103 | -104;
|
|
144
|
+
/**
|
|
145
|
+
* Contract types supported by the indexer
|
|
146
|
+
*/
|
|
147
|
+
export type ContractType = 'Mailer' | 'MailService';
|
|
148
|
+
/**
|
|
149
|
+
* Event names processed by the indexer
|
|
150
|
+
*/
|
|
151
|
+
export type ProcessedEventName = 'MailSent' | 'PreparedMailSent' | 'DelegationSet' | 'DelegationCleared' | 'DomainRegistered' | 'DomainExtended' | 'DomainReleased' | 'FeeUpdated' | 'SharesRecorded' | 'RecipientClaimed' | 'OwnerClaimed' | 'ExpiredSharesClaimed';
|
|
152
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/infrastructure/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAMvD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;CACrC;AAMD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,CAAC,GACD,GAAG,GACH,KAAK,GACL,EAAE,GACF,IAAI,GACJ,EAAE,GACF,KAAK,GACL,GAAG,GACH,GAAG,GACH,KAAK,GACL,KAAK,GAEL,QAAQ,GACR,KAAK,GACL,MAAM,GACN,QAAQ,GACR,KAAK,GAEL,CAAC,GAAG,GACJ,CAAC,GAAG,GACJ,CAAC,GAAG,GACJ,CAAC,GAAG,CAAC;AAET;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,kBAAkB,GAClB,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,kBAAkB,GAClB,cAAc,GACd,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Core API Type Definitions
|
|
4
|
+
* @description Centralized type definitions for API requests/responses and data structures
|
|
5
|
+
* @version 2.0.0
|
|
6
|
+
*
|
|
7
|
+
* This file provides comprehensive type safety for:
|
|
8
|
+
* - API request/response interfaces
|
|
9
|
+
* - Multi-chain data structures
|
|
10
|
+
* - Database entity interfaces
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ChainType = void 0;
|
|
14
|
+
// Re-export ChainType from business enums
|
|
15
|
+
var enums_1 = require("../business/enums");
|
|
16
|
+
Object.defineProperty(exports, "ChainType", { enumerable: true, get: function () { return enums_1.ChainType; } });
|
|
17
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/types/infrastructure/api.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAIH,0CAA0C;AAC1C,2CAA8C;AAArC,kGAAA,SAAS,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WalletType = exports.NetworkError = exports.ChainType = exports.AnalyticsEventBuilder = exports.AnalyticsEvent = void 0;
|
|
4
|
+
var analytics_1 = require("./analytics");
|
|
5
|
+
Object.defineProperty(exports, "AnalyticsEvent", { enumerable: true, get: function () { return analytics_1.AnalyticsEvent; } });
|
|
6
|
+
Object.defineProperty(exports, "AnalyticsEventBuilder", { enumerable: true, get: function () { return analytics_1.AnalyticsEventBuilder; } });
|
|
7
|
+
var api_1 = require("./api");
|
|
8
|
+
Object.defineProperty(exports, "ChainType", { enumerable: true, get: function () { return api_1.ChainType; } });
|
|
9
|
+
var network_1 = require("./network");
|
|
10
|
+
Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return network_1.NetworkError; } });
|
|
11
|
+
// Wallet types
|
|
12
|
+
var wallet_1 = require("./wallet");
|
|
13
|
+
Object.defineProperty(exports, "WalletType", { enumerable: true, get: function () { return wallet_1.WalletType; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type { AnalyticsConfig, AnalyticsEventProperties, AnalyticsService, EmailAnalyticsService, } from './analytics';
|
|
2
|
+
export { AnalyticsEvent, AnalyticsEventBuilder } from './analytics';
|
|
3
|
+
export type { ApiResponse, ChainMetadata, ChainStatisticsEntity, ContractType, DelegationEntity, EventLogEntity, GraphQLResult, MailEntity, MultiChainId, PreparedMailEntity, ProcessedEventName, SignatureProtectedRequest, StatisticsEntity, SupportedChainId, UserChainId, UserStatisticsEntity, } from './api';
|
|
4
|
+
export { ChainType } from './api';
|
|
5
|
+
export type { NetworkClient, NetworkRequestOptions, NetworkResponse, } from './network';
|
|
6
|
+
export { NetworkError } from './network';
|
|
7
|
+
export type { UILocationHook, UINavigationConfig, UINavigationHook, UINavigationOptions, UINavigationService, UINavigationState, } from './navigation';
|
|
8
|
+
export { WalletType } from './wallet';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/infrastructure/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpE,YAAY,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,GACrB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlC,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,eAAe,GAChB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WalletType = exports.NetworkError = exports.ChainType = exports.AnalyticsEventBuilder = exports.AnalyticsEvent = void 0;
|
|
4
|
+
var analytics_1 = require("./analytics");
|
|
5
|
+
Object.defineProperty(exports, "AnalyticsEvent", { enumerable: true, get: function () { return analytics_1.AnalyticsEvent; } });
|
|
6
|
+
Object.defineProperty(exports, "AnalyticsEventBuilder", { enumerable: true, get: function () { return analytics_1.AnalyticsEventBuilder; } });
|
|
7
|
+
var api_1 = require("./api");
|
|
8
|
+
Object.defineProperty(exports, "ChainType", { enumerable: true, get: function () { return api_1.ChainType; } });
|
|
9
|
+
var network_1 = require("./network");
|
|
10
|
+
Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return network_1.NetworkError; } });
|
|
11
|
+
// Wallet types
|
|
12
|
+
var wallet_1 = require("./wallet");
|
|
13
|
+
Object.defineProperty(exports, "WalletType", { enumerable: true, get: function () { return wallet_1.WalletType; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/infrastructure/index.ts"],"names":[],"mappings":";;;AAQA,yCAAoE;AAA3D,2GAAA,cAAc,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAsB9C,6BAAkC;AAAzB,gGAAA,SAAS,OAAA;AASlB,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AAYrB,eAAe;AACf,mCAAsC;AAA7B,oGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Optional } from '../common';
|
|
2
|
+
/**
|
|
3
|
+
* UI-level navigation state interface for web and mobile applications
|
|
4
|
+
* This provides cross-platform navigation abstractions that work with different routing systems
|
|
5
|
+
*/
|
|
6
|
+
export interface UINavigationState {
|
|
7
|
+
currentPath: string;
|
|
8
|
+
previousPath?: Optional<string>;
|
|
9
|
+
params: Record<string, string>;
|
|
10
|
+
searchParams: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export interface UINavigationOptions {
|
|
13
|
+
replace?: Optional<boolean>;
|
|
14
|
+
state?: Optional<Record<string, unknown>>;
|
|
15
|
+
preventScrollReset?: Optional<boolean>;
|
|
16
|
+
}
|
|
17
|
+
export interface UINavigationService {
|
|
18
|
+
navigate(path: string, options?: Optional<UINavigationOptions>): void;
|
|
19
|
+
goBack(fallbackPath?: Optional<string>): void;
|
|
20
|
+
goForward(): void;
|
|
21
|
+
replace(path: string, options?: Optional<UINavigationOptions>): void;
|
|
22
|
+
getCurrentState(): UINavigationState;
|
|
23
|
+
getCurrentPath(): string;
|
|
24
|
+
getSearchParams(): Record<string, string>;
|
|
25
|
+
getParams(): Record<string, string>;
|
|
26
|
+
canGoBack(): boolean;
|
|
27
|
+
canGoForward(): boolean;
|
|
28
|
+
addListener(listener: (state: UINavigationState) => void): () => void;
|
|
29
|
+
isSupported(): boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface UINavigationHook {
|
|
32
|
+
navigate: (path: string, options?: Optional<UINavigationOptions>) => void;
|
|
33
|
+
goBack: (fallbackPath?: Optional<string>) => void;
|
|
34
|
+
replace: (path: string, options?: Optional<UINavigationOptions>) => void;
|
|
35
|
+
currentPath: string;
|
|
36
|
+
searchParams: Record<string, string>;
|
|
37
|
+
params: Record<string, string>;
|
|
38
|
+
canGoBack: boolean;
|
|
39
|
+
isSupported: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface UILocationHook {
|
|
42
|
+
pathname: string;
|
|
43
|
+
search: string;
|
|
44
|
+
searchParams: Record<string, string>;
|
|
45
|
+
hash: string;
|
|
46
|
+
state: Record<string, unknown>;
|
|
47
|
+
key: string;
|
|
48
|
+
}
|
|
49
|
+
export interface UINavigationConfig {
|
|
50
|
+
enableBackGesture?: Optional<boolean>;
|
|
51
|
+
enableSwipeGesture?: Optional<boolean>;
|
|
52
|
+
animationType?: Optional<'slide' | 'fade' | 'none'>;
|
|
53
|
+
enableAnalytics?: Optional<boolean>;
|
|
54
|
+
fallbackPath?: Optional<string>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/types/infrastructure/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../src/types/infrastructure/navigation.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Network client interface for dependency injection
|
|
4
|
+
* Platform-agnostic HTTP client interface
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.NetworkError = void 0;
|
|
8
|
+
class NetworkError extends Error {
|
|
9
|
+
constructor(message, status, statusText, response) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = 'NetworkError';
|
|
12
|
+
this.status = status;
|
|
13
|
+
this.statusText = statusText;
|
|
14
|
+
this.response = response;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.NetworkError = NetworkError;
|
|
18
|
+
//# sourceMappingURL=network.js.map
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network client interface for dependency injection
|
|
3
|
+
* Platform-agnostic HTTP client interface
|
|
4
|
+
*/
|
|
5
|
+
import { BaseResponse, Optional } from '../common';
|
|
6
|
+
interface NetworkRequestOptions {
|
|
7
|
+
method?: Optional<'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'>;
|
|
8
|
+
headers?: Optional<Record<string, string>>;
|
|
9
|
+
body?: Optional<string | FormData | Blob>;
|
|
10
|
+
signal?: Optional<AbortSignal>;
|
|
11
|
+
timeout?: Optional<number>;
|
|
12
|
+
}
|
|
13
|
+
interface NetworkResponse<T = unknown> extends BaseResponse<T> {
|
|
14
|
+
ok: boolean;
|
|
15
|
+
status: number;
|
|
16
|
+
statusText: string;
|
|
17
|
+
headers: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
interface NetworkClient {
|
|
20
|
+
/**
|
|
21
|
+
* Make a network request
|
|
22
|
+
*/
|
|
23
|
+
request<T = unknown>(url: string, options?: Optional<NetworkRequestOptions>): Promise<NetworkResponse<T>>;
|
|
24
|
+
/**
|
|
25
|
+
* Make a GET request
|
|
26
|
+
*/
|
|
27
|
+
get<T = unknown>(url: string, options?: Optional<Omit<NetworkRequestOptions, 'method' | 'body'>>): Promise<NetworkResponse<T>>;
|
|
28
|
+
/**
|
|
29
|
+
* Make a POST request
|
|
30
|
+
*/
|
|
31
|
+
post<T = unknown>(url: string, body?: Optional<unknown>, options?: Optional<Omit<NetworkRequestOptions, 'method'>>): Promise<NetworkResponse<T>>;
|
|
32
|
+
/**
|
|
33
|
+
* Make a PUT request
|
|
34
|
+
*/
|
|
35
|
+
put<T = unknown>(url: string, body?: Optional<unknown>, options?: Optional<Omit<NetworkRequestOptions, 'method'>>): Promise<NetworkResponse<T>>;
|
|
36
|
+
/**
|
|
37
|
+
* Make a DELETE request
|
|
38
|
+
*/
|
|
39
|
+
delete<T = unknown>(url: string, options?: Optional<Omit<NetworkRequestOptions, 'method' | 'body'>>): Promise<NetworkResponse<T>>;
|
|
40
|
+
}
|
|
41
|
+
declare class NetworkError extends Error {
|
|
42
|
+
readonly status: number;
|
|
43
|
+
readonly statusText: string;
|
|
44
|
+
readonly response?: Optional<unknown>;
|
|
45
|
+
constructor(message: string, status: number, statusText: string, response?: Optional<unknown>);
|
|
46
|
+
}
|
|
47
|
+
export { type NetworkClient, type NetworkResponse, type NetworkRequestOptions, NetworkError, };
|
|
48
|
+
//# sourceMappingURL=network.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/types/infrastructure/network.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEnD,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;IAC/D,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,UAAU,eAAe,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;IAC5D,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,UAAU,aAAa;IACrB;;OAEG;IACH,OAAO,CAAC,CAAC,GAAG,OAAO,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GACxC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/B;;OAEG;IACH,GAAG,CAAC,CAAC,GAAG,OAAO,EACb,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,GACjE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/B;;OAEG;IACH,IAAI,CAAC,CAAC,GAAG,OAAO,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,GACxD,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/B;;OAEG;IACH,GAAG,CAAC,CAAC,GAAG,OAAO,EACb,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,GACxD,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/B;;OAEG;IACH,MAAM,CAAC,CAAC,GAAG,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,GACjE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC;AAED,cAAM,YAAa,SAAQ,KAAK;IAC9B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAG3C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;CAQ/B;AAED,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,YAAY,GACb,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Network client interface for dependency injection
|
|
4
|
+
* Platform-agnostic HTTP client interface
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.NetworkError = void 0;
|
|
8
|
+
class NetworkError extends Error {
|
|
9
|
+
constructor(message, status, statusText, response) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = 'NetworkError';
|
|
12
|
+
this.status = status;
|
|
13
|
+
this.statusText = statusText;
|
|
14
|
+
this.response = response;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.NetworkError = NetworkError;
|
|
18
|
+
//# sourceMappingURL=network.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../../src/types/infrastructure/network.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA+DH,MAAM,YAAa,SAAQ,KAAK;IAK9B,YACE,OAAe,EACf,MAAc,EACd,UAAkB,EAClB,QAA4B;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAMC,oCAAY"}
|