@sudobility/di_rn 0.1.0

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.
Files changed (46) hide show
  1. package/README.md +184 -0
  2. package/dist/analytics/analytics.rn.d.ts +18 -0
  3. package/dist/analytics/analytics.rn.d.ts.map +1 -0
  4. package/dist/analytics/analytics.rn.js +83 -0
  5. package/dist/analytics/analytics.rn.js.map +1 -0
  6. package/dist/env/env.rn.d.ts +14 -0
  7. package/dist/env/env.rn.d.ts.map +1 -0
  8. package/dist/env/env.rn.js +51 -0
  9. package/dist/env/env.rn.js.map +1 -0
  10. package/dist/index.d.ts +13 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +11 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/logging/logging.rn.d.ts +27 -0
  15. package/dist/logging/logging.rn.d.ts.map +1 -0
  16. package/dist/logging/logging.rn.js +78 -0
  17. package/dist/logging/logging.rn.js.map +1 -0
  18. package/dist/navigation/navigation.rn.d.ts +29 -0
  19. package/dist/navigation/navigation.rn.d.ts.map +1 -0
  20. package/dist/navigation/navigation.rn.js +155 -0
  21. package/dist/navigation/navigation.rn.js.map +1 -0
  22. package/dist/network/network-singleton.d.ts +8 -0
  23. package/dist/network/network-singleton.d.ts.map +1 -0
  24. package/dist/network/network-singleton.js +36 -0
  25. package/dist/network/network-singleton.js.map +1 -0
  26. package/dist/network/network.rn.d.ts +38 -0
  27. package/dist/network/network.rn.d.ts.map +1 -0
  28. package/dist/network/network.rn.js +153 -0
  29. package/dist/network/network.rn.js.map +1 -0
  30. package/dist/notification/notification.rn.d.ts +25 -0
  31. package/dist/notification/notification.rn.d.ts.map +1 -0
  32. package/dist/notification/notification.rn.js +136 -0
  33. package/dist/notification/notification.rn.js.map +1 -0
  34. package/dist/storage/storage-singleton.d.ts +25 -0
  35. package/dist/storage/storage-singleton.d.ts.map +1 -0
  36. package/dist/storage/storage-singleton.js +68 -0
  37. package/dist/storage/storage-singleton.js.map +1 -0
  38. package/dist/storage/storage.rn.d.ts +23 -0
  39. package/dist/storage/storage.rn.d.ts.map +1 -0
  40. package/dist/storage/storage.rn.js +80 -0
  41. package/dist/storage/storage.rn.js.map +1 -0
  42. package/dist/theme/theme.rn.d.ts +28 -0
  43. package/dist/theme/theme.rn.d.ts.map +1 -0
  44. package/dist/theme/theme.rn.js +92 -0
  45. package/dist/theme/theme.rn.js.map +1 -0
  46. package/package.json +75 -0
