@aether-baas/react-native 3.1.1

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.
@@ -0,0 +1,62 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type ClientConfig, type StorageAdapter, type TenantUser, type AuthChangeEvent } from '@aether-baas/core';
3
+ /**
4
+ * Adapter para @react-native-async-storage/async-storage.
5
+ */
6
+ export declare function createAsyncStorageAdapter(asyncStorage: {
7
+ getItem: (key: string) => Promise<string | null>;
8
+ setItem: (key: string, value: string) => Promise<void>;
9
+ removeItem: (key: string) => Promise<void>;
10
+ clear?: () => Promise<void>;
11
+ getAllKeys?: () => Promise<readonly string[]>;
12
+ }): StorageAdapter;
13
+ /**
14
+ * Adapter para expo-secure-store (tokens sensíveis).
15
+ */
16
+ export declare function createSecureStoreAdapter(secureStore: {
17
+ getItemAsync: (key: string) => Promise<string | null>;
18
+ setItemAsync: (key: string, value: string) => Promise<void>;
19
+ deleteItemAsync: (key: string) => Promise<void>;
20
+ }): StorageAdapter;
21
+ /**
22
+ * Adapter para react-native-mmkv (storage ultra-rápido).
23
+ */
24
+ export declare function createMMKVAdapter(mmkv: {
25
+ getString: (key: string) => string | undefined;
26
+ set: (key: string, value: string) => void;
27
+ delete: (key: string) => void;
28
+ clearAll?: () => void;
29
+ getAllKeys?: () => string[];
30
+ }): StorageAdapter;
31
+ export interface AetherProviderProps {
32
+ config: ClientConfig;
33
+ storage: StorageAdapter;
34
+ secureStorage?: StorageAdapter;
35
+ children: ReactNode;
36
+ onAuthStateChange?: (event: AuthChangeEvent, user: TenantUser | null) => void;
37
+ }
38
+ /**
39
+ * Provider do Aether para React Native.
40
+ *
41
+ * @example
42
+ * ```tsx
43
+ * import AsyncStorage from '@react-native-async-storage/async-storage';
44
+ * import { AetherProvider, createAsyncStorageAdapter } from '@aether/react-native';
45
+ *
46
+ * export default function App() {
47
+ * return (
48
+ * <AetherProvider
49
+ * config={{ baseUrl: '...', apiKey: '...' }}
50
+ * storage={createAsyncStorageAdapter(AsyncStorage)}
51
+ * >
52
+ * <Navigation />
53
+ * </AetherProvider>
54
+ * );
55
+ * }
56
+ * ```
57
+ */
58
+ export declare function AetherProvider({ config, storage, secureStorage, children, onAuthStateChange, }: AetherProviderProps): import("react/jsx-runtime").JSX.Element;
59
+ export { useAetherContext, useAetherClient, useAuth, useCollection, useDocument, useStorage, useFunctions, useFunction, useAI, useAIAsk, useAISearch, AuthGuard, GuestGuard, RoleGuard, ShowIfAuthenticated, ShowIfGuest, ShowIfRole, } from '@aether-baas/react';
60
+ export type { StorageAdapter } from '@aether-baas/core';
61
+ export declare const VERSION = "3.1.1";
62
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAMA,OAAc,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAS3B;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE;IACtD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CAC/C,GAAG,cAAc,CAUjB;AAMD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE;IACpD,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtD,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD,GAAG,cAAc,CAMjB;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/C,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;CAC7B,GAAG,cAAc,CAQjB;AAMD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,aAAa,EACb,QAAQ,EACR,iBAAiB,GAClB,EAAE,mBAAmB,2CAYrB;AAMD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,88 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // =============================================================================
3
+ // @aether/react-native
4
+ // =============================================================================
5
+ // SDK para React Native com adapters específicos para mobile.
6
+ // =============================================================================
7
+ import { useMemo } from 'react';
8
+ import { PlataformaClient, } from '@aether-baas/core';
9
+ import { AetherProvider as BaseAetherProvider, } from '@aether-baas/react';
10
+ // =============================================================================
11
+ // ASYNC STORAGE ADAPTER
12
+ // =============================================================================
13
+ /**
14
+ * Adapter para @react-native-async-storage/async-storage.
15
+ */
16
+ export function createAsyncStorageAdapter(asyncStorage) {
17
+ return {
18
+ getItem: (key) => asyncStorage.getItem(key),
19
+ setItem: (key, value) => asyncStorage.setItem(key, value),
20
+ removeItem: (key) => asyncStorage.removeItem(key),
21
+ clear: asyncStorage.clear ? () => asyncStorage.clear() : undefined,
22
+ getAllKeys: asyncStorage.getAllKeys
23
+ ? async () => [...await asyncStorage.getAllKeys()]
24
+ : undefined,
25
+ };
26
+ }
27
+ // =============================================================================
28
+ // SECURE STORE ADAPTER (EXPO)
29
+ // =============================================================================
30
+ /**
31
+ * Adapter para expo-secure-store (tokens sensíveis).
32
+ */
33
+ export function createSecureStoreAdapter(secureStore) {
34
+ return {
35
+ getItem: (key) => secureStore.getItemAsync(key),
36
+ setItem: (key, value) => secureStore.setItemAsync(key, value),
37
+ removeItem: (key) => secureStore.deleteItemAsync(key),
38
+ };
39
+ }
40
+ // =============================================================================
41
+ // MMKV ADAPTER
42
+ // =============================================================================
43
+ /**
44
+ * Adapter para react-native-mmkv (storage ultra-rápido).
45
+ */
46
+ export function createMMKVAdapter(mmkv) {
47
+ return {
48
+ getItem: (key) => mmkv.getString(key) ?? null,
49
+ setItem: (key, value) => mmkv.set(key, value),
50
+ removeItem: (key) => mmkv.delete(key),
51
+ clear: mmkv.clearAll ? () => mmkv.clearAll() : undefined,
52
+ getAllKeys: mmkv.getAllKeys ? () => mmkv.getAllKeys() : undefined,
53
+ };
54
+ }
55
+ /**
56
+ * Provider do Aether para React Native.
57
+ *
58
+ * @example
59
+ * ```tsx
60
+ * import AsyncStorage from '@react-native-async-storage/async-storage';
61
+ * import { AetherProvider, createAsyncStorageAdapter } from '@aether/react-native';
62
+ *
63
+ * export default function App() {
64
+ * return (
65
+ * <AetherProvider
66
+ * config={{ baseUrl: '...', apiKey: '...' }}
67
+ * storage={createAsyncStorageAdapter(AsyncStorage)}
68
+ * >
69
+ * <Navigation />
70
+ * </AetherProvider>
71
+ * );
72
+ * }
73
+ * ```
74
+ */
75
+ export function AetherProvider({ config, storage, secureStorage, children, onAuthStateChange, }) {
76
+ const client = useMemo(() => {
77
+ const aether = new PlataformaClient({ ...config, persistSession: true });
78
+ aether.setStorageAdapter(secureStorage ?? storage);
79
+ return aether;
80
+ }, [config, storage, secureStorage]);
81
+ return (_jsx(BaseAetherProvider, { client: client, onAuthStateChange: onAuthStateChange, children: children }));
82
+ }
83
+ // =============================================================================
84
+ // RE-EXPORTS
85
+ // =============================================================================
86
+ export { useAetherContext, useAetherClient, useAuth, useCollection, useDocument, useStorage, useFunctions, useFunction, useAI, useAIAsk, useAISearch, AuthGuard, GuestGuard, RoleGuard, ShowIfAuthenticated, ShowIfGuest, ShowIfRole, } from '@aether-baas/react';
87
+ export const VERSION = '3.1.1';
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@aether-baas/react-native",
3
+ "version": "3.1.1",
4
+ "description": "Aether SDK para React Native - Adapters e componentes para mobile",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md"
18
+ ],
19
+ "dependencies": {
20
+ "@aether-baas/react": "3.1.1",
21
+ "@aether-baas/core": "3.1.1"
22
+ },
23
+ "peerDependencies": {
24
+ "react": ">=17.0.0",
25
+ "react-native": ">=0.70.0"
26
+ },
27
+ "peerDependenciesMeta": {
28
+ "@react-native-async-storage/async-storage": {
29
+ "optional": true
30
+ },
31
+ "expo-secure-store": {
32
+ "optional": true
33
+ },
34
+ "react-native-mmkv": {
35
+ "optional": true
36
+ }
37
+ },
38
+ "devDependencies": {
39
+ "@types/react": "^18.2.0",
40
+ "react": "^18.2.0",
41
+ "typescript": "^5.3.0"
42
+ },
43
+ "engines": {
44
+ "node": ">=18"
45
+ },
46
+ "keywords": [
47
+ "aether",
48
+ "react-native",
49
+ "mobile",
50
+ "baas",
51
+ "firebase",
52
+ "supabase",
53
+ "expo"
54
+ ],
55
+ "author": "Allan Felipe de Souza",
56
+ "license": "MIT",
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "https://github.com/allanfsouza/aether-sdk",
60
+ "directory": "packages/react-native"
61
+ },
62
+ "scripts": {
63
+ "build": "tsc",
64
+ "dev": "tsc --watch",
65
+ "clean": "rm -rf dist",
66
+ "typecheck": "tsc --noEmit"
67
+ }
68
+ }