pocketbase-react 0.1.7 → 0.1.9

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 (40) hide show
  1. package/dist/pocketbase-react.js +113 -35
  2. package/dist/pocketbase-react.min.js +4 -4
  3. package/es/context/Pocketbase.d.ts +3 -5
  4. package/es/context/Pocketbase.js +8 -10
  5. package/es/context/auth.d.ts +38 -0
  6. package/es/context/auth.js +67 -0
  7. package/es/context/client.d.ts +1 -1
  8. package/es/context/content.js +9 -8
  9. package/es/context/index.d.ts +1 -0
  10. package/es/context/index.js +1 -0
  11. package/es/hooks/index.d.ts +1 -0
  12. package/es/hooks/index.js +2 -1
  13. package/es/hooks/useAuth.d.ts +4 -0
  14. package/es/hooks/useAuth.js +8 -0
  15. package/es/hooks/useClientContext.d.ts +1 -1
  16. package/es/service/Authentication.d.ts +23 -0
  17. package/es/service/Authentication.js +32 -0
  18. package/es/service/Storage.d.ts +5 -0
  19. package/es/service/Storage.js +20 -0
  20. package/es/store/store.js +7 -19
  21. package/lib/context/Pocketbase.js +7 -9
  22. package/lib/context/auth.js +74 -0
  23. package/lib/context/content.js +9 -8
  24. package/lib/context/index.js +11 -0
  25. package/lib/hooks/index.js +11 -0
  26. package/lib/hooks/useAuth.js +12 -0
  27. package/lib/service/Authentication.js +37 -0
  28. package/lib/service/Storage.js +26 -0
  29. package/lib/store/store.js +7 -19
  30. package/package.json +3 -3
  31. package/src/context/Pocketbase.tsx +10 -15
  32. package/src/context/auth.tsx +113 -0
  33. package/src/context/client.tsx +1 -1
  34. package/src/context/content.tsx +7 -8
  35. package/src/context/index.ts +2 -1
  36. package/src/hooks/index.ts +2 -1
  37. package/src/hooks/useAuth.ts +7 -0
  38. package/src/service/Authentication.ts +50 -0
  39. package/src/service/Storage.ts +23 -0
  40. package/src/store/store.tsx +7 -21
@@ -0,0 +1,67 @@
1
+ import * as React from 'react';
2
+ import { createContext } from 'react';
3
+ import { useClientContext } from '../hooks/useClientContext';
4
+ import { StorageService } from '../service/Storage';
5
+ export const AuthContext = createContext(null);
6
+ export const AuthProvider = props => {
7
+ const client = useClientContext();
8
+ const [authProviders, setAuthProviders] = React.useState();
9
+ const actions = {
10
+ registerWithEmail: async (email, password) => {
11
+ await (client == null ? void 0 : client.users.create({
12
+ email: email,
13
+ password: password,
14
+ passwordConfirm: password
15
+ }));
16
+ },
17
+ signInWithEmail: async (email, password) => {
18
+ await (client == null ? void 0 : client.users.authViaEmail(email, password));
19
+ },
20
+ signInWithProvider: async provider => {
21
+ const authProvider = authProviders == null ? void 0 : authProviders.find(p => p.name === provider);
22
+ const url = (authProvider == null ? void 0 : authProvider.authUrl) + props.redirectUrl;
23
+ await props.openURL(url);
24
+ await StorageService.set('provider', JSON.stringify(authProviders));
25
+ },
26
+ submitProviderResult: async url => {
27
+ const params = new URLSearchParams(url.split('?')[1]);
28
+ const code = params.get('code');
29
+ const state = params.get('state');
30
+ const providersString = await StorageService.get('provider');
31
+ if (providersString) {
32
+ const providers = JSON.parse(providersString);
33
+ const authProvider = providers == null ? void 0 : providers.find(p => p.state === state);
34
+ if (authProvider && code) {
35
+ await (client == null ? void 0 : client.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, props.redirectUrl));
36
+ }
37
+ }
38
+ },
39
+ signOut: () => {
40
+ client == null ? void 0 : client.authStore.clear();
41
+ },
42
+ sendPasswordResetEmail: async email => {
43
+ await (client == null ? void 0 : client.users.requestPasswordReset(email));
44
+ },
45
+ sendEmailVerification: async email => {
46
+ await (client == null ? void 0 : client.users.requestVerification(email));
47
+ },
48
+ updateProfile: async (id, record) => {
49
+ await (client == null ? void 0 : client.records.update('profiles', id, record));
50
+ },
51
+ updateEmail: async email => {
52
+ await (client == null ? void 0 : client.users.requestEmailChange(email));
53
+ },
54
+ deleteUser: async id => {
55
+ await (client == null ? void 0 : client.users.delete(id));
56
+ }
57
+ };
58
+ React.useEffect(() => {
59
+ (async () => {
60
+ const methods = await (client == null ? void 0 : client.users.listAuthMethods());
61
+ setAuthProviders(methods == null ? void 0 : methods.authProviders);
62
+ })();
63
+ }, [props.redirectUrl]);
64
+ return /*#__PURE__*/React.createElement(AuthContext.Provider, {
65
+ value: actions
66
+ }, props.children);
67
+ };
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import PocketBase from 'pocketbase';
2
+ import PocketBase from '@tobicrain/pocketbase';
3
3
  export declare const ClientContext: React.Context<PocketBase | null>;
