authera 2.0.5 → 2.0.6-test-2

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.
@@ -1,9 +1,2 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AuthContext = void 0;
7
- var react_1 = __importDefault(require("react"));
8
- exports.AuthContext = react_1.default.createContext(undefined);
9
- //# sourceMappingURL=context.js.map
1
+ import React from "react";
2
+ export const AuthContext = React.createContext(undefined);
@@ -1,28 +1,17 @@
1
- "use strict";
2
1
  "use client";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.name2storage = name2storage;
8
- var js_cookie_1 = __importDefault(require("js-cookie"));
9
- function name2storage(name) {
10
- var cookie = {
11
- get: function (key) { return JSON.parse(js_cookie_1.default.get(key) || "{}"); },
12
- set: function (key, value) { return js_cookie_1.default.set(key, JSON.stringify(value)); },
2
+ import Cookie from "js-cookie";
3
+ export function name2storage(name) {
4
+ const cookie = {
5
+ get: (key) => JSON.parse(Cookie.get(key) || "{}"),
6
+ set: (key, value) => Cookie.set(key, JSON.stringify(value)),
13
7
  };
14
- var local = {
15
- get: function (key) {
16
- return JSON.parse(globalThis.localStorage.getItem(key) || "{}");
17
- },
18
- set: function (key, value) {
19
- return globalThis.localStorage.setItem(key, JSON.stringify(value));
20
- },
8
+ const local = {
9
+ get: (key) => JSON.parse(globalThis.localStorage.getItem(key) || "{}"),
10
+ set: (key, value) => globalThis.localStorage.setItem(key, JSON.stringify(value)),
21
11
  };
22
- var mapStorage = {
23
- cookie: cookie,
24
- local: local,
12
+ const mapStorage = {
13
+ cookie,
14
+ local,
25
15
  };
26
16
  return mapStorage[name];
27
17
  }
28
- //# sourceMappingURL=storage.js.map
@@ -1,3 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
1
+ export {};
@@ -1,91 +1,73 @@
1
- "use strict";
2
1
  "use client";
3
- var __assign = (this && this.__assign) || function () {
4
- __assign = Object.assign || function(t) {
5
- for (var s, i = 1, n = arguments.length; i < n; i++) {
6
- s = arguments[i];
7
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
- t[p] = s[p];
9
- }
10
- return t;
11
- };
12
- return __assign.apply(this, arguments);
13
- };
14
- var __rest = (this && this.__rest) || function (s, e) {
15
- var t = {};
16
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
17
- t[p] = s[p];
18
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
19
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
20
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
21
- t[p[i]] = s[p[i]];
22
- }
23
- return t;
24
- };
25
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
26
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
- if (ar || !(i in from)) {
28
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
- ar[i] = from[i];
30
- }
31
- }
32
- return to.concat(ar || Array.prototype.slice.call(from));
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.useAuth = useAuth;
39
- var context_1 = require("../helper/context");
40
- var react_1 = __importDefault(require("react"));
41
- function useAuth() {
2
+ import { AuthContext, } from "../helper/context";
3
+ import React from "react";
4
+ export function useAuth() {
42
5
  // -------------------------------------------------- context
43
- var ctx = react_1.default.useContext(context_1.AuthContext);
6
+ const ctx = React.useContext(AuthContext);
44
7
  if (!ctx)
45
8
  throw new Error("useAuth must be used within an AuthContext");
46
9
  // -------------------------------------------------- data
47
- var _a = ctx.userData, permitsData = _a.permits, user = __rest(_a, ["permits"]);
48
- var authera_props = ctx.authera_props;
49
- var prm = (permitsData || []);
10
+ const { permits: permitsData, ...user } = ctx.userData;
11
+ const authera_props = ctx.authera_props;
12
+ const prm = (permitsData || []);
50
13
  // -------------------------------------------------- funtions
51
- var isPermitted = function (perm) {
14
+ const isPermitted = (perm) => {
52
15
  return prm.includes(perm);
53
16
  };
54
- var isPermittedAll = function (perms) {
55
- return perms.every(function (p) { return prm.includes(p); });
17
+ const isPermittedAll = (perms) => {
18
+ return perms.every((p) => prm.includes(p));
56
19
  };
57
- var on = function (perm, callback, fallback) {
20
+ const on = (perm, callback, fallback) => {
58
21
  if (isPermitted(perm))
59
22
  callback();
60
23
  else if (fallback)
61
24
  fallback();
62
25
  };
63
- var setUserData = function (userData) {
26
+ const setUserData = (userData) => {
64
27
  ctx.set("userData", userData);
65
28
  };
66
- var setPermits = function (permits) {
67
- ctx.set("userData", __assign(__assign({}, ctx.userData), { permits: permits }));
29
+ const setPermits = (permits) => {
30
+ ctx.set("userData", { ...ctx.userData, permits });
68
31
  };
69
- var addPermits = function (permits) {
32
+ const addPermits = (permits) => {
70
33
  if (typeof permits !== "object")
71
34
  return;
72
- ctx.set("userData", __assign(__assign({}, ctx.userData), { permits: __spreadArray(__spreadArray([], prm.filter(function (p) { return !permits.includes(p); }), true), permits, true) }));
35
+ ctx.set("userData", {
36
+ ...ctx.userData,
37
+ permits: [...prm.filter((p) => !permits.includes(p)), ...permits],
38
+ });
73
39
  };
74
- var removePermits = function (permits) {
75
- ctx.set("userData", __assign(__assign({}, ctx.userData), { permits: prm.filter(function (p) { return !permits.includes(p); }) }));
40
+ const removePermits = (permits) => {
41
+ ctx.set("userData", {
42
+ ...ctx.userData,
43
+ permits: prm.filter((p) => !permits.includes(p)),
44
+ });
76
45
  };
77
- var setAccessToken = function (token) {
46
+ const setAccessToken = (token) => {
78
47
  ctx.set("access_token", token);
79
48
  };
80
- var setRefreshToken = function (token) {
49
+ const setRefreshToken = (token) => {
81
50
  ctx.set("refresh_token", token);
82
51
  };
83
- var logout = function () {
52
+ const logout = () => {
84
53
  setUserData(null);
85
54
  setPermits([]);
86
55
  ctx.set("refresh_token", null);
87
56
  ctx.set("access_token", null);
88
57
  };
89
- return __assign({ permits: prm, isPermitted: isPermitted, on: on, setPermits: setPermits, addPermits: addPermits, removePermits: removePermits, setUserData: setUserData, isPermittedAll: isPermittedAll, user: user, setAccessToken: setAccessToken, setRefreshToken: setRefreshToken, logout: logout }, authera_props);
58
+ return {
59
+ permits: prm,
60
+ isPermitted,
61
+ on,
62
+ setPermits,
63
+ addPermits,
64
+ removePermits,
65
+ setUserData,
66
+ isPermittedAll,
67
+ user,
68
+ setAccessToken,
69
+ setRefreshToken,
70
+ logout,
71
+ ...authera_props,
72
+ };
90
73
  }
91
- //# sourceMappingURL=useAuth.js.map
package/dist/index.js CHANGED
@@ -1,28 +1,19 @@
1
- "use strict";
2
1
  "use client";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.AuthGuard = void 0;
8
- exports.default = AuthHook;
9
- var jsx_runtime_1 = require("react/jsx-runtime");
10
- var storage_1 = require("./helper/storage");
11
- var web_1 = __importDefault(require("./web"));
12
- var useAuth_1 = require("./hooks/useAuth");
13
- var login_1 = __importDefault(require("./web/login"));
14
- function AuthHook(props) {
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { name2storage } from "./helper/storage";
4
+ import AuthProvider from "./web";
5
+ import { useAuth } from "./hooks/useAuth";
6
+ import LoginForm from "./web/login";
7
+ export default function AuthHook(props) {
15
8
  // set storage functions
16
- var storage = props.storage;
9
+ let storage = props.storage;
17
10
  if (typeof storage === "string")
18
- storage = (0, storage_1.name2storage)(storage);
11
+ storage = name2storage(storage);
19
12
  // create backend data
20
13
  return {
21
- createAuthProvider: function (children) { return ((0, jsx_runtime_1.jsx)(web_1.default, { storage: storage, authera_props: props, children: children })); },
22
- useAuth: function () { return (0, useAuth_1.useAuth)(); },
23
- LoginScenario: function () { return ((0, jsx_runtime_1.jsx)(login_1.default, { on_after_login: props.on_after_login, on_after_step: props.on_after_step, backendUrl: props.backendUrl })); },
14
+ createAuthProvider: (children) => (_jsx(AuthProvider, { storage: storage, authera_props: props, children: children })),
15
+ useAuth: () => useAuth(),
16
+ LoginScenario: () => (_jsx(LoginForm, { on_after_login: props.on_after_login, on_after_step: props.on_after_step, backendUrl: props.backendUrl })),
24
17
  };
25
18
  }
26
- var guard_1 = require("./web/guard");
27
- Object.defineProperty(exports, "AuthGuard", { enumerable: true, get: function () { return __importDefault(guard_1).default; } });
28
- //# sourceMappingURL=index.js.map
19
+ export { default as AuthGuard } from "./web/guard";
package/dist/web/guard.js CHANGED
@@ -1,9 +1,5 @@
1
- "use strict";
2
1
  "use client";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.default = AuthGuard;
5
- function AuthGuard(_a) {
6
- var children = _a.children, permits = _a.permits, action = _a.action;
2
+ export default function AuthGuard({ children, permits, action, }) {
7
3
  // const { isPermittedAll: isPermittedHook, fallback_401_url } =
8
4
  // useAuth<string>();
9
5
  // const isPermitted = isPermittedHook(permits);
@@ -20,4 +16,3 @@ function AuthGuard(_a) {
20
16
  // else return <>{children}</>;
21
17
  // }
22
18
  }
23
- //# sourceMappingURL=guard.js.map
package/dist/web/index.js CHANGED
@@ -1,19 +1,14 @@
1
- "use strict";
2
1
  "use client";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.default = AuthProvider;
5
- var jsx_runtime_1 = require("react/jsx-runtime");
6
- var context_1 = require("../helper/context");
7
- function AuthProvider(_a) {
8
- var children = _a.children, storage = _a.storage, authera_props = _a.authera_props;
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { AuthContext, } from "../helper/context";
4
+ export default function AuthProvider({ children, storage, authera_props, }) {
9
5
  /**
10
6
  * Context Provider
11
7
  */
12
- var Provider = context_1.AuthContext.Provider;
13
- var userData = storage.get("userData");
14
- var set = function (key, value) {
8
+ const Provider = AuthContext.Provider;
9
+ const userData = storage.get("userData");
10
+ const set = (key, value) => {
15
11
  storage.set(key, value);
16
12
  };
17
- return ((0, jsx_runtime_1.jsx)(Provider, { value: { userData: userData, set: set, authera_props: authera_props }, children: children }));
13
+ return (_jsx(Provider, { value: { userData, set, authera_props }, children: children }));
18
14
  }
19
- //# sourceMappingURL=index.js.map
package/dist/web/login.js CHANGED
@@ -1,133 +1,66 @@
1
- "use strict";
2
1
  "use client";
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
- var __generator = (this && this.__generator) || function (thisArg, body) {
13
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
14
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
15
- function verb(n) { return function (v) { return step([n, v]); }; }
16
- function step(op) {
17
- if (f) throw new TypeError("Generator is already executing.");
18
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
19
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
20
- if (y = 0, t) op = [op[0] & 2, t.value];
21
- switch (op[0]) {
22
- case 0: case 1: t = op; break;
23
- case 4: _.label++; return { value: op[1], done: false };
24
- case 5: _.label++; y = op[1]; op = [0]; continue;
25
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
26
- default:
27
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
28
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
29
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
30
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
31
- if (t[2]) _.ops.pop();
32
- _.trys.pop(); continue;
33
- }
34
- op = body.call(thisArg, _);
35
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
36
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
- }
38
- };
39
- var __importDefault = (this && this.__importDefault) || function (mod) {
40
- return (mod && mod.__esModule) ? mod : { "default": mod };
41
- };
42
- Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.default = LoginForm;
44
- var jsx_runtime_1 = require("react/jsx-runtime");
45
- var axios_1 = __importDefault(require("axios"));
46
- var minimal_form_1 = require("minimal-form");
47
- var minimal_form_2 = __importDefault(require("minimal-form"));
48
- var react_1 = require("react");
49
- var react_hook_form_1 = require("react-hook-form");
50
- var useAuth_1 = require("../hooks/useAuth");
51
- function LoginForm(_a) {
52
- var _this = this;
53
- var on_after_login = _a.on_after_login, on_after_step = _a.on_after_step, backendUrl = _a.backendUrl;
54
- var _b = (0, react_1.useState)(), steps = _b[0], stepsHnadler = _b[1];
55
- var _c = (0, react_1.useState)(), activeStep = _c[0], activeStepHandler = _c[1];
56
- var _d = (0, react_1.useState)(true), loading = _d[0], loadingHandler = _d[1];
57
- var _e = (0, react_1.useState)(""), userID = _e[0], userIDHandler = _e[1];
58
- var _f = (0, react_1.useState)({}), stepPayload = _f[0], stepPayloadHandler = _f[1];
59
- var _g = (0, react_hook_form_1.useForm)(), handleSubmit = _g.handleSubmit, control = _g.control;
60
- var _h = (0, useAuth_1.useAuth)(), setUserData = _h.setUserData, setPermits = _h.setPermits;
61
- var request = axios_1.default.create({
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import axios from "axios";
4
+ import { convertFromSchema } from "minimal-form";
5
+ import { useEffect, useState } from "react";
6
+ import { useForm } from "react-hook-form";
7
+ import { useAuth } from "../hooks/useAuth";
8
+ export default function LoginForm({ on_after_login, on_after_step, backendUrl, }) {
9
+ const [steps, stepsHnadler] = useState();
10
+ const [activeStep, activeStepHandler] = useState();
11
+ const [loading, loadingHandler] = useState(true);
12
+ const [userID, userIDHandler] = useState("");
13
+ const [stepPayload, stepPayloadHandler] = useState({});
14
+ const { handleSubmit, control } = useForm();
15
+ const { setUserData, setPermits } = useAuth();
16
+ const request = axios.create({
62
17
  baseURL: backendUrl,
63
18
  });
64
19
  // fetch data from steps
65
- (0, react_1.useEffect)(function () {
66
- function fetchSteps() {
67
- return __awaiter(this, void 0, void 0, function () {
68
- var response, data;
69
- return __generator(this, function (_a) {
70
- switch (_a.label) {
71
- case 0: return [4 /*yield*/, request.get("options/")];
72
- case 1:
73
- response = _a.sent();
74
- data = Object.entries(response.data).map(function (_a) {
75
- var opt = _a[0], schema = _a[1];
76
- return ({
77
- name: opt,
78
- structure: (0, minimal_form_1.convertFromSchema)(schema),
79
- });
80
- });
81
- activeStepHandler(data[0]);
82
- stepsHnadler(data);
83
- loadingHandler(false);
84
- return [2 /*return*/];
85
- }
86
- });
87
- });
20
+ useEffect(() => {
21
+ async function fetchSteps() {
22
+ const response = await request.get("options/");
23
+ const data = Object.entries(response.data).map(([opt, schema]) => ({
24
+ name: opt,
25
+ structure: convertFromSchema(schema),
26
+ }));
27
+ activeStepHandler(data[0]);
28
+ stepsHnadler(data);
29
+ loadingHandler(false);
88
30
  }
89
31
  fetchSteps();
90
32
  }, []);
91
- var onSubmit = function (data) { return __awaiter(_this, void 0, void 0, function () {
92
- var response, nextIndex;
93
- var _a;
94
- return __generator(this, function (_b) {
95
- switch (_b.label) {
96
- case 0: return [4 /*yield*/, request.post("validate/" + activeStep.name, {
97
- options: data,
98
- payload: stepPayload,
99
- user_id: userID,
100
- })];
101
- case 1:
102
- response = _b.sent();
103
- // if response say go next step
104
- if (response.status === 202) {
105
- nextIndex = ((steps === null || steps === void 0 ? void 0 : steps.findIndex(function (d) { return d.name === (activeStep === null || activeStep === void 0 ? void 0 : activeStep.name); })) || 0) + 1;
106
- activeStepHandler(steps === null || steps === void 0 ? void 0 : steps[nextIndex]);
107
- if (on_after_step)
108
- on_after_step(((_a = steps === null || steps === void 0 ? void 0 : steps[nextIndex]) === null || _a === void 0 ? void 0 : _a.name) || "");
109
- }
110
- // if response say authenticate is finished
111
- else if (response.status === 200) {
112
- setUserData(response.data.user);
113
- setPermits(response.data.user.permits);
114
- if (on_after_login)
115
- on_after_login(response.data);
116
- }
117
- // if response say have a wrong in this request
118
- else if (response.status === 400) {
119
- activeStepHandler(steps === null || steps === void 0 ? void 0 : steps[0]);
120
- }
121
- userIDHandler(response.data.user_id);
122
- stepPayloadHandler(response.data.payload);
123
- return [2 /*return*/];
124
- }
33
+ const onSubmit = async (data) => {
34
+ // valudate step and send data to server
35
+ const response = await request.post("validate/" + activeStep.name, {
36
+ options: data,
37
+ payload: stepPayload,
38
+ user_id: userID,
125
39
  });
126
- }); };
40
+ // if response say go next step
41
+ if (response.status === 202) {
42
+ const nextIndex = (steps?.findIndex((d) => d.name === activeStep?.name) || 0) + 1;
43
+ activeStepHandler(steps?.[nextIndex]);
44
+ if (on_after_step)
45
+ on_after_step(steps?.[nextIndex]?.name || "");
46
+ }
47
+ // if response say authenticate is finished
48
+ else if (response.status === 200) {
49
+ setUserData(response.data.user);
50
+ setPermits(response.data.user.permits);
51
+ if (on_after_login)
52
+ on_after_login(response.data);
53
+ }
54
+ // if response say have a wrong in this request
55
+ else if (response.status === 400) {
56
+ activeStepHandler(steps?.[0]);
57
+ }
58
+ userIDHandler(response.data.user_id);
59
+ stepPayloadHandler(response.data.payload);
60
+ };
127
61
  // loading check
128
62
  if (loading)
129
- return (0, jsx_runtime_1.jsx)("p", { children: "loading ..." });
63
+ return _jsx("p", { children: "loading ..." });
130
64
  // show forms from steps
131
- return ((0, jsx_runtime_1.jsxs)("form", { onSubmit: handleSubmit(onSubmit), children: [(0, jsx_runtime_1.jsx)(minimal_form_2.default, { control: control, structure: activeStep.structure }), (0, jsx_runtime_1.jsx)("button", { type: "submit", children: "Submit" })] }));
65
+ return (_jsx("form", { onSubmit: handleSubmit(onSubmit), children: _jsx("button", { type: "submit", children: "Submit" }) }));
132
66
  }
133
- //# sourceMappingURL=login.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "authera",
3
- "version": "2.0.5",
3
+ "version": "2.0.6-test-2",
4
4
  "description": "this project is a simple auth hook for react",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,4 +43,4 @@
43
43
  "minimal-form": "^2.8.1",
44
44
  "react-hook-form": "^7.66.0"
45
45
  }
46
- }
46
+ }