@memberstack/dom 1.0.60-alpha.13 → 1.0.60-alpha.14
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/lib/auth/persistence/index.d.ts +2 -0
- package/lib/auth/persistence/index.js +14 -0
- package/lib/auth/persistence/interceptor.d.ts +2 -0
- package/lib/auth/persistence/interceptor.js +46 -0
- package/lib/auth/persistence/local.d.ts +5 -0
- package/lib/auth/persistence/local.js +25 -0
- package/lib/auth/persistence/methods.d.ts +11 -0
- package/lib/auth/persistence/methods.js +57 -0
- package/lib/auth/persistence/session.d.ts +5 -0
- package/lib/auth/persistence/session.js +25 -0
- package/lib/index.d.ts +1 -0
- package/lib/methods/dom.js +7 -3
- package/lib/methods/index.d.ts +1292 -4
- package/lib/methods/index.js +22 -6
- package/package.json +4 -3
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./methods"), exports);
|
|
14
|
+
__exportStar(require("./interceptor"), exports);
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initializeInterceptor = void 0;
|
|
4
|
+
var node_request_interceptor_1 = require("node-request-interceptor");
|
|
5
|
+
var XMLHttpRequest_1 = require("node-request-interceptor/lib/interceptors/XMLHttpRequest");
|
|
6
|
+
var _1 = require(".");
|
|
7
|
+
var cookies_1 = require("../../utils/cookies");
|
|
8
|
+
var methods_1 = require("./methods");
|
|
9
|
+
var shouldIntercept = function (req) {
|
|
10
|
+
return (req.url.pathname.startsWith("/client/auth") || req.url.pathname.startsWith("/client/member"));
|
|
11
|
+
};
|
|
12
|
+
var persist = function (res, persistence) {
|
|
13
|
+
var _a, _b, _c, _d;
|
|
14
|
+
if (res === null || res === void 0 ? void 0 : res.body) {
|
|
15
|
+
var parsedResponse = JSON.parse(res.body);
|
|
16
|
+
if ((_a = parsedResponse.data) === null || _a === void 0 ? void 0 : _a.member) {
|
|
17
|
+
_1.setPersistedMember((_b = parsedResponse.data) === null || _b === void 0 ? void 0 : _b.member, persistence);
|
|
18
|
+
}
|
|
19
|
+
if ((_d = (_c = parsedResponse.data) === null || _c === void 0 ? void 0 : _c.id) === null || _d === void 0 ? void 0 : _d.startsWith("mem_")) {
|
|
20
|
+
_1.setPersistedMember(parsedResponse.data, persistence);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
var setCookie = function (res, useCookie) {
|
|
25
|
+
var _a, _b, _c;
|
|
26
|
+
console.log({ useCookie: useCookie });
|
|
27
|
+
var body = JSON.parse(res.body || "{}");
|
|
28
|
+
console.log({ body: body });
|
|
29
|
+
if (useCookie && ((_b = (_a = body === null || body === void 0 ? void 0 : body.data) === null || _a === void 0 ? void 0 : _a.tokens) === null || _b === void 0 ? void 0 : _b.accessToken)) {
|
|
30
|
+
cookies_1.setMemberCookie((_c = body.data) === null || _c === void 0 ? void 0 : _c.tokens.accessToken);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var initializeInterceptor = function (persistence, useCookie) {
|
|
34
|
+
var interceptor = new node_request_interceptor_1.RequestInterceptor([XMLHttpRequest_1.interceptXMLHttpRequest]);
|
|
35
|
+
interceptor.on("response", function (req, res) {
|
|
36
|
+
if (shouldIntercept(req)) {
|
|
37
|
+
console.log({ pathname: req.url.pathname });
|
|
38
|
+
if (req.url.pathname.endsWith("/logout")) {
|
|
39
|
+
return methods_1.unsetPersistedMember(persistence);
|
|
40
|
+
}
|
|
41
|
+
persist(res, persistence);
|
|
42
|
+
setCookie(res, useCookie);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
exports.initializeInterceptor = initializeInterceptor;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.localStoragePersistence = void 0;
|
|
4
|
+
var localStoragePersistence = function () {
|
|
5
|
+
if (!(window === null || window === void 0 ? void 0 : window.localStorage)) {
|
|
6
|
+
throw new Error("Local Storage is not supported.");
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
setMember: function (member) {
|
|
10
|
+
localStorage.setItem("_ms-member", JSON.stringify(member));
|
|
11
|
+
return JSON.parse(localStorage.getItem("_ms-member"));
|
|
12
|
+
},
|
|
13
|
+
getMember: function () {
|
|
14
|
+
var persistedMember = localStorage.getItem("_ms-member");
|
|
15
|
+
if (!persistedMember || !Object.keys(persistedMember).length) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return JSON.parse(localStorage.getItem("_ms-member"));
|
|
19
|
+
},
|
|
20
|
+
unsetMember: function () {
|
|
21
|
+
localStorage.removeItem("_ms-member");
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
exports.localStoragePersistence = localStoragePersistence;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import memberstack from "@memberstack/client";
|
|
2
|
+
declare type Await<T> = T extends PromiseLike<infer U> ? U : T;
|
|
3
|
+
export declare enum Persistence {
|
|
4
|
+
SESSION = "SESSION",
|
|
5
|
+
LOCAL = "LOCAL"
|
|
6
|
+
}
|
|
7
|
+
export declare const setPersistedMember: (member: Await<ReturnType<ReturnType<typeof memberstack.init>["loginMemberEmailPassword"]>>["data"]["member"], persistence: Persistence) => void;
|
|
8
|
+
export declare const getPersistedMember: (persistence: any) => any;
|
|
9
|
+
export declare const unsetPersistedMember: (persistence: any) => void;
|
|
10
|
+
export declare const onAuthChange: (cb: any) => void;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.onAuthChange = exports.unsetPersistedMember = exports.getPersistedMember = exports.setPersistedMember = exports.Persistence = void 0;
|
|
4
|
+
var local_1 = require("./local");
|
|
5
|
+
var session_1 = require("./session");
|
|
6
|
+
var Persistence;
|
|
7
|
+
(function (Persistence) {
|
|
8
|
+
Persistence["SESSION"] = "SESSION";
|
|
9
|
+
Persistence["LOCAL"] = "LOCAL";
|
|
10
|
+
})(Persistence = exports.Persistence || (exports.Persistence = {}));
|
|
11
|
+
var createObservable = function () {
|
|
12
|
+
var observers = [];
|
|
13
|
+
return {
|
|
14
|
+
subscribe: function (fn) {
|
|
15
|
+
if (typeof fn === "function") {
|
|
16
|
+
observers.push(fn);
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
notify: function (data) {
|
|
20
|
+
return observers.forEach(function (observer) {
|
|
21
|
+
observer(data);
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
var observable = createObservable();
|
|
27
|
+
var getPersistence = function (persistence) {
|
|
28
|
+
if (persistence === Persistence.LOCAL) {
|
|
29
|
+
return local_1.localStoragePersistence();
|
|
30
|
+
}
|
|
31
|
+
if (persistence === Persistence.SESSION) {
|
|
32
|
+
return session_1.sessionStoragePersistence();
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var setPersistedMember = function (member, persistence) {
|
|
36
|
+
var _a;
|
|
37
|
+
if (member) {
|
|
38
|
+
(_a = getPersistence(persistence)) === null || _a === void 0 ? void 0 : _a.setMember(member);
|
|
39
|
+
observable.notify(member);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.setPersistedMember = setPersistedMember;
|
|
43
|
+
var getPersistedMember = function (persistence) {
|
|
44
|
+
var _a;
|
|
45
|
+
return (_a = getPersistence(persistence)) === null || _a === void 0 ? void 0 : _a.getMember();
|
|
46
|
+
};
|
|
47
|
+
exports.getPersistedMember = getPersistedMember;
|
|
48
|
+
var unsetPersistedMember = function (persistence) {
|
|
49
|
+
var _a;
|
|
50
|
+
(_a = getPersistence(persistence)) === null || _a === void 0 ? void 0 : _a.unsetMember();
|
|
51
|
+
observable.notify(null);
|
|
52
|
+
};
|
|
53
|
+
exports.unsetPersistedMember = unsetPersistedMember;
|
|
54
|
+
var onAuthChange = function (cb) {
|
|
55
|
+
observable.subscribe(cb);
|
|
56
|
+
};
|
|
57
|
+
exports.onAuthChange = onAuthChange;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sessionStoragePersistence = void 0;
|
|
4
|
+
var sessionStoragePersistence = function () {
|
|
5
|
+
if (!(window === null || window === void 0 ? void 0 : window.sessionStorage)) {
|
|
6
|
+
throw new Error("Session Storage is not supported.");
|
|
7
|
+
}
|
|
8
|
+
return {
|
|
9
|
+
setMember: function (member) {
|
|
10
|
+
sessionStorage.setItem("_ms-member", JSON.stringify(member));
|
|
11
|
+
return JSON.parse(sessionStorage.getItem("_ms-member"));
|
|
12
|
+
},
|
|
13
|
+
getMember: function () {
|
|
14
|
+
var persistedMember = sessionStorage.getItem("_ms-member");
|
|
15
|
+
if (!persistedMember || !Object.keys(persistedMember).length) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return JSON.parse(sessionStorage.getItem("_ms-member"));
|
|
19
|
+
},
|
|
20
|
+
unsetMember: function () {
|
|
21
|
+
sessionStorage.removeItem("_ms-member");
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
exports.sessionStoragePersistence = sessionStoragePersistence;
|
package/lib/index.d.ts
CHANGED
package/lib/methods/dom.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.hideModal = exports.openModal = exports.load = exports.initialize = void
|
|
|
4
4
|
var window_1 = require("../constants/window");
|
|
5
5
|
var endpoint_1 = require("../constants/endpoint");
|
|
6
6
|
var cookies_1 = require("../utils/cookies");
|
|
7
|
+
var persistence_1 = require("../auth/persistence");
|
|
7
8
|
var isBrowser = typeof window !== "undefined";
|
|
8
9
|
function initialize(props) {
|
|
9
10
|
if (!isBrowser)
|
|
@@ -29,15 +30,18 @@ var openModal = function (props) {
|
|
|
29
30
|
return null;
|
|
30
31
|
(_a = window[window_1.Window.MSDOM]) === null || _a === void 0 ? void 0 : _a.show(props.type, props.params);
|
|
31
32
|
window.addEventListener("message", function (e) {
|
|
32
|
-
var _a, _b;
|
|
33
|
+
var _a, _b, _c, _d, _e, _f;
|
|
33
34
|
if (e.origin === endpoint_1.endpoints.parentOrigin) {
|
|
34
35
|
if (e.data.type === "CLOSE") {
|
|
35
36
|
return exports.hideModal();
|
|
36
37
|
}
|
|
37
|
-
if (
|
|
38
|
+
if ((_a = e.data) === null || _a === void 0 ? void 0 : _a.data.member) {
|
|
39
|
+
persistence_1.setPersistedMember((_b = e.data) === null || _b === void 0 ? void 0 : _b.data.member, props.persistence);
|
|
40
|
+
}
|
|
41
|
+
if (props.useCookie && ((_d = (_c = e.data) === null || _c === void 0 ? void 0 : _c.data.tokens) === null || _d === void 0 ? void 0 : _d.accessToken)) {
|
|
38
42
|
cookies_1.setMemberCookie(e.data.data.tokens.accessToken);
|
|
39
43
|
}
|
|
40
|
-
props.options.onCompleted(e.data.data);
|
|
44
|
+
(_f = (_e = props.options).onCompleted) === null || _f === void 0 ? void 0 : _f.call(_e, e.data.data);
|
|
41
45
|
}
|
|
42
46
|
});
|
|
43
47
|
};
|