4
4
  export declare type ClientProviderProps = {
5
5
  children: React.ReactNode;
@@ -10,7 +10,6 @@ export const ContentProvider = props => {
10
10
  const [collections, _] = React.useState(props.collections || []);
11
11
  const actions = {
12
12
  subscribe: async collectionName => {
13
- // save local that collectionName should be subscribed
14
13
  await (client == null ? void 0 : client.realtime.subscribe(collectionName, event => {
15
14
  switch (event.action) {
16
15
  case 'create':
@@ -25,27 +24,29 @@ export const ContentProvider = props => {
25
24
  default:
26
25
  break;
27
26
  }
28
- }));
27
+ }).catch(_error => {}));
29
28
  },
30
29
  unsubscribe: collectionName => {
31
30
  if (collectionName) {
32
- client == null ? void 0 : client.realtime.unsubscribe(collectionName);
31
+ client == null ? void 0 : client.realtime.unsubscribe(collectionName).catch(_error => {});
32
+ ;
33
33
  } else {
34
- client == null ? void 0 : client.realtime.unsubscribe();
34
+ client == null ? void 0 : client.realtime.unsubscribe().catch(_error => {});
35
+ ;
35
36
  }
36
37
  },
37
38
  fetch: async collectionName => {
38
- const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200));
39
+ const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200).catch(_error => {}));
39
40
  dispatch(recordsAction.setRecords(collectionName, records));
40
41
  },
41
42
  create: async (collectionName, record) => {
42
- await (client == null ? void 0 : client.records.create(collectionName, record));
43
+ await (client == null ? void 0 : client.records.create(collectionName, record).catch(_error => {}));
43
44
  },
44
45
  update: async (collectionName, recordId, record) => {
45
- await (client == null ? void 0 : client.records.update(collectionName, recordId, record));
46
+ await (client == null ? void 0 : client.records.update(collectionName, recordId, record).catch(_error => {}));
46
47
  },
47
48
  delete: async (collectionName, recordId) => {
48
- await (client == null ? void 0 : client.records.delete(collectionName, recordId));
49
+ await (client == null ? void 0 : client.records.delete(collectionName, recordId).catch(_error => {}));
49
50
  }
50
51
  };
