@sudobility/di 1.4.5
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/README.md +67 -0
- package/dist/analytics/analytics.d.ts +18 -0
- package/dist/analytics/analytics.d.ts.map +1 -0
- package/dist/analytics/analytics.js +3 -0
- package/dist/analytics/analytics.js.map +1 -0
- package/dist/analytics/platform-analytics.d.ts +7 -0
- package/dist/analytics/platform-analytics.d.ts.map +1 -0
- package/dist/analytics/platform-analytics.js +2 -0
- package/dist/analytics/platform-analytics.js.map +1 -0
- package/dist/env.d.ts +14 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +2 -0
- package/dist/env.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useApiCall.d.ts +27 -0
- package/dist/hooks/useApiCall.d.ts.map +1 -0
- package/dist/hooks/useApiCall.js +99 -0
- package/dist/hooks/useApiCall.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +2 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/logging.interface.d.ts +14 -0
- package/dist/logging/logging.interface.d.ts.map +1 -0
- package/dist/logging/logging.interface.js +7 -0
- package/dist/logging/logging.interface.js.map +1 -0
- package/dist/navigation/navigation.d.ts +53 -0
- package/dist/navigation/navigation.d.ts.map +1 -0
- package/dist/navigation/navigation.js +2 -0
- package/dist/navigation/navigation.js.map +1 -0
- package/dist/network/index.d.ts +2 -0
- package/dist/network/index.d.ts.map +1 -0
- package/dist/network/index.js +2 -0
- package/dist/network/index.js.map +1 -0
- package/dist/network/platform-network.d.ts +6 -0
- package/dist/network/platform-network.d.ts.map +1 -0
- package/dist/network/platform-network.js +2 -0
- package/dist/network/platform-network.js.map +1 -0
- package/dist/notification/notification.d.ts +68 -0
- package/dist/notification/notification.d.ts.map +1 -0
- package/dist/notification/notification.js +2 -0
- package/dist/notification/notification.js.map +1 -0
- package/dist/notification/platform-notifications.d.ts +6 -0
- package/dist/notification/platform-notifications.d.ts.map +1 -0
- package/dist/notification/platform-notifications.js +2 -0
- package/dist/notification/platform-notifications.js.map +1 -0
- package/dist/service-keys.d.ts +11 -0
- package/dist/service-keys.d.ts.map +1 -0
- package/dist/service-keys.js +10 -0
- package/dist/service-keys.js.map +1 -0
- package/dist/storage/storage.d.ts +48 -0
- package/dist/storage/storage.d.ts.map +1 -0
- package/dist/storage/storage.js +2 -0
- package/dist/storage/storage.js.map +1 -0
- package/dist/theme/platform-theme.d.ts +7 -0
- package/dist/theme/platform-theme.d.ts.map +1 -0
- package/dist/theme/platform-theme.js +2 -0
- package/dist/theme/platform-theme.js.map +1 -0
- package/dist/types.d.ts +38 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/async-helpers.d.ts +14 -0
- package/dist/utils/async-helpers.d.ts.map +1 -0
- package/dist/utils/async-helpers.js +93 -0
- package/dist/utils/async-helpers.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +19 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +105 -0
package/README.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# @johnqh/di
|
|
2
|
+
|
|
3
|
+
Platform-agnostic dependency injection interfaces for React and React Native projects.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This library provides abstract TypeScript interfaces for dependency injection patterns that work across web and React Native platforms. It contains no platform-specific code and focuses purely on defining contracts for common services.
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- 🚀 **Platform Agnostic**: Works with both React and React Native
|
|
12
|
+
- 📱 **React Native Compatible**: No web-specific dependencies
|
|
13
|
+
- 🔌 **Dependency Injection**: Clean interface-based architecture
|
|
14
|
+
- 🎯 **TypeScript First**: Fully typed interfaces
|
|
15
|
+
- 🏗️ **Modular**: Import only what you need
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install @johnqh/di
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
import {
|
|
27
|
+
NetworkClient,
|
|
28
|
+
StorageProvider,
|
|
29
|
+
AnalyticsService,
|
|
30
|
+
EnvProvider
|
|
31
|
+
} from '@johnqh/di';
|
|
32
|
+
|
|
33
|
+
// Implement interfaces for your specific platform
|
|
34
|
+
class MyNetworkClient implements NetworkClient {
|
|
35
|
+
// Your implementation
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Included Interfaces
|
|
40
|
+
|
|
41
|
+
### Network
|
|
42
|
+
- `NetworkClient` - HTTP client interface
|
|
43
|
+
- `NetworkResponse` - Response type
|
|
44
|
+
- `NetworkRequestOptions` - Request configuration
|
|
45
|
+
|
|
46
|
+
### Storage
|
|
47
|
+
- `StorageProvider` - Storage abstraction
|
|
48
|
+
- `PlatformStorage` - Basic storage interface
|
|
49
|
+
- `StorageService` - Enhanced storage service
|
|
50
|
+
|
|
51
|
+
### Analytics
|
|
52
|
+
- `AnalyticsService` - Analytics tracking interface
|
|
53
|
+
- `EmailAnalyticsService` - Email-specific analytics
|
|
54
|
+
|
|
55
|
+
### Environment
|
|
56
|
+
- `EnvProvider` - Environment configuration
|
|
57
|
+
- `AppConfig` - Application configuration
|
|
58
|
+
|
|
59
|
+
### Authentication
|
|
60
|
+
- Auth interfaces for various providers
|
|
61
|
+
|
|
62
|
+
### Navigation & Notifications
|
|
63
|
+
- Platform-agnostic navigation and notification interfaces
|
|
64
|
+
|
|
65
|
+
## License
|
|
66
|
+
|
|
67
|
+
MIT
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AnalyticsEvent, Optional } from '@sudobility/types';
|
|
2
|
+
export { AnalyticsEvent, Optional };
|
|
3
|
+
interface AnalyticsEventData {
|
|
4
|
+
event: AnalyticsEvent;
|
|
5
|
+
parameters?: Optional<Record<string, unknown>>;
|
|
6
|
+
}
|
|
7
|
+
interface _AnalyticsClient {
|
|
8
|
+
trackEvent(event: AnalyticsEvent | AnalyticsEventData): void;
|
|
9
|
+
setUserProperties(properties: Record<string, unknown>): void;
|
|
10
|
+
setUserId(userId: Optional<string>): void;
|
|
11
|
+
setAnalyticsEnabled(enabled: boolean): void;
|
|
12
|
+
setCurrentScreen(screenName: string, screenClass?: Optional<string>): void;
|
|
13
|
+
}
|
|
14
|
+
interface _AnalyticsContextProvider {
|
|
15
|
+
getCurrentContext(): Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
export { type AnalyticsEventData, type _AnalyticsClient as AnalyticsClient, type _AnalyticsContextProvider as AnalyticsContextProvider, };
|
|
18
|
+
//# sourceMappingURL=analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AAoBpC,UAAU,kBAAkB;IAC1B,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChD;AAoBD,UAAU,gBAAgB;IAKxB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAM7D,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAM7D,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAM1C,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAO5C,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5E;AAyBD,UAAU,yBAAyB;IAKjC,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,IAAI,eAAe,EACxC,KAAK,yBAAyB,IAAI,wBAAwB,GAC3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/analytics/analytics.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,cAAc,EAAY,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface PlatformAnalytics {
|
|
2
|
+
trackEvent(event: string, properties: Record<string, unknown>): void;
|
|
3
|
+
setUserProperty(key: string, value: string): void;
|
|
4
|
+
setUserId(userId: string): void;
|
|
5
|
+
isEnabled(): boolean;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=platform-analytics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-analytics.d.ts","sourceRoot":"","sources":["../../src/analytics/platform-analytics.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,iBAAiB;IAMhC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAOrE,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAMlD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAMhC,SAAS,IAAI,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-analytics.js","sourceRoot":"","sources":["../../src/analytics/platform-analytics.ts"],"names":[],"mappings":""}
|
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { EnvProvider, AppConfig, EnvironmentVariables, FirebaseConfig, Optional } from './types';
|
|
2
|
+
export type { EnvProvider, AppConfig, EnvironmentVariables, FirebaseConfig, Optional, };
|
|
3
|
+
export interface EnvFactory {
|
|
4
|
+
createEnvProvider(): EnvProvider;
|
|
5
|
+
createAppConfig(envProvider: EnvProvider): AppConfig;
|
|
6
|
+
detectPlatform(): 'web' | 'react-native' | 'node';
|
|
7
|
+
}
|
|
8
|
+
export interface EnvUtils {
|
|
9
|
+
isDevelopment(): boolean;
|
|
10
|
+
isProduction(): boolean;
|
|
11
|
+
isTest(): boolean;
|
|
12
|
+
get(key: string, defaultValue?: Optional<string>): Optional<string>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,cAAc,EACd,QAAQ,GACT,CAAC;AAwBF,MAAM,WAAW,UAAU;IAIzB,iBAAiB,IAAI,WAAW,CAAC;IAKjC,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IAKrD,cAAc,IAAI,KAAK,GAAG,cAAc,GAAG,MAAM,CAAC;CACnD;AAwBD,MAAM,WAAW,QAAQ;IAIvB,aAAa,IAAI,OAAO,CAAC;IAKzB,YAAY,IAAI,OAAO,CAAC;IAKxB,MAAM,IAAI,OAAO,CAAC;IAKlB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrE"}
|
package/dist/env.js
ADDED
package/dist/env.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,WAAW,GAGZ,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Optional } from '../types.js';
|
|
2
|
+
export interface UseApiCallOptions {
|
|
3
|
+
onError?: (error: Error) => void;
|
|
4
|
+
context?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface UseApiCallReturn {
|
|
7
|
+
isLoading: boolean;
|
|
8
|
+
error: Optional<string>;
|
|
9
|
+
clearError: () => void;
|
|
10
|
+
executeAsync: <T>(operation: () => Promise<T>) => Promise<Optional<T>>;
|
|
11
|
+
execute: <T, TArgs extends unknown[]>(operation: (...args: TArgs) => Promise<T>) => (...args: TArgs) => Promise<Optional<T>>;
|
|
12
|
+
}
|
|
13
|
+
export declare const useApiCall: (options?: UseApiCallOptions) => UseApiCallReturn;
|
|
14
|
+
export declare const useApiCallStrict: (options?: UseApiCallOptions) => {
|
|
15
|
+
isLoading: boolean;
|
|
16
|
+
error: Optional<string>;
|
|
17
|
+
clearError: () => void;
|
|
18
|
+
executeAsync: <T>(operation: () => Promise<T>) => Promise<T>;
|
|
19
|
+
execute: <T, TArgs extends unknown[]>(operation: (...args: TArgs) => Promise<T>) => (...args: TArgs) => Promise<T>;
|
|
20
|
+
};
|
|
21
|
+
export declare const useApiGroup: (options?: UseApiCallOptions) => {
|
|
22
|
+
isLoading: boolean;
|
|
23
|
+
error: Optional<string>;
|
|
24
|
+
clearError: () => void;
|
|
25
|
+
createMethod: <T, TArgs extends unknown[]>(operation: (...args: TArgs) => Promise<T>, throwOnError?: boolean) => (...args: TArgs) => Promise<Optional<T>>;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=useApiCall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useApiCall.d.ts","sourceRoot":"","sources":["../../src/hooks/useApiCall.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ5C,MAAM,WAAW,iBAAiB;IAEhC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,MAAM,WAAW,gBAAgB;IAE/B,SAAS,EAAE,OAAO,CAAC;IAEnB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAExB,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB,YAAY,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS,OAAO,EAAE,EAClC,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KACtC,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C;AAYD,eAAO,MAAM,UAAU,GACrB,UAAS,iBAAsB,KAC9B,gBAoCF,CAAC;AAYF,eAAO,MAAM,gBAAgB,GAAI,UAAS,iBAAsB;;;;mBASrD,CAAC,aAAa,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC;cAyBjD,CAAC,EAAE,KAAK,SAAS,OAAO,EAAE,aAAa,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,eACnD,KAAK,KAAG,OAAO,CAAC,CAAC,CAAC;CAcxC,CAAC;AAYF,eAAO,MAAM,WAAW,GAAI,UAAS,iBAAsB;;;;mBAStD,CAAC,EAAE,KAAK,SAAS,OAAO,EAAE,aACd,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,iBAC3B,OAAO,eAEE,KAAK,KAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;CAmCxD,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { useCallback, useState } from 'react';
|
|
2
|
+
import { withLoadingState } from '../utils/async-helpers.js';
|
|
3
|
+
export const useApiCall = (options = {}) => {
|
|
4
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
5
|
+
const [error, setError] = useState(null);
|
|
6
|
+
const clearError = useCallback(() => {
|
|
7
|
+
setError(null);
|
|
8
|
+
}, []);
|
|
9
|
+
const executeAsync = useCallback(async (operation) => {
|
|
10
|
+
return withLoadingState(operation, setIsLoading, setError, options.context);
|
|
11
|
+
}, [options.context]);
|
|
12
|
+
const execute = useCallback((operation) => {
|
|
13
|
+
return async (...args) => {
|
|
14
|
+
return executeAsync(() => operation(...args));
|
|
15
|
+
};
|
|
16
|
+
}, [executeAsync]);
|
|
17
|
+
return {
|
|
18
|
+
isLoading,
|
|
19
|
+
error,
|
|
20
|
+
clearError,
|
|
21
|
+
executeAsync,
|
|
22
|
+
execute,
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export const useApiCallStrict = (options = {}) => {
|
|
26
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
27
|
+
const [error, setError] = useState(null);
|
|
28
|
+
const clearError = useCallback(() => {
|
|
29
|
+
setError(null);
|
|
30
|
+
}, []);
|
|
31
|
+
const executeAsync = useCallback(async (operation) => {
|
|
32
|
+
setIsLoading(true);
|
|
33
|
+
setError(null);
|
|
34
|
+
try {
|
|
35
|
+
const result = await operation();
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
const errorMessage = err instanceof Error ? err.message : 'Operation failed';
|
|
40
|
+
setError(errorMessage);
|
|
41
|
+
if (options.onError) {
|
|
42
|
+
options.onError(err instanceof Error ? err : new Error(errorMessage));
|
|
43
|
+
}
|
|
44
|
+
throw err;
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
setIsLoading(false);
|
|
48
|
+
}
|
|
49
|
+
}, [options.onError]);
|
|
50
|
+
const execute = useCallback((operation) => {
|
|
51
|
+
return (...args) => {
|
|
52
|
+
return executeAsync(() => operation(...args));
|
|
53
|
+
};
|
|
54
|
+
}, [executeAsync]);
|
|
55
|
+
return {
|
|
56
|
+
isLoading,
|
|
57
|
+
error,
|
|
58
|
+
clearError,
|
|
59
|
+
executeAsync,
|
|
60
|
+
execute,
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
export const useApiGroup = (options = {}) => {
|
|
64
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
65
|
+
const [error, setError] = useState(null);
|
|
66
|
+
const clearError = useCallback(() => {
|
|
67
|
+
setError(null);
|
|
68
|
+
}, []);
|
|
69
|
+
const createMethod = useCallback((operation, throwOnError = true) => {
|
|
70
|
+
return async (...args) => {
|
|
71
|
+
if (throwOnError) {
|
|
72
|
+
setIsLoading(true);
|
|
73
|
+
setError(null);
|
|
74
|
+
try {
|
|
75
|
+
const result = await operation(...args);
|
|
76
|
+
return result;
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
const errorMessage = err instanceof Error ? err.message : 'Operation failed';
|
|
80
|
+
setError(errorMessage);
|
|
81
|
+
throw err;
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
setIsLoading(false);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
return withLoadingState(() => operation(...args), setIsLoading, setError, options.context);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}, [options.context]);
|
|
92
|
+
return {
|
|
93
|
+
isLoading,
|
|
94
|
+
error,
|
|
95
|
+
clearError,
|
|
96
|
+
createMethod,
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=useApiCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useApiCall.js","sourceRoot":"","sources":["../../src/hooks/useApiCall.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './env.js';
|
|
3
|
+
export * from './analytics/analytics.js';
|
|
4
|
+
export * from './analytics/platform-analytics.js';
|
|
5
|
+
export { type AnalyticsService, type AnalyticsConfig, type EmailAnalyticsService, AnalyticsEventBuilder, } from '@sudobility/types';
|
|
6
|
+
export * from './navigation/navigation.js';
|
|
7
|
+
export * from './network/index.js';
|
|
8
|
+
export * from './network/platform-network.js';
|
|
9
|
+
export * from './notification/notification.js';
|
|
10
|
+
export * from './notification/platform-notifications.js';
|
|
11
|
+
export * from './storage/storage.js';
|
|
12
|
+
export * from './theme/platform-theme.js';
|
|
13
|
+
export * from './logging/index.js';
|
|
14
|
+
export * from './service-keys.js';
|
|
15
|
+
export * from './hooks/index.js';
|
|
16
|
+
export * from './utils/index.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAElD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAG9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AAGzD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './env.js';
|
|
3
|
+
export * from './analytics/analytics.js';
|
|
4
|
+
export * from './analytics/platform-analytics.js';
|
|
5
|
+
export { AnalyticsEventBuilder, } from '@sudobility/types';
|
|
6
|
+
export * from './navigation/navigation.js';
|
|
7
|
+
export * from './network/index.js';
|
|
8
|
+
export * from './network/platform-network.js';
|
|
9
|
+
export * from './notification/notification.js';
|
|
10
|
+
export * from './notification/platform-notifications.js';
|
|
11
|
+
export * from './storage/storage.js';
|
|
12
|
+
export * from './theme/platform-theme.js';
|
|
13
|
+
export * from './logging/index.js';
|
|
14
|
+
export * from './service-keys.js';
|
|
15
|
+
export * from './hooks/index.js';
|
|
16
|
+
export * from './utils/index.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAElD,OAAO,EAIL,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,cAAc,4BAA4B,CAAC;AAG3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAG9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AAGzD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum LogType {
|
|
2
|
+
None = "none",
|
|
3
|
+
Console = "console",
|
|
4
|
+
File = "file"
|
|
5
|
+
}
|
|
6
|
+
export interface Logger {
|
|
7
|
+
readonly type: LogType;
|
|
8
|
+
log(...args: any[]): void;
|
|
9
|
+
}
|
|
10
|
+
export interface LoggerProvider {
|
|
11
|
+
getLogger(): Logger;
|
|
12
|
+
setLogType(type: LogType): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=logging.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.interface.d.ts","sourceRoot":"","sources":["../../src/logging/logging.interface.ts"],"names":[],"mappings":"AAQA,oBAAY,OAAO;IAEjB,IAAI,SAAS;IAEb,OAAO,YAAY;IAEnB,IAAI,SAAS;CACd;AA2CD,MAAM,WAAW,MAAM;IAOrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAoBvB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC3B;AAuCD,MAAM,WAAW,cAAc;IAS7B,SAAS,IAAI,MAAM,CAAC;IAqBpB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.interface.js","sourceRoot":"","sources":["../../src/logging/logging.interface.ts"],"names":[],"mappings":"AAQA,MAAM,CAAN,IAAY,OAOX;AAPD,WAAY,OAAO;IAEjB,wBAAa,CAAA;IAEb,8BAAmB,CAAA;IAEnB,wBAAa,CAAA;AACf,CAAC,EAPW,OAAO,KAAP,OAAO,QAOlB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Optional } from '@sudobility/types';
|
|
2
|
+
interface NavigationOptions {
|
|
3
|
+
replace?: Optional<boolean>;
|
|
4
|
+
state?: Optional<unknown>;
|
|
5
|
+
preventScrollReset?: Optional<boolean>;
|
|
6
|
+
}
|
|
7
|
+
interface NavigationState {
|
|
8
|
+
currentPath: string;
|
|
9
|
+
previousPath?: Optional<string>;
|
|
10
|
+
params: Record<string, string>;
|
|
11
|
+
searchParams: Record<string, string>;
|
|
12
|
+
}
|
|
13
|
+
interface NavigationService {
|
|
14
|
+
navigate(path: string, options?: Optional<NavigationOptions>): void;
|
|
15
|
+
goBack(fallbackPath?: Optional<string>): void;
|
|
16
|
+
goForward(): void;
|
|
17
|
+
replace(path: string, options?: Optional<NavigationOptions>): void;
|
|
18
|
+
getCurrentState(): NavigationState;
|
|
19
|
+
getCurrentPath(): string;
|
|
20
|
+
getSearchParams(): Record<string, string>;
|
|
21
|
+
getParams(): Record<string, string>;
|
|
22
|
+
canGoBack(): boolean;
|
|
23
|
+
canGoForward(): boolean;
|
|
24
|
+
addListener(listener: (state: NavigationState) => void): () => void;
|
|
25
|
+
isSupported(): boolean;
|
|
26
|
+
}
|
|
27
|
+
interface NavigationHook {
|
|
28
|
+
navigate: (path: string, options?: Optional<NavigationOptions>) => void;
|
|
29
|
+
goBack: (fallbackPath?: Optional<string>) => void;
|
|
30
|
+
replace: (path: string, options?: Optional<NavigationOptions>) => void;
|
|
31
|
+
currentPath: string;
|
|
32
|
+
searchParams: Record<string, string>;
|
|
33
|
+
params: Record<string, string>;
|
|
34
|
+
canGoBack: boolean;
|
|
35
|
+
isSupported: boolean;
|
|
36
|
+
}
|
|
37
|
+
interface LocationHook {
|
|
38
|
+
pathname: string;
|
|
39
|
+
search: string;
|
|
40
|
+
searchParams: Record<string, string>;
|
|
41
|
+
hash: string;
|
|
42
|
+
state: unknown;
|
|
43
|
+
key: string;
|
|
44
|
+
}
|
|
45
|
+
interface NavigationConfig {
|
|
46
|
+
enableBackGesture?: Optional<boolean>;
|
|
47
|
+
enableSwipeGesture?: Optional<boolean>;
|
|
48
|
+
animationType?: Optional<'slide' | 'fade' | 'none'>;
|
|
49
|
+
enableAnalytics?: Optional<boolean>;
|
|
50
|
+
fallbackPath?: Optional<string>;
|
|
51
|
+
}
|
|
52
|
+
export { type NavigationOptions, type NavigationState, type NavigationService, type NavigationHook, type LocationHook, type NavigationConfig, };
|
|
53
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/navigation/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/navigation/navigation.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAyBA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,YAAY,GACb,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAyBA,OAAO,EAIL,YAAY,GACb,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-network.d.ts","sourceRoot":"","sources":["../../src/network/platform-network.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,eAAe;IAO9B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAM9D,QAAQ,IAAI,OAAO,CAAC;IAOpB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-network.js","sourceRoot":"","sources":["../../src/network/platform-network.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Optional } from '@sudobility/types';
|
|
2
|
+
interface NotificationOptions {
|
|
3
|
+
body?: Optional<string>;
|
|
4
|
+
icon?: Optional<string>;
|
|
5
|
+
badge?: Optional<string>;
|
|
6
|
+
tag?: Optional<string>;
|
|
7
|
+
requireInteraction?: Optional<boolean>;
|
|
8
|
+
silent?: Optional<boolean>;
|
|
9
|
+
data?: Optional<unknown>;
|
|
10
|
+
actions?: Optional<NotificationAction[]>;
|
|
11
|
+
timestamp?: Optional<number>;
|
|
12
|
+
}
|
|
13
|
+
interface NotificationAction {
|
|
14
|
+
action: string;
|
|
15
|
+
title: string;
|
|
16
|
+
icon?: Optional<string>;
|
|
17
|
+
}
|
|
18
|
+
interface NotificationResult {
|
|
19
|
+
success: boolean;
|
|
20
|
+
error?: Optional<string>;
|
|
21
|
+
notificationId?: Optional<string>;
|
|
22
|
+
}
|
|
23
|
+
interface NotificationPermissionResult {
|
|
24
|
+
granted: boolean;
|
|
25
|
+
permission: 'granted' | 'denied' | 'default';
|
|
26
|
+
error?: Optional<string>;
|
|
27
|
+
}
|
|
28
|
+
interface NotificationService {
|
|
29
|
+
isSupported(): boolean;
|
|
30
|
+
getPermissionStatus(): 'granted' | 'denied' | 'default' | 'unsupported';
|
|
31
|
+
requestPermission(): Promise<NotificationPermissionResult>;
|
|
32
|
+
showNotification(title: string, options?: Optional<NotificationOptions>): Promise<NotificationResult>;
|
|
33
|
+
closeNotification(notificationId: string): Promise<boolean>;
|
|
34
|
+
clearAllNotifications(): Promise<boolean>;
|
|
35
|
+
setClickHandler(handler: (data?: Optional<unknown>) => void): void;
|
|
36
|
+
hasPermission(): boolean;
|
|
37
|
+
getCapabilities(): NotificationCapabilities;
|
|
38
|
+
}
|
|
39
|
+
interface NotificationCapabilities {
|
|
40
|
+
supportsActions: boolean;
|
|
41
|
+
supportsIcon: boolean;
|
|
42
|
+
supportsBadge: boolean;
|
|
43
|
+
supportsData: boolean;
|
|
44
|
+
supportsSound: boolean;
|
|
45
|
+
supportsVibration: boolean;
|
|
46
|
+
maxActions?: Optional<number>;
|
|
47
|
+
}
|
|
48
|
+
interface NotificationConfig {
|
|
49
|
+
enableAutoClose: boolean;
|
|
50
|
+
autoCloseDelay: number;
|
|
51
|
+
defaultIcon: string;
|
|
52
|
+
enableDebugLogging: boolean;
|
|
53
|
+
fallbackToAlert: boolean;
|
|
54
|
+
}
|
|
55
|
+
interface NotificationClient {
|
|
56
|
+
service: NotificationService;
|
|
57
|
+
config: NotificationConfig;
|
|
58
|
+
show(title: string, options?: Optional<NotificationOptions>): Promise<NotificationResult>;
|
|
59
|
+
requestPermissions(): Promise<NotificationPermissionResult>;
|
|
60
|
+
}
|
|
61
|
+
interface NotificationContextProvider {
|
|
62
|
+
client: NotificationClient;
|
|
63
|
+
isSupported: boolean;
|
|
64
|
+
hasPermission: boolean;
|
|
65
|
+
requestPermission(): Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
export { type NotificationOptions, type NotificationAction, type NotificationResult, type NotificationPermissionResult, type NotificationService, type NotificationCapabilities, type NotificationConfig, type NotificationClient, type NotificationContextProvider, };
|
|
68
|
+
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../src/notification/notification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../src/notification/notification.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface PlatformNotifications {
|
|
2
|
+
showNotification(title: string, message: string, type: 'info' | 'success' | 'warning' | 'error'): void;
|
|
3
|
+
requestPermission(): Promise<boolean>;
|
|
4
|
+
scheduleNotification(title: string, message: string, delay: number): void;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=platform-notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-notifications.d.ts","sourceRoot":"","sources":["../../src/notification/platform-notifications.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,qBAAqB;IAOpC,gBAAgB,CACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAC7C,IAAI,CAAC;IAMR,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAQtC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-notifications.js","sourceRoot":"","sources":["../../src/notification/platform-notifications.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const ServiceKeys: {
|
|
2
|
+
readonly STORAGE: "storage";
|
|
3
|
+
readonly ANALYTICS: "analytics";
|
|
4
|
+
readonly NOTIFICATIONS: "notifications";
|
|
5
|
+
readonly THEME: "theme";
|
|
6
|
+
readonly NETWORK: "network";
|
|
7
|
+
readonly PERSISTENCE: "persistence";
|
|
8
|
+
readonly FOLDER_OPERATIONS: "folderOperations";
|
|
9
|
+
};
|
|
10
|
+
export type ServiceKey = (typeof ServiceKeys)[keyof typeof ServiceKeys];
|
|
11
|
+
//# sourceMappingURL=service-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-keys.d.ts","sourceRoot":"","sources":["../src/service-keys.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,WAAW;;;;;;;;CASd,CAAC;AAKX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const ServiceKeys = {
|
|
2
|
+
STORAGE: 'storage',
|
|
3
|
+
ANALYTICS: 'analytics',
|
|
4
|
+
NOTIFICATIONS: 'notifications',
|
|
5
|
+
THEME: 'theme',
|
|
6
|
+
NETWORK: 'network',
|
|
7
|
+
PERSISTENCE: 'persistence',
|
|
8
|
+
FOLDER_OPERATIONS: 'folderOperations',
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=service-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-keys.js","sourceRoot":"","sources":["../src/service-keys.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,WAAW,GAAG;IAEzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,eAAe;IAC9B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,kBAAkB;CAC7B,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { StorageType, Optional } from '../types';
|
|
2
|
+
interface PlatformStorage {
|
|
3
|
+
setItem(key: string, value: string): Promise<void> | void;
|
|
4
|
+
getItem(key: string): Promise<Optional<string>> | Optional<string>;
|
|
5
|
+
removeItem(key: string): Promise<void> | void;
|
|
6
|
+
clear?: Optional<() => Promise<void> | void>;
|
|
7
|
+
getAllKeys?: Optional<() => Promise<string[]> | string[]>;
|
|
8
|
+
}
|
|
9
|
+
interface AdvancedPlatformStorage extends PlatformStorage {
|
|
10
|
+
setItem(key: string, value: string, ttl?: Optional<number>): Promise<void> | void;
|
|
11
|
+
hasItem(key: string): Promise<boolean> | boolean;
|
|
12
|
+
clearPattern(pattern?: Optional<string>): Promise<void> | void;
|
|
13
|
+
}
|
|
14
|
+
interface StorageProvider {
|
|
15
|
+
storage: PlatformStorage | AdvancedPlatformStorage;
|
|
16
|
+
get(key: string): Promise<Optional<string>> | Optional<string>;
|
|
17
|
+
set(key: string, value: string, ttl?: Optional<number>): Promise<void> | void;
|
|
18
|
+
remove(key: string): Promise<void> | void;
|
|
19
|
+
clear(): Promise<void> | void;
|
|
20
|
+
}
|
|
21
|
+
interface StorageService {
|
|
22
|
+
getItem(key: string): Promise<Optional<string>> | Optional<string>;
|
|
23
|
+
setItem(key: string, value: string): Promise<void> | void;
|
|
24
|
+
removeItem(key: string): Promise<void> | void;
|
|
25
|
+
clear(): Promise<void> | void;
|
|
26
|
+
getAllKeys(): Promise<string[]> | string[];
|
|
27
|
+
isAvailable(): boolean;
|
|
28
|
+
getType(): StorageType;
|
|
29
|
+
}
|
|
30
|
+
interface SerializedStorageService {
|
|
31
|
+
getObject<T>(key: string): Promise<Optional<T>> | Optional<T>;
|
|
32
|
+
setObject<T>(key: string, value: T): Promise<void> | void;
|
|
33
|
+
removeObject(key: string): Promise<void> | void;
|
|
34
|
+
hasObject(key: string): Promise<boolean> | boolean;
|
|
35
|
+
}
|
|
36
|
+
interface StorageFactory {
|
|
37
|
+
createStorage(type: StorageType): StorageService;
|
|
38
|
+
createSerializedStorage(type: StorageType): SerializedStorageService;
|
|
39
|
+
getDefaultStorageType(): StorageType;
|
|
40
|
+
}
|
|
41
|
+
interface StorageConfig {
|
|
42
|
+
prefix?: Optional<string>;
|
|
43
|
+
encryption?: Optional<boolean>;
|
|
44
|
+
compression?: Optional<boolean>;
|
|
45
|
+
ttl?: Optional<number>;
|
|
46
|
+
}
|
|
47
|
+
export { type PlatformStorage, type AdvancedPlatformStorage, type StorageProvider, type StorageService, type SerializedStorageService, type StorageFactory, type StorageConfig, };
|
|
48
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage/storage.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-theme.d.ts","sourceRoot":"","sources":["../../src/theme/platform-theme.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,aAAa;IAK5B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAMhC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAMtC,eAAe,IAAI,MAAM,CAAC;IAO1B,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-theme.js","sourceRoot":"","sources":["../../src/theme/platform-theme.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { StorageType, AnalyticsEvent, WalletType, ChainType, Optional } from '@sudobility/types';
|
|
2
|
+
export { StorageType, AnalyticsEvent, WalletType, ChainType, Optional };
|
|
3
|
+
export interface EnvironmentVariables {
|
|
4
|
+
NODE_ENV?: Optional<'development' | 'production' | 'test'>;
|
|
5
|
+
[key: string]: Optional<string>;
|
|
6
|
+
}
|
|
7
|
+
export interface EnvProvider {
|
|
8
|
+
get<K extends keyof EnvironmentVariables>(key: K, defaultValue?: Optional<string>): Optional<EnvironmentVariables[K] | string>;
|
|
9
|
+
isDevelopment(): boolean;
|
|
10
|
+
isProduction(): boolean;
|
|
11
|
+
isTest(): boolean;
|
|
12
|
+
getAll(): EnvironmentVariables;
|
|
13
|
+
}
|
|
14
|
+
export interface FirebaseConfig {
|
|
15
|
+
apiKey: string;
|
|
16
|
+
authDomain: string;
|
|
17
|
+
projectId: string;
|
|
18
|
+
storageBucket: string;
|
|
19
|
+
messagingSenderId: string;
|
|
20
|
+
appId: string;
|
|
21
|
+
measurementId?: Optional<string>;
|
|
22
|
+
vapidKey?: Optional<string>;
|
|
23
|
+
}
|
|
24
|
+
export interface AppConfig {
|
|
25
|
+
wildDuckBackendUrl: string;
|
|
26
|
+
indexerBackendUrl: string;
|
|
27
|
+
revenueCatApiKey: string;
|
|
28
|
+
walletConnectProjectId: string;
|
|
29
|
+
privyAppId: string;
|
|
30
|
+
firebase: FirebaseConfig;
|
|
31
|
+
useCloudflareWorker: boolean;
|
|
32
|
+
cloudflareWorkerUrl: string;
|
|
33
|
+
useMockFallback: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface AnalyticsEventProperties {
|
|
36
|
+
[key: string]: Optional<string | number | boolean>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,WAAW,EACX,cAAc,EACd,UAAU,EACV,SAAS,EACT,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AASxE,MAAM,WAAW,oBAAoB;IAEnC,QAAQ,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC,CAAC;IAE3D,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;CACjC;AAsBD,MAAM,WAAW,WAAW;IAW1B,GAAG,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACtC,GAAG,EAAE,CAAC,EACN,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC9B,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAQ9C,aAAa,IAAI,OAAO,CAAC;IAQzB,YAAY,IAAI,OAAO,CAAC;IAQxB,MAAM,IAAI,OAAO,CAAC;IASlB,MAAM,IAAI,oBAAoB,CAAC;CAChC;AAaD,MAAM,WAAW,cAAc;IAE7B,MAAM,EAAE,MAAM,CAAC;IAEf,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;IAElB,aAAa,EAAE,MAAM,CAAC;IAEtB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,KAAK,EAAE,MAAM,CAAC;IAEd,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEjC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC7B;AAuBD,MAAM,WAAW,SAAS;IAExB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,iBAAiB,EAAE,MAAM,CAAC;IAG1B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,sBAAsB,EAAE,MAAM,CAAC;IAE/B,UAAU,EAAE,MAAM,CAAC;IAGnB,QAAQ,EAAE,cAAc,CAAC;IAGzB,mBAAmB,EAAE,OAAO,CAAC;IAE7B,mBAAmB,EAAE,MAAM,CAAC;IAG5B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAYD,MAAM,WAAW,wBAAwB;IAEvC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACpD"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,WAAW,EACX,cAAc,EACd,UAAU,EACV,SAAS,GAEV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAY,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Optional } from '../types.js';
|
|
2
|
+
export type AsyncResult<T> = {
|
|
3
|
+
data?: T;
|
|
4
|
+
error?: Error;
|
|
5
|
+
success: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const safeAsync: <T>(operation: () => Promise<T>, context?: string) => Promise<AsyncResult<T>>;
|
|
8
|
+
export declare const withLoadingState: <T>(operation: () => Promise<T>, setLoading: (loading: boolean) => void, setError: (error: Optional<string>) => void, context?: string) => Promise<Optional<T>>;
|
|
9
|
+
export declare const safeParallel: <T extends readonly unknown[]>(operations: readonly [...{ [K in keyof T]: () => Promise<T[K]>; }], context?: string) => Promise<AsyncResult<T>>;
|
|
10
|
+
export declare const withTimeout: <T>(operation: () => Promise<T>, timeoutMs: number, context?: string) => Promise<T>;
|
|
11
|
+
export declare const withCache: <T>(key: string, operation: () => Promise<T>, ttlMs?: number) => Promise<T>;
|
|
12
|
+
export declare const clearExpiredCache: () => void;
|
|
13
|
+
export declare const debounceAsync: <T extends unknown[], R>(fn: (...args: T) => Promise<R>, delay: number, key: string) => ((...args: T) => Promise<Optional<R>>);
|
|
14
|
+
//# sourceMappingURL=async-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/async-helpers.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ5C,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAaF,eAAO,MAAM,SAAS,GAAU,CAAC,EAC/B,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,UAAU,MAAM,KACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CASxB,CAAC;AAeF,eAAO,MAAM,gBAAgB,GAAU,CAAC,EACtC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,YAAY,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,EACtC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,EAC3C,UAAU,MAAM,KACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAerB,CAAC;AAYF,eAAO,MAAM,YAAY,GAAU,CAAC,SAAS,SAAS,OAAO,EAAE,EAC7D,YAAY,SAAS,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,EACjE,UAAU,MAAM,KACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAaxB,CAAC;AAcF,eAAO,MAAM,WAAW,GAAU,CAAC,EACjC,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,MAAM,EACjB,UAAU,MAAM,KACf,OAAO,CAAC,CAAC,CAcX,CAAC;AAuBF,eAAO,MAAM,SAAS,GAAU,CAAC,EAC/B,KAAK,MAAM,EACX,WAAW,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,QAAO,MAAsB,KAC5B,OAAO,CAAC,CAAC,CAWX,CAAC;AASF,eAAO,MAAM,iBAAiB,QAAO,IAOpC,CAAC;AAqBF,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAClD,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9B,OAAO,MAAM,EACb,KAAK,MAAM,KACV,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAsBvC,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { logger } from './logger.js';
|
|
2
|
+
export const safeAsync = async (operation, context) => {
|
|
3
|
+
try {
|
|
4
|
+
const data = await operation();
|
|
5
|
+
return { data, success: true };
|
|
6
|
+
}
|
|
7
|
+
catch (error) {
|
|
8
|
+
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
9
|
+
logger.error(`Async operation failed: ${errorObj.message}`, context, error);
|
|
10
|
+
return { error: errorObj, success: false };
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export const withLoadingState = async (operation, setLoading, setError, context) => {
|
|
14
|
+
setLoading(true);
|
|
15
|
+
setError(null);
|
|
16
|
+
try {
|
|
17
|
+
const result = await operation();
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
22
|
+
setError(errorMessage);
|
|
23
|
+
logger.error(`Operation failed: ${errorMessage}`, context, error);
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
setLoading(false);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
export const safeParallel = async (operations, context) => {
|
|
31
|
+
try {
|
|
32
|
+
const results = await Promise.all(operations.map((op) => op()));
|
|
33
|
+
return { data: results, success: true };
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
37
|
+
logger.error(`Parallel operations failed: ${errorObj.message}`, context, error);
|
|
38
|
+
return { error: errorObj, success: false };
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
export const withTimeout = async (operation, timeoutMs, context) => {
|
|
42
|
+
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error(`Operation timed out after ${timeoutMs}ms`)), timeoutMs));
|
|
43
|
+
try {
|
|
44
|
+
return await Promise.race([operation(), timeoutPromise]);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
logger.error(`Timeout operation failed`, context, error);
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const cache = new Map();
|
|
52
|
+
export const withCache = async (key, operation, ttlMs = 5 * 60 * 1000) => {
|
|
53
|
+
const cached = cache.get(key);
|
|
54
|
+
const now = Date.now();
|
|
55
|
+
if (cached && now - cached.timestamp < cached.ttl) {
|
|
56
|
+
return cached.data;
|
|
57
|
+
}
|
|
58
|
+
const result = await operation();
|
|
59
|
+
cache.set(key, { data: result, timestamp: now, ttl: ttlMs });
|
|
60
|
+
return result;
|
|
61
|
+
};
|
|
62
|
+
export const clearExpiredCache = () => {
|
|
63
|
+
const now = Date.now();
|
|
64
|
+
for (const [key, entry] of cache.entries()) {
|
|
65
|
+
if (now - entry.timestamp >= entry.ttl) {
|
|
66
|
+
cache.delete(key);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const debounceMap = new Map();
|
|
71
|
+
export const debounceAsync = (fn, delay, key) => {
|
|
72
|
+
return (...args) => {
|
|
73
|
+
return new Promise((resolve) => {
|
|
74
|
+
const existingTimeout = debounceMap.get(key);
|
|
75
|
+
if (existingTimeout) {
|
|
76
|
+
clearTimeout(existingTimeout);
|
|
77
|
+
}
|
|
78
|
+
const timeout = setTimeout(async () => {
|
|
79
|
+
debounceMap.delete(key);
|
|
80
|
+
try {
|
|
81
|
+
const result = await fn(...args);
|
|
82
|
+
resolve(result);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
logger.error(`Debounced operation failed`, key, error);
|
|
86
|
+
resolve(undefined);
|
|
87
|
+
}
|
|
88
|
+
}, delay);
|
|
89
|
+
debounceMap.set(key, timeout);
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=async-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-helpers.js","sourceRoot":"","sources":["../../src/utils/async-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface SimpleLogger {
|
|
2
|
+
error(message: string, context?: string, error?: unknown): void;
|
|
3
|
+
info(message: string, context?: string): void;
|
|
4
|
+
warn(message: string, context?: string): void;
|
|
5
|
+
}
|
|
6
|
+
export declare let logger: SimpleLogger;
|
|
7
|
+
export declare const setLogger: (customLogger: SimpleLogger) => void;
|
|
8
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AA8BD,eAAO,IAAI,MAAM,EAAE,YAAkC,CAAC;AAoBtD,eAAO,MAAM,SAAS,GAAI,cAAc,YAAY,KAAG,IAEtD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
class ConsoleLogger {
|
|
2
|
+
error(message, context, error) {
|
|
3
|
+
const prefix = context ? `[${context}]` : '';
|
|
4
|
+
console.error(`${prefix} ${message}`, error);
|
|
5
|
+
}
|
|
6
|
+
info(message, context) {
|
|
7
|
+
const prefix = context ? `[${context}]` : '';
|
|
8
|
+
console.log(`${prefix} ${message}`);
|
|
9
|
+
}
|
|
10
|
+
warn(message, context) {
|
|
11
|
+
const prefix = context ? `[${context}]` : '';
|
|
12
|
+
console.warn(`${prefix} ${message}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export let logger = new ConsoleLogger();
|
|
16
|
+
export const setLogger = (customLogger) => {
|
|
17
|
+
logger = customLogger;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAyBA,MAAM,aAAa;IACjB,KAAK,CAAC,OAAe,EAAE,OAAgB,EAAE,KAAe;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAgB;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAgB;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;CACF;AAQD,MAAM,CAAC,IAAI,MAAM,GAAiB,IAAI,aAAa,EAAE,CAAC;AAoBtD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,YAA0B,EAAQ,EAAE;IAC5D,MAAM,GAAG,YAAY,CAAC;AACxB,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sudobility/di",
|
|
3
|
+
"version": "1.4.5",
|
|
4
|
+
"description": "Platform-agnostic dependency injection interfaces for React and React Native projects",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./analytics": {
|
|
14
|
+
"import": "./dist/analytics/analytics.js",
|
|
15
|
+
"types": "./dist/analytics/analytics.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./env": {
|
|
18
|
+
"import": "./dist/env.js",
|
|
19
|
+
"types": "./dist/env.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./logging": {
|
|
22
|
+
"import": "./dist/logging/index.js",
|
|
23
|
+
"types": "./dist/logging/index.d.ts"
|
|
24
|
+
},
|
|
25
|
+
"./navigation": {
|
|
26
|
+
"import": "./dist/navigation/navigation.js",
|
|
27
|
+
"types": "./dist/navigation/navigation.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./network": {
|
|
30
|
+
"import": "./dist/network/index.js",
|
|
31
|
+
"types": "./dist/network/index.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./notification": {
|
|
34
|
+
"import": "./dist/notification/notification.js",
|
|
35
|
+
"types": "./dist/notification/notification.d.ts"
|
|
36
|
+
},
|
|
37
|
+
"./storage": {
|
|
38
|
+
"import": "./dist/storage/storage.js",
|
|
39
|
+
"types": "./dist/storage/storage.d.ts"
|
|
40
|
+
},
|
|
41
|
+
"./types": {
|
|
42
|
+
"import": "./dist/types.js",
|
|
43
|
+
"types": "./dist/types.d.ts"
|
|
44
|
+
},
|
|
45
|
+
"./hooks": {
|
|
46
|
+
"import": "./dist/hooks/index.js",
|
|
47
|
+
"types": "./dist/hooks/index.d.ts"
|
|
48
|
+
},
|
|
49
|
+
"./utils": {
|
|
50
|
+
"import": "./dist/utils/index.js",
|
|
51
|
+
"types": "./dist/utils/index.d.ts"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"files": [
|
|
55
|
+
"dist/**/*"
|
|
56
|
+
],
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "tsc",
|
|
59
|
+
"build:watch": "tsc --watch",
|
|
60
|
+
"clean": "rm -rf dist",
|
|
61
|
+
"test": "vitest run",
|
|
62
|
+
"test:watch": "vitest",
|
|
63
|
+
"test:coverage": "vitest run --coverage",
|
|
64
|
+
"test:ci": "vitest run --coverage",
|
|
65
|
+
"prepublishOnly": "npm run clean && npm run test && npm run build",
|
|
66
|
+
"typecheck": "tsc --noEmit",
|
|
67
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
68
|
+
"lint:fix": "eslint src --ext .ts,.tsx --fix",
|
|
69
|
+
"format": "prettier --write src/**/*.{ts,tsx,js,jsx,json,md}"
|
|
70
|
+
},
|
|
71
|
+
"keywords": [
|
|
72
|
+
"dependency-injection",
|
|
73
|
+
"react",
|
|
74
|
+
"react-native",
|
|
75
|
+
"typescript",
|
|
76
|
+
"platform-agnostic",
|
|
77
|
+
"interfaces"
|
|
78
|
+
],
|
|
79
|
+
"author": "johnqh",
|
|
80
|
+
"devDependencies": {
|
|
81
|
+
"@sudobility/types": "^1.8.21",
|
|
82
|
+
"@types/node": "^24.5.2",
|
|
83
|
+
"@types/react": "^19.2.2",
|
|
84
|
+
"@typescript-eslint/eslint-plugin": "^8.44.1",
|
|
85
|
+
"@typescript-eslint/parser": "^8.44.1",
|
|
86
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
87
|
+
"eslint": "^9.36.0",
|
|
88
|
+
"eslint-config-prettier": "^10.1.8",
|
|
89
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
90
|
+
"prettier": "^3.6.2",
|
|
91
|
+
"typescript": "^5.9.2",
|
|
92
|
+
"vitest": "^3.2.4"
|
|
93
|
+
},
|
|
94
|
+
"peerDependencies": {
|
|
95
|
+
"@sudobility/types": "^1.8.20",
|
|
96
|
+
"react": ">=18.0.0"
|
|
97
|
+
},
|
|
98
|
+
"repository": {
|
|
99
|
+
"type": "git",
|
|
100
|
+
"url": "https://github.com/johnqh/di.git"
|
|
101
|
+
},
|
|
102
|
+
"publishConfig": {
|
|
103
|
+
"access": "restricted"
|
|
104
|
+
}
|
|
105
|
+
}
|