@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
@@ -0,0 +1,7 @@
1
+ import { ComponentRegistry } from '../lib/flowComposer/componentRegistry/componentRegistry.types';
2
+ import { WorthOnboardingComponentRegistry, WorthOnboardingOptions } from './worthOnboarding.types';
3
+ export interface WorthOnboardingRuntimeHandle {
4
+ unmount(): void;
5
+ }
6
+ export declare function mountWorthOnboardingRuntime(target: HTMLElement, options: WorthOnboardingOptions): WorthOnboardingRuntimeHandle;
7
+ export declare function adaptWorthOnboardingComponentRegistry(registry: WorthOnboardingComponentRegistry | undefined): ComponentRegistry | undefined;
@@ -0,0 +1,8 @@
1
+ import { RegisterRendererArgs } from '../lib/flowComposer/componentRegistry/componentRegistry.types';
2
+ import { StepHydrationContract } from '../lib/flowComposer/form/stepHydration.types';
3
+ import { WorthOnboardingRegisterRendererArgs, WorthOnboardingStepHydrationContract } from './worthOnboarding.types';
4
+ /** Bridges a customer SDK hydration contract into the internal platform contract shape. */
5
+ export declare function adaptSdkHydrationContractToInternal(contract: WorthOnboardingStepHydrationContract): StepHydrationContract;
6
+ /** Bridges an internal hydration contract into the SDK registry shape. */
7
+ export declare function adaptInternalHydrationContractToSdk(contract: StepHydrationContract): WorthOnboardingStepHydrationContract;
8
+ export declare function adaptRegisterRendererArgsToSdk(args: RegisterRendererArgs): WorthOnboardingRegisterRendererArgs;
@@ -0,0 +1 @@
1
+ export declare function ensureWorthOnboardingStyles(styleNonce?: string, ownerDocument?: Document): void;
@@ -0,0 +1,27 @@
1
+ import { WorthOnboarding, WorthOnboardingMountTarget, WorthOnboardingOptions } from './worthOnboarding.types';
2
+ export declare class WorthOnboardingInstance implements WorthOnboarding {
3
+ private static _activeInstance;
4
+ private readonly _options;
5
+ private _host;
6
+ private _element;
7
+ private _mountGeneration;
8
+ private _runtimeHandle;
9
+ private _state;
10
+ constructor(options: WorthOnboardingOptions);
11
+ mount(target: WorthOnboardingMountTarget): Promise<HTMLElement>;
12
+ unmount(): void;
13
+ private _beginMount;
14
+ private _assertInviteToken;
15
+ private _resolveMountTarget;
16
+ private _claimHost;
17
+ private _isHTMLElement;
18
+ private _normalizeMountError;
19
+ private _createError;
20
+ private _notifyAndReturnError;
21
+ private _notifyError;
22
+ private _cleanupAfterFailedMount;
23
+ private _safelyUnmountRuntime;
24
+ private _removeElement;
25
+ private _releaseHost;
26
+ private _releaseActiveInstance;
27
+ }
@@ -0,0 +1,307 @@
1
+ import { JSX } from 'solid-js';
2
+ import { WorthOnboardingError } from './errors';
3
+ export type WorthOnboardingMountTarget = HTMLElement | string;
4
+ export type WorthOnboardingCallbackResult = void | Promise<void>;
5
+ export type WorthOnboardingAuthMode = 'auto-passwordless' | 'passwordless' | 'login' | 'signup' | 'verification';
6
+ export type WorthOnboardingFormPrimitiveValue = string | boolean | number | null | undefined;
7
+ export interface WorthOnboardingFormObjectValue {
8
+ [key: string]: WorthOnboardingFormValue;
9
+ }
10
+ export type WorthOnboardingFormValue = WorthOnboardingFormPrimitiveValue | string[] | boolean[] | number[] | File[] | WorthOnboardingFormObjectValue | WorthOnboardingFormObjectValue[];
11
+ export type WorthOnboardingFormValues = Record<string, WorthOnboardingFormValue>;
12
+ export interface WorthOnboardingEmailCheckResult {
13
+ readonly data: {
14
+ readonly email_exists: boolean;
15
+ readonly is_email_verified: boolean;
16
+ readonly role?: number;
17
+ readonly role_id?: number;
18
+ readonly status: string;
19
+ readonly subrole: string;
20
+ };
21
+ readonly message: string;
22
+ readonly status: string;
23
+ }
24
+ export interface WorthOnboardingInviteResult {
25
+ readonly data: {
26
+ readonly business_id?: string;
27
+ readonly customer_id?: string;
28
+ readonly email?: string;
29
+ readonly invitation_id?: string;
30
+ readonly is_guest_owner?: boolean;
31
+ readonly is_lightning_verification?: string;
32
+ readonly is_no_login?: boolean;
33
+ readonly onboarding_instance_id?: string;
34
+ };
35
+ readonly message: string;
36
+ readonly status: string;
37
+ }
38
+ export interface WorthOnboardingBusiness {
39
+ readonly customer_id: string;
40
+ readonly id: string;
41
+ readonly name: string;
42
+ readonly status?: string;
43
+ }
44
+ export interface WorthOnboardingUserDetails {
45
+ readonly email: string;
46
+ readonly first_name: string;
47
+ readonly id: string;
48
+ readonly is_email_verified: boolean;
49
+ readonly last_name: string;
50
+ }
51
+ export interface WorthOnboardingCustomerDetails {
52
+ readonly customer_id?: string;
53
+ readonly customer_type?: 'PRODUCTION' | 'SANDBOX';
54
+ readonly name?: string;
55
+ }
56
+ export interface WorthOnboardingSubrole {
57
+ readonly code?: string;
58
+ readonly id: string;
59
+ readonly label: string;
60
+ }
61
+ export interface WorthOnboardingAuthResponse {
62
+ readonly data: {
63
+ readonly access_token: string;
64
+ readonly businesses: WorthOnboardingBusiness[];
65
+ readonly customer_details?: WorthOnboardingCustomerDetails;
66
+ readonly id_token: string;
67
+ readonly invitation_id?: string;
68
+ readonly login_token?: string;
69
+ readonly permissions: Array<Record<string, unknown>>;
70
+ readonly refresh_token: string;
71
+ readonly session_token?: string;
72
+ readonly subrole: WorthOnboardingSubrole;
73
+ readonly user_details: WorthOnboardingUserDetails;
74
+ };
75
+ readonly message: string;
76
+ readonly status: string;
77
+ }
78
+ export interface WorthOnboardingInviteContext {
79
+ readonly email: string;
80
+ readonly emailCheck: WorthOnboardingEmailCheckResult;
81
+ readonly invite: WorthOnboardingInviteResult;
82
+ readonly inviteToken: string;
83
+ }
84
+ export interface WorthOnboardingAuthenticatedResult extends WorthOnboardingInviteContext {
85
+ readonly authMode: WorthOnboardingAuthMode;
86
+ readonly authResponse: WorthOnboardingAuthResponse;
87
+ readonly status: 'authenticated';
88
+ }
89
+ export interface WorthOnboardingAuthUnsupportedResult extends WorthOnboardingInviteContext {
90
+ readonly authMode: WorthOnboardingAuthMode;
91
+ readonly message: string;
92
+ readonly redirectPath?: string;
93
+ readonly status: 'unsupported';
94
+ }
95
+ export type WorthOnboardingComponentRegistryType = 'field' | 'layout' | 'widget' | 'step';
96
+ export type WorthOnboardingFieldType = 'text' | 'obscuredText' | 'email' | 'textarea' | 'checkbox' | 'file' | 'select' | 'multiSelect' | 'industrySelect' | 'countrySelect' | 'radio' | 'ownerTitleSelect' | 'googleAutocomplete' | 'date' | 'phone' | 'money' | 'number' | 'depositAccountSelect';
97
+ export type WorthOnboardingLayoutType = 'heading' | 'paragraph' | 'divider' | 'infoAlert' | 'widgetContent';
98
+ export type WorthOnboardingWidgetType = 'navigationOptions' | 'plaidLink' | 'bankingConnectedAccounts' | 'manualBankAccount';
99
+ export type WorthOnboardingStepRendererKey = `${string}:${string}`;
100
+ export interface WorthOnboardingFormField {
101
+ readonly hidden?: boolean;
102
+ readonly id: string;
103
+ readonly label?: string;
104
+ readonly required?: boolean;
105
+ readonly type: WorthOnboardingFieldType;
106
+ }
107
+ export interface WorthOnboardingLayoutItem {
108
+ readonly hidden?: boolean;
109
+ readonly id: string;
110
+ readonly type: WorthOnboardingLayoutType;
111
+ }
112
+ export interface WorthOnboardingWidget {
113
+ readonly enabled?: boolean;
114
+ readonly id?: string;
115
+ readonly type: WorthOnboardingWidgetType;
116
+ }
117
+ export interface WorthOnboardingFormStep {
118
+ readonly formId: string;
119
+ readonly stepId: string;
120
+ readonly title: string;
121
+ }
122
+ export interface WorthOnboardingRendererBaseProps {
123
+ readonly formStore: object;
124
+ readonly persistDraftField: (fieldId: string, value: WorthOnboardingFormValue) => Promise<void>;
125
+ readonly persistStepState: (key: string, value: WorthOnboardingFormValue) => Promise<void>;
126
+ }
127
+ export interface WorthOnboardingFieldRendererProps extends WorthOnboardingRendererBaseProps {
128
+ readonly field: WorthOnboardingFormField;
129
+ readonly fieldProps: {
130
+ readonly autofocus?: boolean;
131
+ readonly disabled?: boolean;
132
+ readonly name: string;
133
+ readonly onChange?: JSX.EventHandlerUnion<HTMLInputElement | HTMLSelectElement, Event>;
134
+ readonly onInput?: JSX.EventHandlerUnion<HTMLInputElement | HTMLTextAreaElement, InputEvent>;
135
+ };
136
+ readonly fieldState: {
137
+ readonly error: string | undefined;
138
+ readonly value: unknown;
139
+ };
140
+ readonly onNavigateToStep?: (stepId: string) => void;
141
+ }
142
+ export interface WorthOnboardingLayoutRendererProps extends WorthOnboardingRendererBaseProps {
143
+ readonly draftValues: () => WorthOnboardingFormValues;
144
+ readonly layout: WorthOnboardingLayoutItem;
145
+ readonly onNavigateToStep?: (stepId: string) => void;
146
+ }
147
+ export interface WorthOnboardingWidgetRendererProps extends WorthOnboardingRendererBaseProps {
148
+ readonly formValues: () => WorthOnboardingFormValues;
149
+ readonly onNavigateToStep?: (stepId: string) => void;
150
+ readonly stepAuxKey: (rawKey: string) => string;
151
+ readonly widget: WorthOnboardingWidget;
152
+ }
153
+ export interface WorthOnboardingStepRendererProps extends WorthOnboardingRendererBaseProps {
154
+ readonly formValues: () => WorthOnboardingFormValues;
155
+ readonly onNavigateToStep?: (stepId: string) => void;
156
+ readonly schema: WorthOnboardingFormStep;
157
+ }
158
+ export type WorthOnboardingFieldRenderer = (props: WorthOnboardingFieldRendererProps) => JSX.Element;
159
+ export type WorthOnboardingLayoutRenderer = (props: WorthOnboardingLayoutRendererProps) => JSX.Element;
160
+ export type WorthOnboardingWidgetRenderer = (props: WorthOnboardingWidgetRendererProps) => JSX.Element | null;
161
+ export type WorthOnboardingStepRenderer = (props: WorthOnboardingStepRendererProps) => JSX.Element | null;
162
+ export type WorthOnboardingRegisterRendererArgs = {
163
+ readonly key: WorthOnboardingFieldType;
164
+ readonly renderer: WorthOnboardingFieldRenderer;
165
+ readonly type: 'field';
166
+ } | {
167
+ readonly key: WorthOnboardingLayoutType;
168
+ readonly renderer: WorthOnboardingLayoutRenderer;
169
+ readonly type: 'layout';
170
+ } | {
171
+ readonly key: WorthOnboardingWidgetType;
172
+ readonly renderer: WorthOnboardingWidgetRenderer;
173
+ readonly type: 'widget';
174
+ } | {
175
+ readonly key: WorthOnboardingStepRendererKey;
176
+ readonly renderer: WorthOnboardingStepRenderer;
177
+ readonly type: 'step';
178
+ /**
179
+ * Optional step hydration contract for selection→detail flows. Co-located with the renderer
180
+ * so a feature ships its hub renderer + detail-step hydration as a unit. Only valid on
181
+ * `type: 'step'` registrations.
182
+ */
183
+ readonly hydrationContract?: WorthOnboardingStepHydrationContract;
184
+ };
185
+ export type WorthOnboardingHasRendererArgs = {
186
+ readonly key: WorthOnboardingFieldType;
187
+ readonly type: 'field';
188
+ } | {
189
+ readonly key: WorthOnboardingLayoutType;
190
+ readonly type: 'layout';
191
+ } | {
192
+ readonly key: WorthOnboardingWidgetType;
193
+ readonly type: 'widget';
194
+ } | {
195
+ readonly key: WorthOnboardingStepRendererKey;
196
+ readonly type: 'step';
197
+ };
198
+ export type WorthOnboardingListRegisteredComponentKeysArgs = {
199
+ readonly type: WorthOnboardingComponentRegistryType;
200
+ };
201
+ export type WorthOnboardingListRegisteredComponentKeysResult = WorthOnboardingFieldType[] | WorthOnboardingLayoutType[] | WorthOnboardingWidgetType[] | WorthOnboardingStepRendererKey[];
202
+ export type WorthOnboardingRenderArgs = {
203
+ readonly field: WorthOnboardingFormField;
204
+ readonly props: Omit<WorthOnboardingFieldRendererProps, 'field'>;
205
+ readonly type: 'field';
206
+ } | {
207
+ readonly layout: WorthOnboardingLayoutItem;
208
+ readonly props: Omit<WorthOnboardingLayoutRendererProps, 'layout'>;
209
+ readonly type: 'layout';
210
+ } | {
211
+ readonly props: WorthOnboardingWidgetRendererProps;
212
+ readonly type: 'widget';
213
+ } | {
214
+ readonly props: WorthOnboardingStepRendererProps;
215
+ readonly type: 'step';
216
+ };
217
+ /** Inputs to every {@link WorthOnboardingStepHydrationContract} method. */
218
+ export interface WorthOnboardingStepHydrationContractArgs {
219
+ readonly schema: WorthOnboardingFormStep;
220
+ readonly stateValues: WorthOnboardingFormValues | null | undefined;
221
+ }
222
+ /** Inputs to the optional cross-step transfer hook for hydration contracts. */
223
+ export interface WorthOnboardingStepHydrationCrossStepArgs {
224
+ readonly targetFormId: string;
225
+ readonly targetStepId: string;
226
+ readonly targetSchema: WorthOnboardingFormStep;
227
+ readonly sourceSchema: WorthOnboardingFormStep;
228
+ readonly sourceDraftValues: WorthOnboardingFormValues;
229
+ /** Source-step field values pre-filtered to schema-known fields (excludes aux/widget state). */
230
+ readonly sourceFieldValues: WorthOnboardingFormValues;
231
+ /** Cross-step / flow-level aux state available at the time of the navigation. */
232
+ readonly flowValues: WorthOnboardingFormValues;
233
+ }
234
+ /**
235
+ * Public mirror of the internal `StepHydrationContract`. An SDK consumer that ships its own
236
+ * "hub → detail" rendering registers a contract here so the flow composer drives selection
237
+ * hydration, add-mode detection, and clear-on-entry behavior for its step. See
238
+ * `src/lib/flowComposer/form/stepHydration.README.md` for the full pattern.
239
+ */
240
+ export interface WorthOnboardingStepHydrationContract {
241
+ readonly id: string;
242
+ matches(schema: WorthOnboardingFormStep): boolean;
243
+ resolveStateValues(args: WorthOnboardingStepHydrationContractArgs): WorthOnboardingFormValues;
244
+ isAddMode(args: WorthOnboardingStepHydrationContractArgs): boolean;
245
+ getOwnedAuxKeys(schema: WorthOnboardingFormStep): readonly string[];
246
+ buildCrossStepPatch?(args: WorthOnboardingStepHydrationCrossStepArgs): WorthOnboardingFormValues;
247
+ }
248
+ export interface WorthOnboardingComponentRegistry {
249
+ registerRenderer(args: WorthOnboardingRegisterRendererArgs): this;
250
+ hasRenderer(args: WorthOnboardingHasRendererArgs): boolean;
251
+ listRegisteredComponentKeys(args: WorthOnboardingListRegisteredComponentKeysArgs): WorthOnboardingListRegisteredComponentKeysResult;
252
+ render(args: WorthOnboardingRenderArgs): JSX.Element | null;
253
+ /**
254
+ * Returns hydration contracts attached during step renderer registration. Contracts are passed
255
+ * as the optional `hydrationContract` field on `type: 'step'` renderer args.
256
+ */
257
+ getHydrationContracts(): readonly WorthOnboardingStepHydrationContract[];
258
+ }
259
+ export type WorthOnboardingJsonValue = null | string | number | boolean | readonly WorthOnboardingJsonValue[] | {
260
+ readonly [key: string]: WorthOnboardingJsonValue | undefined;
261
+ };
262
+ export interface WorthOnboardingFlowInput {
263
+ readonly id: string;
264
+ readonly schema: string;
265
+ readonly version: number;
266
+ readonly meta: {
267
+ readonly title: string;
268
+ readonly slug: string;
269
+ readonly description?: string;
270
+ readonly customerLogo?: string;
271
+ readonly applicantLogo?: string;
272
+ readonly [key: string]: WorthOnboardingJsonValue | undefined;
273
+ };
274
+ readonly configs?: Readonly<Record<string, WorthOnboardingJsonValue>>;
275
+ readonly flowRules?: readonly WorthOnboardingJsonValue[];
276
+ readonly forms: readonly WorthOnboardingJsonValue[];
277
+ readonly [key: string]: WorthOnboardingJsonValue | undefined;
278
+ }
279
+ export interface WorthOnboardingStepSubmitEvent {
280
+ readonly inviteToken: string;
281
+ readonly stepId: string;
282
+ readonly values: WorthOnboardingFormValues;
283
+ }
284
+ export interface WorthOnboardingCompleteEvent {
285
+ readonly inviteToken: string;
286
+ readonly values: WorthOnboardingFormValues;
287
+ }
288
+ export interface WorthOnboarding {
289
+ mount(target: WorthOnboardingMountTarget): Promise<HTMLElement>;
290
+ unmount(): void;
291
+ }
292
+ export interface WorthOnboardingOptions {
293
+ readonly apiBaseUrl?: string;
294
+ readonly componentRegistry?: WorthOnboardingComponentRegistry;
295
+ readonly flowInput?: WorthOnboardingFlowInput;
296
+ readonly inviteToken: string;
297
+ readonly loadingFallback?: JSX.Element;
298
+ readonly onAuthenticated?: (result: WorthOnboardingAuthenticatedResult) => void;
299
+ readonly onAuthUnsupported?: (result: WorthOnboardingAuthUnsupportedResult) => void;
300
+ readonly onComplete?: (event: WorthOnboardingCompleteEvent) => WorthOnboardingCallbackResult;
301
+ readonly onError?: (error: WorthOnboardingError) => void;
302
+ readonly onStepSubmit?: (event: WorthOnboardingStepSubmitEvent) => WorthOnboardingCallbackResult;
303
+ readonly renderError?: (message: string) => JSX.Element;
304
+ readonly routeBasePath?: string;
305
+ readonly storageNamespace?: string;
306
+ readonly styleNonce?: string;
307
+ }