51
52
  useEffect(() => {
@@ -1,3 +1,4 @@
1
1
  export * from './content';
2
2
  export * from './client';
3
+ export * from './auth';
3
4
  export * from './Pocketbase';
@@ -1,3 +1,4 @@
1
1
  export * from './content';
2
2
  export * from './client';
3
+ export * from './auth';
3
4
  export * from './Pocketbase';
@@ -1,2 +1,3 @@
1
1
  export * from './useAppContent';
2
2
  export * from './useClientContext';
3
+ export * from './useAuth';
package/es/hooks/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './useAppContent';
2
- export * from './useClientContext';
2
+ export * from './useClientContext';
3
+ export * from './useAuth';
@@ -0,0 +1,4 @@
1
+ import { AuthActions } from '../context/auth';
2
+ export declare function useAuth(): {
3
+ actions: AuthActions | null;
4
+ };
@@ -0,0 +1,8 @@
1
+ import { useContext } from 'react';
2
+ import { AuthContext } from '../context/auth';
3
+ export function useAuth() {
4
+ const actions = useContext(AuthContext);
5
+ return {
6
+ actions
7
+ };
8
+ }
@@ -1,2 +1,2 @@
1
- declare const useClientContext: () => import("pocketbase").default | null;
1
+ declare const useClientContext: () => import("@tobicrain/pocketbase").default | null;
2
2
  export { useClientContext };
@@ -0,0 +1,23 @@
1
+ import PocketBase from "@tobicrain/pocketbase";
2
+ export declare class AuthenticationService {
3
+ private client;
4
+ redirect_url: string;
5
+ constructor(client: PocketBase);
6
+ getListAuthMethods(): Promise<{
7
+ [key: string]: any;
8
+ emailPassword: boolean;
9
+ authProviders: {
10
+ name: string;
11
+ state: string;
12
+ codeVerifier: string;
13
+ codeChallenge: string;
14
+ codeChallengeMethod: string;
15
+ authUrl: string;
16
+ }[];
17
+ }>;
18
+ getDataAuth(): Promise<void>;
19
+ AuthWithOauth(provider: string, code: string, verifier: string): Promise<void>;
20
+ AuthWithEmail(email: string, password: string): Promise<void>;
21
+ RegisterWithEmail(email: string, password: string): Promise<void>;
22
+ getUserData(id: string, token: string): Promise<import("@tobicrain/pocketbase").User>;
23
+ }
@@ -0,0 +1,32 @@
1
+ export class AuthenticationService {
2
+ constructor(client) {
3
+ this.client = void 0;
4
+ this.redirect_url = void 0;
5
+ this.client = client;
6
+ this.redirect_url = '';
7
+ }
8
+ async getListAuthMethods() {
9
+ return await this.client.users.listAuthMethods();
10
+ }
11
+ async getDataAuth() {
12
+ await this.client.users.authViaOAuth2('google', 'CODE', 'VERIFIER', 'REDIRECT_URL');
13
+ }
14
+ async AuthWithOauth(provider, code, verifier) {
15
+ await this.client.users.authViaOAuth2(provider, code, verifier, this.redirect_url);
16
+ }
17
+ async AuthWithEmail(email, password) {
18
+ await this.client.users.authViaEmail(email, password);
19
+ }
20
+ async RegisterWithEmail(email, password) {
21
+ await this.client.users.create({
22
+ email: email,
23
+ password: password,
24
+ passwordConfirm: password
25
+ });
26
+ }
27
+ async getUserData(id, token) {
28
+ const headers = new Headers();
29
+ headers.append("Authorization", "user " + token);
30
+ return await this.client.users.getOne(id);
31
+ }
32
+ }
@@ -0,0 +1,5 @@
1
+ export declare class StorageService {
2
+ static get(key: string): Promise<string | null>;
3
+ static set(key: string, value: string): Promise<void>;
4
+ static remove(key: string): Promise<void>;
5
+ }
@@ -0,0 +1,20 @@
1
+ import AsyncStorage from "@react-native-async-storage/async-storage";
2
+ export class StorageService {
3
+ static async get(key) {
4
+ return typeof document !== 'undefined' ? localStorage.getItem(key) : await AsyncStorage.getItem(key);
5
+ }
6
+ static async set(key, value) {
7
+ if (typeof document !== 'undefined') {
8
+ return localStorage.setItem(key, value);
9
+ } else {
10
+ return await AsyncStorage.setItem(key, value);
11
+ }
12
+ }
13
+ static async remove(key) {
14
+ if (typeof document !== 'undefined') {
15
+ return localStorage.removeItem(key);
16
+ } else {
17
+ return await AsyncStorage.removeItem(key);
18
+ }
19
+ }
20
+ }
package/es/store/store.js CHANGED
@@ -3,28 +3,16 @@ import { persistStore, persistReducer } from 'redux-persist';
3
3
  import { useSelector } from 'react-redux';
4
4
  import { appReducer } from './reducers';
5
5
  import thunk from 'redux-thunk';
6
- import AsyncStorage from '@react-native-async-storage/async-storage';
6
+ import { StorageService } from '../service/Storage';
7
7
  const CustomStorage = {
8
- getItem: async (_key, ..._args) => {
9
- if (typeof document !== 'undefined') {
10
- return localStorage.getItem(_key);
11
- } else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
12
- return await AsyncStorage.getItem(_key);
13
- }
8
+ getItem: async (key, ..._args) => {
9
+ return await StorageService.get(key);
14
10
  },
15
- setItem: async (_key, _value, ..._args) => {
16
- if (typeof document !== 'undefined') {
17
- return localStorage.setItem(_key, _value);
18
- } else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
19
- return await AsyncStorage.setItem(_key, _value);
20
- }
11
+ setItem: async (key, value, ..._args) => {
12
+ return StorageService.set(key, value);
21
13
  },
22
- removeItem: async (_key, ..._args) => {
23
- if (typeof document !== 'undefined') {
24
- return localStorage.removeItem(_key);
25
- } else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
26
- return await AsyncStorage.removeItem(_key);
27
- }
14
+ removeItem: async (key, ..._args) => {
15
+ return StorageService.remove(key);
28
16
  }
29
17
  };
30
18
  export const persistConfig = {
@@ -4,32 +4,30 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  exports.__esModule = true;
5
5
  exports.PocketbaseContext = exports.Pocketbase = void 0;
6
6
  var React = _interopRequireWildcard(require("react"));
7
- var _pocketbase = _interopRequireDefault(require("pocketbase"));
7
+ var _pocketbase = _interopRequireDefault(require("@tobicrain/pocketbase"));
8
8
  var _reactRedux = require("react-redux");
9
9
  var _react2 = require("redux-persist/integration/react");
10
10
  var store = _interopRequireWildcard(require("../store/store"));
11
11
  var _client = require("./client");
12
12
  var _content = require("./content");
13
+ var _auth = require("./auth");
13
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
16
  const PocketbaseContext = (0, React.createContext)(null);
16
17
  exports.PocketbaseContext = PocketbaseContext;
17
18
  const Pocketbase = props => {
18
- const [client, setClient] = React.useState(null);
19
- (0, React.useEffect)(() => {
20
- const client = new _pocketbase.default(props.serverURL);
21
- client.admins.authViaEmail(props.credentials.username, props.credentials.password).then(() => {
22
- setClient(client);
23
- });
24
- }, [props.serverURL]);
19
+ const client = new _pocketbase.default(props.serverURL);
25
20
  return client ? /*#__PURE__*/React.createElement(_client.ClientProvider, {
26
21
  client: client
27
22
  }, /*#__PURE__*/React.createElement(_reactRedux.Provider, {
28
23
  store: store.store
29
24
  }, /*#__PURE__*/React.createElement(_react2.PersistGate, {
30
25
  persistor: store.persistor
26
+ }, /*#__PURE__*/React.createElement(_auth.AuthProvider, {
27
+ redirectUrl: props.redirectURL,
28
+ openURL: props.openURL
31
29
  }, /*#__PURE__*/React.createElement(_content.ContentProvider, {
32
30
  collections: props.initialCollections
33
- }, props.children)))) : null;
31
+ }, props.children))))) : null;
34
32
  };
