m2m-components 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MenuBaseElement.d.ts +1 -1
- package/MenuBaseElement.js +1 -40
- package/MenuBaseElement.js.map +1 -1
- package/cjs/MenuBaseElement.js +0 -42
- package/cjs/MenuBaseElement.js.map +1 -1
- package/cjs/domains.js.map +1 -1
- package/cjs/endpoints/m2m-notifications.js +1 -4
- package/cjs/endpoints/m2m-notifications.js.map +1 -1
- package/cjs/endpoints/m2m-notifications.v1.js +5 -38
- package/cjs/endpoints/m2m-notifications.v1.js.map +1 -1
- package/cjs/endpoints/m2m-users.js +1 -4
- package/cjs/endpoints/m2m-users.js.map +1 -1
- package/cjs/endpoints/m2m-users.v1.js +28 -153
- package/cjs/endpoints/m2m-users.v1.js.map +1 -1
- package/cjs/index.js +0 -6
- package/cjs/index.js.map +1 -1
- package/cjs/initM2mComponents.js +0 -4
- package/cjs/initM2mComponents.js.map +1 -1
- package/cjs/m2m-apps-menu.js +0 -26
- package/cjs/m2m-apps-menu.js.map +1 -1
- package/cjs/m2m-user-menu.js +0 -30
- package/cjs/m2m-user-menu.js.map +1 -1
- package/cjs/notification/NotificationProvider.js +2 -18
- package/cjs/notification/NotificationProvider.js.map +1 -1
- package/cjs/notification/ServiceIdProvider.js +0 -11
- package/cjs/notification/ServiceIdProvider.js.map +1 -1
- package/cjs/notification/api.js +4 -12
- package/cjs/notification/api.js.map +1 -1
- package/cjs/notification/index.js +0 -8
- package/cjs/notification/index.js.map +1 -1
- package/cjs/storage/client.js +1 -18
- package/cjs/storage/client.js.map +1 -1
- package/cjs/storage/hub.js +0 -3
- package/cjs/storage/hub.js.map +1 -1
- package/cjs/storage/lib/client.js +3 -35
- package/cjs/storage/lib/client.js.map +1 -1
- package/cjs/storage/lib/hub.js +12 -25
- package/cjs/storage/lib/hub.js.map +1 -1
- package/cjs/storage/useM2mAuth.js +0 -24
- package/cjs/storage/useM2mAuth.js.map +1 -1
- package/domains.js.map +1 -1
- package/endpoints/m2m-notifications.js.map +1 -1
- package/endpoints/m2m-notifications.v1.js +5 -32
- package/endpoints/m2m-notifications.v1.js.map +1 -1
- package/endpoints/m2m-users.js.map +1 -1
- package/endpoints/m2m-users.v1.js +28 -132
- package/endpoints/m2m-users.v1.js.map +1 -1
- package/index.js.map +1 -1
- package/initM2mComponents.d.ts +1 -1
- package/initM2mComponents.js +0 -1
- package/initM2mComponents.js.map +1 -1
- package/m2m-apps-menu.d.ts +1 -1
- package/m2m-apps-menu.js +1 -23
- package/m2m-apps-menu.js.map +1 -1
- package/m2m-user-menu.d.ts +1 -1
- package/m2m-user-menu.js +1 -25
- package/m2m-user-menu.js.map +1 -1
- package/notification/NotificationProvider.js +2 -8
- package/notification/NotificationProvider.js.map +1 -1
- package/notification/ServiceIdProvider.js +0 -2
- package/notification/ServiceIdProvider.js.map +1 -1
- package/notification/api.js +3 -11
- package/notification/api.js.map +1 -1
- package/notification/domain.d.ts +1 -1
- package/notification/domain.d.ts.map +1 -1
- package/notification/index.js.map +1 -1
- package/package.json +20 -20
- package/storage/client.js +1 -23
- package/storage/client.js.map +1 -1
- package/storage/hub.js +0 -2
- package/storage/hub.js.map +1 -1
- package/storage/lib/client.js +3 -35
- package/storage/lib/client.js.map +1 -1
- package/storage/lib/hub.d.ts +1 -1
- package/storage/lib/hub.d.ts.map +1 -1
- package/storage/lib/hub.js +12 -23
- package/storage/lib/hub.js.map +1 -1
- package/storage/useM2mAuth.d.ts +1 -1
- package/storage/useM2mAuth.d.ts.map +1 -1
- package/storage/useM2mAuth.js +0 -12
- package/storage/useM2mAuth.js.map +1 -1
package/storage/lib/hub.js
CHANGED
|
@@ -1,52 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* この実装はcross-storageほぼそのままです。
|
|
3
3
|
*/
|
|
4
|
+
|
|
4
5
|
var context = {};
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* Do not use this directly. This specifications are subject to significant change.
|
|
7
9
|
* @internal
|
|
8
10
|
*/
|
|
9
|
-
|
|
10
11
|
export var init = permissions => {
|
|
11
12
|
context.permissions = permissions;
|
|
12
13
|
window.addEventListener("message", listener, false);
|
|
13
14
|
window.parent.postMessage("cross-storage:ready", "*");
|
|
14
15
|
};
|
|
15
|
-
|
|
16
16
|
var permitted = (origin, method) => {
|
|
17
17
|
var available = ["get", "set", "del", "clear", "getKeys"];
|
|
18
|
-
|
|
19
18
|
if (!available.includes(method)) {
|
|
20
19
|
return false;
|
|
21
20
|
}
|
|
22
|
-
|
|
23
21
|
if (context.permissions === undefined) {
|
|
24
22
|
return false;
|
|
25
23
|
}
|
|
26
|
-
|
|
27
24
|
for (var i = 0; i < context.permissions.length; i++) {
|
|
28
25
|
var entry = context.permissions[i];
|
|
29
26
|
var match = entry.origin.test(origin);
|
|
30
|
-
|
|
31
27
|
if (match && entry.allow.includes(method)) {
|
|
32
28
|
return true;
|
|
33
29
|
}
|
|
34
30
|
}
|
|
35
|
-
|
|
36
31
|
return false;
|
|
37
32
|
};
|
|
38
|
-
|
|
39
33
|
var methods = {
|
|
40
34
|
get: params => {
|
|
41
35
|
var storage = window.localStorage;
|
|
42
36
|
var result = [];
|
|
43
|
-
|
|
44
37
|
for (var i = 0; i < params.keys.length; i++) {
|
|
45
38
|
var value = storage.getItem(params.keys[i]) || null;
|
|
46
39
|
result.push(value);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
}
|
|
41
|
+
// Todo: このパターン好きじゃない
|
|
50
42
|
return result.length > 1 ? result : result[0];
|
|
51
43
|
},
|
|
52
44
|
set: params => {
|
|
@@ -61,38 +53,35 @@ var methods = {
|
|
|
61
53
|
getKeys: () => {
|
|
62
54
|
var keys = [];
|
|
63
55
|
var length = window.localStorage.length;
|
|
64
|
-
|
|
65
56
|
for (var i = 0; i < length; i++) {
|
|
66
57
|
keys.push(window.localStorage.key(i));
|
|
67
58
|
}
|
|
68
|
-
|
|
69
59
|
return keys;
|
|
70
60
|
},
|
|
71
61
|
clear: () => {
|
|
72
62
|
window.localStorage.clear();
|
|
73
63
|
}
|
|
74
64
|
};
|
|
75
|
-
|
|
76
65
|
var listener = message => {
|
|
77
66
|
// postMessage returns the string "null" as the origin for "file://"
|
|
78
|
-
var origin = message.origin === "null" ? "file://" : message.origin;
|
|
67
|
+
var origin = message.origin === "null" ? "file://" : message.origin;
|
|
79
68
|
|
|
69
|
+
// Handle polling for a ready message
|
|
80
70
|
if (message.data === "cross-storage:poll") {
|
|
81
71
|
return window.parent.postMessage("cross-storage:ready", message.origin);
|
|
82
|
-
}
|
|
83
|
-
|
|
72
|
+
}
|
|
84
73
|
|
|
74
|
+
// Ignore the ready message when viewing the hub directly
|
|
85
75
|
if (message.data === "cross-storage:ready") return;
|
|
86
|
-
var request = JSON.parse(message.data);
|
|
76
|
+
var request = JSON.parse(message.data);
|
|
87
77
|
|
|
78
|
+
// Check whether request.method is a string
|
|
88
79
|
if (!request || typeof request.method !== "string") {
|
|
89
80
|
return;
|
|
90
81
|
}
|
|
91
|
-
|
|
92
82
|
var method = request.method.split("cross-storage:")[1];
|
|
93
83
|
var error = "";
|
|
94
84
|
var result = undefined;
|
|
95
|
-
|
|
96
85
|
if (!method) {
|
|
97
86
|
return;
|
|
98
87
|
} else if (!permitted(origin, method)) {
|
|
@@ -104,13 +93,13 @@ var listener = message => {
|
|
|
104
93
|
error = err.message;
|
|
105
94
|
}
|
|
106
95
|
}
|
|
107
|
-
|
|
108
96
|
var response = JSON.stringify({
|
|
109
97
|
id: request.id,
|
|
110
98
|
error: error,
|
|
111
99
|
result: result
|
|
112
|
-
});
|
|
100
|
+
});
|
|
113
101
|
|
|
102
|
+
// postMessage requires that the target origin be set to "*" for "file://"
|
|
114
103
|
var targetOrigin = origin === "file://" ? "*" : origin;
|
|
115
104
|
window.parent.postMessage(response, targetOrigin);
|
|
116
105
|
};
|
package/storage/lib/hub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hub.js","names":["context","init","permissions","window","addEventListener","listener","parent","postMessage","permitted","origin","method","available","includes","undefined","i","length","entry","match","test","allow","methods","get","params","storage","localStorage","result","keys","value","getItem","push","set","setItem","key","del","removeItem","getKeys","clear","message","data","request","JSON","parse","split","error","err","response","stringify","id","targetOrigin"],"sources":["../../src/storage/lib/hub.ts"],"sourcesContent":["/**\n * この実装はcross-storageほぼそのままです。\n */\ntype Method = \"get\" | \"set\" | \"del\" | \"getKeys\" | \"clear\";\n\nexport interface Permission {\n origin: RegExp;\n allow: Method[];\n}\n\nconst context: {\n permissions?: Permission[];\n} = {};\n\n/**\n * Do not use this directly. This specifications are subject to significant change.\n * @internal\n */\nexport const init = (permissions: Permission[]) => {\n context.permissions = permissions;\n window.addEventListener(\"message\", listener, false);\n window.parent.postMessage(\"cross-storage:ready\", \"*\");\n};\n\nconst permitted = (origin: string, method: Method) => {\n const available = [\"get\", \"set\", \"del\", \"clear\", \"getKeys\"];\n if (!available.includes(method)) {\n return false;\n }\n\n if (context.permissions === undefined) {\n return false;\n }\n\n for (let i = 0; i < context.permissions.length; i++) {\n const entry = context.permissions[i];\n const match = entry.origin.test(origin);\n if (match && entry.allow.includes(method)) {\n return true;\n }\n }\n return false;\n};\n\nconst methods: {\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key in Method]: Function;\n} = {\n get: (params: { keys: string[] }) => {\n const storage = window.localStorage;\n const result = [];\n for (let i = 0; i < params.keys.length; i++) {\n const value = storage.getItem(params.keys[i]) || null;\n result.push(value);\n }\n // Todo: このパターン好きじゃない\n return result.length > 1 ? result : result[0];\n },\n set: (params: { key: string; value: string }) => {\n window.localStorage.setItem(params.key, params.value);\n },\n del: (params: { keys: string[] }) => {\n // eslint-disable-next-line no-var\n for (var i = 0; i < params.keys.length; i++) {\n window.localStorage.removeItem(params.keys[i]);\n }\n },\n getKeys: () => {\n const keys = [];\n const length = window.localStorage.length;\n\n for (let i = 0; i < length; i++) {\n keys.push(window.localStorage.key(i));\n }\n\n return keys;\n },\n clear: () => {\n window.localStorage.clear();\n },\n};\n\ninterface Message {\n origin: string;\n data: string;\n}\n\nconst listener = (message: Message) => {\n // postMessage returns the string \"null\" as the origin for \"file://\"\n const origin = message.origin === \"null\" ? \"file://\" : message.origin;\n\n // Handle polling for a ready message\n if (message.data === \"cross-storage:poll\") {\n return window.parent.postMessage(\"cross-storage:ready\", message.origin);\n }\n\n // Ignore the ready message when viewing the hub directly\n if (message.data === \"cross-storage:ready\") return;\n\n const request: {\n id: string;\n method?: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n params: Object;\n } = JSON.parse(message.data);\n\n // Check whether request.method is a string\n if (!request || typeof request.method !== \"string\") {\n return;\n }\n\n const method = request.method.split(\"cross-storage:\")[1] as Method;\n\n let error = \"\";\n let result: string | undefined = undefined;\n\n if (!method) {\n return;\n } else if (!permitted(origin, method)) {\n error = \"Invalid permissions for \" + method;\n } else {\n try {\n result = methods[method](request.params);\n } catch (err) {\n error = (err as unknown as Error).message;\n }\n }\n\n const response = JSON.stringify({\n id: request.id,\n error: error,\n result: result,\n });\n\n // postMessage requires that the target origin be set to \"*\" for \"file://\"\n const targetOrigin = origin === \"file://\" ? \"*\" : origin;\n\n window.parent.postMessage(response, targetOrigin);\n};\n"],"mappings":"AAAA;AACA;AACA
|
|
1
|
+
{"version":3,"file":"hub.js","names":["context","init","permissions","window","addEventListener","listener","parent","postMessage","permitted","origin","method","available","includes","undefined","i","length","entry","match","test","allow","methods","get","params","storage","localStorage","result","keys","value","getItem","push","set","setItem","key","del","removeItem","getKeys","clear","message","data","request","JSON","parse","split","error","err","response","stringify","id","targetOrigin"],"sources":["../../src/storage/lib/hub.ts"],"sourcesContent":["/**\n * この実装はcross-storageほぼそのままです。\n */\ntype Method = \"get\" | \"set\" | \"del\" | \"getKeys\" | \"clear\";\n\nexport interface Permission {\n origin: RegExp;\n allow: Method[];\n}\n\nconst context: {\n permissions?: Permission[];\n} = {};\n\n/**\n * Do not use this directly. This specifications are subject to significant change.\n * @internal\n */\nexport const init = (permissions: Permission[]) => {\n context.permissions = permissions;\n window.addEventListener(\"message\", listener, false);\n window.parent.postMessage(\"cross-storage:ready\", \"*\");\n};\n\nconst permitted = (origin: string, method: Method) => {\n const available = [\"get\", \"set\", \"del\", \"clear\", \"getKeys\"];\n if (!available.includes(method)) {\n return false;\n }\n\n if (context.permissions === undefined) {\n return false;\n }\n\n for (let i = 0; i < context.permissions.length; i++) {\n const entry = context.permissions[i];\n const match = entry.origin.test(origin);\n if (match && entry.allow.includes(method)) {\n return true;\n }\n }\n return false;\n};\n\nconst methods: {\n // eslint-disable-next-line @typescript-eslint/ban-types\n [key in Method]: Function;\n} = {\n get: (params: { keys: string[] }) => {\n const storage = window.localStorage;\n const result = [];\n for (let i = 0; i < params.keys.length; i++) {\n const value = storage.getItem(params.keys[i]) || null;\n result.push(value);\n }\n // Todo: このパターン好きじゃない\n return result.length > 1 ? result : result[0];\n },\n set: (params: { key: string; value: string }) => {\n window.localStorage.setItem(params.key, params.value);\n },\n del: (params: { keys: string[] }) => {\n // eslint-disable-next-line no-var\n for (var i = 0; i < params.keys.length; i++) {\n window.localStorage.removeItem(params.keys[i]);\n }\n },\n getKeys: () => {\n const keys = [];\n const length = window.localStorage.length;\n\n for (let i = 0; i < length; i++) {\n keys.push(window.localStorage.key(i));\n }\n\n return keys;\n },\n clear: () => {\n window.localStorage.clear();\n },\n};\n\ninterface Message {\n origin: string;\n data: string;\n}\n\nconst listener = (message: Message) => {\n // postMessage returns the string \"null\" as the origin for \"file://\"\n const origin = message.origin === \"null\" ? \"file://\" : message.origin;\n\n // Handle polling for a ready message\n if (message.data === \"cross-storage:poll\") {\n return window.parent.postMessage(\"cross-storage:ready\", message.origin);\n }\n\n // Ignore the ready message when viewing the hub directly\n if (message.data === \"cross-storage:ready\") return;\n\n const request: {\n id: string;\n method?: string;\n // eslint-disable-next-line @typescript-eslint/ban-types\n params: Object;\n } = JSON.parse(message.data);\n\n // Check whether request.method is a string\n if (!request || typeof request.method !== \"string\") {\n return;\n }\n\n const method = request.method.split(\"cross-storage:\")[1] as Method;\n\n let error = \"\";\n let result: string | undefined = undefined;\n\n if (!method) {\n return;\n } else if (!permitted(origin, method)) {\n error = \"Invalid permissions for \" + method;\n } else {\n try {\n result = methods[method](request.params);\n } catch (err) {\n error = (err as unknown as Error).message;\n }\n }\n\n const response = JSON.stringify({\n id: request.id,\n error: error,\n result: result,\n });\n\n // postMessage requires that the target origin be set to \"*\" for \"file://\"\n const targetOrigin = origin === \"file://\" ? \"*\" : origin;\n\n window.parent.postMessage(response, targetOrigin);\n};\n"],"mappings":"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"}
|
package/storage/useM2mAuth.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useM2mAuth.d.ts","sourceRoot":"","sources":["../src/storage/useM2mAuth.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,
|
|
1
|
+
{"version":3,"file":"useM2mAuth.d.ts","sourceRoot":"","sources":["../src/storage/useM2mAuth.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IACzE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CAC5D,CAAC;AAeF,eAAO,MAAM,yBAAyB;cAG1B,MAAM,SAAS;iBAsE1B,CAAC;AAEF,eAAO,MAAM,OAAO,2BAMnB,CAAC"}
|
package/storage/useM2mAuth.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
2
|
-
|
|
3
2
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
4
|
-
|
|
5
3
|
import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
|
|
6
4
|
import { fetcher } from "matsuri-hooks";
|
|
7
5
|
import { m2mAuthTokenApi } from "./client";
|
|
8
6
|
import { login as m2mUsers_v1_login } from "../endpoints/m2m-users.v1";
|
|
9
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
8
|
var AuthenticationContext = /*#__PURE__*/createContext(undefined);
|
|
11
|
-
|
|
12
9
|
var checkJwtExpiration = jwt => {
|
|
13
10
|
var splitted = jwt.split(".");
|
|
14
11
|
if (splitted.length !== 3) return false;
|
|
@@ -16,7 +13,6 @@ var checkJwtExpiration = jwt => {
|
|
|
16
13
|
var exp = JSON.parse(atob(payload))["exp"];
|
|
17
14
|
return new Date() < new Date(exp * 1000);
|
|
18
15
|
};
|
|
19
|
-
|
|
20
16
|
export var M2mAuthenticationProvider = _ref => {
|
|
21
17
|
var {
|
|
22
18
|
children
|
|
@@ -25,7 +21,6 @@ export var M2mAuthenticationProvider = _ref => {
|
|
|
25
21
|
var authenticated = useMemo(() => !!token, [token]);
|
|
26
22
|
var tryCheckAuth = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
|
|
27
23
|
var authToken = yield m2mAuthTokenApi.get();
|
|
28
|
-
|
|
29
24
|
if (!(authToken && checkJwtExpiration(authToken))) {
|
|
30
25
|
m2mAuthTokenApi.clear();
|
|
31
26
|
setToken("");
|
|
@@ -46,19 +41,16 @@ export var M2mAuthenticationProvider = _ref => {
|
|
|
46
41
|
method: "POST",
|
|
47
42
|
body: JSON.stringify(input)
|
|
48
43
|
});
|
|
49
|
-
|
|
50
44
|
if (data) {
|
|
51
45
|
var authToken = data.accessToken;
|
|
52
46
|
m2mAuthTokenApi.set(authToken);
|
|
53
47
|
setToken(authToken);
|
|
54
48
|
}
|
|
55
|
-
|
|
56
49
|
return {
|
|
57
50
|
error,
|
|
58
51
|
token: data ? data.accessToken : undefined
|
|
59
52
|
};
|
|
60
53
|
});
|
|
61
|
-
|
|
62
54
|
return function (_x) {
|
|
63
55
|
return _ref3.apply(this, arguments);
|
|
64
56
|
};
|
|
@@ -74,14 +66,12 @@ export var M2mAuthenticationProvider = _ref => {
|
|
|
74
66
|
error: new Error("M2MAuthToken is expired")
|
|
75
67
|
};
|
|
76
68
|
}
|
|
77
|
-
|
|
78
69
|
yield m2mAuthTokenApi.set(token);
|
|
79
70
|
setToken(token);
|
|
80
71
|
return {
|
|
81
72
|
error: undefined
|
|
82
73
|
};
|
|
83
74
|
});
|
|
84
|
-
|
|
85
75
|
return function (_x2) {
|
|
86
76
|
return _ref4.apply(this, arguments);
|
|
87
77
|
};
|
|
@@ -102,11 +92,9 @@ export var M2mAuthenticationProvider = _ref => {
|
|
|
102
92
|
};
|
|
103
93
|
export var useAuth = () => {
|
|
104
94
|
var ctx = useContext(AuthenticationContext);
|
|
105
|
-
|
|
106
95
|
if (!ctx) {
|
|
107
96
|
throw new Error("AuthenticationProvider is not found");
|
|
108
97
|
}
|
|
109
|
-
|
|
110
98
|
return ctx;
|
|
111
99
|
};
|
|
112
100
|
//# sourceMappingURL=useM2mAuth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useM2mAuth.js","names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","fetcher","m2mAuthTokenApi","login","m2mUsers_v1_login","AuthenticationContext","undefined","checkJwtExpiration","jwt","splitted","split","length","payload","exp","JSON","parse","atob","Date","M2mAuthenticationProvider","children","token","setToken","getCache","authenticated","tryCheckAuth","authToken","get","clear","set","input","data","error","method","body","stringify","accessToken","logout","window","location","reload","updateToken","Error","state","useAuth","ctx"],"sources":["../src/storage/useM2mAuth.tsx"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { fetcher } from \"matsuri-hooks\";\nimport { m2mAuthTokenApi } from \"./client\";\nimport { login as m2mUsers_v1_login } from \"../endpoints/m2m-users.v1\";\n\ninterface LoginInput {\n email: string;\n password: string;\n}\n\ntype AuthenticationState = {\n token: string;\n authenticated: boolean;\n login: (input: LoginInput) => Promise<{ token?: string; error?: Error }>;\n logout: () => void;\n updateToken: (token: string) => Promise<{ error?: Error }>;\n};\n\nconst AuthenticationContext = createContext<AuthenticationState | undefined>(\n undefined\n);\n\nconst checkJwtExpiration = (jwt: string): boolean => {\n const splitted = jwt.split(\".\");\n if (splitted.length !== 3) return false;\n\n const [, payload] = splitted;\n const exp = JSON.parse(atob(payload))[\"exp\"];\n return new Date() < new Date(exp * 1000);\n};\n\nexport const M2mAuthenticationProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const [token, setToken] = useState(m2mAuthTokenApi.getCache() || \"\");\n\n const authenticated = useMemo(() => !!token, [token]);\n\n const tryCheckAuth = useCallback(async () => {\n const authToken = await m2mAuthTokenApi.get();\n if (!(authToken && checkJwtExpiration(authToken))) {\n m2mAuthTokenApi.clear();\n setToken(\"\");\n } else {\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n }, []);\n\n useEffect(() => {\n tryCheckAuth();\n }, [tryCheckAuth]);\n\n const login = useCallback(async (input: LoginInput) => {\n const { data, error } = await fetcher<{\n accessToken: string;\n }>(m2mUsers_v1_login(), {\n method: \"POST\",\n body: JSON.stringify(input),\n });\n if (data) {\n const authToken = data.accessToken;\n\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n return {\n error,\n token: data ? data.accessToken : undefined,\n };\n }, []);\n\n const logout = useCallback(() => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n }, []);\n\n const updateToken = useCallback(async (token: string) => {\n if (checkJwtExpiration(token)) {\n return {\n error: new Error(\"M2MAuthToken is expired\"),\n };\n }\n await m2mAuthTokenApi.set(token);\n setToken(token);\n return { error: undefined };\n }, []);\n\n const state = useMemo(() => {\n return {\n login,\n logout,\n token,\n authenticated,\n updateToken,\n };\n }, [authenticated, login, logout, token, updateToken]);\n return (\n <AuthenticationContext.Provider value={state}>\n {children}\n </AuthenticationContext.Provider>\n );\n};\n\nexport const useAuth = () => {\n const ctx = useContext(AuthenticationContext);\n if (!ctx) {\n throw new Error(\"AuthenticationProvider is not found\");\n }\n return ctx;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useM2mAuth.js","names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","fetcher","m2mAuthTokenApi","login","m2mUsers_v1_login","jsx","_jsx","AuthenticationContext","undefined","checkJwtExpiration","jwt","splitted","split","length","payload","exp","JSON","parse","atob","Date","M2mAuthenticationProvider","_ref","children","token","setToken","getCache","authenticated","tryCheckAuth","_asyncToGenerator","authToken","get","clear","set","_ref3","input","data","error","method","body","stringify","accessToken","_x","apply","arguments","logout","window","location","reload","updateToken","_ref4","Error","_x2","state","Provider","value","useAuth","ctx"],"sources":["../src/storage/useM2mAuth.tsx"],"sourcesContent":["import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { fetcher } from \"matsuri-hooks\";\nimport { m2mAuthTokenApi } from \"./client\";\nimport { login as m2mUsers_v1_login } from \"../endpoints/m2m-users.v1\";\n\ninterface LoginInput {\n email: string;\n password: string;\n}\n\ntype AuthenticationState = {\n token: string;\n authenticated: boolean;\n login: (input: LoginInput) => Promise<{ token?: string; error?: Error }>;\n logout: () => void;\n updateToken: (token: string) => Promise<{ error?: Error }>;\n};\n\nconst AuthenticationContext = createContext<AuthenticationState | undefined>(\n undefined\n);\n\nconst checkJwtExpiration = (jwt: string): boolean => {\n const splitted = jwt.split(\".\");\n if (splitted.length !== 3) return false;\n\n const [, payload] = splitted;\n const exp = JSON.parse(atob(payload))[\"exp\"];\n return new Date() < new Date(exp * 1000);\n};\n\nexport const M2mAuthenticationProvider = ({\n children,\n}: {\n children: React.ReactNode;\n}) => {\n const [token, setToken] = useState(m2mAuthTokenApi.getCache() || \"\");\n\n const authenticated = useMemo(() => !!token, [token]);\n\n const tryCheckAuth = useCallback(async () => {\n const authToken = await m2mAuthTokenApi.get();\n if (!(authToken && checkJwtExpiration(authToken))) {\n m2mAuthTokenApi.clear();\n setToken(\"\");\n } else {\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n }, []);\n\n useEffect(() => {\n tryCheckAuth();\n }, [tryCheckAuth]);\n\n const login = useCallback(async (input: LoginInput) => {\n const { data, error } = await fetcher<{\n accessToken: string;\n }>(m2mUsers_v1_login(), {\n method: \"POST\",\n body: JSON.stringify(input),\n });\n if (data) {\n const authToken = data.accessToken;\n\n m2mAuthTokenApi.set(authToken);\n setToken(authToken);\n }\n return {\n error,\n token: data ? data.accessToken : undefined,\n };\n }, []);\n\n const logout = useCallback(() => {\n m2mAuthTokenApi.clear();\n window.location.reload();\n }, []);\n\n const updateToken = useCallback(async (token: string) => {\n if (checkJwtExpiration(token)) {\n return {\n error: new Error(\"M2MAuthToken is expired\"),\n };\n }\n await m2mAuthTokenApi.set(token);\n setToken(token);\n return { error: undefined };\n }, []);\n\n const state = useMemo(() => {\n return {\n login,\n logout,\n token,\n authenticated,\n updateToken,\n };\n }, [authenticated, login, logout, token, updateToken]);\n return (\n <AuthenticationContext.Provider value={state}>\n {children}\n </AuthenticationContext.Provider>\n );\n};\n\nexport const useAuth = () => {\n const ctx = useContext(AuthenticationContext);\n if (!ctx) {\n throw new Error(\"AuthenticationProvider is not found\");\n }\n return ctx;\n};\n"],"mappings":"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"}
|