ubkerp.transport.module 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 (152) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +136 -0
  3. package/lib/commonjs/assets/index.js +6 -0
  4. package/lib/commonjs/assets/index.js.map +1 -0
  5. package/lib/commonjs/components/index.js +6 -0
  6. package/lib/commonjs/components/index.js.map +1 -0
  7. package/lib/commonjs/constants/index.js +6 -0
  8. package/lib/commonjs/constants/index.js.map +1 -0
  9. package/lib/commonjs/hooks/index.js +6 -0
  10. package/lib/commonjs/hooks/index.js.map +1 -0
  11. package/lib/commonjs/index.js +34 -0
  12. package/lib/commonjs/index.js.map +1 -0
  13. package/lib/commonjs/navigation/index.js +6 -0
  14. package/lib/commonjs/navigation/index.js.map +1 -0
  15. package/lib/commonjs/package.json +1 -0
  16. package/lib/commonjs/providers/TransportContext.js +9 -0
  17. package/lib/commonjs/providers/TransportContext.js.map +1 -0
  18. package/lib/commonjs/providers/TransportProvider.js +46 -0
  19. package/lib/commonjs/providers/TransportProvider.js.map +1 -0
  20. package/lib/commonjs/providers/types.js +6 -0
  21. package/lib/commonjs/providers/types.js.map +1 -0
  22. package/lib/commonjs/providers/useTransport.js +16 -0
  23. package/lib/commonjs/providers/useTransport.js.map +1 -0
  24. package/lib/commonjs/screens/StudentRouteDetails/StudentRouteDetailsScreen.js +308 -0
  25. package/lib/commonjs/screens/StudentRouteDetails/StudentRouteDetailsScreen.js.map +1 -0
  26. package/lib/commonjs/screens/TransportDashboard/TransportDashboard.js +87 -0
  27. package/lib/commonjs/screens/TransportDashboard/TransportDashboard.js.map +1 -0
  28. package/lib/commonjs/services/api/createApiClient.js +116 -0
  29. package/lib/commonjs/services/api/createApiClient.js.map +1 -0
  30. package/lib/commonjs/services/api/types.js +6 -0
  31. package/lib/commonjs/services/api/types.js.map +1 -0
  32. package/lib/commonjs/services/index.js +6 -0
  33. package/lib/commonjs/services/index.js.map +1 -0
  34. package/lib/commonjs/services/transport/studentRouteDetails.js +10 -0
  35. package/lib/commonjs/services/transport/studentRouteDetails.js.map +1 -0
  36. package/lib/commonjs/services/transport/types.js +2 -0
  37. package/lib/commonjs/services/transport/types.js.map +1 -0
  38. package/lib/commonjs/store/index.js +6 -0
  39. package/lib/commonjs/store/index.js.map +1 -0
  40. package/lib/commonjs/types/index.js +2 -0
  41. package/lib/commonjs/types/index.js.map +1 -0
  42. package/lib/commonjs/types/transport.js +2 -0
  43. package/lib/commonjs/types/transport.js.map +1 -0
  44. package/lib/commonjs/utils/index.js +6 -0
  45. package/lib/commonjs/utils/index.js.map +1 -0
  46. package/lib/module/assets/index.js +4 -0
  47. package/lib/module/assets/index.js.map +1 -0
  48. package/lib/module/components/index.js +4 -0
  49. package/lib/module/components/index.js.map +1 -0
  50. package/lib/module/constants/index.js +4 -0
  51. package/lib/module/constants/index.js.map +1 -0
  52. package/lib/module/hooks/index.js +4 -0
  53. package/lib/module/hooks/index.js.map +1 -0
  54. package/lib/module/index.js +7 -0
  55. package/lib/module/index.js.map +1 -0
  56. package/lib/module/navigation/index.js +4 -0
  57. package/lib/module/navigation/index.js.map +1 -0
  58. package/lib/module/package.json +1 -0
  59. package/lib/module/providers/TransportContext.js +5 -0
  60. package/lib/module/providers/TransportContext.js.map +1 -0
  61. package/lib/module/providers/TransportProvider.js +41 -0
  62. package/lib/module/providers/TransportProvider.js.map +1 -0
  63. package/lib/module/providers/types.js +4 -0
  64. package/lib/module/providers/types.js.map +1 -0
  65. package/lib/module/providers/useTransport.js +12 -0
  66. package/lib/module/providers/useTransport.js.map +1 -0
  67. package/lib/module/screens/StudentRouteDetails/StudentRouteDetailsScreen.js +303 -0
  68. package/lib/module/screens/StudentRouteDetails/StudentRouteDetailsScreen.js.map +1 -0
  69. package/lib/module/screens/TransportDashboard/TransportDashboard.js +82 -0
  70. package/lib/module/screens/TransportDashboard/TransportDashboard.js.map +1 -0
  71. package/lib/module/services/api/createApiClient.js +111 -0
  72. package/lib/module/services/api/createApiClient.js.map +1 -0
  73. package/lib/module/services/api/types.js +4 -0
  74. package/lib/module/services/api/types.js.map +1 -0
  75. package/lib/module/services/index.js +4 -0
  76. package/lib/module/services/index.js.map +1 -0
  77. package/lib/module/services/transport/studentRouteDetails.js +6 -0
  78. package/lib/module/services/transport/studentRouteDetails.js.map +1 -0
  79. package/lib/module/services/transport/types.js +2 -0
  80. package/lib/module/services/transport/types.js.map +1 -0
  81. package/lib/module/store/index.js +4 -0
  82. package/lib/module/store/index.js.map +1 -0
  83. package/lib/module/types/index.js +2 -0
  84. package/lib/module/types/index.js.map +1 -0
  85. package/lib/module/types/transport.js +2 -0
  86. package/lib/module/types/transport.js.map +1 -0
  87. package/lib/module/utils/index.js +4 -0
  88. package/lib/module/utils/index.js.map +1 -0
  89. package/lib/typescript/assets/index.d.ts +2 -0
  90. package/lib/typescript/assets/index.d.ts.map +1 -0
  91. package/lib/typescript/components/index.d.ts +2 -0
  92. package/lib/typescript/components/index.d.ts.map +1 -0
  93. package/lib/typescript/constants/index.d.ts +2 -0
  94. package/lib/typescript/constants/index.d.ts.map +1 -0
  95. package/lib/typescript/hooks/index.d.ts +2 -0
  96. package/lib/typescript/hooks/index.d.ts.map +1 -0
  97. package/lib/typescript/index.d.ts +8 -0
  98. package/lib/typescript/index.d.ts.map +1 -0
  99. package/lib/typescript/navigation/index.d.ts +2 -0
  100. package/lib/typescript/navigation/index.d.ts.map +1 -0
  101. package/lib/typescript/providers/TransportContext.d.ts +8 -0
  102. package/lib/typescript/providers/TransportContext.d.ts.map +1 -0
  103. package/lib/typescript/providers/TransportProvider.d.ts +3 -0
  104. package/lib/typescript/providers/TransportProvider.d.ts.map +1 -0
  105. package/lib/typescript/providers/types.d.ts +28 -0
  106. package/lib/typescript/providers/types.d.ts.map +1 -0
  107. package/lib/typescript/providers/useTransport.d.ts +2 -0
  108. package/lib/typescript/providers/useTransport.d.ts.map +1 -0
  109. package/lib/typescript/screens/StudentRouteDetails/StudentRouteDetailsScreen.d.ts +6 -0
  110. package/lib/typescript/screens/StudentRouteDetails/StudentRouteDetailsScreen.d.ts.map +1 -0
  111. package/lib/typescript/screens/TransportDashboard/TransportDashboard.d.ts +12 -0
  112. package/lib/typescript/screens/TransportDashboard/TransportDashboard.d.ts.map +1 -0
  113. package/lib/typescript/services/api/createApiClient.d.ts +18 -0
  114. package/lib/typescript/services/api/createApiClient.d.ts.map +1 -0
  115. package/lib/typescript/services/api/types.d.ts +18 -0
  116. package/lib/typescript/services/api/types.d.ts.map +1 -0
  117. package/lib/typescript/services/index.d.ts +2 -0
  118. package/lib/typescript/services/index.d.ts.map +1 -0
  119. package/lib/typescript/services/transport/studentRouteDetails.d.ts +5 -0
  120. package/lib/typescript/services/transport/studentRouteDetails.d.ts.map +1 -0
  121. package/lib/typescript/services/transport/types.d.ts +7 -0
  122. package/lib/typescript/services/transport/types.d.ts.map +1 -0
  123. package/lib/typescript/store/index.d.ts +2 -0
  124. package/lib/typescript/store/index.d.ts.map +1 -0
  125. package/lib/typescript/types/index.d.ts +2 -0
  126. package/lib/typescript/types/index.d.ts.map +1 -0
  127. package/lib/typescript/types/transport.d.ts +12 -0
  128. package/lib/typescript/types/transport.d.ts.map +1 -0
  129. package/lib/typescript/utils/index.d.ts +2 -0
  130. package/lib/typescript/utils/index.d.ts.map +1 -0
  131. package/package.json +61 -0
  132. package/src/assets/index.ts +2 -0
  133. package/src/components/index.ts +2 -0
  134. package/src/constants/index.ts +2 -0
  135. package/src/hooks/index.ts +2 -0
  136. package/src/index.ts +10 -0
  137. package/src/navigation/index.ts +2 -0
  138. package/src/providers/TransportContext.ts +11 -0
  139. package/src/providers/TransportProvider.tsx +47 -0
  140. package/src/providers/types.ts +28 -0
  141. package/src/providers/useTransport.ts +11 -0
  142. package/src/screens/StudentRouteDetails/StudentRouteDetailsScreen.tsx +284 -0
  143. package/src/screens/TransportDashboard/TransportDashboard.tsx +93 -0
  144. package/src/services/api/createApiClient.ts +170 -0
  145. package/src/services/api/types.ts +30 -0
  146. package/src/services/index.ts +2 -0
  147. package/src/services/transport/studentRouteDetails.ts +10 -0
  148. package/src/services/transport/types.ts +7 -0
  149. package/src/store/index.ts +2 -0
  150. package/src/types/index.ts +2 -0
  151. package/src/types/transport.ts +12 -0
  152. package/src/utils/index.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ApiClient } from '../services/api/types';