35
33
  exports.Pocketbase = Pocketbase;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.AuthProvider = exports.AuthContext = void 0;
5
+ var React = _interopRequireWildcard(require("react"));
6
+ var _useClientContext = require("../hooks/useClientContext");
7
+ var _Storage = require("../service/Storage");
8
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
+ const AuthContext = (0, React.createContext)(null);
11
+ exports.AuthContext = AuthContext;
12
+ const AuthProvider = props => {
13
+ const client = (0, _useClientContext.useClientContext)();
14
+ const [authProviders, setAuthProviders] = React.useState();
15
+ const actions = {
16
+ registerWithEmail: async (email, password) => {
17
+ await (client == null ? void 0 : client.users.create({
18
+ email: email,
19
+ password: password,
20
+ passwordConfirm: password
21
+ }));
22
+ },
23
+ signInWithEmail: async (email, password) => {
24
+ await (client == null ? void 0 : client.users.authViaEmail(email, password));
25
+ },
26
+ signInWithProvider: async provider => {
27
+ const authProvider = authProviders == null ? void 0 : authProviders.find(p => p.name === provider);
28
+ const url = (authProvider == null ? void 0 : authProvider.authUrl) + props.redirectUrl;
29
+ await props.openURL(url);
30
+ await _Storage.StorageService.set('provider', JSON.stringify(authProviders));
31
+ },
32
+ submitProviderResult: async url => {
33
+ const params = new URLSearchParams(url.split('?')[1]);
34
+ const code = params.get('code');
35
+ const state = params.get('state');
36
+ const providersString = await _Storage.StorageService.get('provider');
37
+ if (providersString) {
38
+ const providers = JSON.parse(providersString);
39
+ const authProvider = providers == null ? void 0 : providers.find(p => p.state === state);
40
+ if (authProvider && code) {
41
+ await (client == null ? void 0 : client.users.authViaOAuth2(authProvider.name, code, authProvider.codeVerifier, props.redirectUrl));
42
+ }
43
+ }
44
+ },
45
+ signOut: () => {
46
+ client == null ? void 0 : client.authStore.clear();
47
+ },
48
+ sendPasswordResetEmail: async email => {
49
+ await (client == null ? void 0 : client.users.requestPasswordReset(email));
50
+ },
51
+ sendEmailVerification: async email => {
52
+ await (client == null ? void 0 : client.users.requestVerification(email));
53
+ },
54
+ updateProfile: async (id, record) => {
55
+ await (client == null ? void 0 : client.records.update('profiles', id, record));
56
+ },
57
+ updateEmail: async email => {
58
+ await (client == null ? void 0 : client.users.requestEmailChange(email));
59
+ },
60
+ deleteUser: async id => {
61
+ await (client == null ? void 0 : client.users.delete(id));
62
+ }
63
+ };
64
+ React.useEffect(() => {
65
+ (async () => {
66
+ const methods = await (client == null ? void 0 : client.users.listAuthMethods());
67
+ setAuthProviders(methods == null ? void 0 : methods.authProviders);
68
+ })();
69
+ }, [props.redirectUrl]);
70
+ return /*#__PURE__*/React.createElement(AuthContext.Provider, {
71
+ value: actions
72
+ }, props.children);
73
+ };
74
+ exports.AuthProvider = AuthProvider;
@@ -16,7 +16,6 @@ const ContentProvider = props => {
16
16
  const [collections, _] = React.useState(props.collections || []);
17
17
  const actions = {
18
18
  subscribe: async collectionName => {
19
- // save local that collectionName should be subscribed
20
19
  await (client == null ? void 0 : client.realtime.subscribe(collectionName, event => {
21
20
  switch (event.action) {
22
21
  case 'create':
@@ -31,27 +30,29 @@ const ContentProvider = props => {
31
30
  default:
32
31
  break;
33
32
  }
34
- }));
33
+ }).catch(_error => {}));
35
34
  },
