@memberstack/dom 1.0.0-alpha.3.4.5 → 1.0.0-beta.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 +1 -0
- 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 +43 -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/constants/cookies.d.ts +3 -0
- package/lib/constants/cookies.js +7 -0
- package/lib/constants/endpoint.d.ts +4 -0
- package/lib/constants/endpoint.js +7 -0
- package/lib/constants/window.d.ts +4 -0
- package/lib/constants/window.js +7 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +7 -0
- package/lib/methods/dom.d.ts +10 -0
- package/lib/methods/dom.js +55 -0
- package/lib/methods/index.d.ts +1312 -0
- package/lib/methods/index.js +120 -0
- package/lib/types/params.d.ts +11 -0
- package/lib/types/params.js +2 -0
- package/lib/utils/cookies.d.ts +2 -0
- package/lib/utils/cookies.js +15 -0
- package/package.json +9 -21
- package/dist/constants/elements.d.ts +0 -61
- package/dist/constants/utils.d.ts +0 -26
- package/dist/dist/modal.css +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -8
- package/dist/methods/index.d.ts +0 -3
- package/dist/methods/modal/fetchModal.d.ts +0 -4
- package/dist/methods/modal/loadModal.d.ts +0 -8
- package/dist/ms-dom.cjs.development.js +0 -729
- package/dist/ms-dom.cjs.development.js.map +0 -1
- package/dist/ms-dom.cjs.production.min.js +0 -2
- package/dist/ms-dom.cjs.production.min.js.map +0 -1
- package/dist/ms-dom.esm.js +0 -722
- package/dist/ms-dom.esm.js.map +0 -1
- package/dist/ms-dom.umd.development.js +0 -733
- package/dist/ms-dom.umd.development.js.map +0 -1
- package/dist/ms-dom.umd.production.min.js +0 -2
- package/dist/ms-dom.umd.production.min.js.map +0 -1
- package/dist/scripts/listeners.d.ts +0 -6
- package/dist/scripts/personalize.d.ts +0 -2
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
memberstack-dom
|
|
@@ -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,43 @@
|
|
|
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
|
+
var body = JSON.parse(res.body || "{}");
|
|
27
|
+
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)) {
|
|
28
|
+
cookies_1.setMemberCookie((_c = body.data) === null || _c === void 0 ? void 0 : _c.tokens.accessToken);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var initializeInterceptor = function (persistence, useCookie) {
|
|
32
|
+
var interceptor = new node_request_interceptor_1.RequestInterceptor([XMLHttpRequest_1.interceptXMLHttpRequest]);
|
|
33
|
+
interceptor.on("response", function (req, res) {
|
|
34
|
+
if (shouldIntercept(req)) {
|
|
35
|
+
if (req.url.pathname.endsWith("/logout")) {
|
|
36
|
+
return methods_1.unsetPersistedMember(persistence);
|
|
37
|
+
}
|
|
38
|
+
persist(res, persistence);
|
|
39
|
+
setCookie(res, useCookie);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
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;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemberCookies = void 0;
|
|
4
|
+
var MemberCookies;
|
|
5
|
+
(function (MemberCookies) {
|
|
6
|
+
MemberCookies["AUTH"] = "_ms-mid";
|
|
7
|
+
})(MemberCookies = exports.MemberCookies || (exports.MemberCookies = {}));
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Persistence = void 0;
|
|
4
|
+
var methods_1 = require("./methods");
|
|
5
|
+
var persistence_1 = require("./auth/persistence");
|
|
6
|
+
Object.defineProperty(exports, "Persistence", { enumerable: true, get: function () { return persistence_1.Persistence; } });
|
|
7
|
+
exports.default = methods_1.Methods;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ClientConfig } from ".";
|
|
2
|
+
import type { OpenModalParams } from "../types/params";
|
|
3
|
+
export declare function initialize(props: {
|
|
4
|
+
publicKey: string;
|
|
5
|
+
}): any;
|
|
6
|
+
export declare const load: (props: {
|
|
7
|
+
publicKey: string;
|
|
8
|
+
}) => any;
|
|
9
|
+
export declare const openModal: (props: OpenModalParams & ClientConfig) => any;
|
|
10
|
+
export declare const hideModal: () => any;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hideModal = exports.openModal = exports.load = exports.initialize = void 0;
|
|
4
|
+
var window_1 = require("../constants/window");
|
|
5
|
+
var endpoint_1 = require("../constants/endpoint");
|
|
6
|
+
var cookies_1 = require("../utils/cookies");
|
|
7
|
+
var persistence_1 = require("../auth/persistence");
|
|
8
|
+
var isBrowser = typeof window !== "undefined";
|
|
9
|
+
function initialize(props) {
|
|
10
|
+
if (!isBrowser)
|
|
11
|
+
return null;
|
|
12
|
+
var script = document.createElement("script");
|
|
13
|
+
script.setAttribute("src", endpoint_1.endpoints.loaderScript);
|
|
14
|
+
script.setAttribute("defer", "true");
|
|
15
|
+
script.setAttribute("crossorigin", "true");
|
|
16
|
+
document.body.appendChild(script);
|
|
17
|
+
script.onload = function () { return exports.load(props); };
|
|
18
|
+
}
|
|
19
|
+
exports.initialize = initialize;
|
|
20
|
+
var load = function (props) {
|
|
21
|
+
var _a;
|
|
22
|
+
if (!isBrowser)
|
|
23
|
+
return null;
|
|
24
|
+
(_a = window[window_1.Window.MSDOM]) === null || _a === void 0 ? void 0 : _a.load({ publicKey: props.publicKey });
|
|
25
|
+
};
|
|
26
|
+
exports.load = load;
|
|
27
|
+
var openModal = function (props) {
|
|
28
|
+
var _a;
|
|
29
|
+
if (!isBrowser)
|
|
30
|
+
return null;
|
|
31
|
+
(_a = window[window_1.Window.MSDOM]) === null || _a === void 0 ? void 0 : _a.show(props.type, props.params);
|
|
32
|
+
window.addEventListener("message", function (e) {
|
|
33
|
+
var _a, _b, _c, _d, _e, _f;
|
|
34
|
+
if (e.origin === endpoint_1.endpoints.parentOrigin) {
|
|
35
|
+
if (e.data.type === "CLOSE") {
|
|
36
|
+
return exports.hideModal();
|
|
37
|
+
}
|
|
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)) {
|
|
42
|
+
cookies_1.setMemberCookie(e.data.data.tokens.accessToken);
|
|
43
|
+
}
|
|
44
|
+
(_f = (_e = props.options) === null || _e === void 0 ? void 0 : _e.onCompleted) === null || _f === void 0 ? void 0 : _f.call(_e, e.data.data);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
exports.openModal = openModal;
|
|
49
|
+
var hideModal = function () {
|
|
50
|
+
var _a;
|
|
51
|
+
if (!isBrowser)
|
|
52
|
+
return null;
|
|
53
|
+
(_a = window[window_1.Window.MSDOM]) === null || _a === void 0 ? void 0 : _a.hide();
|
|
54
|
+
};
|
|
55
|
+
exports.hideModal = hideModal;
|