@memberstack/dom 1.0.0-beta.21 → 1.0.0-beta.25

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,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initialize = exports.openModal = exports.load = exports.hideModal = void 0;
4
3
  var methods_1 = require("./methods");
5
4
  Object.defineProperty(exports, "hideModal", { enumerable: true, get: function () { return methods_1.hideModal; } });
6
5
  Object.defineProperty(exports, "load", { enumerable: true, get: function () { return methods_1.load; } });
@@ -1,31 +1,17 @@
1
1
  import type { DOMConfig } from "..";
2
- declare type ActionParams = {
3
- onCompleted?: (x: any) => any;
4
- onError?: (x: any) => any;
5
- };
6
- export declare type OpenModalParams = ActionParams & ({
7
- type: "LOGIN";
2
+ export declare type OpenModalParams = {
3
+ type: "LOGIN" | "SIGNUP" | "FORGOT_PASSWORD";
8
4
  params?: {
9
5
  planId?: string;
10
- priceId?: string;
11
- };
12
- } | {
13
- type: "SIGNUP";
14
- params: {
15
- planId: string;
16
- priceId?: string;
6
+ planPaymentOptionId?: string;
17
7
  };
18
- } | {
19
- type: "FORGOT_PASSWORD";
20
- params: {};
21
- });
22
- export declare const initDOM: (props: {
23
- publicKey: string;
24
- } & DOMConfig) => {
25
- openModal: (openModalProps: OpenModalParams) => void;
26
- hideModal: any;
27
- onAuthChange: (cb: any) => {
28
- unsubscribe: () => boolean;
8
+ options?: {
9
+ onCompleted?: (x: any) => any;
10
+ onError?: (x: any) => any;
29
11
  };
30
12
  };
31
- export {};
13
+ export declare const load: (props: {
14
+ publicKey: string;
15
+ }) => void;
16
+ export declare const openModal: (props: OpenModalParams & DOMConfig) => void;
17
+ export declare const hideModal: () => void;
@@ -1,45 +1,61 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.initDOM = void 0;
3
+ exports.hideModal = exports.openModal = exports.load = void 0;
15
4
  var window_1 = require("../../constants/window");
16
5
  var endpoint_1 = require("../../constants/endpoint");
17
6
  var cookies_1 = require("../../utils/cookies");
18
7
  var persistence_1 = require("../../auth/persistence");
19
- var initDOM = function (props) {
20
- var methods = window[window_1.Window.MEMBERSTACK].init({ publicKey: props.publicKey });
21
- return {
22
- openModal: function (openModalProps) { return openModal(methods, __assign(__assign({}, props), openModalProps)); },
23
- hideModal: methods.hide,
24
- onAuthChange: persistence_1.onAuthChange
25
- };
8
+ var isBrowser = typeof window !== "undefined";
9
+ var isInitialized = function () {
10
+ if (!isBrowser)
11
+ return;
12
+ if (!(window === null || window === void 0 ? void 0 : window[window_1.Window.MSDOM])) {
13
+ console.warn("Memberstack has not been initialized yet.");
14
+ return false;
15
+ }
16
+ return true;
26
17
  };
27
- exports.initDOM = initDOM;
28
- var openModal = function (methods, props) {
29
- methods.show(props.type, props.params);
30
- window.addEventListener("message", function (e) {
31
- var _a, _b, _c, _d, _e, _f, _g, _h;
32
- if (e.origin === endpoint_1.endpoints.parentOrigin) {
33
- if (e.data.type === "CLOSE") {
34
- return methods.hide();
35
- }
36
- if ((_b = (_a = e.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.member) {
37
- (0, persistence_1.setPersistedMember)((_c = e.data) === null || _c === void 0 ? void 0 : _c.data.member, props.persistence);
38
- }
39
- if (props.useCookie && ((_f = (_e = (_d = e.data) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.tokens) === null || _f === void 0 ? void 0 : _f.accessToken)) {
40
- (0, cookies_1.setMemberCookie)(e.data.data.tokens.accessToken);
18
+ var hasIFrame = function () {
19
+ var initialized = isInitialized();
20
+ if (!initialized)
21
+ return false;
22
+ var iframe = document.querySelector("iframe[id=\"_ms-iframe\"]");
23
+ if (!iframe) {
24
+ console.warn("iFrame has not been loaded yet.");
25
+ return false;
26
+ }
27
+ return true;
28
+ };
29
+ exports.load = function (props) {
30
+ var _a;
31
+ if (isInitialized()) {
32
+ (_a = window[window_1.Window.MSDOM]) === null || _a === void 0 ? void 0 : _a.load({ publicKey: props.publicKey });
33
+ }
34
+ };
35
+ exports.openModal = function (props) {
36
+ var _a;
37
+ if (hasIFrame()) {
38
+ (_a = window[window_1.Window.MSDOM]) === null || _a === void 0 ? void 0 : _a.show(props.type, props.params);
39
+ window.addEventListener("message", function (e) {
40
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
41
+ if (e.origin === endpoint_1.endpoints.parentOrigin) {
42
+ if (e.data.type === "CLOSE") {
43
+ return exports.hideModal();
44
+ }
45
+ if ((_b = (_a = e.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.member) {
46
+ persistence_1.setPersistedMember((_c = e.data) === null || _c === void 0 ? void 0 : _c.data.member, props.persistence);
47
+ }
48
+ if (props.useCookie && ((_f = (_e = (_d = e.data) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.tokens) === null || _f === void 0 ? void 0 : _f.accessToken)) {
49
+ cookies_1.setMemberCookie(e.data.data.tokens.accessToken);
50
+ }
51
+ (_h = (_g = props.options) === null || _g === void 0 ? void 0 : _g.onCompleted) === null || _h === void 0 ? void 0 : _h.call(_g, (_j = e.data) === null || _j === void 0 ? void 0 : _j.data);
41
52
  }
42
- (_g = props.onCompleted) === null || _g === void 0 ? void 0 : _g.call(props, (_h = e.data) === null || _h === void 0 ? void 0 : _h.data);
43
- }
44
- });
53
+ });
54
+ }
55
+ };
56
+ exports.hideModal = function () {
57
+ var _a;
58
+ if (hasIFrame()) {
59
+ (_a = window[window_1.Window.MSDOM]) === null || _a === void 0 ? void 0 : _a.hide();
60
+ }
45
61
  };
@@ -1,3 +1,3 @@
1
- export declare function appendScript(props: {
1
+ export declare function initialize(props: {
2
2
  publicKey: string;
3
- }): HTMLScriptElement;
3
+ }): Promise<any>;
@@ -1,13 +1,48 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.appendScript = void 0;
39
+ exports.initialize = void 0;
4
40
  var endpoint_1 = require("../../constants/endpoint");
5
41
  var window_1 = require("../../constants/window");
6
42
  var isBrowser = typeof window !== "undefined";
7
43
  var SCRIPT_URL = endpoint_1.endpoints.loaderScript;
8
44
  var SCRIPT_URL_REGEX = new RegExp(SCRIPT_URL);
9
- var getScript = function (_a) {
10
- var publicKey = _a.publicKey;
45
+ var getScript = function () {
11
46
  var existingScript = document.querySelector("script[src^=\"" + SCRIPT_URL + "\"]");
12
47
  if (existingScript && SCRIPT_URL_REGEX.test(existingScript.src)) {
13
48
  return existingScript;
@@ -19,22 +54,27 @@ var getScript = function (_a) {
19
54
  if (!document.body) {
20
55
  throw new Error("Memberstack requires a <body> element.");
21
56
  }
22
- script.addEventListener("load", function () {
23
- if (window[window_1.Window.MEMBERSTACK]) {
24
- window[window_1.Window.MEMBERSTACK].init({ publicKey: publicKey });
25
- console.info("\x1b[36m%s\x1b[0m", "Memberstack has been initialized.");
26
- }
27
- else {
28
- console.warn("Could not initialize Memberstack.");
29
- }
30
- });
31
57
  document.body.appendChild(script);
32
58
  return script;
33
59
  };
34
- function appendScript(props) {
35
- if (!isBrowser) {
36
- throw new Error("Memberstack requires a <body> element.");
37
- }
38
- return getScript({ publicKey: props.publicKey });
60
+ function initialize(props) {
61
+ return __awaiter(this, void 0, void 0, function () {
62
+ var script;
63
+ return __generator(this, function (_a) {
64
+ if (!isBrowser)
65
+ return [2 /*return*/, null];
66
+ script = getScript();
67
+ script.addEventListener("load", function () {
68
+ if (window[window_1.Window.MSDOM]) {
69
+ window[window_1.Window.MSDOM].load({ publicKey: props.publicKey });
70
+ console.info("\x1b[36m%s\x1b[0m", "Memberstack has been initialized");
71
+ }
72
+ else {
73
+ console.warn("Could not initialize Memberstack.");
74
+ }
75
+ });
76
+ return [2 /*return*/];
77
+ });
78
+ });
39
79
  }
40
- exports.appendScript = appendScript;
80
+ exports.initialize = initialize;
@@ -1,12 +1,26 @@
1
1
  import { Persistence } from "../auth/persistence";
2
- import { ClientConfig } from "./client";
2
+ import * as DOM from "./dom/methods";
3
+ import { initClient, ClientConfig } from "./client";
3
4
  declare global {
4
5
  interface Window {
5
- memberstack: any;
6
+ __MSDOM: any;
7
+ APP_ID: string;
6
8
  }
7
9
  }
8
10
  export declare type DOMConfig = ClientConfig & {
9
11
  persistence?: Persistence;
10
- useCookie?: boolean;
12
+ useCookie: boolean;
11
13
  };
12
- export declare const init: any;
14
+ declare const DOMMethods: ({ useCookie, persistence, ...props }: DOMConfig) => {
15
+ load: () => void;
16
+ hideModal: () => void;
17
+ onAuthChange: (cb: any) => {
18
+ unsubscribe: () => boolean;
19
+ };
20
+ openModal: (type: DOM.OpenModalParams["type"], params?: DOM.OpenModalParams["params"], options?: DOM.OpenModalParams["options"]) => void;
21
+ };
22
+ export declare const init: (props: DOMConfig) => ReturnType<typeof initClient> & ReturnType<typeof DOMMethods>;
23
+ export declare const Methods: {
24
+ init: (props: DOMConfig) => ReturnType<typeof initClient> & ReturnType<typeof DOMMethods>;
25
+ };
26
+ export {};
@@ -10,26 +10,65 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __rest = (this && this.__rest) || function (s, e) {
33
+ var t = {};
34
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35
+ t[p] = s[p];
36
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
37
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
38
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
39
+ t[p[i]] = s[p[i]];
40
+ }
41
+ return t;
42
+ };
13
43
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
44
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
45
  };
16
46
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.init = void 0;
47
+ exports.Methods = exports.init = void 0;
18
48
  var persistence_1 = require("../auth/persistence");
19
49
  var proxy_1 = __importDefault(require("../utils/proxy"));
20
- var methods_1 = require("./dom/methods");
50
+ var DOM = __importStar(require("./dom/methods"));
21
51
  var script_1 = require("./dom/script");
22
52
  var client_1 = require("./client");
23
- var interceptor_1 = require("../utils/interceptor");
53
+ var DOMMethods = function (_a) {
54
+ var _b = _a.useCookie, useCookie = _b === void 0 ? true : _b, _c = _a.persistence, persistence = _c === void 0 ? persistence_1.Persistence.LOCAL : _c, props = __rest(_a, ["useCookie", "persistence"]);
55
+ return ({
56
+ load: function () { return DOM.load({ publicKey: props.publicKey }); },
57
+ hideModal: DOM.hideModal,
58
+ onAuthChange: persistence_1.onAuthChange,
59
+ openModal: function (type, params, options) { return DOM.openModal(__assign({ type: type, params: params, options: options, useCookie: useCookie, persistence: persistence }, props)); },
60
+ });
61
+ };
24
62
  var withScript = function (fn) {
25
63
  return function (props) {
26
64
  var config = __assign({ persistence: persistence_1.Persistence.LOCAL, useCookie: true }, props);
27
- (0, script_1.appendScript)({ publicKey: props.publicKey });
65
+ script_1.initialize({ publicKey: props.publicKey });
28
66
  return fn(config);
29
67
  };
30
68
  };
31
69
  exports.init = withScript(function (props) {
32
- var client = (0, proxy_1.default)((0, client_1.initClient)(__assign(__assign({}, props), { onMemberToken: function (token) { return (0, interceptor_1.handleMemberToken)({ persistence: props.persistence, token: token }); } })), props);
33
- var methods = (0, methods_1.initDOM)({ publicKey: props.publicKey });
70
+ var client = proxy_1.default(client_1.initClient(props), props);
71
+ var methods = DOMMethods(props);
34
72
  return Object.assign(client, methods);
35
73
  });
74
+ exports.Methods = { init: exports.init };
@@ -1,2 +1,2 @@
1
1
  export declare const setMemberCookie: (token: any, expires?: number) => void;
2
- export declare const getMemberCookie: () => any;
2
+ export declare const getMemberCookie: () => string;
@@ -6,14 +6,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getMemberCookie = exports.setMemberCookie = void 0;
7
7
  var js_cookie_1 = __importDefault(require("js-cookie"));
8
8
  var cookies_1 = require("../constants/cookies");
9
- var setMemberCookie = function (token, expires) {
9
+ exports.setMemberCookie = function (token, expires) {
10
10
  js_cookie_1.default.set(cookies_1.MemberCookies.AUTH, token, {
11
11
  expires: expires || new Date(Date.now() + 604800000),
12
12
  sameSite: "strict",
13
13
  });
14
14
  };
15
- exports.setMemberCookie = setMemberCookie;
16
- var getMemberCookie = function () {
15
+ exports.getMemberCookie = function () {
17
16
  return js_cookie_1.default.get(cookies_1.MemberCookies.AUTH);
18
17
  };
19
- exports.getMemberCookie = getMemberCookie;
@@ -3,16 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handleMemberToken = void 0;
4
4
  var cookies_1 = require("./cookies");
5
5
  var persistence_1 = require("../auth/persistence");
6
- var handleMemberToken = function (_a) {
6
+ exports.handleMemberToken = function (_a) {
7
7
  var persistence = _a.persistence, token = _a.token;
8
8
  if (token === "null") {
9
- (0, cookies_1.setMemberCookie)("", -1);
10
- if ((0, persistence_1.getPersistedMember)(persistence)) {
11
- (0, persistence_1.unsetPersistedMember)(persistence);
9
+ cookies_1.setMemberCookie("", -1);
10
+ if (persistence_1.getPersistedMember(persistence)) {
11
+ persistence_1.unsetPersistedMember(persistence);
12
12
  }
13
13
  }
14
14
  else {
15
- (0, cookies_1.setMemberCookie)(token);
15
+ cookies_1.setMemberCookie(token);
16
16
  }
17
17
  };
18
- exports.handleMemberToken = handleMemberToken;
@@ -15,14 +15,9 @@ var __read = (this && this.__read) || function (o, n) {
15
15
  }
16
16
  return ar;
17
17
  };
18
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
- if (ar || !(i in from)) {
21
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
- ar[i] = from[i];
23
- }
24
- }
25
- return to.concat(ar || Array.prototype.slice.call(from));
18
+ var __spread = (this && this.__spread) || function () {
19
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
20
+ return ar;
26
21
  };
27
22
  Object.defineProperty(exports, "__esModule", { value: true });
28
23
  var persistence_1 = require("../auth/persistence");
@@ -32,15 +27,15 @@ var handleResponse = function (fn, props) {
32
27
  for (var _i = 0; _i < arguments.length; _i++) {
33
28
  args[_i] = arguments[_i];
34
29
  }
35
- var result = fn.apply(void 0, __spreadArray([], __read(args), false));
30
+ var result = fn.apply(void 0, __spread(args));
36
31
  if (result === null || result === void 0 ? void 0 : result.then) {
37
32
  return result.then(function (res) {
38
33
  var _a, _b, _c, _d;
39
34
  if ((_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.member) {
40
- (0, persistence_1.setPersistedMember)((_b = res.data) === null || _b === void 0 ? void 0 : _b.member, props.persistence);
35
+ persistence_1.setPersistedMember((_b = res.data) === null || _b === void 0 ? void 0 : _b.member, props.persistence);
41
36
  }
42
37
  if ((_d = (_c = res === null || res === void 0 ? void 0 : res.data) === null || _c === void 0 ? void 0 : _c.id) === null || _d === void 0 ? void 0 : _d.startsWith("mem_")) {
43
- (0, persistence_1.setPersistedMember)(res.data, props.persistence);
38
+ persistence_1.setPersistedMember(res.data, props.persistence);
44
39
  }
45
40
  return res;
46
41
  });
@@ -51,7 +46,7 @@ var handleResponse = function (fn, props) {
51
46
  var handler = function (props) { return ({
52
47
  get: function (target, prop, receiver) {
53
48
  if (prop === "getCurrentMember") {
54
- var persistedMember_1 = (0, persistence_1.getPersistedMember)(props.persistence);
49
+ var persistedMember_1 = persistence_1.getPersistedMember(props.persistence);
55
50
  if (persistedMember_1) {
56
51
  return function () { return ({ data: persistedMember_1 }); };
57
52
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberstack/dom",
3
- "version": "1.0.0-beta.21",
3
+ "version": "1.0.0-beta.25",
4
4
  "main": "./lib/index.js",
5
5
  "files": [
6
6
  "lib/**/*"
@@ -8,11 +8,12 @@
8
8
  "author": "Lydia Hallie",
9
9
  "license": "MIT",
10
10
  "dependencies": {
11
- "@memberstack/client": "^1.0.1-beta.7",
12
- "axios": "^0.24.0",
11
+ "@memberstack/client": "1.0.1-beta.9",
13
12
  "js-cookie": "^3.0.1"
14
13
  },
15
14
  "scripts": {
16
- "prepublishOnly": "tsc"
15
+ "prepublishOnly": "npx tsc",
16
+ "watch": "npx tsc -w",
17
+ "clean": "rm -rf node_modules"
17
18
  }
18
19
  }