36
35
  unsubscribe: collectionName => {
37
36
  if (collectionName) {
38
- client == null ? void 0 : client.realtime.unsubscribe(collectionName);
37
+ client == null ? void 0 : client.realtime.unsubscribe(collectionName).catch(_error => {});
38
+ ;
39
39
  } else {
40
- client == null ? void 0 : client.realtime.unsubscribe();
40
+ client == null ? void 0 : client.realtime.unsubscribe().catch(_error => {});
41
+ ;
41
42
  }
42
43
  },
43
44
  fetch: async collectionName => {
44
- const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200));
45
+ const records = await (client == null ? void 0 : client.records.getFullList(collectionName, 200).catch(_error => {}));
45
46
  dispatch(_actions.recordsAction.setRecords(collectionName, records));
46
47
  },
47
48
  create: async (collectionName, record) => {
48
- await (client == null ? void 0 : client.records.create(collectionName, record));
49
+ await (client == null ? void 0 : client.records.create(collectionName, record).catch(_error => {}));
49
50
  },
50
51
  update: async (collectionName, recordId, record) => {
51
- await (client == null ? void 0 : client.records.update(collectionName, recordId, record));
52
+ await (client == null ? void 0 : client.records.update(collectionName, recordId, record).catch(_error => {}));
52
53
  },
