dauth-context-react 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -148
- package/dist/dauth-context-react.cjs.development.js +14 -48
- package/dist/dauth-context-react.cjs.development.js.map +1 -1
- package/dist/dauth-context-react.cjs.production.min.js +1 -1
- package/dist/dauth-context-react.cjs.production.min.js.map +1 -1
- package/dist/dauth-context-react.esm.js +12 -48
- package/dist/dauth-context-react.esm.js.map +1 -1
- package/dist/index.d.ts +3 -28
- package/dist/initialDauthState.d.ts +9 -7
- package/dist/reducer/dauth.actions.d.ts +7 -4
- package/package.json +61 -1
- package/src/api/dauth.api.ts +17 -10
- package/src/api/utils/config.ts +15 -15
- package/src/constants.ts +1 -1
- package/src/index.tsx +69 -64
- package/src/initialDauthState.ts +35 -56
- package/src/reducer/dauth.actions.ts +54 -16
- package/src/reducer/dauth.reducer.ts +19 -19
- package/src/reducer/dauth.types.ts +1 -1
package/README.md
CHANGED
|
@@ -1,160 +1,67 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
Congrats! You just saved yourself hours of work by bootstrapping this project with TSDX. Let’s get you oriented with what’s here and how to use it.
|
|
4
|
-
|
|
5
|
-
> This TSDX setup is meant for developing React component libraries (not apps!) that can be published to NPM. If you’re looking to build a React-based app, you should use `create-react-app`, `razzle`, `nextjs`, `gatsby`, or `react-static`.
|
|
6
|
-
|
|
7
|
-
> If you’re new to TypeScript and React, checkout [this handy cheatsheet](https://github.com/sw-yx/react-typescript-cheatsheet/)
|
|
8
|
-
|
|
9
|
-
## Commands
|
|
10
|
-
|
|
11
|
-
TSDX scaffolds your new library inside `/src`, and also sets up a [Parcel-based](https://parceljs.org) playground for it inside `/example`.
|
|
12
|
-
|
|
13
|
-
The recommended workflow is to run TSDX in one terminal:
|
|
1
|
+
# Dauth React Context
|
|
2
|
+
This is a simple example of how to use a custom `DauthProvider`, and how to utilize the `Dauth` authentication context in your React application.
|
|
14
3
|
|
|
4
|
+
## Installation
|
|
5
|
+
You can install this package via npm. Make sure you have Node.js installed on your machine. Then, in your project directory, run the following command:
|
|
15
6
|
```bash
|
|
16
|
-
npm
|
|
7
|
+
npm install dauth-react-context
|
|
17
8
|
```
|
|
18
9
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Then run the example inside another:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
cd example
|
|
25
|
-
npm i # or yarn to install dependencies
|
|
26
|
-
npm start # or yarn start
|
|
10
|
+
## Code Example
|
|
11
|
+
Here's a simplified example of how to use Dauth Provider:
|
|
27
12
|
```
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
This is the folder structure we set up for you:
|
|
50
|
-
|
|
51
|
-
```txt
|
|
52
|
-
/example
|
|
53
|
-
index.html
|
|
54
|
-
index.tsx # test your component here in a demo app
|
|
55
|
-
package.json
|
|
56
|
-
tsconfig.json
|
|
57
|
-
/src
|
|
58
|
-
index.tsx # EDIT THIS
|
|
59
|
-
/test
|
|
60
|
-
blah.test.tsx # EDIT THIS
|
|
61
|
-
.gitignore
|
|
62
|
-
package.json
|
|
63
|
-
README.md # EDIT THIS
|
|
64
|
-
tsconfig.json
|
|
13
|
+
import React from 'react';
|
|
14
|
+
import ReactDOM from 'react-dom';
|
|
15
|
+
import { RouterProvider } from 'react-router-dom';
|
|
16
|
+
import router from './router/router';
|
|
17
|
+
import { DauthProvider } from 'dauth-react-context';
|
|
18
|
+
|
|
19
|
+
ReactDOM.render(
|
|
20
|
+
<React.StrictMode>
|
|
21
|
+
<DauthProvider
|
|
22
|
+
domainName={domainName}
|
|
23
|
+
sid={sid}
|
|
24
|
+
ssid={ssid}
|
|
25
|
+
>
|
|
26
|
+
<RouterProvider
|
|
27
|
+
router={router}
|
|
28
|
+
fallbackElement={<></>}
|
|
29
|
+
/>
|
|
30
|
+
</DauthProvider>
|
|
31
|
+
</React.StrictMode>,
|
|
32
|
+
document.getElementById('root')
|
|
33
|
+
);
|
|
65
34
|
```
|
|
66
35
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
We do not set up `react-testing-library` for you yet, we welcome contributions and documentation on this.
|
|
70
|
-
|
|
71
|
-
### Rollup
|
|
72
|
-
|
|
73
|
-
TSDX uses [Rollup](https://rollupjs.org) as a bundler and generates multiple rollup configs for various module formats and build settings. See [Optimizations](#optimizations) for details.
|
|
74
|
-
|
|
75
|
-
### TypeScript
|
|
76
|
-
|
|
77
|
-
`tsconfig.json` is set up to interpret `dom` and `esnext` types, as well as `react` for `jsx`. Adjust according to your needs.
|
|
78
|
-
|
|
79
|
-
## Continuous Integration
|
|
80
|
-
|
|
81
|
-
### GitHub Actions
|
|
82
|
-
|
|
83
|
-
Two actions are added by default:
|
|
84
|
-
|
|
85
|
-
- `main` which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix
|
|
86
|
-
- `size` which comments cost comparison of your library on every pull request using [`size-limit`](https://github.com/ai/size-limit)
|
|
87
|
-
|
|
88
|
-
## Optimizations
|
|
89
|
-
|
|
90
|
-
Please see the main `tsdx` [optimizations docs](https://github.com/palmerhq/tsdx#optimizations). In particular, know that you can take advantage of development-only optimizations:
|
|
91
|
-
|
|
92
|
-
```js
|
|
93
|
-
// ./types/index.d.ts
|
|
94
|
-
declare var __DEV__: boolean;
|
|
95
|
-
|
|
96
|
-
// inside your code...
|
|
97
|
-
if (__DEV__) {
|
|
98
|
-
console.log('foo');
|
|
99
|
-
}
|
|
36
|
+
## Example: Using Authentication Context
|
|
37
|
+
Here's an example of how to use the authentication context (dauth-react-context) in your components:
|
|
100
38
|
```
|
|
39
|
+
import React, { useContext } from 'react';
|
|
40
|
+
import { DauthContext } from 'dauth-react-context';
|
|
41
|
+
|
|
42
|
+
function SomeComponent() {
|
|
43
|
+
const { isAuthenticated, isLoading, user, loginWithRedirect, logout, getAccessToken } = useContext(DauthContext);
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
isLoading ? <div>Loading...</div> :
|
|
47
|
+
isAuthenticated ? (
|
|
48
|
+
<div>
|
|
49
|
+
Hello {user.name}
|
|
50
|
+
<button onClick={() => logout()}>Logout</button>
|
|
51
|
+
</div>
|
|
52
|
+
) : (
|
|
53
|
+
<div>
|
|
54
|
+
<button onClick={() => loginWithRedirect()}>Login</button>
|
|
55
|
+
</div>
|
|
56
|
+
)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
101
59
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
## Module Formats
|
|
105
|
-
|
|
106
|
-
CJS, ESModules, and UMD module formats are supported.
|
|
107
|
-
|
|
108
|
-
The appropriate paths are configured in `package.json` and `dist/index.js` accordingly. Please report if any issues are found.
|
|
109
|
-
|
|
110
|
-
## Deploying the Example Playground
|
|
111
|
-
|
|
112
|
-
The Playground is just a simple [Parcel](https://parceljs.org) app, you can deploy it anywhere you would normally deploy that. Here are some guidelines for **manually** deploying with the Netlify CLI (`npm i -g netlify-cli`):
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
cd example # if not already in the example folder
|
|
116
|
-
npm run build # builds to dist
|
|
117
|
-
netlify deploy # deploy the dist folder
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Alternatively, if you already have a git repo connected, you can set up continuous deployment with Netlify:
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
netlify init
|
|
124
|
-
# build command: yarn build && cd example && yarn && yarn build
|
|
125
|
-
# directory to deploy: example/dist
|
|
126
|
-
# pick yes for netlify.toml
|
|
60
|
+
export default SomeComponent;
|
|
127
61
|
```
|
|
128
62
|
|
|
129
|
-
##
|
|
130
|
-
|
|
131
|
-
Per Palmer Group guidelines, [always use named exports.](https://github.com/palmerhq/typescript#exports) Code split inside your React app instead of your React library.
|
|
132
|
-
|
|
133
|
-
## Including Styles
|
|
134
|
-
|
|
135
|
-
There are many ways to ship styles, including with CSS-in-JS. TSDX has no opinion on this, configure how you like.
|
|
136
|
-
|
|
137
|
-
For vanilla CSS, you can include it at the root directory and add it to the `files` section in your `package.json`, so that it can be imported separately by your users and run through their bundler's loader.
|
|
138
|
-
|
|
139
|
-
## Publishing to NPM
|
|
140
|
-
|
|
141
|
-
We recommend using [np](https://github.com/sindresorhus/np).
|
|
142
|
-
|
|
143
|
-
## Usage with Lerna
|
|
144
|
-
|
|
145
|
-
When creating a new package with TSDX within a project set up with Lerna, you might encounter a `Cannot resolve dependency` error when trying to run the `example` project. To fix that you will need to make changes to the `package.json` file _inside the `example` directory_.
|
|
146
|
-
|
|
147
|
-
The problem is that due to the nature of how dependencies are installed in Lerna projects, the aliases in the example project's `package.json` might not point to the right place, as those dependencies might have been installed in the root of your Lerna project.
|
|
148
|
-
|
|
149
|
-
Change the `alias` to point to where those packages are actually installed. This depends on the directory structure of your Lerna project, so the actual path might be different from the diff below.
|
|
150
|
-
|
|
151
|
-
```diff
|
|
152
|
-
"alias": {
|
|
153
|
-
- "react": "../node_modules/react",
|
|
154
|
-
- "react-dom": "../node_modules/react-dom"
|
|
155
|
-
+ "react": "../../../node_modules/react",
|
|
156
|
-
+ "react-dom": "../../../node_modules/react-dom"
|
|
157
|
-
},
|
|
158
|
-
```
|
|
63
|
+
## About
|
|
64
|
+
This project is maintained by David T. Pizarro Frick.
|
|
159
65
|
|
|
160
|
-
|
|
66
|
+
## License
|
|
67
|
+
This project is licensed under the MIT License.
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
6
|
+
|
|
5
7
|
var React = require('react');
|
|
8
|
+
var React__default = _interopDefault(React);
|
|
6
9
|
|
|
7
10
|
function _regeneratorRuntime() {
|
|
8
11
|
_regeneratorRuntime = function () {
|
|
@@ -350,42 +353,9 @@ function _extends() {
|
|
|
350
353
|
return _extends.apply(this, arguments);
|
|
351
354
|
}
|
|
352
355
|
|
|
353
|
-
// export interface IDauthDomain {
|
|
354
|
-
// name: string
|
|
355
|
-
// loginRedirect: string
|
|
356
|
-
// allowedOrigins: string[]
|
|
357
|
-
// }
|
|
358
|
-
// export interface IDauthState {
|
|
359
|
-
// user: IDauthUser
|
|
360
|
-
// domain: IDauthDomain
|
|
361
|
-
// isLoading: boolean
|
|
362
|
-
// isAuthenticated: boolean
|
|
363
|
-
// loginWithRedirect: () => void
|
|
364
|
-
// logout: () => void
|
|
365
|
-
// getAccessToken: () => void
|
|
366
|
-
// }
|
|
367
|
-
// const userState = {
|
|
368
|
-
// _id: "",
|
|
369
|
-
// ssid: "",
|
|
370
|
-
// name: "",
|
|
371
|
-
// lastname: "",
|
|
372
|
-
// nickname: "",
|
|
373
|
-
// email: "",
|
|
374
|
-
// is_verified: false,
|
|
375
|
-
// language: "",
|
|
376
|
-
// avatar: "",
|
|
377
|
-
// createdAt: new Date(),
|
|
378
|
-
// updatedAt: new Date(),
|
|
379
|
-
// last_login: new Date(),
|
|
380
|
-
// }
|
|
381
|
-
var domainState = {
|
|
382
|
-
name: "",
|
|
383
|
-
loginRedirect: "",
|
|
384
|
-
allowedOrigins: [""]
|
|
385
|
-
};
|
|
386
356
|
var initialDauthState = {
|
|
387
357
|
user: {},
|
|
388
|
-
domain:
|
|
358
|
+
domain: {},
|
|
389
359
|
isLoading: true,
|
|
390
360
|
isAuthenticated: false,
|
|
391
361
|
loginWithRedirect: function loginWithRedirect() {},
|
|
@@ -415,9 +385,9 @@ function userReducer(state, action) {
|
|
|
415
385
|
}
|
|
416
386
|
}
|
|
417
387
|
|
|
418
|
-
var isLocalhost = /*#__PURE__*/Boolean(window.location.hostname ===
|
|
419
|
-
var apiVersion =
|
|
420
|
-
var serverDomain =
|
|
388
|
+
var isLocalhost = /*#__PURE__*/Boolean(window.location.hostname === 'localhost' || window.location.hostname === '[::1]' || /*#__PURE__*/window.location.hostname.match(/(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm) || /*#__PURE__*/window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));
|
|
389
|
+
var apiVersion = 'v1';
|
|
390
|
+
var serverDomain = 'dauth.ovh';
|
|
421
391
|
function getServerBasePath(_ref) {
|
|
422
392
|
var domainName = _ref.domainName;
|
|
423
393
|
var serverPort = 4012;
|
|
@@ -442,10 +412,10 @@ var getTenantUserAPI = /*#__PURE__*/function () {
|
|
|
442
412
|
while (1) switch (_context.prev = _context.next) {
|
|
443
413
|
case 0:
|
|
444
414
|
params = {
|
|
445
|
-
method:
|
|
415
|
+
method: 'GET',
|
|
446
416
|
headers: {
|
|
447
417
|
Authorization: "" + token,
|
|
448
|
-
|
|
418
|
+
'Content-Type': 'application/json'
|
|
449
419
|
}
|
|
450
420
|
};
|
|
451
421
|
_context.next = 3;
|
|
@@ -635,18 +605,15 @@ function _setLogoutAction() {
|
|
|
635
605
|
return _setLogoutAction.apply(this, arguments);
|
|
636
606
|
}
|
|
637
607
|
|
|
638
|
-
// Delete me
|
|
639
|
-
var Thing = function Thing() {
|
|
640
|
-
return React.createElement("div", null, "the snozzberries taste like snozzberries");
|
|
641
|
-
};
|
|
642
608
|
var DauthProvider = function DauthProvider(props) {
|
|
643
609
|
var domainName = props.domainName,
|
|
644
610
|
sid = props.sid,
|
|
645
611
|
ssid = props.ssid,
|
|
646
612
|
children = props.children;
|
|
647
613
|
var _useReducer = React.useReducer(userReducer, initialDauthState),
|
|
648
|
-
|
|
614
|
+
ds = _useReducer[0],
|
|
649
615
|
dispatch = _useReducer[1];
|
|
616
|
+
var dauthState = ds;
|
|
650
617
|
// Catch login redirect
|
|
651
618
|
React.useEffect(function () {
|
|
652
619
|
var queryString = window.location.search;
|
|
@@ -690,12 +657,12 @@ var DauthProvider = function DauthProvider(props) {
|
|
|
690
657
|
logout: logout
|
|
691
658
|
});
|
|
692
659
|
}, [dauthState, loginWithRedirect, logout]);
|
|
693
|
-
return
|
|
660
|
+
return React__default.createElement(DauthContext.Provider, {
|
|
694
661
|
value: memoProvider
|
|
695
662
|
}, children);
|
|
696
663
|
};
|
|
697
664
|
var DauthContext = /*#__PURE__*/React.createContext(initialDauthState);
|
|
698
|
-
var
|
|
665
|
+
var useDauth = function useDauth() {
|
|
699
666
|
var context = React.useContext(DauthContext);
|
|
700
667
|
if (!context) {
|
|
701
668
|
throw new Error('useMyContext debe ser utilizado dentro de un MyContextProvider');
|
|
@@ -704,6 +671,5 @@ var useDauthContext = function useDauthContext() {
|
|
|
704
671
|
};
|
|
705
672
|
|
|
706
673
|
exports.DauthProvider = DauthProvider;
|
|
707
|
-
exports.
|
|
708
|
-
exports.useDauthContext = useDauthContext;
|
|
674
|
+
exports.useDauth = useDauth;
|
|
709
675
|
//# sourceMappingURL=dauth-context-react.cjs.development.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-context-react.cjs.development.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n\t_id: string\n\tssid: string\n\tname: string\n\tlastname: string\n\tnickname: string\n\temail: string\n\tis_verified: boolean\n\tlanguage: string\n\tavatar: string\n\tcreatedAt: Date\n\tupdatedAt: Date\n\tlast_login: Date\n}\n\n// export interface IDauthDomain {\n// \tname: string\n// \tloginRedirect: string\n// \tallowedOrigins: string[]\n// }\n\n// export interface IDauthState {\n// \tuser: IDauthUser\n// \tdomain: IDauthDomain\n// \tisLoading: boolean\n// \tisAuthenticated: boolean\n// \tloginWithRedirect: () => void\n// \tlogout: () => void\n// \tgetAccessToken: () => void\n// }\n\n// const userState = {\n// \t_id: \"\",\n// \tssid: \"\",\n// \tname: \"\",\n// \tlastname: \"\",\n// \tnickname: \"\",\n// \temail: \"\",\n// \tis_verified: false,\n// \tlanguage: \"\",\n// \tavatar: \"\",\n// \tcreatedAt: new Date(),\n// \tupdatedAt: new Date(),\n// \tlast_login: new Date(),\n// }\n\nconst domainState = {\n\tname: \"\",\n\tloginRedirect: \"\",\n\tallowedOrigins: [\"\"],\n}\n\nconst initialDauthState = {\n\tuser: {} as IDauthUser,\n\tdomain: domainState,\n\tisLoading: true,\n\tisAuthenticated: false,\n\tloginWithRedirect: () => { },\n\tlogout: () => { },\n\tgetAccessToken: () => { },\n}\n\nexport default initialDauthState","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';","import * as DauthTypes from './dauth.types'\n\nexport default function userReducer(state: any, action: any) {\n\tconst { type, payload } = action;\n\n\tswitch (type) {\n\t\tcase DauthTypes.LOGIN:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tuser: payload.user,\n\t\t\t\tdomain: payload.domain,\n\t\t\t\tisAuthenticated: payload.isAuthenticated,\n\t\t\t}\n\n\t\tcase DauthTypes.SET_IS_LOADING:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisLoading: payload.isLoading,\n\t\t\t}\n\n\t\tdefault:\n\t\t\treturn state\n\t}\n}","const isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n window.location.hostname === \"[::1]\" ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = \"v1\";\nexport const serverDomain = \"dauth.ovh\";\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`\n const clientProdUrl = `https://${domainName}.${serverDomain}`\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}","import { getServerBasePath } from \"./utils/config\";\n\nexport const getTenantUserAPI = async (domainName: string, ssid: string, token: string): Promise<any> => {\n const params = {\n method: \"GET\",\n headers: {\n Authorization: `${token}`,\n \"Content-Type\": \"application/json\",\n }\n }\n const response = await fetch(`${getServerBasePath({ domainName })}/get-tenant-user/${ssid}`, params)\n const data = await response.json()\n return { response, data }\n}","export const DAUTH_STATE = 'dauth_state';","import { getTenantUserAPI } from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport * as DauthTypes from './dauth.types'\n\nexport async function setDauthStateAction({ dispatch, dauth_state, domainName, ssid }: { dispatch: any, dauth_state: string, domainName: string, ssid: string }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } })\n try {\n const getUserFetch = await getTenantUserAPI(domainName, ssid, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n })\n window.history.replaceState({}, document.title, getUserFetch.data.domain.loginRedirect);\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: false } })\n }\n}\n\nexport async function setAutoLoginAction({ dispatch, dauth_state_ls, domainName, ssid }: { dispatch: any, dauth_state_ls: string, domainName: string, ssid: string }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } })\n try {\n const getUserFetch = await getTenantUserAPI(domainName, ssid, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n })\n localStorage.setItem(DAUTH_STATE, dauth_state_ls);\n } else {\n localStorage.removeItem(DAUTH_STATE);\n }\n\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: false } })\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } })\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {},\n domain: {},\n isAuthenticated: false,\n },\n })\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: false } })\n}","import * as React from 'react';\nimport { useReducer, useMemo, useEffect, useCallback } from 'react'\nimport initialDauthState from './initialDauthState'\nimport userReducer from './reducer/dauth.reducer'\nimport * as action from \"./reducer/dauth.actions\"\nimport { getClientBasePath } from './api/utils/config'\nimport { DAUTH_STATE } from './constants'\n\n// Delete me\nexport const Thing = () => {\n return <div>the snozzberries taste like snozzberries</div>;\n};\n\ninterface DauthProviderProps {\n domainName: string\n sid: string\n ssid: string\n children: React.ReactNode\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (props: DauthProviderProps) => {\n\tconst { domainName, sid, ssid, children } = props\n\tconst [dauthState, dispatch] = useReducer(userReducer, initialDauthState)\n\n\t// Catch login redirect\n\tuseEffect(() => {\n\t\tconst queryString = window.location.search;\n\t\tif (!queryString) return\n\t\tconst urlParams = new URLSearchParams(queryString);\n\t\tconst dauth_state = urlParams.get(DAUTH_STATE);\n\t\tif (dauth_state && !dauthState.isAuthenticated) {\n\t\t\taction.setDauthStateAction({ dispatch, dauth_state, domainName, ssid })\n\t\t}\n\t}, [dauthState.isAuthenticated, domainName, ssid])\n\n\t// Auto Login\n\tuseEffect(() => {\n\t\tconst dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n\t\tif (dauth_state_ls && !dauthState.isAuthenticated) {\n\t\t\taction.setAutoLoginAction({ dispatch, dauth_state_ls, domainName, ssid })\n\t\t}\n\t}, [dauthState.isAuthenticated, domainName, ssid])\n\n\tconst loginWithRedirect = useCallback(() => {\n\t\treturn window.location.replace(`${getClientBasePath({ domainName })}/t-sign/${sid}`);\n\t}, [domainName, sid])\n\n\tconst logout = useCallback(() => {\n\t\treturn action.setLogoutAction({ dispatch })\n\t}, [])\n\n\tconst memoProvider = useMemo(\n\t\t() => ({\n\t\t\t...dauthState,\n\t\t\tloginWithRedirect,\n\t\t\tlogout\n\t\t}), [\n\t\tdauthState,\n\t\tloginWithRedirect,\n\t\tlogout\n\t])\n\n\n\treturn (\n\t\t<DauthContext.Provider value={memoProvider}>\n\t\t\t{children}\n\t\t</DauthContext.Provider>\n\t)\n}\n\nconst DauthContext = React.createContext(initialDauthState);\n\nexport const useDauthContext = () => {\n const context = React.useContext(DauthContext);\n if (!context) {\n throw new Error('useMyContext debe ser utilizado dentro de un MyContextProvider');\n }\n return context;\n};"],"names":["domainState","name","loginRedirect","allowedOrigins","initialDauthState","user","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","LOGIN","SET_IS_LOADING","userReducer","state","action","type","payload","DauthTypes","_extends","isLocalhost","Boolean","window","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getTenantUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","ssid","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","_x3","apply","arguments","DAUTH_STATE","setDauthStateAction","_setDauthStateAction","dispatch","dauth_state","getUserFetch","status","history","replaceState","document","title","localStorage","setItem","removeItem","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","_callee2","dauth_state_ls","_callee2$","_context2","setLogoutAction","_setLogoutAction","_callee3","_ref3","_callee3$","_context3","Thing","React","DauthProvider","props","sid","children","_useReducer","useReducer","dauthState","useEffect","queryString","search","urlParams","URLSearchParams","get","getItem","useCallback","replace","memoProvider","useMemo","DauthContext","Provider","value","useDauthContext","context","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dauth-context-react.cjs.development.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.types.ts","../src/reducer/dauth.reducer.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n _id: string;\n ssid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n}\n\nexport interface IDauthDomain {\n name: string;\n loginRedirect: string;\n allowedOrigins: string[];\n}\n\nexport interface IDauthState {\n user: IDauthUser;\n domain: IDauthDomain;\n isLoading: boolean;\n isAuthenticated: boolean;\n loginWithRedirect: () => void;\n logout: () => void;\n getAccessToken: () => void;\n}\n\nconst initialDauthState: IDauthState = {\n user: {} as IDauthUser,\n domain: {} as IDauthDomain,\n isLoading: true,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => {},\n};\n\nexport default initialDauthState;\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\n","import * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: any, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN:\n return {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n\n case DauthTypes.SET_IS_LOADING:\n return {\n ...state,\n isLoading: payload.isLoading,\n };\n\n default:\n return state;\n }\n}\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { getServerBasePath } from './utils/config';\n\nexport const getTenantUserAPI = async (\n domainName: string,\n ssid: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/get-tenant-user/${ssid}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const DAUTH_STATE = 'dauth_state';\n","import { getTenantUserAPI } from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: any;\n dauth_state: string;\n domainName: string;\n ssid: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n dauth_state,\n domainName,\n ssid,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getTenantUserAPI(domainName, ssid, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: any;\n dauth_state_ls: string;\n domainName: string;\n ssid: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n ssid,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getTenantUserAPI(\n domainName,\n ssid,\n dauth_state_ls\n );\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(DAUTH_STATE, dauth_state_ls);\n } else {\n localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {},\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState, { IDauthState } from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { DAUTH_STATE } from './constants';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n ssid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, ssid, children } = props;\n const [ds, dispatch] = useReducer(userReducer, initialDauthState);\n const dauthState = ds as IDauthState;\n\n // Catch login redirect\n useEffect(() => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const dauth_state = urlParams.get(DAUTH_STATE);\n if (dauth_state && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, dauth_state, domainName, ssid });\n }\n }, [dauthState.isAuthenticated, domainName, ssid]);\n\n // Auto Login\n useEffect(() => {\n const dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName, ssid });\n }\n }, [dauthState.isAuthenticated, domainName, ssid]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-sign/${sid}`\n );\n }, [domainName, sid]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n }),\n [dauthState, loginWithRedirect, logout]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error(\n 'useMyContext debe ser utilizado dentro de un MyContextProvider'\n );\n }\n return context;\n};\n"],"names":["initialDauthState","user","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","LOGIN","SET_IS_LOADING","userReducer","state","action","type","payload","DauthTypes","_extends","isLocalhost","Boolean","window","location","hostname","match","apiVersion","serverDomain","getServerBasePath","_ref","domainName","serverPort","serverLocalUrl","protocol","serverProdUrl","serverBasePath","getClientBasePath","_ref2","clientPort","clientLocalUrl","clientProdUrl","clientBasePath","getTenantUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","ssid","token","params","response","data","wrap","_callee$","_context","prev","next","method","headers","Authorization","fetch","sent","json","abrupt","stop","_x","_x2","_x3","apply","arguments","DAUTH_STATE","setDauthStateAction","_setDauthStateAction","dispatch","dauth_state","getUserFetch","status","history","replaceState","document","title","loginRedirect","localStorage","setItem","removeItem","t0","console","log","finish","setAutoLoginAction","_setAutoLoginAction","_callee2","dauth_state_ls","_callee2$","_context2","setLogoutAction","_setLogoutAction","_callee3","_ref3","_callee3$","_context3","DauthProvider","props","sid","children","_useReducer","useReducer","ds","dauthState","useEffect","queryString","search","urlParams","URLSearchParams","get","getItem","useCallback","replace","memoProvider","useMemo","React","DauthContext","Provider","value","createContext","useDauth","context","useContext","Error"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react");function e(){e=function(){return r};var t,r={},n=Object.prototype,o=n.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},c=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var o=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new G(n||[]);return a(o,"_invoke",{value:S(t,r,i)}),o}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}r.wrap=h;var p="suspendedStart",d="executing",v="completed",y={};function m(){}function g(){}function w(){}var L={};l(L,c,(function(){return this}));var x=Object.getPrototypeOf,b=x&&x(x(j([])));b&&b!==n&&o.call(b,c)&&(L=b);var _=w.prototype=m.prototype=Object.create(L);function E(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(n,a,i,c){var u=f(t[n],t,a);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==typeof l&&o.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,i,c)}),(function(t){r("throw",t,i,c)})):e.resolve(l).then((function(t){s.value=t,i(s)}),(function(t){return r("throw",t,i,c)}))}c(u.arg)}var n;a(this,"_invoke",{value:function(t,o){function a(){return new e((function(e,n){r(t,o,e,n)}))}return n=n?n.then(a,a):a()}})}function S(e,r,n){var o=p;return function(a,i){if(o===d)throw new Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var c=n.delegate;if(c){var u=I(c,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?v:"suspendedYield",s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function I(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,I(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function N(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function G(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(N,this),this.reset(!0)}function j(e){if(e||""===e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function r(){for(;++n<e.length;)if(o.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=t,r.done=!0,r};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return g.prototype=w,a(_,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:g,configurable:!0}),g.displayName=l(w,s,"GeneratorFunction"),r.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,l(t,s,"GeneratorFunction")),t.prototype=Object.create(_),t},r.awrap=function(t){return{__await:t}},E(O.prototype),l(O.prototype,u,(function(){return this})),r.AsyncIterator=O,r.async=function(t,e,n,o,a){void 0===a&&(a=Promise);var i=new O(h(t,e,n,o),a);return r.isGeneratorFunction(e)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},E(_),l(_,s,"Generator"),l(_,c,(function(){return this})),l(_,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=j,G.prototype={constructor:G,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(A),!e)for(var r in this)"t"===r.charAt(0)&&o.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(n,o){return c.type="throw",c.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=o.call(i,"catchLoc"),s=o.call(i,"finallyLoc");if(u&&s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var a=n;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:j(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},r}function r(t,e,r,n,o,a,i){try{var c=t[a](i),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function n(t){return function(){var e=this,n=arguments;return new Promise((function(o,a){var i=t.apply(e,n);function c(t){r(i,o,a,c,u,"next",t)}function u(t){r(i,o,a,c,u,"throw",t)}c(void 0)}))}}function o(){return(o=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}var a={user:{},domain:{name:"",loginRedirect:"",allowedOrigins:[""]},isLoading:!0,isAuthenticated:!1,loginWithRedirect:function(){},logout:function(){},getAccessToken:function(){}};function i(t,e){var r=e.payload;switch(e.type){case"LOGIN":return o({},t,{user:r.user,domain:r.domain,isAuthenticated:r.isAuthenticated});case"SET_IS_LOADING":return o({},t,{isLoading:r.isLoading});default:return t}}var c=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm)||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function u(t){var e=window.location.protocol+"//"+window.location.hostname+":4012/api/v1";return c?e:"https://"+t.domainName+".dauth.ovh/api/v1"}var s=function(){var t=n(e().mark((function t(r,n,o){var a,i;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a={method:"GET",headers:{Authorization:""+o,"Content-Type":"application/json"}},t.next=3,fetch(u({domainName:r})+"/get-tenant-user/"+n,a);case 3:return i=t.sent,t.next=6,i.json();case 6:return t.abrupt("return",{response:i,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r,n){return t.apply(this,arguments)}}(),l="dauth_state";function h(){return(h=n(e().mark((function t(r){var n,o,a,i,c;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=r.dauth_state,a=r.domainName,i=r.ssid,(n=r.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,s(a,i,o);case 5:if(200!==(c=t.sent).response.status){t.next=12;break}return n({type:"LOGIN",payload:{user:c.data.user,domain:c.data.domain,isAuthenticated:!0}}),window.history.replaceState({},document.title,c.data.domain.loginRedirect),t.abrupt("return",localStorage.setItem(l,o));case 12:return t.abrupt("return",localStorage.removeItem(l));case 13:t.next=19;break;case 15:t.prev=15,t.t0=t.catch(2),localStorage.removeItem(l),console.log(t.t0);case 19:return t.prev=19,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(19);case 22:case"end":return t.stop()}}),t,null,[[2,15,19,22]])})))).apply(this,arguments)}function f(){return(f=n(e().mark((function t(r){var n,o,a,i,c;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=r.dauth_state_ls,a=r.domainName,i=r.ssid,(n=r.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,s(a,i,o);case 5:200===(c=t.sent).response.status?(n({type:"LOGIN",payload:{user:c.data.user,domain:c.data.domain,isAuthenticated:!0}}),localStorage.setItem(l,o)):localStorage.removeItem(l),t.next=13;break;case 9:t.prev=9,t.t0=t.catch(2),localStorage.removeItem(l),console.log(t.t0);case 13:return t.prev=13,n({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(13);case 16:case"end":return t.stop()}}),t,null,[[2,9,13,16]])})))).apply(this,arguments)}function p(){return(p=n(e().mark((function t(r){var n;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(n=r.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),n({type:"LOGIN",payload:{user:{},domain:{},isAuthenticated:!1}}),localStorage.removeItem(l),t.abrupt("return",n({type:"SET_IS_LOADING",payload:{isLoading:!1}}));case 5:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var d=t.createContext(a);exports.DauthProvider=function(e){var r=e.domainName,n=e.sid,u=e.ssid,s=e.children,v=t.useReducer(i,a),y=v[0],m=v[1];t.useEffect((function(){var t=window.location.search;if(t){var e=new URLSearchParams(t).get(l);e&&!y.isAuthenticated&&function(t){h.apply(this,arguments)}({dispatch:m,dauth_state:e,domainName:r,ssid:u})}}),[y.isAuthenticated,r,u]),t.useEffect((function(){var t=localStorage.getItem(l);t&&!y.isAuthenticated&&function(t){f.apply(this,arguments)}({dispatch:m,dauth_state_ls:t,domainName:r,ssid:u})}),[y.isAuthenticated,r,u]);var g=t.useCallback((function(){return window.location.replace((t=window.location.protocol+"//"+window.location.hostname+":5185",(c?t:"https://"+r+".dauth.ovh")+"/t-sign/"+n));var t}),[r,n]),w=t.useCallback((function(){return function(t){return p.apply(this,arguments)}({dispatch:m})}),[]),L=t.useMemo((function(){return o({},y,{loginWithRedirect:g,logout:w})}),[y,g,w]);return t.createElement(d.Provider,{value:L},s)},exports.Thing=function(){return t.createElement("div",null,"the snozzberries taste like snozzberries")},exports.useDauthContext=function(){var e=t.useContext(d);if(!e)throw new Error("useMyContext debe ser utilizado dentro de un MyContextProvider");return e};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e=require("react"),r=(t=e)&&"object"==typeof t&&"default"in t?t.default:t;function n(){n=function(){return e};var t,e={},r=Object.prototype,o=r.hasOwnProperty,a=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},c=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{l({},"")}catch(t){l=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var o=Object.create((e&&e.prototype instanceof m?e:m).prototype),i=new j(n||[]);return a(o,"_invoke",{value:S(t,r,i)}),o}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=h;var p="suspendedStart",d="executing",v="completed",y={};function m(){}function g(){}function w(){}var L={};l(L,c,(function(){return this}));var x=Object.getPrototypeOf,b=x&&x(x(G([])));b&&b!==r&&o.call(b,c)&&(L=b);var _=w.prototype=m.prototype=Object.create(L);function E(t){["next","throw","return"].forEach((function(e){l(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(n,a,i,c){var u=f(t[n],t,a);if("throw"!==u.type){var s=u.arg,l=s.value;return l&&"object"==typeof l&&o.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,i,c)}),(function(t){r("throw",t,i,c)})):e.resolve(l).then((function(t){s.value=t,i(s)}),(function(t){return r("throw",t,i,c)}))}c(u.arg)}var n;a(this,"_invoke",{value:function(t,o){function a(){return new e((function(e,n){r(t,o,e,n)}))}return n=n?n.then(a,a):a()}})}function S(e,r,n){var o=p;return function(a,i){if(o===d)throw new Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var c=n.delegate;if(c){var u=I(c,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var s=f(e,r,n);if("normal"===s.type){if(o=n.done?v:"suspendedYield",s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function I(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,I(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=f(o,e.iterator,r.arg);if("throw"===a.type)return r.method="throw",r.arg=a.arg,r.delegate=null,y;var i=a.arg;return i?i.done?(r[e.resultName]=i.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function N(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function j(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(N,this),this.reset(!0)}function G(e){if(e||""===e){var r=e[c];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function r(){for(;++n<e.length;)if(o.call(e,n))return r.value=e[n],r.done=!1,r;return r.value=t,r.done=!0,r};return a.next=a}}throw new TypeError(typeof e+" is not iterable")}return g.prototype=w,a(_,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:g,configurable:!0}),g.displayName=l(w,s,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,l(t,s,"GeneratorFunction")),t.prototype=Object.create(_),t},e.awrap=function(t){return{__await:t}},E(O.prototype),l(O.prototype,u,(function(){return this})),e.AsyncIterator=O,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new O(h(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},E(_),l(_,s,"Generator"),l(_,c,(function(){return this})),l(_,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=G,j.prototype={constructor:j,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(A),!e)for(var r in this)"t"===r.charAt(0)&&o.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function n(n,o){return c.type="throw",c.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],c=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=o.call(i,"catchLoc"),s=o.call(i,"finallyLoc");if(u&&s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var a=n;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),A(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:G(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}function o(t,e,r,n,o,a,i){try{var c=t[a](i),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function a(t){return function(){var e=this,r=arguments;return new Promise((function(n,a){var i=t.apply(e,r);function c(t){o(i,n,a,c,u,"next",t)}function u(t){o(i,n,a,c,u,"throw",t)}c(void 0)}))}}function i(){return(i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}var c={user:{},domain:{},isLoading:!0,isAuthenticated:!1,loginWithRedirect:function(){},logout:function(){},getAccessToken:function(){}};function u(t,e){var r=e.payload;switch(e.type){case"LOGIN":return i({},t,{user:r.user,domain:r.domain,isAuthenticated:r.isAuthenticated});case"SET_IS_LOADING":return i({},t,{isLoading:r.isLoading});default:return t}}var s=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/(192)\.(168)\.(1)\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm)||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function l(t){var e=window.location.protocol+"//"+window.location.hostname+":4012/api/v1";return s?e:"https://"+t.domainName+".dauth.ovh/api/v1"}var h=function(){var t=a(n().mark((function t(e,r,o){var a,i;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a={method:"GET",headers:{Authorization:""+o,"Content-Type":"application/json"}},t.next=3,fetch(l({domainName:e})+"/get-tenant-user/"+r,a);case 3:return i=t.sent,t.next=6,i.json();case 6:return t.abrupt("return",{response:i,data:t.sent});case 8:case"end":return t.stop()}}),t)})));return function(e,r,n){return t.apply(this,arguments)}}(),f="dauth_state";function p(){return(p=a(n().mark((function t(e){var r,o,a,i,c;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=e.dauth_state,a=e.domainName,i=e.ssid,(r=e.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,h(a,i,o);case 5:if(200!==(c=t.sent).response.status){t.next=12;break}return r({type:"LOGIN",payload:{user:c.data.user,domain:c.data.domain,isAuthenticated:!0}}),window.history.replaceState({},document.title,c.data.domain.loginRedirect),t.abrupt("return",localStorage.setItem(f,o));case 12:return t.abrupt("return",localStorage.removeItem(f));case 13:t.next=19;break;case 15:t.prev=15,t.t0=t.catch(2),localStorage.removeItem(f),console.log(t.t0);case 19:return t.prev=19,r({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(19);case 22:case"end":return t.stop()}}),t,null,[[2,15,19,22]])})))).apply(this,arguments)}function d(){return(d=a(n().mark((function t(e){var r,o,a,i,c;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=e.dauth_state_ls,a=e.domainName,i=e.ssid,(r=e.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),t.prev=2,t.next=5,h(a,i,o);case 5:200===(c=t.sent).response.status?(r({type:"LOGIN",payload:{user:c.data.user,domain:c.data.domain,isAuthenticated:!0}}),localStorage.setItem(f,o)):localStorage.removeItem(f),t.next=13;break;case 9:t.prev=9,t.t0=t.catch(2),localStorage.removeItem(f),console.log(t.t0);case 13:return t.prev=13,r({type:"SET_IS_LOADING",payload:{isLoading:!1}}),t.finish(13);case 16:case"end":return t.stop()}}),t,null,[[2,9,13,16]])})))).apply(this,arguments)}function v(){return(v=a(n().mark((function t(e){var r;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return(r=e.dispatch)({type:"SET_IS_LOADING",payload:{isLoading:!0}}),r({type:"LOGIN",payload:{user:{},domain:{},isAuthenticated:!1}}),localStorage.removeItem(f),t.abrupt("return",r({type:"SET_IS_LOADING",payload:{isLoading:!1}}));case 5:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var y=e.createContext(c);exports.DauthProvider=function(t){var n=t.domainName,o=t.sid,a=t.ssid,l=t.children,h=e.useReducer(u,c),m=h[1],g=h[0];e.useEffect((function(){var t=window.location.search;if(t){var e=new URLSearchParams(t).get(f);e&&!g.isAuthenticated&&function(t){p.apply(this,arguments)}({dispatch:m,dauth_state:e,domainName:n,ssid:a})}}),[g.isAuthenticated,n,a]),e.useEffect((function(){var t=localStorage.getItem(f);t&&!g.isAuthenticated&&function(t){d.apply(this,arguments)}({dispatch:m,dauth_state_ls:t,domainName:n,ssid:a})}),[g.isAuthenticated,n,a]);var w=e.useCallback((function(){return window.location.replace((t=window.location.protocol+"//"+window.location.hostname+":5185",(s?t:"https://"+n+".dauth.ovh")+"/t-sign/"+o));var t}),[n,o]),L=e.useCallback((function(){return function(t){return v.apply(this,arguments)}({dispatch:m})}),[]),x=e.useMemo((function(){return i({},g,{loginWithRedirect:w,logout:L})}),[g,w,L]);return r.createElement(y.Provider,{value:x},l)},exports.useDauth=function(){var t=e.useContext(y);if(!t)throw new Error("useMyContext debe ser utilizado dentro de un MyContextProvider");return t};
|
|
2
2
|
//# sourceMappingURL=dauth-context-react.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.reducer.ts","../src/reducer/dauth.types.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n\t_id: string\n\tssid: string\n\tname: string\n\tlastname: string\n\tnickname: string\n\temail: string\n\tis_verified: boolean\n\tlanguage: string\n\tavatar: string\n\tcreatedAt: Date\n\tupdatedAt: Date\n\tlast_login: Date\n}\n\n// export interface IDauthDomain {\n// \tname: string\n// \tloginRedirect: string\n// \tallowedOrigins: string[]\n// }\n\n// export interface IDauthState {\n// \tuser: IDauthUser\n// \tdomain: IDauthDomain\n// \tisLoading: boolean\n// \tisAuthenticated: boolean\n// \tloginWithRedirect: () => void\n// \tlogout: () => void\n// \tgetAccessToken: () => void\n// }\n\n// const userState = {\n// \t_id: \"\",\n// \tssid: \"\",\n// \tname: \"\",\n// \tlastname: \"\",\n// \tnickname: \"\",\n// \temail: \"\",\n// \tis_verified: false,\n// \tlanguage: \"\",\n// \tavatar: \"\",\n// \tcreatedAt: new Date(),\n// \tupdatedAt: new Date(),\n// \tlast_login: new Date(),\n// }\n\nconst domainState = {\n\tname: \"\",\n\tloginRedirect: \"\",\n\tallowedOrigins: [\"\"],\n}\n\nconst initialDauthState = {\n\tuser: {} as IDauthUser,\n\tdomain: domainState,\n\tisLoading: true,\n\tisAuthenticated: false,\n\tloginWithRedirect: () => { },\n\tlogout: () => { },\n\tgetAccessToken: () => { },\n}\n\nexport default initialDauthState","import * as DauthTypes from './dauth.types'\n\nexport default function userReducer(state: any, action: any) {\n\tconst { type, payload } = action;\n\n\tswitch (type) {\n\t\tcase DauthTypes.LOGIN:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tuser: payload.user,\n\t\t\t\tdomain: payload.domain,\n\t\t\t\tisAuthenticated: payload.isAuthenticated,\n\t\t\t}\n\n\t\tcase DauthTypes.SET_IS_LOADING:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisLoading: payload.isLoading,\n\t\t\t}\n\n\t\tdefault:\n\t\t\treturn state\n\t}\n}","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';","const isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n window.location.hostname === \"[::1]\" ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = \"v1\";\nexport const serverDomain = \"dauth.ovh\";\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`\n const clientProdUrl = `https://${domainName}.${serverDomain}`\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}","import { getServerBasePath } from \"./utils/config\";\n\nexport const getTenantUserAPI = async (domainName: string, ssid: string, token: string): Promise<any> => {\n const params = {\n method: \"GET\",\n headers: {\n Authorization: `${token}`,\n \"Content-Type\": \"application/json\",\n }\n }\n const response = await fetch(`${getServerBasePath({ domainName })}/get-tenant-user/${ssid}`, params)\n const data = await response.json()\n return { response, data }\n}","export const DAUTH_STATE = 'dauth_state';","import { getTenantUserAPI } from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport * as DauthTypes from './dauth.types'\n\nexport async function setDauthStateAction({ dispatch, dauth_state, domainName, ssid }: { dispatch: any, dauth_state: string, domainName: string, ssid: string }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } })\n try {\n const getUserFetch = await getTenantUserAPI(domainName, ssid, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n })\n window.history.replaceState({}, document.title, getUserFetch.data.domain.loginRedirect);\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: false } })\n }\n}\n\nexport async function setAutoLoginAction({ dispatch, dauth_state_ls, domainName, ssid }: { dispatch: any, dauth_state_ls: string, domainName: string, ssid: string }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } })\n try {\n const getUserFetch = await getTenantUserAPI(domainName, ssid, dauth_state_ls);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n })\n localStorage.setItem(DAUTH_STATE, dauth_state_ls);\n } else {\n localStorage.removeItem(DAUTH_STATE);\n }\n\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: false } })\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } })\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {},\n domain: {},\n isAuthenticated: false,\n },\n })\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: false } })\n}","import * as React from 'react';\nimport { useReducer, useMemo, useEffect, useCallback } from 'react'\nimport initialDauthState from './initialDauthState'\nimport userReducer from './reducer/dauth.reducer'\nimport * as action from \"./reducer/dauth.actions\"\nimport { getClientBasePath } from './api/utils/config'\nimport { DAUTH_STATE } from './constants'\n\n// Delete me\nexport const Thing = () => {\n return <div>the snozzberries taste like snozzberries</div>;\n};\n\ninterface DauthProviderProps {\n domainName: string\n sid: string\n ssid: string\n children: React.ReactNode\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (props: DauthProviderProps) => {\n\tconst { domainName, sid, ssid, children } = props\n\tconst [dauthState, dispatch] = useReducer(userReducer, initialDauthState)\n\n\t// Catch login redirect\n\tuseEffect(() => {\n\t\tconst queryString = window.location.search;\n\t\tif (!queryString) return\n\t\tconst urlParams = new URLSearchParams(queryString);\n\t\tconst dauth_state = urlParams.get(DAUTH_STATE);\n\t\tif (dauth_state && !dauthState.isAuthenticated) {\n\t\t\taction.setDauthStateAction({ dispatch, dauth_state, domainName, ssid })\n\t\t}\n\t}, [dauthState.isAuthenticated, domainName, ssid])\n\n\t// Auto Login\n\tuseEffect(() => {\n\t\tconst dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n\t\tif (dauth_state_ls && !dauthState.isAuthenticated) {\n\t\t\taction.setAutoLoginAction({ dispatch, dauth_state_ls, domainName, ssid })\n\t\t}\n\t}, [dauthState.isAuthenticated, domainName, ssid])\n\n\tconst loginWithRedirect = useCallback(() => {\n\t\treturn window.location.replace(`${getClientBasePath({ domainName })}/t-sign/${sid}`);\n\t}, [domainName, sid])\n\n\tconst logout = useCallback(() => {\n\t\treturn action.setLogoutAction({ dispatch })\n\t}, [])\n\n\tconst memoProvider = useMemo(\n\t\t() => ({\n\t\t\t...dauthState,\n\t\t\tloginWithRedirect,\n\t\t\tlogout\n\t\t}), [\n\t\tdauthState,\n\t\tloginWithRedirect,\n\t\tlogout\n\t])\n\n\n\treturn (\n\t\t<DauthContext.Provider value={memoProvider}>\n\t\t\t{children}\n\t\t</DauthContext.Provider>\n\t)\n}\n\nconst DauthContext = React.createContext(initialDauthState);\n\nexport const useDauthContext = () => {\n const context = React.useContext(DauthContext);\n if (!context) {\n throw new Error('useMyContext debe ser utilizado dentro de un MyContextProvider');\n }\n return context;\n};"],"names":["initialDauthState","user","domain","name","loginRedirect","allowedOrigins","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","userReducer","state","action","payload","type","_extends","isLocalhost","Boolean","window","location","hostname","match","getServerBasePath","_ref","serverLocalUrl","protocol","domainName","getTenantUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","ssid","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","_x3","apply","arguments","DAUTH_STATE","_setDauthStateAction","dispatch","dauth_state","getUserFetch","status","history","replaceState","document","title","localStorage","setItem","removeItem","t0","console","log","finish","_setAutoLoginAction","_callee2","_ref2","dauth_state_ls","_context2","_setLogoutAction","_callee3","_ref3","_context3","DauthContext","React","props","sid","children","_useReducer","useReducer","dauthState","useEffect","queryString","search","URLSearchParams","get","getItem","useCallback","replace","clientLocalUrl","memoProvider","useMemo","Provider","value","context","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dauth-context-react.cjs.production.min.js","sources":["../src/initialDauthState.ts","../src/reducer/dauth.reducer.ts","../src/reducer/dauth.types.ts","../src/api/utils/config.ts","../src/api/dauth.api.ts","../src/constants.ts","../src/reducer/dauth.actions.ts","../src/index.tsx"],"sourcesContent":["export interface IDauthUser {\n _id: string;\n ssid: string;\n name: string;\n lastname: string;\n nickname: string;\n email: string;\n is_verified: boolean;\n language: string;\n avatar: string;\n createdAt: Date;\n updatedAt: Date;\n last_login: Date;\n}\n\nexport interface IDauthDomain {\n name: string;\n loginRedirect: string;\n allowedOrigins: string[];\n}\n\nexport interface IDauthState {\n user: IDauthUser;\n domain: IDauthDomain;\n isLoading: boolean;\n isAuthenticated: boolean;\n loginWithRedirect: () => void;\n logout: () => void;\n getAccessToken: () => void;\n}\n\nconst initialDauthState: IDauthState = {\n user: {} as IDauthUser,\n domain: {} as IDauthDomain,\n isLoading: true,\n isAuthenticated: false,\n loginWithRedirect: () => {},\n logout: () => {},\n getAccessToken: () => {},\n};\n\nexport default initialDauthState;\n","import * as DauthTypes from './dauth.types';\n\nexport default function userReducer(state: any, action: any) {\n const { type, payload } = action;\n\n switch (type) {\n case DauthTypes.LOGIN:\n return {\n ...state,\n user: payload.user,\n domain: payload.domain,\n isAuthenticated: payload.isAuthenticated,\n };\n\n case DauthTypes.SET_IS_LOADING:\n return {\n ...state,\n isLoading: payload.isLoading,\n };\n\n default:\n return state;\n }\n}\n","export const LOGIN = 'LOGIN';\nexport const SET_IS_LOADING = 'SET_IS_LOADING';\n","const isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n window.location.hostname === '[::1]' ||\n window.location.hostname.match(\n /(192)\\.(168)\\.(1)\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gm\n ) ||\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\nexport const apiVersion = 'v1';\nexport const serverDomain = 'dauth.ovh';\n\nexport function getServerBasePath({ domainName }: { domainName: string }) {\n const serverPort = 4012;\n const serverLocalUrl = `${window.location.protocol}//${window.location.hostname}:${serverPort}/api/${apiVersion}`;\n const serverProdUrl = `https://${domainName}.${serverDomain}/api/${apiVersion}`;\n const serverBasePath = isLocalhost ? serverLocalUrl : serverProdUrl;\n return serverBasePath;\n}\n\nexport function getClientBasePath({ domainName }: { domainName: string }) {\n const clientPort = 5185;\n const clientLocalUrl = `${window.location.protocol}//${window.location.hostname}:${clientPort}`;\n const clientProdUrl = `https://${domainName}.${serverDomain}`;\n const clientBasePath = isLocalhost ? clientLocalUrl : clientProdUrl;\n return clientBasePath;\n}\n","import { getServerBasePath } from './utils/config';\n\nexport const getTenantUserAPI = async (\n domainName: string,\n ssid: string,\n token: string\n): Promise<any> => {\n const params = {\n method: 'GET',\n headers: {\n Authorization: `${token}`,\n 'Content-Type': 'application/json',\n },\n };\n const response = await fetch(\n `${getServerBasePath({ domainName })}/get-tenant-user/${ssid}`,\n params\n );\n const data = await response.json();\n return { response, data };\n};\n","export const DAUTH_STATE = 'dauth_state';\n","import { getTenantUserAPI } from '../api/dauth.api';\nimport { DAUTH_STATE } from '../constants';\nimport * as DauthTypes from './dauth.types';\n\ntype TSetDauthStateAction = {\n dispatch: any;\n dauth_state: string;\n domainName: string;\n ssid: string;\n};\nexport async function setDauthStateAction({\n dispatch,\n dauth_state,\n domainName,\n ssid,\n}: TSetDauthStateAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getTenantUserAPI(domainName, ssid, dauth_state);\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n window.history.replaceState(\n {},\n document.title,\n getUserFetch.data.domain.loginRedirect\n );\n return localStorage.setItem(DAUTH_STATE, dauth_state);\n } else {\n return localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\ntype TSetAutoLoginAction = {\n dispatch: any;\n dauth_state_ls: string;\n domainName: string;\n ssid: string;\n};\nexport async function setAutoLoginAction({\n dispatch,\n dauth_state_ls,\n domainName,\n ssid,\n}: TSetAutoLoginAction) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n try {\n const getUserFetch = await getTenantUserAPI(\n domainName,\n ssid,\n dauth_state_ls\n );\n if (getUserFetch.response.status === 200) {\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: getUserFetch.data.user,\n domain: getUserFetch.data.domain,\n isAuthenticated: true,\n },\n });\n localStorage.setItem(DAUTH_STATE, dauth_state_ls);\n } else {\n localStorage.removeItem(DAUTH_STATE);\n }\n } catch (error) {\n localStorage.removeItem(DAUTH_STATE);\n console.log(error);\n } finally {\n dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n }\n}\n\nexport async function setLogoutAction({ dispatch }: { dispatch: any }) {\n dispatch({ type: DauthTypes.SET_IS_LOADING, payload: { isLoading: true } });\n dispatch({\n type: DauthTypes.LOGIN,\n payload: {\n user: {},\n domain: {},\n isAuthenticated: false,\n },\n });\n localStorage.removeItem(DAUTH_STATE);\n return dispatch({\n type: DauthTypes.SET_IS_LOADING,\n payload: { isLoading: false },\n });\n}\n","import React, {\n useReducer,\n useMemo,\n useEffect,\n useCallback,\n createContext,\n useContext,\n} from 'react';\nimport initialDauthState, { IDauthState } from './initialDauthState';\nimport userReducer from './reducer/dauth.reducer';\nimport * as action from './reducer/dauth.actions';\nimport { getClientBasePath } from './api/utils/config';\nimport { DAUTH_STATE } from './constants';\n\ninterface DauthProviderProps {\n domainName: string;\n sid: string;\n ssid: string;\n children: React.ReactNode;\n}\n\nexport const DauthProvider: React.FC<DauthProviderProps> = (\n props: DauthProviderProps\n) => {\n const { domainName, sid, ssid, children } = props;\n const [ds, dispatch] = useReducer(userReducer, initialDauthState);\n const dauthState = ds as IDauthState;\n\n // Catch login redirect\n useEffect(() => {\n const queryString = window.location.search;\n if (!queryString) return;\n const urlParams = new URLSearchParams(queryString);\n const dauth_state = urlParams.get(DAUTH_STATE);\n if (dauth_state && !dauthState.isAuthenticated) {\n action.setDauthStateAction({ dispatch, dauth_state, domainName, ssid });\n }\n }, [dauthState.isAuthenticated, domainName, ssid]);\n\n // Auto Login\n useEffect(() => {\n const dauth_state_ls = localStorage.getItem(DAUTH_STATE);\n if (dauth_state_ls && !dauthState.isAuthenticated) {\n action.setAutoLoginAction({ dispatch, dauth_state_ls, domainName, ssid });\n }\n }, [dauthState.isAuthenticated, domainName, ssid]);\n\n const loginWithRedirect = useCallback(() => {\n return window.location.replace(\n `${getClientBasePath({ domainName })}/t-sign/${sid}`\n );\n }, [domainName, sid]);\n\n const logout = useCallback(() => {\n return action.setLogoutAction({ dispatch });\n }, []);\n\n const memoProvider = useMemo(\n () => ({\n ...dauthState,\n loginWithRedirect,\n logout,\n }),\n [dauthState, loginWithRedirect, logout]\n );\n\n return (\n <DauthContext.Provider value={memoProvider}>\n {children}\n </DauthContext.Provider>\n );\n};\n\nconst DauthContext = createContext(initialDauthState);\n\nexport const useDauth = () => {\n const context = useContext(DauthContext);\n if (!context) {\n throw new Error(\n 'useMyContext debe ser utilizado dentro de un MyContextProvider'\n );\n }\n return context;\n};\n"],"names":["initialDauthState","user","domain","isLoading","isAuthenticated","loginWithRedirect","logout","getAccessToken","userReducer","state","action","payload","type","_extends","isLocalhost","Boolean","window","location","hostname","match","getServerBasePath","_ref","serverLocalUrl","protocol","domainName","getTenantUserAPI","_asyncToGenerator","_regeneratorRuntime","mark","_callee","ssid","token","params","response","wrap","_context","prev","next","method","headers","Authorization","Content-Type","fetch","sent","json","abrupt","data","stop","_x","_x2","_x3","apply","arguments","DAUTH_STATE","_setDauthStateAction","dispatch","dauth_state","getUserFetch","status","history","replaceState","document","title","loginRedirect","localStorage","setItem","removeItem","t0","console","log","finish","_setAutoLoginAction","_callee2","_ref2","dauth_state_ls","_context2","_setLogoutAction","_callee3","_ref3","_context3","DauthContext","createContext","props","sid","children","_useReducer","useReducer","dauthState","useEffect","queryString","search","URLSearchParams","get","getItem","useCallback","replace","clientLocalUrl","memoProvider","useMemo","React","Provider","value","context","useContext","Error"],"mappings":"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"}
|