@worthai/onboarding-sdk 2.0.16 → 3.0.0-beta.0
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 +219 -202
- package/dist-sdk/sdk3/createWorthOnboarding.d.ts +2 -0
- package/dist-sdk/sdk3/errors.d.ts +24 -0
- package/dist-sdk/sdk3/index-XF4bH3Uu.js +12301 -0
- package/dist-sdk/sdk3/index.d.ts +3 -0
- package/dist-sdk/sdk3/index.js +6 -0
- package/dist-sdk/sdk3/runtimeAdapter-B5Q9gkTA.js +22644 -0
- package/dist-sdk/sdk3/runtimeAdapter.d.ts +7 -0
- package/dist-sdk/sdk3/runtimeAdapterHydration.d.ts +8 -0
- package/dist-sdk/sdk3/styleManager.d.ts +1 -0
- package/dist-sdk/sdk3/worthOnboarding.d.ts +27 -0
- package/dist-sdk/sdk3/worthOnboarding.types.d.ts +307 -0
- package/dist-sdk/sdk3/worthai-onboarding-sdk.global.js +3424 -0
- package/package.json +78 -38
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -279
- package/dist/index.js.map +0 -1
- package/dist/interfaces/AnyMessage.d.ts +0 -4
- package/dist/interfaces/ChildSite.d.ts +0 -2
- package/dist/interfaces/ChildSiteMessage.d.ts +0 -8
- package/dist/interfaces/ChildSiteSubscription.d.ts +0 -2
- package/dist/interfaces/DetachedEvent.d.ts +0 -73
- package/dist/interfaces/IframeMode.d.ts +0 -1
- package/dist/interfaces/IframeQueryParams.d.ts +0 -1
- package/dist/interfaces/OnboardingApp.d.ts +0 -2
- package/dist/interfaces/OnboardingAppAppSubscription.d.ts +0 -2
- package/dist/interfaces/OnboardingAppMessage.d.ts +0 -39
- package/dist/interfaces/OnboardingAppMode.d.ts +0 -2
- package/dist/interfaces/OnboardingAppSubscription.d.ts +0 -2
- package/dist/interfaces/OnboardingConsumerApp.d.ts +0 -2
- package/dist/interfaces/OnboardingConsumerAppMessage.d.ts +0 -17
- package/dist/interfaces/ParentSite.d.ts +0 -2
- package/dist/interfaces/ParentSiteMessage.d.ts +0 -26
- package/dist/interfaces/ParentSiteSubscription.d.ts +0 -2
- package/dist/interfaces/QueryParams.d.ts +0 -1
- package/dist/interfaces/StageNavigation.d.ts +0 -21
- package/dist/interfaces/index.d.ts +0 -19
- package/dist/mockServiceWorker.js +0 -349
- package/dist/mocks/browser.d.ts +0 -1
- package/dist/mocks/handlers/authHandler.d.ts +0 -1
- package/dist/mocks/handlers/index.d.ts +0 -1
- package/dist/utils/createChildSite/index.d.ts +0 -23
- package/dist/utils/createOnboardingApp/index.d.ts +0 -20
- package/dist/utils/createOnboardingConsumerApp/index.d.ts +0 -9
- package/dist/utils/createParentSite/index.d.ts +0 -10
- package/dist/utils/getURLQueryParams/index.d.ts +0 -2
- package/dist/utils/index.d.ts +0 -4
package/package.json
CHANGED
|
@@ -1,55 +1,95 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@worthai/onboarding-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-beta.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"packageManager": "pnpm@10.28.2",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=24 <25"
|
|
8
|
+
},
|
|
4
9
|
"type": "module",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"dist",
|
|
10
|
-
"README.md"
|
|
11
|
-
],
|
|
10
|
+
"types": "./dist-sdk/sdk3/index.d.ts",
|
|
11
|
+
"main": "./dist-sdk/sdk3/index.js",
|
|
12
|
+
"unpkg": "./dist-sdk/sdk3/worthai-onboarding-sdk.global.js",
|
|
13
|
+
"jsdelivr": "./dist-sdk/sdk3/worthai-onboarding-sdk.global.js",
|
|
12
14
|
"exports": {
|
|
13
15
|
".": {
|
|
14
|
-
"types": "./dist/index.d.ts",
|
|
15
|
-
"import": "./dist/index.js"
|
|
16
|
+
"types": "./dist-sdk/sdk3/index.d.ts",
|
|
17
|
+
"import": "./dist-sdk/sdk3/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./sdk3": {
|
|
20
|
+
"types": "./dist-sdk/sdk3/index.d.ts",
|
|
21
|
+
"import": "./dist-sdk/sdk3/index.js"
|
|
16
22
|
}
|
|
17
23
|
},
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
|
|
24
|
+
"files": [
|
|
25
|
+
"dist-sdk",
|
|
26
|
+
"README.md"
|
|
27
|
+
],
|
|
22
28
|
"publishConfig": {
|
|
23
|
-
"
|
|
24
|
-
"
|
|
29
|
+
"access": "public",
|
|
30
|
+
"registry": "https://registry.npmjs.org"
|
|
25
31
|
},
|
|
26
32
|
"scripts": {
|
|
33
|
+
"start": "vite preview",
|
|
27
34
|
"dev": "vite",
|
|
35
|
+
"check": "pnpm exec biome check --write && pnpm run lint:md:fix",
|
|
36
|
+
"check:sdk-contracts": "tsc --noEmit --project tsconfig.sdk-contracts.json",
|
|
37
|
+
"lint:md:fix": "markdownlint-cli2 --fix",
|
|
28
38
|
"build": "vite build",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"build
|
|
32
|
-
"
|
|
39
|
+
"build:sdk": "pnpm run check:sdk-contracts && pnpm run build:sdk:esm && pnpm run build:sdk:global",
|
|
40
|
+
"build:sdk:esm": "vite build --config vite.sdk.config.ts",
|
|
41
|
+
"build:sdk:global": "vite build --config vite.sdk.global.config.ts",
|
|
42
|
+
"test": "vitest",
|
|
43
|
+
"test:coverage": "vitest run --coverage",
|
|
44
|
+
"test:coverage:ui": "vitest --ui --coverage",
|
|
45
|
+
"test:sdk-package": "pnpm run build:sdk && node scripts/sdkPackageSmoke.mjs",
|
|
46
|
+
"test:run": "vitest run",
|
|
47
|
+
"test:ui": "vitest --ui"
|
|
33
48
|
},
|
|
49
|
+
"license": "MIT",
|
|
34
50
|
"devDependencies": {
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
51
|
+
"@biomejs/biome": "2.3.13",
|
|
52
|
+
"@fontsource/figtree": "^5.2.10",
|
|
53
|
+
"@googlemaps/js-api-loader": "^2.0.2",
|
|
54
|
+
"@googlemaps/places": "^2.4.0",
|
|
55
|
+
"@modular-forms/solid": "^0.25.1",
|
|
56
|
+
"@solid-primitives/utils": "^6.4.0",
|
|
57
|
+
"@solidjs/router": "^0.15.4",
|
|
58
|
+
"@solidjs/testing-library": "^0.8.10",
|
|
59
|
+
"@tailwindcss/vite": "^4.2.2",
|
|
60
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
61
|
+
"@types/google.maps": "^3.58.1",
|
|
62
|
+
"@types/jsdom": "^28.0.3",
|
|
63
|
+
"@types/lodash": "^4.17.24",
|
|
64
|
+
"@vitest/coverage-v8": "4.1.4",
|
|
65
|
+
"@vitest/ui": "4.0.18",
|
|
66
|
+
"axios": "^1.15.0",
|
|
67
|
+
"axios-retry": "^4.5.0",
|
|
68
|
+
"daisyui": "^5.5.19",
|
|
69
|
+
"dexie": "^4.4.2",
|
|
70
|
+
"jsdom": "^27.4.0",
|
|
71
|
+
"jsonc-parser": "^3.3.1",
|
|
72
|
+
"libphonenumber-js": "^1.12.41",
|
|
73
|
+
"lodash": "^4.18.1",
|
|
74
|
+
"markdownlint-cli2": "^0.20.0",
|
|
75
|
+
"monaco-editor": "^0.55.1",
|
|
76
|
+
"monaco-json": "^3.9.0",
|
|
77
|
+
"postcss": "^8.5.15",
|
|
78
|
+
"rollup": "4.59.0",
|
|
79
|
+
"solid-devtools": "^0.34.5",
|
|
80
|
+
"tailwind-merge": "^3.5.0",
|
|
81
|
+
"tailwindcss": "^4.2.2",
|
|
82
|
+
"typescript": "^5.9.3",
|
|
83
|
+
"vite": "^7.3.2",
|
|
84
|
+
"vite-plugin-dts": "^5.0.2",
|
|
85
|
+
"vite-plugin-monaco-editor-esm": "^2.0.2",
|
|
86
|
+
"vite-plugin-solid": "^2.11.12",
|
|
87
|
+
"vitest": "^4.1.4",
|
|
88
|
+
"zod": "^4.3.6"
|
|
48
89
|
},
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
]
|
|
90
|
+
"dependencies": {
|
|
91
|
+
"@solid-primitives/i18n": "^2.2.1",
|
|
92
|
+
"solid-js": "^1.9.12",
|
|
93
|
+
"stdnum": "^1.12.1"
|
|
54
94
|
}
|
|
55
95
|
}
|
package/dist/index.d.ts
DELETED
package/dist/index.js
DELETED
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
const createChildSite = /* @__PURE__ */ __name((args) => {
|
|
4
|
-
const {
|
|
5
|
-
origin,
|
|
6
|
-
initialRoute = "",
|
|
7
|
-
mode,
|
|
8
|
-
autoResize = true,
|
|
9
|
-
style = {},
|
|
10
|
-
loadingTimeout
|
|
11
|
-
} = args;
|
|
12
|
-
const app = args.window || window;
|
|
13
|
-
const queryParams = args.queryParams;
|
|
14
|
-
const iframe = document.createElement("iframe");
|
|
15
|
-
const state = { mode };
|
|
16
|
-
const setMode = /* @__PURE__ */ __name((mode2) => {
|
|
17
|
-
state.mode = mode2;
|
|
18
|
-
postMessage({
|
|
19
|
-
type: "SET_IFRAME_MODE",
|
|
20
|
-
payload: { mode: state.mode }
|
|
21
|
-
});
|
|
22
|
-
}, "setMode");
|
|
23
|
-
const refreshSize = /* @__PURE__ */ __name(() => {
|
|
24
|
-
postMessage({ type: "REFRESH_SIZE" });
|
|
25
|
-
}, "refreshSize");
|
|
26
|
-
const buildIframeSrc = /* @__PURE__ */ __name(() => {
|
|
27
|
-
let srcUrl;
|
|
28
|
-
if (initialRoute) {
|
|
29
|
-
srcUrl = new URL(initialRoute.replace(/^\//, ""), origin);
|
|
30
|
-
} else {
|
|
31
|
-
srcUrl = new URL(origin);
|
|
32
|
-
}
|
|
33
|
-
for (const [key, value] of Object.entries(queryParams || {})) {
|
|
34
|
-
if (typeof value === "string") {
|
|
35
|
-
srcUrl.searchParams.set(key, value);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return srcUrl;
|
|
39
|
-
}, "buildIframeSrc");
|
|
40
|
-
const subscribe = /* @__PURE__ */ __name((callback) => {
|
|
41
|
-
const handler = /* @__PURE__ */ __name((event) => {
|
|
42
|
-
if (event.source !== iframe.contentWindow) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
callback(event);
|
|
46
|
-
}, "handler");
|
|
47
|
-
app.addEventListener("message", handler);
|
|
48
|
-
return {
|
|
49
|
-
unsubscribe: /* @__PURE__ */ __name(() => app.removeEventListener("message", handler), "unsubscribe")
|
|
50
|
-
};
|
|
51
|
-
}, "subscribe");
|
|
52
|
-
const initializeChildSite = /* @__PURE__ */ __name(() => {
|
|
53
|
-
iframe.src = buildIframeSrc().toString();
|
|
54
|
-
iframe.allow = "camera";
|
|
55
|
-
if (style.zIndex) iframe.style.zIndex = style.zIndex;
|
|
56
|
-
iframe.style.width = "100%";
|
|
57
|
-
iframe.style.height = "100%";
|
|
58
|
-
iframe.style.border = "none";
|
|
59
|
-
subscribe((event) => {
|
|
60
|
-
switch (event.data.type) {
|
|
61
|
-
case "IFRAME_RESIZE":
|
|
62
|
-
if (autoResize === false || state.mode === "non-embedded") return;
|
|
63
|
-
iframe.style.border = "none";
|
|
64
|
-
iframe.style.height = `${event.data.payload.height}px`;
|
|
65
|
-
break;
|
|
66
|
-
case "IFRAME_INITIALIZED":
|
|
67
|
-
setMode(state.mode);
|
|
68
|
-
postMessage({
|
|
69
|
-
type: "IFRAME_RENDERED_ON_PARENT_SITE"
|
|
70
|
-
});
|
|
71
|
-
if (loadingTimeout !== void 0) {
|
|
72
|
-
postMessage({
|
|
73
|
-
type: "SET_LOADING_TIMEOUT",
|
|
74
|
-
payload: { loadingTimeout }
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
}, "initializeChildSite");
|
|
81
|
-
const postMessage = /* @__PURE__ */ __name((message, transfer) => {
|
|
82
|
-
iframe.contentWindow?.postMessage(message, "*", transfer);
|
|
83
|
-
}, "postMessage");
|
|
84
|
-
initializeChildSite();
|
|
85
|
-
return { iframe, subscribe, postMessage, setMode, refreshSize };
|
|
86
|
-
}, "createChildSite");
|
|
87
|
-
const createOnboardingApp = /* @__PURE__ */ __name((args) => {
|
|
88
|
-
const queryParams = {};
|
|
89
|
-
const { inviteToken, ...restArgs } = args;
|
|
90
|
-
const childApp = createChildSite({
|
|
91
|
-
...restArgs,
|
|
92
|
-
queryParams
|
|
93
|
-
});
|
|
94
|
-
let detachedChildApp;
|
|
95
|
-
let childAppSubscription;
|
|
96
|
-
let detachedChildAppSubscription;
|
|
97
|
-
const postMessage = /* @__PURE__ */ __name((message) => {
|
|
98
|
-
childApp.postMessage(message);
|
|
99
|
-
}, "postMessage");
|
|
100
|
-
const subscribe = /* @__PURE__ */ __name((callback) => {
|
|
101
|
-
return childApp.subscribe(callback);
|
|
102
|
-
}, "subscribe");
|
|
103
|
-
const skip = /* @__PURE__ */ __name(() => {
|
|
104
|
-
postMessage({ type: "SKIP_STAGE" });
|
|
105
|
-
}, "skip");
|
|
106
|
-
const next = /* @__PURE__ */ __name(() => {
|
|
107
|
-
postMessage({ type: "NEXT_STAGE" });
|
|
108
|
-
}, "next");
|
|
109
|
-
const prev = /* @__PURE__ */ __name(() => {
|
|
110
|
-
postMessage({ type: "PREV_STAGE" });
|
|
111
|
-
}, "prev");
|
|
112
|
-
const setCustomCss = /* @__PURE__ */ __name((css) => {
|
|
113
|
-
postMessage({ type: "SET_CUSTOM_CSS", payload: { css } });
|
|
114
|
-
}, "setCustomCss");
|
|
115
|
-
const appendDetachedOnboardingApp = /* @__PURE__ */ __name(() => {
|
|
116
|
-
if (childApp.iframe.contentWindow === null) {
|
|
117
|
-
console.error(
|
|
118
|
-
"Failed to initialize detached child app. No iframe content window found."
|
|
119
|
-
);
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
const id = "detached-onboarding-app";
|
|
123
|
-
detachedChildApp = createChildSite({
|
|
124
|
-
...restArgs,
|
|
125
|
-
queryParams,
|
|
126
|
-
initialRoute: "/detached",
|
|
127
|
-
autoResize: false,
|
|
128
|
-
style: { zIndex: "99999" }
|
|
129
|
-
});
|
|
130
|
-
detachedChildApp.iframe.style.display = "none";
|
|
131
|
-
detachedChildApp.iframe.style.width = "100%";
|
|
132
|
-
detachedChildApp.iframe.style.height = "100%";
|
|
133
|
-
detachedChildApp.iframe.style.position = "fixed";
|
|
134
|
-
detachedChildApp.iframe.style.top = "0px";
|
|
135
|
-
detachedChildApp.iframe.style.left = "0px";
|
|
136
|
-
detachedChildApp.iframe.id = id;
|
|
137
|
-
document.getElementById(id)?.remove();
|
|
138
|
-
document.querySelector("body")?.appendChild(detachedChildApp.iframe);
|
|
139
|
-
detachedChildAppSubscription = detachedChildApp.subscribe(
|
|
140
|
-
(event) => {
|
|
141
|
-
if (event.data.type === "DETACHED_EVENT" && detachedChildApp) {
|
|
142
|
-
const detachedEvent = event.data.payload;
|
|
143
|
-
switch (detachedEvent.type) {
|
|
144
|
-
case "SHOW_DETACHED_IFRAME":
|
|
145
|
-
detachedChildApp.iframe.style.display = "block";
|
|
146
|
-
break;
|
|
147
|
-
case "HIDE_DETACHED_IFRAME":
|
|
148
|
-
detachedChildApp.postMessage(event.data);
|
|
149
|
-
detachedChildApp.iframe.style.display = "none";
|
|
150
|
-
break;
|
|
151
|
-
default:
|
|
152
|
-
postMessage(event.data);
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
);
|
|
158
|
-
}, "appendDetachedOnboardingApp");
|
|
159
|
-
const onIframeInitialized = /* @__PURE__ */ __name(() => {
|
|
160
|
-
childAppSubscription = subscribe(
|
|
161
|
-
(event) => {
|
|
162
|
-
if (event.data.type === "IFRAME_INITIALIZED") {
|
|
163
|
-
postMessage({ type: "INVITE_TOKEN_SENT", payload: { inviteToken } });
|
|
164
|
-
}
|
|
165
|
-
if (event.data.type === "DETACHED_EVENT" && detachedChildApp) {
|
|
166
|
-
detachedChildApp.postMessage(event.data);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
);
|
|
170
|
-
}, "onIframeInitialized");
|
|
171
|
-
const cleanupChildApp = /* @__PURE__ */ __name(() => {
|
|
172
|
-
childAppSubscription?.unsubscribe();
|
|
173
|
-
}, "cleanupChildApp");
|
|
174
|
-
const cleanupDetachedApp = /* @__PURE__ */ __name(() => {
|
|
175
|
-
detachedChildAppSubscription?.unsubscribe();
|
|
176
|
-
detachedChildApp?.iframe.remove();
|
|
177
|
-
}, "cleanupDetachedApp");
|
|
178
|
-
const cleanup = /* @__PURE__ */ __name(() => {
|
|
179
|
-
cleanupChildApp();
|
|
180
|
-
cleanupDetachedApp();
|
|
181
|
-
}, "cleanup");
|
|
182
|
-
const onIframeLoad = /* @__PURE__ */ __name(() => {
|
|
183
|
-
appendDetachedOnboardingApp();
|
|
184
|
-
childApp.iframe.removeEventListener("load", onIframeLoad);
|
|
185
|
-
}, "onIframeLoad");
|
|
186
|
-
const run = /* @__PURE__ */ __name(() => {
|
|
187
|
-
onIframeInitialized();
|
|
188
|
-
childApp.iframe.addEventListener("load", onIframeLoad);
|
|
189
|
-
}, "run");
|
|
190
|
-
run();
|
|
191
|
-
return {
|
|
192
|
-
subscribe,
|
|
193
|
-
setMode: childApp.setMode,
|
|
194
|
-
setCustomCss,
|
|
195
|
-
iframe: childApp.iframe,
|
|
196
|
-
next,
|
|
197
|
-
prev,
|
|
198
|
-
skip,
|
|
199
|
-
refreshSize: childApp.refreshSize,
|
|
200
|
-
cleanup
|
|
201
|
-
};
|
|
202
|
-
}, "createOnboardingApp");
|
|
203
|
-
const getURLQueryParams = /* @__PURE__ */ __name(() => {
|
|
204
|
-
const urlSearchParams = new URLSearchParams(window.location.search);
|
|
205
|
-
const queryParams = {};
|
|
206
|
-
urlSearchParams.forEach((value, key) => {
|
|
207
|
-
queryParams[key] = value;
|
|
208
|
-
});
|
|
209
|
-
return queryParams;
|
|
210
|
-
}, "getURLQueryParams");
|
|
211
|
-
const createParentSite = /* @__PURE__ */ __name(() => {
|
|
212
|
-
const queryParams = getURLQueryParams();
|
|
213
|
-
const notifyHeight = /* @__PURE__ */ __name(() => {
|
|
214
|
-
const height = document.body.scrollHeight;
|
|
215
|
-
postMessage({
|
|
216
|
-
type: "IFRAME_RESIZE",
|
|
217
|
-
payload: { height }
|
|
218
|
-
});
|
|
219
|
-
}, "notifyHeight");
|
|
220
|
-
const postMessage = /* @__PURE__ */ __name((message) => {
|
|
221
|
-
window.parent.postMessage(message, "*");
|
|
222
|
-
}, "postMessage");
|
|
223
|
-
const subscribe = /* @__PURE__ */ __name((callback) => {
|
|
224
|
-
const handler = /* @__PURE__ */ __name((event) => {
|
|
225
|
-
callback(event);
|
|
226
|
-
}, "handler");
|
|
227
|
-
window.addEventListener("message", handler);
|
|
228
|
-
return {
|
|
229
|
-
unsubscribe: /* @__PURE__ */ __name(() => window.removeEventListener("message", handler), "unsubscribe")
|
|
230
|
-
};
|
|
231
|
-
}, "subscribe");
|
|
232
|
-
const notifySize = /* @__PURE__ */ __name(() => {
|
|
233
|
-
notifyHeight();
|
|
234
|
-
}, "notifySize");
|
|
235
|
-
const initializeParentSite = /* @__PURE__ */ __name(() => {
|
|
236
|
-
const observer = new ResizeObserver(notifySize);
|
|
237
|
-
observer.observe(document.body);
|
|
238
|
-
subscribe((event) => {
|
|
239
|
-
switch (event.data.type) {
|
|
240
|
-
case "SET_IFRAME_MODE":
|
|
241
|
-
const mode = event.data.payload.mode;
|
|
242
|
-
document.body.style.overflow = mode === "embedded" ? "hidden" : "auto";
|
|
243
|
-
break;
|
|
244
|
-
case "REFRESH_SIZE":
|
|
245
|
-
notifySize();
|
|
246
|
-
break;
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
postMessage({ type: "IFRAME_INITIALIZED" });
|
|
250
|
-
}, "initializeParentSite");
|
|
251
|
-
initializeParentSite();
|
|
252
|
-
return {
|
|
253
|
-
notifySize,
|
|
254
|
-
subscribe,
|
|
255
|
-
postMessage,
|
|
256
|
-
queryParams
|
|
257
|
-
};
|
|
258
|
-
}, "createParentSite");
|
|
259
|
-
const createOnboardingConsumerApp = /* @__PURE__ */ __name(() => {
|
|
260
|
-
const parentApp = createParentSite();
|
|
261
|
-
const postMessage = /* @__PURE__ */ __name((message) => {
|
|
262
|
-
parentApp.postMessage(message);
|
|
263
|
-
}, "postMessage");
|
|
264
|
-
const subscribe = /* @__PURE__ */ __name((callback) => {
|
|
265
|
-
return parentApp.subscribe(callback);
|
|
266
|
-
}, "subscribe");
|
|
267
|
-
return {
|
|
268
|
-
postMessage,
|
|
269
|
-
subscribe,
|
|
270
|
-
notifySize: parentApp.notifySize
|
|
271
|
-
};
|
|
272
|
-
}, "createOnboardingConsumerApp");
|
|
273
|
-
export {
|
|
274
|
-
createChildSite,
|
|
275
|
-
createOnboardingApp,
|
|
276
|
-
createOnboardingConsumerApp,
|
|
277
|
-
createParentSite
|
|
278
|
-
};
|
|
279
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/createChildSite/index.ts","../src/utils/createOnboardingApp/index.ts","../src/utils/getURLQueryParams/index.ts","../src/utils/createParentSite/index.ts","../src/utils/createOnboardingConsumerApp/index.ts"],"sourcesContent":["import type { AnyMessage } from '@/interfaces/AnyMessage';\nimport type { ChildSiteMessage } from '@/interfaces/ChildSiteMessage';\nimport type { IframeMode } from '@/interfaces/IframeMode';\nimport type { IframeQueryParams } from '@/interfaces/IframeQueryParams';\nimport type { ParentSiteMessage } from '@/interfaces/ParentSiteMessage';\n\nexport const createChildSite = (args: {\n origin: string;\n initialRoute?: string;\n queryParams?: IframeQueryParams;\n window?: Window | null;\n mode?: IframeMode;\n loadingTimeout?: number;\n autoResize?: boolean;\n style?: { zIndex?: string };\n}) => {\n const {\n origin,\n initialRoute = '',\n mode,\n autoResize = true,\n style = {},\n loadingTimeout,\n } = args;\n const app = args.window || window;\n const queryParams = args.queryParams;\n const iframe = document.createElement('iframe');\n const state = { mode };\n\n const setMode = (mode: IframeMode) => {\n state.mode = mode;\n postMessage<ParentSiteMessage>({\n type: 'SET_IFRAME_MODE',\n payload: { mode: state.mode },\n });\n };\n\n const refreshSize = () => {\n postMessage<ParentSiteMessage>({ type: 'REFRESH_SIZE' });\n };\n\n const buildIframeSrc = () => {\n let srcUrl: URL;\n if (initialRoute) {\n srcUrl = new URL(initialRoute.replace(/^\\//, ''), origin);\n } else {\n srcUrl = new URL(origin);\n }\n\n for (const [key, value] of Object.entries(queryParams || {})) {\n if (typeof value === 'string') {\n srcUrl.searchParams.set(key, value);\n }\n }\n\n return srcUrl;\n };\n\n const subscribe = <T extends AnyMessage>(\n callback: (event: MessageEvent<T>) => void,\n ) => {\n const handler = (event: MessageEvent<T>) => {\n if (event.source !== iframe.contentWindow) {\n return;\n }\n callback(event);\n };\n\n app.addEventListener('message', handler);\n return {\n unsubscribe: () => app.removeEventListener('message', handler),\n };\n };\n\n const initializeChildSite = () => {\n iframe.src = buildIframeSrc().toString();\n iframe.allow = 'camera';\n if (style.zIndex) iframe.style.zIndex = style.zIndex;\n iframe.style.width = '100%';\n iframe.style.height = '100%';\n iframe.style.border = 'none';\n\n subscribe<ChildSiteMessage>((event) => {\n switch (event.data.type) {\n case 'IFRAME_RESIZE':\n if (autoResize === false || state.mode === 'non-embedded') return;\n iframe.style.border = 'none';\n iframe.style.height = `${event.data.payload.height}px`;\n break;\n case 'IFRAME_INITIALIZED':\n setMode(state.mode);\n postMessage<ParentSiteMessage>({\n type: 'IFRAME_RENDERED_ON_PARENT_SITE',\n });\n\n if (loadingTimeout !== undefined) {\n postMessage<ParentSiteMessage>({\n type: 'SET_LOADING_TIMEOUT',\n payload: { loadingTimeout },\n });\n }\n break;\n }\n });\n };\n\n const postMessage = <TMessage extends AnyMessage>(\n message: TMessage,\n transfer?: Transferable[],\n ) => {\n iframe.contentWindow?.postMessage(message, '*', transfer);\n };\n\n initializeChildSite();\n\n return { iframe, subscribe, postMessage, setMode, refreshSize };\n};\n","import type { AnyMessage } from '@/interfaces/AnyMessage';\nimport type { ChildSiteSubscription } from '@/interfaces/ChildSiteSubscription';\nimport type { IframeQueryParams } from '@/interfaces/IframeQueryParams';\nimport type { OnboardingAppMessage } from '@/interfaces/OnboardingAppMessage';\nimport type { OnboardingAppMode } from '@/interfaces/OnboardingAppMode';\nimport type { OnboardingConsumerAppMessage } from '@/interfaces/OnboardingConsumerAppMessage';\nimport { createChildSite } from '@/utils/createChildSite';\n\nexport const createOnboardingApp = (args: {\n origin: string;\n inviteToken: string;\n mode?: OnboardingAppMode;\n loadingTimeout?: number;\n}) => {\n const queryParams: IframeQueryParams = {};\n const { inviteToken, ...restArgs } = args;\n const childApp = createChildSite({\n ...restArgs,\n queryParams,\n });\n let detachedChildApp: ReturnType<typeof createChildSite> | undefined;\n let childAppSubscription: ChildSiteSubscription | undefined;\n let detachedChildAppSubscription: ChildSiteSubscription | undefined;\n\n const postMessage = (message: OnboardingConsumerAppMessage) => {\n childApp.postMessage(message as unknown as AnyMessage);\n };\n\n const subscribe = (\n callback: (event: MessageEvent<OnboardingAppMessage>) => void,\n ) => {\n return childApp.subscribe(callback);\n };\n\n const skip = () => {\n postMessage({ type: 'SKIP_STAGE' });\n };\n\n const next = () => {\n postMessage({ type: 'NEXT_STAGE' });\n };\n\n const prev = () => {\n postMessage({ type: 'PREV_STAGE' });\n };\n\n const setCustomCss = (css: string) => {\n postMessage({ type: 'SET_CUSTOM_CSS', payload: { css } });\n };\n\n const appendDetachedOnboardingApp = () => {\n if (childApp.iframe.contentWindow === null) {\n console.error(\n 'Failed to initialize detached child app. No iframe content window found.',\n );\n return;\n }\n\n const id = 'detached-onboarding-app';\n detachedChildApp = createChildSite({\n ...restArgs,\n queryParams,\n initialRoute: '/detached',\n autoResize: false,\n style: { zIndex: '99999' },\n });\n\n detachedChildApp.iframe.style.display = 'none';\n detachedChildApp.iframe.style.width = '100%';\n detachedChildApp.iframe.style.height = '100%';\n detachedChildApp.iframe.style.position = 'fixed';\n detachedChildApp.iframe.style.top = '0px';\n detachedChildApp.iframe.style.left = '0px';\n detachedChildApp.iframe.id = id;\n document.getElementById(id)?.remove();\n document.querySelector('body')?.appendChild(detachedChildApp.iframe);\n\n detachedChildAppSubscription = detachedChildApp.subscribe(\n (event: MessageEvent<OnboardingAppMessage>) => {\n if (event.data.type === 'DETACHED_EVENT' && detachedChildApp) {\n const detachedEvent = event.data.payload;\n switch (detachedEvent.type) {\n case 'SHOW_DETACHED_IFRAME':\n detachedChildApp.iframe.style.display = 'block';\n break;\n case 'HIDE_DETACHED_IFRAME':\n detachedChildApp.postMessage(event.data);\n detachedChildApp.iframe.style.display = 'none';\n break;\n default:\n postMessage(event.data);\n break;\n }\n }\n },\n );\n };\n\n const onIframeInitialized = () => {\n childAppSubscription = subscribe(\n (event: MessageEvent<OnboardingAppMessage>) => {\n if (event.data.type === 'IFRAME_INITIALIZED') {\n postMessage({ type: 'INVITE_TOKEN_SENT', payload: { inviteToken } });\n }\n\n if (event.data.type === 'DETACHED_EVENT' && detachedChildApp) {\n detachedChildApp.postMessage(event.data);\n }\n },\n );\n };\n\n const cleanupChildApp = () => {\n childAppSubscription?.unsubscribe();\n };\n\n const cleanupDetachedApp = () => {\n detachedChildAppSubscription?.unsubscribe();\n detachedChildApp?.iframe.remove();\n };\n\n const cleanup = () => {\n cleanupChildApp();\n cleanupDetachedApp();\n };\n\n const onIframeLoad = () => {\n appendDetachedOnboardingApp();\n childApp.iframe.removeEventListener('load', onIframeLoad);\n };\n\n const run = () => {\n onIframeInitialized();\n childApp.iframe.addEventListener('load', onIframeLoad);\n };\n\n run();\n\n return {\n subscribe,\n setMode: childApp.setMode,\n setCustomCss,\n iframe: childApp.iframe,\n next,\n prev,\n skip,\n refreshSize: childApp.refreshSize,\n cleanup,\n };\n};\n","import type { QueryParams } from '@/interfaces/QueryParams';\n\nexport const getURLQueryParams = <T extends QueryParams>() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n const queryParams: QueryParams = {};\n urlSearchParams.forEach((value, key) => {\n queryParams[key] = value;\n });\n\n return queryParams as T;\n};\n","import type { AnyMessage } from '@/interfaces/AnyMessage';\nimport type { ChildSiteMessage } from '@/interfaces/ChildSiteMessage';\nimport type { IframeMode } from '@/interfaces/IframeMode';\nimport type { IframeQueryParams } from '@/interfaces/IframeQueryParams';\nimport { getURLQueryParams } from '@/utils/getURLQueryParams';\n\nexport const createParentSite = () => {\n const queryParams = getURLQueryParams<IframeQueryParams>();\n\n const notifyHeight = () => {\n const height = document.body.scrollHeight;\n postMessage<ChildSiteMessage>({\n type: 'IFRAME_RESIZE',\n payload: { height },\n });\n };\n\n const postMessage = <TMessage extends AnyMessage>(message: TMessage) => {\n window.parent.postMessage(message, '*');\n };\n\n const subscribe = <T extends AnyMessage>(\n callback: (event: MessageEvent<T>) => void\n ) => {\n const handler = (event: MessageEvent<T>) => {\n callback(event);\n };\n\n window.addEventListener('message', handler);\n return {\n unsubscribe: () => window.removeEventListener('message', handler),\n };\n };\n\n const notifySize = () => {\n notifyHeight();\n };\n\n const initializeParentSite = () => {\n const observer = new ResizeObserver(notifySize);\n observer.observe(document.body);\n\n subscribe((event) => {\n switch (event.data.type) {\n case 'SET_IFRAME_MODE':\n const mode = event.data.payload.mode as IframeMode;\n document.body.style.overflow =\n mode === 'embedded' ? 'hidden' : 'auto';\n break;\n case 'REFRESH_SIZE':\n notifySize();\n break;\n default:\n break;\n }\n });\n\n postMessage<ChildSiteMessage>({ type: 'IFRAME_INITIALIZED' });\n };\n\n initializeParentSite();\n\n return {\n notifySize,\n subscribe,\n postMessage,\n queryParams,\n };\n};\n","import type { OnboardingAppMessage } from '@/interfaces/OnboardingAppMessage';\nimport type { OnboardingConsumerAppMessage } from '@/interfaces/OnboardingConsumerAppMessage';\nimport { createParentSite } from '@/utils/createParentSite';\n\nexport const createOnboardingConsumerApp = () => {\n const parentApp = createParentSite();\n\n const postMessage = (message: OnboardingAppMessage) => {\n parentApp.postMessage(message);\n };\n\n const subscribe = (\n callback: (event: MessageEvent<OnboardingConsumerAppMessage>) => void\n ) => {\n return parentApp.subscribe(callback);\n };\n\n return {\n postMessage,\n subscribe,\n notifySize: parentApp.notifySize,\n };\n};\n"],"names":["mode"],"mappings":"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"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
export type DetachedEvent = {
|
|
2
|
-
type: 'PLAID_CONNECT';
|
|
3
|
-
payload: {
|
|
4
|
-
token: string | null;
|
|
5
|
-
};
|
|
6
|
-
} | {
|
|
7
|
-
type: 'PLAID_IDV_CONNECT';
|
|
8
|
-
payload: {
|
|
9
|
-
token: string | null;
|
|
10
|
-
};
|
|
11
|
-
} | {
|
|
12
|
-
type: 'OPEN_MANUAL_BANKING_ACCOUNT_MODAL';
|
|
13
|
-
payload?: {
|
|
14
|
-
/** Account is present if editing an existing account, otherwise modal is adding a new account */
|
|
15
|
-
account?: {
|
|
16
|
-
id: string;
|
|
17
|
-
bank_account: string;
|
|
18
|
-
routing_number: string;
|
|
19
|
-
subtype: string;
|
|
20
|
-
account_holder_type?: string;
|
|
21
|
-
account_holder_name?: string;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
} | {
|
|
25
|
-
/** Fired by detached modal when user clicks submit button to pass form data to main iframe */
|
|
26
|
-
type: 'SUBMIT_MANUAL_BANKING_ACCOUNT_MODAL';
|
|
27
|
-
payload: {
|
|
28
|
-
account: {
|
|
29
|
-
accountId?: string;
|
|
30
|
-
accountNumber: string;
|
|
31
|
-
routingNumber: string;
|
|
32
|
-
accountType?: string;
|
|
33
|
-
accountHolderType?: string | null;
|
|
34
|
-
accountHolderName?: string | null;
|
|
35
|
-
isProcessorOrchestrationEnabled?: boolean;
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
} | {
|
|
39
|
-
/** Fired by main iframe when add/update account API has completed (success or error) so detached modal can close. */
|
|
40
|
-
type: 'MANUAL_BANKING_ACCOUNT_MODAL_SUBMIT_COMPLETE';
|
|
41
|
-
} | {
|
|
42
|
-
type: 'OPEN_CONFIRMATION_MODAL';
|
|
43
|
-
payload: {
|
|
44
|
-
key?: string;
|
|
45
|
-
modal_config?: {
|
|
46
|
-
title?: string;
|
|
47
|
-
description?: string;
|
|
48
|
-
buttonText?: string;
|
|
49
|
-
type?: 'success' | 'warning' | 'danger' | 'dark';
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
} | {
|
|
53
|
-
type: 'SUBMIT_CONFIRMATION_MODAL';
|
|
54
|
-
payload: {
|
|
55
|
-
key?: string;
|
|
56
|
-
};
|
|
57
|
-
} | {
|
|
58
|
-
type: 'IDENTITY_VERIFICATION_PASS_SESSION';
|
|
59
|
-
} | {
|
|
60
|
-
type: 'IDENTITY_VERIFICATION_FAIL_SESSION';
|
|
61
|
-
} | {
|
|
62
|
-
type: 'PLAID_LINK_SUCCESS';
|
|
63
|
-
payload: {
|
|
64
|
-
key: string;
|
|
65
|
-
meta: any;
|
|
66
|
-
};
|
|
67
|
-
} | {
|
|
68
|
-
type: 'SHOW_DETACHED_IFRAME';
|
|
69
|
-
} | {
|
|
70
|
-
type: 'HIDE_DETACHED_IFRAME';
|
|
71
|
-
} | {
|
|
72
|
-
type: 'DETACHED_IFRAME_READY';
|
|
73
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type IframeMode = 'embedded' | 'non-embedded' | undefined;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type IframeQueryParams = {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { ChildSiteMessage } from './ChildSiteMessage';
|
|
2
|
-
import { DetachedEvent } from './DetachedEvent';
|
|
3
|
-
import { StageNavigation } from './StageNavigation';
|
|
4
|
-
export type OnboardingAppMessage = {
|
|
5
|
-
type: 'ROUTE_URL';
|
|
6
|
-
payload: {
|
|
7
|
-
url: string;
|
|
8
|
-
};
|
|
9
|
-
} | {
|
|
10
|
-
type: 'AUTHENTICATING';
|
|
11
|
-
} | {
|
|
12
|
-
type: 'RESTARTING';
|
|
13
|
-
} | {
|
|
14
|
-
type: 'AUTHENTICATION_SUCCESS';
|
|
15
|
-
} | {
|
|
16
|
-
type: 'AUTHENTICATION_STATUS';
|
|
17
|
-
payload: {
|
|
18
|
-
isAuthenticated: boolean;
|
|
19
|
-
};
|
|
20
|
-
} | {
|
|
21
|
-
type: 'ONBOARDING_STARTED';
|
|
22
|
-
} | {
|
|
23
|
-
type: 'DETACHED_EVENT';
|
|
24
|
-
payload: DetachedEvent;
|
|
25
|
-
} | {
|
|
26
|
-
type: 'ERROR';
|
|
27
|
-
payload: {
|
|
28
|
-
error: {
|
|
29
|
-
message: string;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
} | {
|
|
33
|
-
type: 'STAGE_NAVIGATION';
|
|
34
|
-
payload: {
|
|
35
|
-
stageNavigation: StageNavigation;
|
|
36
|
-
};
|
|
37
|
-
} | {
|
|
38
|
-
type: 'LOADING_TIMED_OUT';
|
|
39
|
-
} | ChildSiteMessage;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ParentSiteMessage } from './ParentSiteMessage';
|
|
2
|
-
import { DetachedEvent } from './DetachedEvent';
|
|
3
|
-
export type OnboardingConsumerAppMessage = {
|
|
4
|
-
type: 'NEXT_STAGE';
|
|
5
|
-
} | {
|
|
6
|
-
type: 'PREV_STAGE';
|
|
7
|
-
} | {
|
|
8
|
-
type: 'SKIP_STAGE';
|
|
9
|
-
} | {
|
|
10
|
-
type: 'DETACHED_EVENT';
|
|
11
|
-
payload: DetachedEvent;
|
|
12
|
-
} | {
|
|
13
|
-
type: 'INVITE_TOKEN_SENT';
|
|
14
|
-
payload: {
|
|
15
|
-
inviteToken: string;
|
|
16
|
-
};
|
|
17
|
-
} | ParentSiteMessage;
|