53
54
  delete: async (collectionName, recordId) => {
54
- await (client == null ? void 0 : client.records.delete(collectionName, recordId));
55
+ await (client == null ? void 0 : client.records.delete(collectionName, recordId).catch(_error => {}));
55
56
  }
56
57
  };
57
58
  (0, React.useEffect)(() => {
@@ -23,6 +23,17 @@ Object.keys(_client).forEach(function (key) {
23
23
  }
24
24
  });
25
25
  });
26
+ var _auth = require("./auth");
27
+ Object.keys(_auth).forEach(function (key) {
28
+ if (key === "default" || key === "__esModule") return;
29
+ if (key in exports && exports[key] === _auth[key]) return;
30
+ Object.defineProperty(exports, key, {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _auth[key];
34
+ }
35
+ });
36
+ });
26
37
  var _Pocketbase = require("./Pocketbase");
27
38
  Object.keys(_Pocketbase).forEach(function (key) {
28
39
  if (key === "default" || key === "__esModule") return;
@@ -22,4 +22,15 @@ Object.keys(_useClientContext).forEach(function (key) {
22
22
  return _useClientContext[key];
23
23
  }
24
24
  });
25
+ });
26
+ var _useAuth = require("./useAuth");
27
+ Object.keys(_useAuth).forEach(function (key) {
28
+ if (key === "default" || key === "__esModule") return;
29
+ if (key in exports && exports[key] === _useAuth[key]) return;
30
+ Object.defineProperty(exports, key, {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _useAuth[key];
34
+ }
35
+ });
25
36
  });
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useAuth = useAuth;
5
+ var _react = require("react");
6
+ var _auth = require("../context/auth");
7
+ function useAuth() {
8
+ const actions = (0, _react.useContext)(_auth.AuthContext);
9
+ return {
10
+ actions
11
+ };
12
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.AuthenticationService = void 0;
5
+ class AuthenticationService {
6
+ constructor(client) {
7
+ this.client = void 0;
8
+ this.redirect_url = void 0;
9
+ this.client = client;
10
+ this.redirect_url = '';
11
+ }
12
+ async getListAuthMethods() {
13
+ return await this.client.users.listAuthMethods();
14
+ }
15
+ async getDataAuth() {
16
+ await this.client.users.authViaOAuth2('google', 'CODE', 'VERIFIER', 'REDIRECT_URL');
17
+ }
18
+ async AuthWithOauth(provider, code, verifier) {
19
+ await this.client.users.authViaOAuth2(provider, code, verifier, this.redirect_url);
20
+ }
21
+ async AuthWithEmail(email, password) {
22
+ await this.client.users.authViaEmail(email, password);
23
+ }
24
+ async RegisterWithEmail(email, password) {
25
+ await this.client.users.create({
26
+ email: email,
27
+ password: password,
28
+ passwordConfirm: password
29
+ });
30
+ }
31
+ async getUserData(id, token) {
32
+ const headers = new Headers();
33
+ headers.append("Authorization", "user " + token);
34
+ return await this.client.users.getOne(id);
35
+ }
36
+ }
37
+ exports.AuthenticationService = AuthenticationService;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.StorageService = void 0;
6
+ var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
7
+ class StorageService {
8
+ static async get(key) {
9
+ return typeof document !== 'undefined' ? localStorage.getItem(key) : await _asyncStorage.default.getItem(key);
10
+ }
11
+ static async set(key, value) {
12
+ if (typeof document !== 'undefined') {
13
+ return localStorage.setItem(key, value);
14
+ } else {
15
+ return await _asyncStorage.default.setItem(key, value);
16
+ }
17
+ }
18
+ static async remove(key) {
19
+ if (typeof document !== 'undefined') {
20
+ return localStorage.removeItem(key);
21
+ } else {
22
+ return await _asyncStorage.default.removeItem(key);
23
+ }
24
+ }
25
+ }
26
+ exports.StorageService = StorageService;
@@ -8,28 +8,16 @@ var _reduxPersist = require("redux-persist");
8
8
  var _reactRedux = require("react-redux");
9
9
  var _reducers = require("./reducers");
10
10
  var _reduxThunk = _interopRequireDefault(require("redux-thunk"));
11
- var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
11
+ var _Storage = require("../service/Storage");
12
12
  const CustomStorage = {
13
- getItem: async (_key, ..._args) => {
14
- if (typeof document !== 'undefined') {
15
- return localStorage.getItem(_key);
16
- } else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
17
- return await _asyncStorage.default.getItem(_key);
18
- }
13
+ getItem: async (key, ..._args) => {
14
+ return await _Storage.StorageService.get(key);
19
15
  },
20
- setItem: async (_key, _value, ..._args) => {
21
- if (typeof document !== 'undefined') {
22
- return localStorage.setItem(_key, _value);
23
- } else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
24
- return await _asyncStorage.default.setItem(_key, _value);
25
- }
16
+ setItem: async (key, value, ..._args) => {
17
+ return _Storage.StorageService.set(key, value);
26
18
  },
27
- removeItem: async (_key, ..._args) => {
28
- if (typeof document !== 'undefined') {
29
- return localStorage.removeItem(_key);
30
- } else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
31
- return await _asyncStorage.default.removeItem(_key);
32
- }
19
+ removeItem: async (key, ..._args) => {
20
+ return _Storage.StorageService.remove(key);
33
21
  }
34
22
  };
35
23
  const persistConfig = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pocketbase-react",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "Unofficial React SDK (React, React Native, Expo) for interacting with the PocketBase JS SDK",
5
5
  "keywords": [
6
6
  "pocketbase",
@@ -45,7 +45,7 @@
45
45
  "prepublishOnly": "npm run build"
46
46
  },
47
47
  "peerDependencies": {
48
- "pocketbase": "^0.7.3"
48
+ "@tobicrain/pocketbase": "^0.7.3"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@babel/cli": "^7.12.1",
@@ -68,7 +68,7 @@
68
68
  "dependencies": {
69
69
  "@react-native-async-storage/async-storage": "^1.17.10",
70
70
  "@reduxjs/toolkit": "^1.8.5",
71
- "pocketbase": "^0.7.3",
71
+ "@tobicrain/pocketbase": "^0.7.3",
72
72
  "react-redux": "^8.0.4",
73
73
  "redux": "^4.2.0",
74
74
  "redux-persist": "^6.0.0"