@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.
Files changed (47) hide show
  1. package/README.md +219 -202
  2. package/dist-sdk/sdk3/createWorthOnboarding.d.ts +2 -0
  3. package/dist-sdk/sdk3/errors.d.ts +24 -0
  4. package/dist-sdk/sdk3/index-XF4bH3Uu.js +12301 -0
  5. package/dist-sdk/sdk3/index.d.ts +3 -0
  6. package/dist-sdk/sdk3/index.js +6 -0
  7. package/dist-sdk/sdk3/runtimeAdapter-B5Q9gkTA.js +22644 -0
  8. package/dist-sdk/sdk3/runtimeAdapter.d.ts +7 -0
  9. package/dist-sdk/sdk3/runtimeAdapterHydration.d.ts +8 -0
  10. package/dist-sdk/sdk3/styleManager.d.ts +1 -0
  11. package/dist-sdk/sdk3/worthOnboarding.d.ts +27 -0
  12. package/dist-sdk/sdk3/worthOnboarding.types.d.ts +307 -0
  13. package/dist-sdk/sdk3/worthai-onboarding-sdk.global.js +3424 -0
  14. package/package.json +78 -38
  15. package/dist/index.d.ts +0 -2
  16. package/dist/index.js +0 -279
  17. package/dist/index.js.map +0 -1
  18. package/dist/interfaces/AnyMessage.d.ts +0 -4
  19. package/dist/interfaces/ChildSite.d.ts +0 -2
  20. package/dist/interfaces/ChildSiteMessage.d.ts +0 -8
  21. package/dist/interfaces/ChildSiteSubscription.d.ts +0 -2
  22. package/dist/interfaces/DetachedEvent.d.ts +0 -73
  23. package/dist/interfaces/IframeMode.d.ts +0 -1
  24. package/dist/interfaces/IframeQueryParams.d.ts +0 -1
  25. package/dist/interfaces/OnboardingApp.d.ts +0 -2
  26. package/dist/interfaces/OnboardingAppAppSubscription.d.ts +0 -2
  27. package/dist/interfaces/OnboardingAppMessage.d.ts +0 -39
  28. package/dist/interfaces/OnboardingAppMode.d.ts +0 -2
  29. package/dist/interfaces/OnboardingAppSubscription.d.ts +0 -2
  30. package/dist/interfaces/OnboardingConsumerApp.d.ts +0 -2
  31. package/dist/interfaces/OnboardingConsumerAppMessage.d.ts +0 -17
  32. package/dist/interfaces/ParentSite.d.ts +0 -2
  33. package/dist/interfaces/ParentSiteMessage.d.ts +0 -26
  34. package/dist/interfaces/ParentSiteSubscription.d.ts +0 -2
  35. package/dist/interfaces/QueryParams.d.ts +0 -1
  36. package/dist/interfaces/StageNavigation.d.ts +0 -21
  37. package/dist/interfaces/index.d.ts +0 -19
  38. package/dist/mockServiceWorker.js +0 -349
  39. package/dist/mocks/browser.d.ts +0 -1
  40. package/dist/mocks/handlers/authHandler.d.ts +0 -1
  41. package/dist/mocks/handlers/index.d.ts +0 -1
  42. package/dist/utils/createChildSite/index.d.ts +0 -23
  43. package/dist/utils/createOnboardingApp/index.d.ts +0 -20
  44. package/dist/utils/createOnboardingConsumerApp/index.d.ts +0 -9
  45. package/dist/utils/createParentSite/index.d.ts +0 -10
  46. package/dist/utils/getURLQueryParams/index.d.ts +0 -2
  47. 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": "2.0.16",
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
- "source": "./src",
6
- "types": "./dist/index.d.ts",
7
- "main": "./dist/index.js",
8
- "files": [
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
- "repository": {
19
- "type": "git",
20
- "url": "https://github.com/joinworth/onboarding-sdk-poc"
21
- },
24
+ "files": [
25
+ "dist-sdk",
26
+ "README.md"
27
+ ],
22
28
  "publishConfig": {
23
- "registry": "https://registry.npmjs.org",
24
- "access": "public"
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
- "preview": "vite preview",
30
- "storybook": "storybook dev -p 6006",
31
- "build-storybook": "storybook build",
32
- "bump-patch-version": "npm version patch -m 'chore: bump patch version to %s'"
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
- "@storybook/addon-docs": "^9.1.10",
36
- "@storybook/html-vite": "^9.1.10",
37
- "autoprefixer": "^10.4.21",
38
- "axios": "^1.13.1",
39
- "msw": "^2.11.6",
40
- "postcss": "^8.5.6",
41
- "storybook": "^9.1.10",
42
- "tailwindcss": "^3.4.18",
43
- "typescript": "~5.9.3",
44
- "vite": "^7.1.7",
45
- "vite-plugin-checker": "^0.11.0",
46
- "vite-plugin-dts": "^4.5.4",
47
- "vite-tsconfig-paths": "^5.1.4"
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
- "packageManager": "pnpm@10.14.0+sha512.ad27a79641b49c3e481a16a805baa71817a04bbe06a38d17e60e2eaee83f6a146c6a688125f5792e48dd5ba30e7da52a5cda4c3992b9ccf333f9ce223af84748",
50
- "msw": {
51
- "workerDirectory": [
52
- "public"
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
@@ -1,2 +0,0 @@
1
- export * from './interfaces';
2
- export * from './utils';
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,4 +0,0 @@
1
- export type AnyMessage = {
2
- type: string;
3
- payload?: any;
4
- };
@@ -1,2 +0,0 @@
1
- import { createChildSite } from '../utils/createChildSite';
2
- export type ChildSite = ReturnType<typeof createChildSite>;
@@ -1,8 +0,0 @@
1
- export type ChildSiteMessage = {
2
- type: 'IFRAME_RESIZE';
3
- payload: {
4
- height: number;
5
- };
6
- } | {
7
- type: 'IFRAME_INITIALIZED';
8
- };
@@ -1,2 +0,0 @@
1
- import { ChildSite } from './ChildSite';
2
- export type ChildSiteSubscription = ReturnType<ChildSite['subscribe']>;
@@ -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,2 +0,0 @@
1
- import { createOnboardingApp } from '../utils/createOnboardingApp';
2
- export type OnboardingApp = ReturnType<typeof createOnboardingApp>;
@@ -1,2 +0,0 @@
1
- import { OnboardingConsumerApp } from './OnboardingConsumerApp';
2
- export type OnboardingConsumerAppSubscription = ReturnType<OnboardingConsumerApp['subscribe']>;
@@ -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,2 +0,0 @@
1
- import { IframeMode } from './IframeMode';
2
- export type OnboardingAppMode = IframeMode;
@@ -1,2 +0,0 @@
1
- import { OnboardingApp } from './OnboardingApp';
2
- export type OnboardingAppSubscription = ReturnType<OnboardingApp['subscribe']>;
@@ -1,2 +0,0 @@
1
- import { createOnboardingConsumerApp } from '../utils/createOnboardingConsumerApp';
2
- export type OnboardingConsumerApp = ReturnType<typeof createOnboardingConsumerApp>;
@@ -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;
@@ -1,2 +0,0 @@
1
- import { createParentSite } from '../utils/createParentSite';
2
- export type ParentSite = ReturnType<typeof createParentSite>;