2
+ export type TransportContextValue = {
3
+ api: ApiClient;
4
+ apiBaseUrl: string;
5
+ fileBaseUrl?: string;
6
+ };
7
+ export declare const TransportContext: import("react").Context<TransportContextValue | null>;
8
+ //# sourceMappingURL=TransportContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransportContext.d.ts","sourceRoot":"","sources":["../../../src/providers/TransportContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,uDAAoD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TransportProviderProps } from './types';
2
+ export declare function TransportProvider({ children, apiBaseUrl, fileBaseUrl, authToken, getAuthToken, headers, refreshAuthToken, onApiError, retry, }: TransportProviderProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=TransportProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransportProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/TransportProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,SAAS,CAAC;AAGpD,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,KAAK,GACN,EAAE,sBAAsB,2CA8BxB"}
@@ -0,0 +1,28 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ApiError } from '../services/api/types';
3
+ export type TransportHeaders = Record<string, string>;
4
+ export type GetAuthToken = () => Promise<string | null | undefined> | string | null | undefined;
5
+ export type RefreshAuthToken = (args: {
6
+ failedRequest: {
7
+ url?: string;
8
+ method?: string;
9
+ status?: number;
10
+ };
11
+ currentToken?: string | null;
12
+ }) => Promise<string | null | undefined>;
13
+ export type TransportProviderProps = {
14
+ children: ReactNode;
15
+ apiBaseUrl: string;
16
+ fileBaseUrl?: string;
17
+ authToken?: string;
18
+ getAuthToken?: GetAuthToken;
19
+ headers?: TransportHeaders;
20
+ refreshAuthToken?: RefreshAuthToken;
21
+ onApiError?: (error: ApiError) => void;
22
+ retry?: {
23
+ retries?: number;
24
+ retryDelayMs?: number;
25
+ retryOnStatuses?: number[];
26
+ };
27
+ };
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE;IACpC,aAAa,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAChE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;CACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function useTransport(): import("./TransportContext").TransportContextValue;
2
+ //# sourceMappingURL=useTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTransport.d.ts","sourceRoot":"","sources":["../../../src/providers/useTransport.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,uDAM3B"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export type StudentRouteDetailsScreenProps = {
3
+ renderTop?: () => React.ReactNode;
4
+ };
5
+ export declare function StudentRouteDetailsScreen({ renderTop }: StudentRouteDetailsScreenProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=StudentRouteDetailsScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StudentRouteDetailsScreen.d.ts","sourceRoot":"","sources":["../../../../src/screens/StudentRouteDetails/StudentRouteDetailsScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAgBvE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;CACnC,CAAC;AAaF,wBAAgB,yBAAyB,CAAC,EAAC,SAAS,EAAC,EAAE,8BAA8B,2CAoIpF"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export type TransportDashboardItem = {
3
+ id: string;
4
+ title: string;
5
+ onPress: () => void;
6
+ icon?: React.ReactNode;
7
+ };
8
+ export type TransportDashboardProps = {
9
+ items?: TransportDashboardItem[];
10
+ };
11
+ export declare function TransportDashboard({ items }: TransportDashboardProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=TransportDashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransportDashboard.d.ts","sourceRoot":"","sources":["../../../../src/screens/TransportDashboard/TransportDashboard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAC;AAUrC,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAClC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EAAC,KAAK,EAAC,EAAE,uBAAuB,2CAuBlE"}
@@ -0,0 +1,18 @@
1
+ import type { ApiClient, ApiError } from './types';
2
+ import type { GetAuthToken, RefreshAuthToken, TransportHeaders } from '../../providers/types';
3
+ type CreateApiClientArgs = {
4
+ baseUrl: string;
5
+ authToken?: string;
6
+ getAuthToken?: GetAuthToken;
7
+ headers?: TransportHeaders;
8
+ refreshAuthToken?: RefreshAuthToken;
9
+ onApiError?: (error: ApiError) => void;
10
+ retry?: {
11
+ retries?: number;
12
+ retryDelayMs?: number;
13
+ retryOnStatuses?: number[];
14
+ };
15
+ };
16
+ export declare function createApiClient(args: CreateApiClientArgs): ApiClient;
17
+ export {};
18
+ //# sourceMappingURL=createApiClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createApiClient.d.ts","sourceRoot":"","sources":["../../../../src/services/api/createApiClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;CACH,CAAC;AAiCF,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAkHpE"}
@@ -0,0 +1,18 @@
1
+ import type { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
2
+ export type ApiRequestConfig = AxiosRequestConfig;
3
+ export type ApiError = {
4
+ message: string;
5
+ status?: number;
6
+ code?: string;
7
+ url?: string;
8
+ method?: string;
9
+ data?: unknown;
10
+ raw?: AxiosError;
11
+ };
12
+ export type ApiClient = {
13
+ instance: AxiosInstance;
14
+ request<T = unknown>(config: ApiRequestConfig): Promise<AxiosResponse<T>>;
15
+ get<T = unknown>(url: string, config?: ApiRequestConfig): Promise<T>;
16
+ post<T = unknown>(url: string, data?: unknown, config?: ApiRequestConfig): Promise<T>;
17
+ };
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/api/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,aAAa,EACd,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,CAAC,GAAG,OAAO,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,CAAC,CAAC,CAAC;CACf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ApiClient } from '../api/types';
2
+ import type { StudentRouteDetails } from '../../types/transport';
3
+ import type { ApiEnvelope } from './types';
4
+ export declare function getStudentRouteDetails(api: ApiClient): Promise<ApiEnvelope<StudentRouteDetails[]>>;
5
+ //# sourceMappingURL=studentRouteDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studentRouteDetails.d.ts","sourceRoot":"","sources":["../../../../src/services/transport/studentRouteDetails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEzC,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,SAAS,+CAI1D"}
@@ -0,0 +1,7 @@
1
+ export type ApiEnvelope<T> = {
2
+ Status?: string;
3
+ Message?: string;
4
+ message?: string;
5
+ data?: T;
6
+ };
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/transport/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;CACV,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { StudentRouteDetails } from './transport';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type StudentRouteDetails = {
2
+ route_title?: string;
3
+ vehicle_no?: string;
4
+ vehicle_model?: string;
5
+ stop_name?: string;
6
+ pickup_time?: string;
7
+ drop_time?: string;
8
+ driver?: string;
9
+ driver_image?: string;
10
+ contact_number?: string | number;
11
+ };
12
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/types/transport.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "ubkerp.transport.module",
3
+ "version": "0.1.0",
4
+ "description": "UBK ERP reusable Transport Module for React Native apps",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": ""
9
+ },
10
+ "keywords": [
11
+ "react-native",
12
+ "transport",
13
+ "module",
14
+ "library"
15
+ ],
16
+ "source": "src/index.ts",
17
+ "main": "lib/commonjs/index.js",
18
+ "module": "lib/module/index.js",
19
+ "types": "lib/typescript/index.d.ts",
20
+ "react-native": "src/index.ts",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./lib/typescript/index.d.ts",
24
+ "react-native": "./src/index.ts",
25
+ "require": "./lib/commonjs/index.js",
26
+ "import": "./lib/module/index.js"
27
+ },
28
+ "./package.json": "./package.json"
29
+ },
30
+ "files": [
31
+ "src",
32
+ "lib",
33
+ "README.md",
34
+ "LICENSE"
35
+ ],
36
+ "scripts": {
37
+ "clean": "rimraf lib",
38
+ "build": "bob build",
39
+ "typecheck": "tsc -p tsconfig.json --noEmit",
40
+ "prepare": "bob build"
41
+ },
42
+ "peerDependencies": {
43
+ "react": ">=18",
44
+ "react-native": ">=0.72"
45
+ },
46
+ "dependencies": {
47
+ "axios": "^1.7.8"
48
+ },
49
+ "devDependencies": {
50
+ "@react-native/babel-preset": "0.75.4",
51
+ "@react-native/metro-config": "0.75.4",
52
+ "@types/react": "18.2.6",
53
+ "@types/react-native": "0.72.8",
54
+ "react-native-builder-bob": "0.38.0",
55
+ "react": "18.3.1",
56
+ "react-native": "0.75.4",
57
+ "rimraf": "^6.0.1",
58
+ "typescript": "^5.0.4"
59
+ }
60
+ }
61
+
@@ -0,0 +1,2 @@
1
+ export {};
2
+
@@ -0,0 +1,2 @@
1
+ export {};
2
+
@@ -0,0 +1,2 @@
1
+ export {};
2
+
@@ -0,0 +1,2 @@
1
+ export {};
2
+
package/src/index.ts ADDED
@@ -0,0 +1,10 @@
1
+ export {TransportProvider} from './providers/TransportProvider';
2
+ export {useTransport} from './providers/useTransport';
3
+
4
+ export {TransportDashboard} from './screens/TransportDashboard/TransportDashboard';
5
+ export {StudentRouteDetailsScreen} from './screens/StudentRouteDetails/StudentRouteDetailsScreen';
6
+
7
+ export type {TransportProviderProps} from './providers/types';
8
+ export type {ApiClient, ApiRequestConfig} from './services/api/types';
9
+ export type {StudentRouteDetails} from './types/transport';
10
+
@@ -0,0 +1,2 @@
1
+ export {};
2
+
@@ -0,0 +1,11 @@
1
+ import {createContext} from 'react';
2
+ import type {ApiClient} from '../services/api/types';
3
+
4
+ export type TransportContextValue = {
5
+ api: ApiClient;
6
+ apiBaseUrl: string;
7
+ fileBaseUrl?: string;
8
+ };
9
+
10
+ export const TransportContext = createContext<TransportContextValue | null>(null);
11
+
@@ -0,0 +1,47 @@
1
+ import React, {useMemo} from 'react';
2
+ import {TransportContext} from './TransportContext';
3
+ import type {TransportProviderProps} from './types';
4
+ import {createApiClient} from '../services/api/createApiClient';
5
+
6
+ export function TransportProvider({
7
+ children,
8
+ apiBaseUrl,
9
+ fileBaseUrl,
10
+ authToken,
11
+ getAuthToken,
12
+ headers,
13
+ refreshAuthToken,
14
+ onApiError,
15
+ retry,
16
+ }: TransportProviderProps) {
17
+ const api = useMemo(() => {
18
+ return createApiClient({
19
+ baseUrl: apiBaseUrl,
20
+ authToken,
21
+ getAuthToken,
22
+ headers,
23
+ refreshAuthToken,
24
+ onApiError,
25
+ retry,
26
+ });
27
+ }, [
28
+ apiBaseUrl,
29
+ authToken,
30
+ getAuthToken,
31
+ headers,
32
+ refreshAuthToken,
33
+ onApiError,
34
+ retry,
35
+ ]);
36
+
37
+ const value = useMemo(() => {
38
+ return {api, apiBaseUrl, fileBaseUrl};
39
+ }, [api, apiBaseUrl, fileBaseUrl]);
40
+
41
+ return (
42
+ <TransportContext.Provider value={value}>
43
+ {children}
44
+ </TransportContext.Provider>
45
+ );
46
+ }
47
+
@@ -0,0 +1,28 @@
1
+ import type {ReactNode} from 'react';
2
+ import type {ApiError} from '../services/api/types';
3
+
4
+ export type TransportHeaders = Record<string, string>;
5
+
6
+ export type GetAuthToken = () => Promise<string | null | undefined> | string | null | undefined;
7
+
8
+ export type RefreshAuthToken = (args: {
9
+ failedRequest: {url?: string; method?: string; status?: number};
10
+ currentToken?: string | null;
11
+ }) => Promise<string | null | undefined>;
12
+
13
+ export type TransportProviderProps = {
14
+ children: ReactNode;
15
+ apiBaseUrl: string;
16
+ fileBaseUrl?: string;
17
+ authToken?: string;
18
+ getAuthToken?: GetAuthToken;
19
+ headers?: TransportHeaders;
20
+ refreshAuthToken?: RefreshAuthToken;
21
+ onApiError?: (error: ApiError) => void;
22
+ retry?: {
23
+ retries?: number;
24
+ retryDelayMs?: number;
25
+ retryOnStatuses?: number[];
26
+ };
27
+ };
28
+
@@ -0,0 +1,11 @@
1
+ import {useContext} from 'react';
2
+ import {TransportContext} from './TransportContext';
3
+
4
+ export function useTransport() {
5
+ const ctx = useContext(TransportContext);
6
+ if (!ctx) {
7
+ throw new Error('TransportProvider is missing');
8
+ }
9
+ return ctx;
10
+ }
11
+