@@ -0,0 +1,155 @@
1
+ export class RNNavigationService {
2
+ constructor() {
3
+ this.navigationRef = null;
4
+ this.listeners = new Set();
5
+ }
6
+ setNavigationRef(ref) {
7
+ this.navigationRef = ref;
8
+ }
9
+ navigate(path, options) {
10
+ if (!this.navigationRef?.isReady()) {
11
+ console.warn('Navigation is not ready yet');
12
+ return;
13
+ }
14
+ const params = options?.state;
15
+ this.navigationRef.navigate(path, params);
16
+ }
17
+ goBack(fallbackPath) {
18
+ if (!this.navigationRef?.isReady()) {
19
+ console.warn('Navigation is not ready yet');
20
+ return;
21
+ }
22
+ if (this.navigationRef.canGoBack()) {
23
+ this.navigationRef.goBack();
24
+ }
25
+ else if (fallbackPath) {
26
+ this.navigate(fallbackPath);
27
+ }
28
+ }
29
+ goForward() {
30
+ console.warn('goForward is not supported in React Navigation');
31
+ }
32
+ replace(path, options) {
33
+ if (!this.navigationRef?.isReady()) {
34
+ console.warn('Navigation is not ready yet');
35
+ return;
36
+ }
37
+ const params = options?.state;
38
+ this.navigationRef.reset({
39
+ index: 0,
40
+ routes: [{ name: path, params }],
41
+ });
42
+ }
43
+ getCurrentState() {
44
+ if (!this.navigationRef?.isReady()) {
45
+ return {
46
+ currentPath: '',
47
+ params: {},
48
+ searchParams: {},
49
+ };
50
+ }
51
+ const state = this.navigationRef.getRootState();
52
+ const currentRoute = this.getCurrentRouteName(state);
53
+ const routeParams = this.getCurrentRouteParams(state);
54
+ return {
55
+ currentPath: currentRoute ?? '',
56
+ params: routeParams,
57
+ searchParams: {},
58
+ };
59
+ }
60
+ getCurrentPath() {
61
+ return this.getCurrentState().currentPath;
62
+ }
63
+ getSearchParams() {
64
+ return {};
65
+ }
66
+ getParams() {
67
+ return this.getCurrentState().params;
68
+ }
69
+ getCurrentRouteName(state) {
70
+ if (!state || !state.routes.length)
71
+ return null;
72
+ const index = state.index ?? 0;
73
+ const route = state.routes[index];
74
+ if (!route)
75
+ return null;
76
+ if (route.state) {
77
+ return this.getCurrentRouteName(route.state);
78
+ }
79
+ return route.name;
80
+ }
81
+ getCurrentRouteParams(state) {
82
+ if (!state || !state.routes.length)
83
+ return {};
84
+ const index = state.index ?? 0;
85
+ const route = state.routes[index];
86
+ if (!route)
87
+ return {};
88
+ if (route.state) {
89
+ return this.getCurrentRouteParams(route.state);
90
+ }
91
+ const params = route.params;
92
+ if (!params)
93
+ return {};
94
+ const result = {};
95
+ for (const [key, value] of Object.entries(params)) {
96
+ if (value !== null && value !== undefined) {
97
+ result[key] = String(value);
98
+ }
99
+ }
100
+ return result;
101
+ }
102
+ addListener(listener) {
103
+ this.listeners.add(listener);
104
+ return () => {
105
+ this.listeners.delete(listener);
106
+ };
107
+ }
108
+ onStateChange(state) {
109
+ if (!state)
110
+ return;
111
+ const currentRoute = this.getCurrentRouteName(state);
112
+ const routeParams = this.getCurrentRouteParams(state);
113
+ const navState = {
114
+ currentPath: currentRoute ?? '',
115
+ params: routeParams,
116
+ searchParams: {},
117
+ };
118
+ this.listeners.forEach((listener) => listener(navState));
119
+ }
120
+ isSupported() {
121
+ return this.navigationRef?.isReady() ?? false;
122
+ }
123
+ canGoBack() {
124
+ return this.navigationRef?.canGoBack() ?? false;
125
+ }
126
+ canGoForward() {
127
+ return false;
128
+ }
129
+ resetToInitial(initialRoute) {
130
+ if (!this.navigationRef?.isReady()) {
131
+ console.warn('Navigation is not ready yet');
132
+ return;
133
+ }
134
+ this.navigationRef.reset({
135
+ index: 0,
136
+ routes: [{ name: initialRoute }],
137
+ });
138
+ }
139
+ }
140
+ let navigationService = null;
141
+ export function getNavigationService() {
142
+ if (!navigationService) {
143
+ navigationService = new RNNavigationService();
144
+ }
145
+ return navigationService;
146
+ }
147
+ export function initializeNavigationService(service) {
148
+ navigationService = service ?? new RNNavigationService();
149
+ return navigationService;
150
+ }
151
+ export function resetNavigationService() {
152
+ navigationService = null;
153
+ }
154
+ export const rnNavigationService = new RNNavigationService();
155
+ //# sourceMappingURL=navigation.rn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.rn.js","sourceRoot":"","sources":["../../src/navigation/navigation.rn.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,mBAAmB;IAAhC;QACU,kBAAa,GAEV,IAAI,CAAC;QACR,cAAS,GAA0C,IAAI,GAAG,EAAE,CAAC;IAqOvE,CAAC;IA/NC,gBAAgB,CAAC,GAAoD;QACnE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;IAC3B,CAAC;IAKD,QAAQ,CAAC,IAAY,EAAE,OAAqC;QAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,EAAE,KAA4C,CAAC;QAEnE,IAAI,CAAC,aAGN,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAKD,MAAM,CAAC,YAA+B;QACpC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC9B,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAKD,SAAS;QAEP,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IACjE,CAAC;IAKD,OAAO,CAAC,IAAY,EAAE,OAAqC;QACzD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,EAAE,KAA4C,CAAC;QACrE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YACvB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAKD,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;YACnC,OAAO;gBACL,WAAW,EAAE,EAAE;gBACf,MAAM,EAAE,EAAE;gBACV,YAAY,EAAE,EAAE;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAEtD,OAAO;YACL,WAAW,EAAE,YAAY,IAAI,EAAE;YAC/B,MAAM,EAAE,WAAW;YACnB,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAKD,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC;IAC5C,CAAC;IAKD,eAAe;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;IACvC,CAAC;IAKO,mBAAmB,CACzB,KAAoC;QAEpC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEhD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAGxB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAA0B,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IAKO,qBAAqB,CAC3B,KAAoC;QAEpC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAGtB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAA0B,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAA6C,CAAC;QACnE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAGvB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,WAAW,CAAC,QAA0C;QACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAG7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAMD,aAAa,CAAC,KAAoC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAoB;YAChC,WAAW,EAAE,YAAY,IAAI,EAAE;YAC/B,MAAM,EAAE,WAAW;YACnB,YAAY,EAAE,EAAE;SACjB,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAKD,WAAW;QACT,OAAO,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC;IAChD,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,KAAK,CAAC;IAClD,CAAC;IAKD,YAAY;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,cAAc,CAAC,YAAoB;QACjC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YACvB,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;CACF;AAGD,IAAI,iBAAiB,GAA+B,IAAI,CAAC;AAEzD,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAA6B;IAE7B,iBAAiB,GAAG,OAAO,IAAI,IAAI,mBAAmB,EAAE,CAAC;IACzD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,iBAAiB,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { RNNetworkService, RNNetworkClient } from './network.rn.js';
2
+ export declare function getNetworkService(): RNNetworkService;
3
+ export declare function initializeNetworkService(service?: RNNetworkService): RNNetworkService;
4
+ export declare function resetNetworkService(): void;
5
+ export declare function getNetworkClient(): RNNetworkClient;
6
+ export declare function initializeNetworkClient(timeout?: number): RNNetworkClient;
7
+ export declare function resetNetworkClient(): void;
8
+ //# sourceMappingURL=network-singleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-singleton.d.ts","sourceRoot":"","sources":["../../src/network/network-singleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAMpE,wBAAgB,iBAAiB,IAAI,gBAAgB,CAKpD;AAED,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,gBAAgB,GACzB,gBAAgB,CAMlB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAK1C;AAED,wBAAgB,gBAAgB,IAAI,eAAe,CAKlD;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,CAGzE;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -0,0 +1,36 @@
1
+ import { RNNetworkService, RNNetworkClient } from './network.rn.js';
2
+ let networkService = null;
3
+ let networkClient = null;
4
+ export function getNetworkService() {
5
+ if (!networkService) {
6
+ networkService = new RNNetworkService();
7
+ }
8
+ return networkService;
9
+ }
10
+ export function initializeNetworkService(service) {
11
+ if (networkService) {
12
+ networkService.dispose();
13
+ }
14
+ networkService = service ?? new RNNetworkService();
15
+ return networkService;
16
+ }
17
+ export function resetNetworkService() {
18
+ if (networkService) {
19
+ networkService.dispose();
20
+ networkService = null;
21
+ }
22
+ }
23
+ export function getNetworkClient() {
24
+ if (!networkClient) {
25
+ networkClient = new RNNetworkClient();
26
+ }
27
+ return networkClient;
28
+ }
29
+ export function initializeNetworkClient(timeout) {
30
+ networkClient = new RNNetworkClient(timeout);
31
+ return networkClient;
32
+ }
33
+ export function resetNetworkClient() {
34
+ networkClient = null;
35
+ }
36
+ //# sourceMappingURL=network-singleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-singleton.js","sourceRoot":"","sources":["../../src/network/network-singleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGpE,IAAI,cAAc,GAA4B,IAAI,CAAC;AACnD,IAAI,aAAa,GAA2B,IAAI,CAAC;AAEjD,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAA0B;IAE1B,IAAI,cAAc,EAAE,CAAC;QACnB,cAAc,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,cAAc,GAAG,OAAO,IAAI,IAAI,gBAAgB,EAAE,CAAC;IACnD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,IAAI,cAAc,EAAE,CAAC;QACnB,cAAc,CAAC,OAAO,EAAE,CAAC;QACzB,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,aAAa,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { NetInfoState } from '@react-native-community/netinfo';
2
+ import type { NetworkClient, NetworkResponse, NetworkRequestOptions, Optional } from '@sudobility/types';
3
+ import type { PlatformNetwork } from '@sudobility/di';
4
+ export declare class RNNetworkClient implements NetworkClient {
5
+ private defaultTimeout;
6
+ constructor(defaultTimeout?: number);
7
+ request<T = unknown>(url: string, options?: Optional<NetworkRequestOptions>): Promise<NetworkResponse<T>>;
8
+ get<T = unknown>(url: string, options?: Optional<Omit<NetworkRequestOptions, 'method' | 'body'>>): Promise<NetworkResponse<T>>;
9
+ post<T = unknown>(url: string, body?: Optional<unknown>, options?: Optional<Omit<NetworkRequestOptions, 'method'>>): Promise<NetworkResponse<T>>;
10
+ put<T = unknown>(url: string, body?: Optional<unknown>, options?: Optional<Omit<NetworkRequestOptions, 'method'>>): Promise<NetworkResponse<T>>;
11
+ delete<T = unknown>(url: string, options?: Optional<Omit<NetworkRequestOptions, 'method' | 'body'>>): Promise<NetworkResponse<T>>;
12
+ private convertBody;
13
+ private prepareBody;
14
+ private parseResponse;
15
+ private parseHeaders;
16
+ }
17
+ export declare class NetworkError extends Error {
18
+ status: number;
19
+ statusText: string;
20
+ constructor(message: string, status: number, statusText: string);
21
+ }
22
+ export declare class RNNetworkService implements PlatformNetwork {
23
+ private isOnlineState;
24
+ private listeners;
25
+ private unsubscribe;
26
+ constructor();
27
+ private initializeNetworkMonitoring;
28
+ private updateOnlineState;
29
+ private notifyListeners;
30
+ request(url: string, options: RequestInit): Promise<Response>;
31
+ isOnline(): boolean;
32
+ watchNetworkStatus(callback: (isOnline: boolean) => void): () => void;
33
+ getNetworkInfo(): Promise<NetInfoState>;
34
+ dispose(): void;
35
+ }
36
+ export declare const rnNetworkClient: RNNetworkClient;
37
+ export declare const rnNetworkService: RNNetworkService;
38
+ //# sourceMappingURL=network.rn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.rn.d.ts","sourceRoot":"","sources":["../../src/network/network.rn.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMtD,qBAAa,eAAgB,YAAW,aAAa;IACnD,OAAO,CAAC,cAAc,CAAS;gBAEnB,cAAc,GAAE,MAAc;IAIpC,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GACxC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAuCxB,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,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;IAIxB,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,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;IASxB,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,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;IASxB,MAAM,CAAC,CAAC,GAAG,OAAO,EACtB,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;IAI9B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,WAAW;YAOL,aAAa;IAe3B,OAAO,CAAC,YAAY;CAOrB;AAKD,qBAAa,YAAa,SAAQ,KAAK;IAG5B,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;gBAFzB,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM;CAK5B;AAMD,qBAAa,gBAAiB,YAAW,eAAe;IACtD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,WAAW,CAA6B;;IAMhD,OAAO,CAAC,2BAA2B;IAgBnC,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;IAIjB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAInE,QAAQ,IAAI,OAAO;IAInB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAY/D,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC;IAO7C,OAAO,IAAI,IAAI;CAOhB;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AACrD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,153 @@
1
+ import NetInfo from '@react-native-community/netinfo';
2
+ export class RNNetworkClient {
3
+ constructor(defaultTimeout = 30000) {
4
+ this.defaultTimeout = defaultTimeout;
5
+ }
6
+ async request(url, options) {
7
+ const timeout = options?.timeout ?? this.defaultTimeout;
8
+ const controller = new AbortController();
9
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
10
+ try {
11
+ const fetchOptions = {
12
+ method: options?.method ?? 'GET',
13
+ headers: options?.headers ?? undefined,
14
+ body: this.prepareBody(options?.body),
15
+ signal: controller.signal,
16
+ };
17
+ const response = await fetch(url, fetchOptions);
18
+ clearTimeout(timeoutId);
19
+ const data = await this.parseResponse(response);
20
+ return {
21
+ success: response.ok,
22
+ data,
23
+ timestamp: new Date().toISOString(),
24
+ status: response.status,
25
+ statusText: response.statusText,
26
+ headers: this.parseHeaders(response.headers),
27
+ ok: response.ok,
28
+ };
29
+ }
30
+ catch (error) {
31
+ clearTimeout(timeoutId);
32
+ if (error instanceof Error && error.name === 'AbortError') {
33
+ throw new NetworkError('Request timeout', 408, 'Request Timeout');
34
+ }
35
+ throw error;
36
+ }
37
+ }
38
+ async get(url, options) {
39
+ return this.request(url, { ...options, method: 'GET' });
40
+ }
41
+ async post(url, body, options) {
42
+ const bodyToSend = this.convertBody(body);
43
+ return this.request(url, {
44
+ ...options,
45
+ method: 'POST',
46
+ body: bodyToSend,
47
+ });
48
+ }
49
+ async put(url, body, options) {
50
+ const bodyToSend = this.convertBody(body);
51
+ return this.request(url, {
52
+ ...options,
53
+ method: 'PUT',
54
+ body: bodyToSend,
55
+ });
56
+ }
57
+ async delete(url, options) {
58
+ return this.request(url, { ...options, method: 'DELETE' });
59
+ }
60
+ convertBody(body) {
61
+ if (body === null || body === undefined)
62
+ return undefined;
63
+ if (typeof body === 'string')
64
+ return body;
65
+ if (body instanceof FormData || body instanceof Blob)
66
+ return body;
67
+ return JSON.stringify(body);
68
+ }
69
+ prepareBody(body) {
70
+ if (!body)
71
+ return undefined;
72
+ return body;
73
+ }
74
+ async parseResponse(response) {
75
+ const contentType = response.headers.get('content-type') ?? '';
76
+ if (contentType.includes('application/json')) {
77
+ return response.json();
78
+ }
79
+ if (contentType.includes('text/')) {
80
+ return response.text();
81
+ }
82
+ return response.blob();
83
+ }
84
+ parseHeaders(headers) {
85
+ const result = {};
86
+ headers.forEach((value, key) => {
87
+ result[key] = value;
88
+ });
89
+ return result;
90
+ }
91
+ }
92
+ export class NetworkError extends Error {
93
+ constructor(message, status, statusText) {
94
+ super(message);
95
+ this.status = status;
96
+ this.statusText = statusText;
97
+ this.name = 'NetworkError';
98
+ }
99
+ }
100
+ export class RNNetworkService {
101
+ constructor() {
102
+ this.isOnlineState = true;
103
+ this.listeners = new Set();
104
+ this.unsubscribe = null;
105
+ this.initializeNetworkMonitoring();
106
+ }
107
+ initializeNetworkMonitoring() {
108
+ NetInfo.fetch()
109
+ .then((state) => {
110
+ this.updateOnlineState(state);
111
+ })
112
+ .catch(() => {
113
+ });
114
+ this.unsubscribe = NetInfo.addEventListener((state) => {
115
+ this.updateOnlineState(state);
116
+ });
117
+ }
118
+ updateOnlineState(state) {
119
+ const isOnline = state.isConnected === true && state.isInternetReachable !== false;
120
+ if (this.isOnlineState !== isOnline) {
121
+ this.isOnlineState = isOnline;
122
+ this.notifyListeners(isOnline);
123
+ }
124
+ }
125
+ notifyListeners(isOnline) {
126
+ this.listeners.forEach((listener) => listener(isOnline));
127
+ }
128
+ async request(url, options) {
129
+ return fetch(url, options);
130
+ }
131
+ isOnline() {
132
+ return this.isOnlineState;
133
+ }
134
+ watchNetworkStatus(callback) {
135
+ this.listeners.add(callback);
136
+ return () => {
137
+ this.listeners.delete(callback);
138
+ };
139
+ }
140
+ async getNetworkInfo() {
141
+ return NetInfo.fetch();
142
+ }
143
+ dispose() {
144
+ if (this.unsubscribe) {
145
+ this.unsubscribe();
146
+ this.unsubscribe = null;
147
+ }
148
+ this.listeners.clear();
149
+ }
150
+ }
151
+ export const rnNetworkClient = new RNNetworkClient();
152
+ export const rnNetworkService = new RNNetworkService();
153
+ //# sourceMappingURL=network.rn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.rn.js","sourceRoot":"","sources":["../../src/network/network.rn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { NotificationService, NotificationOptions, NotificationResult, NotificationCapabilities, NotificationPermissionResult } from '@sudobility/di';
2
+ import type { Optional } from '@sudobility/types';
3
+ export declare class RNNotificationService implements NotificationService {
4
+ private clickHandler;
5
+ private defaultChannelId;
6
+ constructor();
7
+ private setupDefaultChannel;
8
+ isSupported(): boolean;
9
+ showNotification(title: string, options?: Optional<NotificationOptions>): Promise<NotificationResult>;
10
+ requestPermission(): Promise<NotificationPermissionResult>;
11
+ getPermissionStatus(): 'granted' | 'denied' | 'default' | 'unsupported';
12
+ hasPermission(): boolean;
13
+ setClickHandler(handler: (data?: Optional<unknown>) => void): void;
14
+ getClickHandler(): Optional<(data?: Optional<unknown>) => void>;
15
+ getCapabilities(): NotificationCapabilities;
16
+ closeNotification(notificationId: string): Promise<boolean>;
17
+ clearAllNotifications(): Promise<boolean>;
18
+ getBadgeCount(): Promise<number>;
19
+ setBadgeCount(count: number): Promise<void>;
20
+ }
21
+ export declare function getNotificationService(): RNNotificationService;
22
+ export declare function initializeNotificationService(service?: RNNotificationService): RNNotificationService;
23
+ export declare function resetNotificationService(): void;
24
+ export declare const rnNotificationService: RNNotificationService;
25
+ //# sourceMappingURL=notification.rn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.rn.d.ts","sourceRoot":"","sources":["../../src/notification/notification.rn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMlD,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,YAAY,CAAsD;IAC1E,OAAO,CAAC,gBAAgB,CAAqB;;IAS7C,OAAO,CAAC,mBAAmB;IAe3B,WAAW,IAAI,OAAO;IAQhB,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACtC,OAAO,CAAC,kBAAkB,CAAC;IA4CxB,iBAAiB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAuBhE,mBAAmB,IAAI,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa;IAUvE,aAAa,IAAI,OAAO;IASxB,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAOlE,eAAe,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAO/D,eAAe,IAAI,wBAAwB;IAerC,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY3D,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAYzC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAOhC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlD;AAKD,wBAAgB,sBAAsB,IAAI,qBAAqB,CAK9D;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,qBAAqB,CAGvB;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
@@ -0,0 +1,136 @@
1
+ import notifee, { AndroidImportance, AuthorizationStatus, } from '@notifee/react-native';
2
+ export class RNNotificationService {
3
+ constructor() {
4
+ this.clickHandler = null;
5
+ this.defaultChannelId = 'default';
6
+ this.setupDefaultChannel();
7
+ }
8
+ setupDefaultChannel() {
9
+ notifee
10
+ .createChannel({
11
+ id: this.defaultChannelId,
12
+ name: 'Default Notifications',
13
+ importance: AndroidImportance.HIGH,
14
+ })
15
+ .catch(() => {
16
+ });
17
+ }
18
+ isSupported() {
19
+ return true;
20
+ }
21
+ async showNotification(title, options) {
22
+ try {
23
+ const notificationConfig = {
24
+ title,
25
+ android: {
26
+ channelId: this.defaultChannelId,
27
+ smallIcon: options?.icon ?? 'ic_notification',
28
+ pressAction: {
29
+ id: 'default',
30
+ },
31
+ },
32
+ ios: {
33
+ sound: 'default',
34
+ },
35
+ };
36
+ if (options?.body) {
37
+ notificationConfig.body = options.body;
38
+ }
39
+ if (options?.data) {
40
+ notificationConfig.data = options.data;
41
+ }
42
+ const notificationId = await notifee.displayNotification(notificationConfig);
43
+ return {
44
+ success: true,
45
+ notificationId,
46
+ };
47
+ }
48
+ catch (error) {
49
+ return {
50
+ success: false,
51
+ error: error instanceof Error ? error.message : 'Unknown error',
52
+ };
53
+ }
54
+ }
55
+ async requestPermission() {
56
+ try {
57
+ const settings = await notifee.requestPermission();
58
+ const granted = settings.authorizationStatus === AuthorizationStatus.AUTHORIZED ||
59
+ settings.authorizationStatus === AuthorizationStatus.PROVISIONAL;
60
+ return {
61
+ granted,
62
+ permission: granted ? 'granted' : 'denied',
63
+ };
64
+ }
65
+ catch (error) {
66
+ return {
67
+ granted: false,
68
+ permission: 'denied',
69
+ error: error instanceof Error ? error.message : 'Unknown error',
70
+ };
71
+ }
72
+ }
73
+ getPermissionStatus() {
74
+ return 'default';
75
+ }
76
+ hasPermission() {
77
+ return true;
78
+ }
79
+ setClickHandler(handler) {
80
+ this.clickHandler = handler;
81
+ }
82
+ getClickHandler() {
83
+ return this.clickHandler;
84
+ }
85
+ getCapabilities() {
86
+ return {
87
+ supportsActions: true,
88
+ supportsIcon: true,
89
+ supportsBadge: true,
90
+ supportsData: true,
91
+ supportsSound: true,
92
+ supportsVibration: true,
93
+ maxActions: 3,
94
+ };
95
+ }
96
+ async closeNotification(notificationId) {
97
+ try {
98
+ await notifee.cancelNotification(notificationId);
99
+ return true;
100
+ }
101
+ catch {
102
+ return false;
103
+ }
104
+ }
105
+ async clearAllNotifications() {
106
+ try {
107
+ await notifee.cancelAllNotifications();
108
+ return true;
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ }
114
+ async getBadgeCount() {
115
+ return notifee.getBadgeCount();
116
+ }
117
+ async setBadgeCount(count) {
118
+ await notifee.setBadgeCount(count);
119
+ }
120
+ }
121
+ let notificationService = null;
122
+ export function getNotificationService() {
123
+ if (!notificationService) {
124
+ notificationService = new RNNotificationService();
125
+ }
126
+ return notificationService;
127
+ }
128
+ export function initializeNotificationService(service) {
129
+ notificationService = service ?? new RNNotificationService();
130
+ return notificationService;
131
+ }
132
+ export function resetNotificationService() {
133
+ notificationService = null;
134
+ }
135
+ export const rnNotificationService = new RNNotificationService();
136
+ //# sourceMappingURL=notification.rn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.rn.js","sourceRoot":"","sources":["../../src/notification/notification.rn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { StorageService } from '@sudobility/di';
2
+ import type { StorageType, Optional } from '@sudobility/types';
3
+ export declare class RNStorageService implements StorageService {
4
+ private storage;
5
+ constructor();
6
+ getItem(key: string): Promise<Optional<string>>;
7
+ setItem(key: string, value: string): Promise<void>;
8
+ removeItem(key: string): Promise<void>;
9
+ clear(): Promise<void>;
10
+ getAllKeys(): Promise<string[]>;
11
+ isAvailable(): boolean;
12
+ getType(): StorageType;
13
+ }
14
+ export declare class RNSerializedStorageService {
15
+ private storage;
16
+ constructor();
17
+ getObject<T>(key: string): Promise<Optional<T>>;
18
+ setObject<T>(key: string, value: T): Promise<void>;
19
+ removeObject(key: string): Promise<void>;
20
+ hasObject(key: string): Promise<boolean>;
21
+ }
22
+ export declare function getStorageService(): RNStorageService;
23
+ export declare function initializeStorageService(service?: RNStorageService): RNStorageService;
24
+ export declare function resetStorageService(): void;
25
+ //# sourceMappingURL=storage-singleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-singleton.d.ts","sourceRoot":"","sources":["../../src/storage/storage-singleton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM/D,qBAAa,gBAAiB,YAAW,cAAc;IACrD,OAAO,CAAC,OAAO,CAAY;;IAMrB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAI/C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrC,WAAW,IAAI,OAAO;IAKtB,OAAO,IAAI,WAAW;CAGvB;AAKD,qBAAa,0BAA0B;IACrC,OAAO,CAAC,OAAO,CAAY;;IAMrB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAW/C,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAI/C;AAKD,wBAAgB,iBAAiB,IAAI,gBAAgB,CAKpD;AAED,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,gBAAgB,GACzB,gBAAgB,CAGlB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}