@wise/dynamic-flow-client 5.3.0 → 5.4.1-experimental-ede02d2

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 (53) hide show
  1. package/build/main.css +6 -0
  2. package/build/main.js +6479 -6125
  3. package/build/main.mjs +6464 -6110
  4. package/build/types/controller/FlowController.d.ts +18 -0
  5. package/build/types/controller/executeRequest.d.ts +39 -0
  6. package/build/types/controller/executeSubmission.d.ts +15 -0
  7. package/build/types/controller/getRequestAbortController.d.ts +4 -0
  8. package/build/types/{flow → controller}/getResponseType.d.ts +1 -1
  9. package/build/types/controller/getSafeHttpClient.d.ts +1 -0
  10. package/build/types/controller/getStepCounter.d.ts +9 -0
  11. package/build/types/controller/handleErrorResponse.d.ts +3 -0
  12. package/build/types/{flow → controller}/response-utils.d.ts +2 -1
  13. package/build/types/domain/components/BooleanInputComponent.d.ts +2 -2
  14. package/build/types/domain/components/DateInputComponent.d.ts +2 -2
  15. package/build/types/domain/components/FormattedValueComponent.d.ts +2 -2
  16. package/build/types/domain/components/IntegerInputComponent.d.ts +2 -2
  17. package/build/types/domain/components/ModalComponent.d.ts +2 -2
  18. package/build/types/domain/components/MoneyInputComponent.d.ts +2 -2
  19. package/build/types/domain/components/MultiSelectInputComponent.d.ts +2 -2
  20. package/build/types/domain/components/MultiUploadInputComponent.d.ts +2 -2
  21. package/build/types/domain/components/NumberInputComponent.d.ts +2 -2
  22. package/build/types/domain/components/PersistAsyncComponent.d.ts +2 -2
  23. package/build/types/domain/components/RepeatableComponent.d.ts +2 -2
  24. package/build/types/domain/components/RootDomainComponent.d.ts +13 -9
  25. package/build/types/domain/components/SelectInputComponent.d.ts +2 -3
  26. package/build/types/domain/components/SubflowDomainComponent.d.ts +16 -0
  27. package/build/types/domain/components/TextInputComponent.d.ts +2 -2
  28. package/build/types/domain/components/UploadInputComponent.d.ts +2 -2
  29. package/build/types/domain/components/searchComponent/SearchComponent.d.ts +2 -2
  30. package/build/types/domain/components/step/ExternalConfirmationComponent.d.ts +2 -2
  31. package/build/types/domain/components/step/StepDomainComponent.d.ts +5 -5
  32. package/build/types/domain/components/utils/component-utils.d.ts +4 -4
  33. package/build/types/domain/features/eventNames.d.ts +1 -0
  34. package/build/types/domain/features/events.d.ts +2 -1
  35. package/build/types/domain/mappers/mapStepToComponent.d.ts +2 -0
  36. package/build/types/domain/mappers/schema/types.d.ts +2 -2
  37. package/build/types/domain/prefetching/request-cache.d.ts +7 -7
  38. package/build/types/domain/types.d.ts +18 -4
  39. package/build/types/getSubflowCallbacks.d.ts +14 -0
  40. package/build/types/index.d.ts +4 -0
  41. package/build/types/renderers/mappers/subflowComponentToRendererProps.d.ts +4 -0
  42. package/build/types/test-utils/DynamicFlowWiseModal.d.ts +12 -0
  43. package/build/types/test-utils/getMergedTestRenderers.d.ts +2 -0
  44. package/build/types/types.d.ts +2 -0
  45. package/build/types/useDynamicFlowModal.d.ts +16 -0
  46. package/package.json +14 -14
  47. package/build/types/flow/executeSubmission.d.ts +0 -42
  48. package/build/types/flow/makeSubmissionRequest.d.ts +0 -3
  49. package/build/types/useDynamicFlowController.d.ts +0 -15
  50. /package/build/types/{flow → controller}/executePoll.d.ts +0 -0
  51. /package/build/types/{flow → controller}/executeRefresh.d.ts +0 -0
  52. /package/build/types/{flow → controller}/getErrorMessage.d.ts +0 -0
  53. /package/build/types/{flow → controller}/makeSafeHttpClient.d.ts +0 -0
@@ -0,0 +1,14 @@
1
+ import { OnBehavior, SubflowBehavior } from './domain/types';
2
+ import { AnalyticsEventDispatcher } from './domain/features/events';
3
+ import { SubflowDomainComponent } from './domain/components/SubflowDomainComponent';
4
+ type Props = {
5
+ behavior: SubflowBehavior;
6
+ onBehavior: OnBehavior;
7
+ close: () => void;
8
+ onError: (error: unknown, analytics?: Record<string, unknown>, status?: number) => void;
9
+ onEvent: AnalyticsEventDispatcher<string>;
10
+ restart: () => void;
11
+ };
12
+ type SubflowCallbacks = Pick<SubflowDomainComponent, 'onCompletion' | 'onError' | 'onEvent' | 'onCancellation'>;
13
+ export declare const getSubflowCallbacks: ({ behavior, close, restart, onBehavior, onError, onEvent, }: Props) => SubflowCallbacks;
14
+ export {};
@@ -3,4 +3,8 @@ export { default as translations } from './i18n';
3
3
  export type { DynamicFlowCoreProps as DynamicFlowProps } from './types';
4
4
  export { findRendererPropsByType } from './renderers/utils';
5
5
  export { useDynamicFlow } from './useDynamicFlow';
6
+ export { useDynamicFlowModal } from './useDynamicFlowModal';
6
7
  export { DynamicFlowCore as DynamicFlow } from './DynamicFlowCore';
8
+ export { makeRequestCache } from './domain/prefetching/request-cache';
9
+ export type { EventName } from './domain/features/events';
10
+ export { eventNames } from './domain/features/eventNames';
@@ -0,0 +1,4 @@
1
+ import { SubflowRendererProps } from '@wise/dynamic-flow-types/renderers';
2
+ import { SubflowDomainComponent } from '../../domain/components/SubflowDomainComponent';
3
+ import { RendererMapperProps } from './componentToRendererProps';
4
+ export declare const subflowComponentToRendererProps: (component: SubflowDomainComponent, rendererMapperProps: RendererMapperProps) => SubflowRendererProps;
@@ -0,0 +1,12 @@
1
+ import { DynamicFlowCoreProps } from '../types';
2
+ type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
3
+ export type DynamicFlowWiseProps = MakeOptional<DynamicFlowCoreProps, 'renderers' | 'onLink'> & {
4
+ onAnalytics?: DynamicFlowWiseProps['onEvent'];
5
+ };
6
+ /**
7
+ * This component is only used in tests.
8
+ */
9
+ export declare function DynamicFlowWiseModal(props: DynamicFlowWiseProps & {
10
+ open?: boolean;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,2 @@
1
+ import { DynamicFlowWiseProps } from './DynamicFlowWise';
2
+ export declare const getMergedTestRenderers: (props: DynamicFlowWiseProps) => (import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").CoreContainerRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").RootRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").StepRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").AlertRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").BoxRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ColumnsRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").DecisionRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").DividerRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ExternalConfirmationRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").FormattedValueRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").FormRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").HeadingRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").InstructionsRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ListRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").LoadingIndicatorRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MarkdownRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ImageRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ModalLayoutRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ModalRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ParagraphRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ProgressRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ReviewRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SearchRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").StatusListRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").CheckboxInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").ButtonRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").DateInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").HiddenRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").IntegerInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MoneyInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").NumberInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").RepeatableRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").FormSectionRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SelectInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SectionRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").SubflowRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MultiSelectInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").TabsRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").TextInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").UploadInputRendererProps> | import("@wise/dynamic-flow-types/renderers").Renderer<import("@wise/dynamic-flow-types/renderers").MultiUploadInputRendererProps>)[];
@@ -1,6 +1,7 @@
1
1
  import type { Renderers } from '@wise/dynamic-flow-types/renderers';
2
2
  import type { Model, Step } from '@wise/dynamic-flow-types/spec';
3
3
  import type { AnalyticsEventHandler, LoggingEventHandler } from './domain/features/events';
4
+ import { RequestCache, RequestCacheEntries } from './domain/prefetching/request-cache';
4
5
  export type DynamicFlowCoreProps = {
5
6
  flowId: string;
6
7
  initialAction?: InitialAction;
@@ -8,6 +9,7 @@ export type DynamicFlowCoreProps = {
8
9
  httpClient: HttpClient;
9
10
  renderers: Renderers;
10
11
  features?: Record<string, unknown>;
12
+ requestCache?: RequestCache | RequestCacheEntries;
11
13
  onCancellation?: () => void;
12
14
  onCompletion: (result: Model) => void;
13
15
  onCopy?: (copiedString: string | null) => void;
@@ -0,0 +1,16 @@
1
+ import { JsonElement } from '@wise/dynamic-flow-types/spec';
2
+ import { DynamicFlowProps } from '.';
3
+ export declare const useDynamicFlowModal: (props: DynamicFlowProps) => {
4
+ modal: {
5
+ body: import("react/jsx-runtime").JSX.Element;
6
+ open: boolean;
7
+ onClose: () => void;
8
+ onUnmount: () => void;
9
+ };
10
+ controller: {
11
+ getSubmittableValue: () => Promise<JsonElement>;
12
+ validate: () => boolean;
13
+ cancel: () => void;
14
+ };
15
+ view: import("react/jsx-runtime").JSX.Element;
16
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wise/dynamic-flow-client",
3
- "version": "5.3.0",
3
+ "version": "5.4.1-experimental-ede02d2",
4
4
  "description": "Dynamic Flow web client",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./build/main.js",
@@ -32,14 +32,14 @@
32
32
  },
33
33
  "devDependencies": {
34
34
  "@chromatic-com/storybook": "4.1.3",
35
- "@formatjs/cli": "^6.11.0",
36
- "@storybook/addon-a11y": "^10.1.11",
37
- "@storybook/addon-docs": "^10.1.11",
38
- "@storybook/addon-links": "^10.1.11",
39
- "@storybook/react-vite": "10.1.11",
35
+ "@formatjs/cli": "^6.12.0",
36
+ "@storybook/addon-a11y": "^10.2.0",
37
+ "@storybook/addon-docs": "^10.2.0",
38
+ "@storybook/addon-links": "^10.2.0",
39
+ "@storybook/react-vite": "10.2.0",
40
40
  "@testing-library/dom": "10.4.1",
41
41
  "@testing-library/jest-dom": "6.9.1",
42
- "@testing-library/react": "16.3.1",
42
+ "@testing-library/react": "16.3.2",
43
43
  "@testing-library/user-event": "14.6.1",
44
44
  "@transferwise/components": "^46.121.1",
45
45
  "@transferwise/formatting": "^2.13.4",
@@ -54,8 +54,8 @@
54
54
  "@wise/art": "2.26.0",
55
55
  "@wise/components-theming": "^1.10.0",
56
56
  "esbuild": "0.27.0",
57
- "eslint-plugin-storybook": "10.1.11",
58
- "framer-motion": "^12.26.2",
57
+ "eslint-plugin-storybook": "10.2.0",
58
+ "framer-motion": "^12.29.0",
59
59
  "npm-run-all2": "8.0.4",
60
60
  "postcss": "^8.5.6",
61
61
  "postcss-cli": "^11.0.1",
@@ -63,14 +63,14 @@
63
63
  "react": "18.3.1",
64
64
  "react-dom": "18.3.1",
65
65
  "react-intl": "6.8.9",
66
- "storybook": "^10.1.11",
66
+ "storybook": "^10.2.0",
67
67
  "stylelint": "16.26.1",
68
68
  "stylelint-config-standard": "36.0.1",
69
69
  "stylelint-no-unsupported-browser-features": "8.0.5",
70
- "stylelint-value-no-unknown-custom-properties": "6.1.0",
70
+ "stylelint-value-no-unknown-custom-properties": "6.1.1",
71
71
  "tsx": "4.21.0",
72
72
  "typescript": "5.9.3",
73
- "vitest": "4.0.17",
73
+ "vitest": "4.0.18",
74
74
  "vitest-fetch-mock": "0.4.5",
75
75
  "@wise/dynamic-flow-fixtures": "0.0.1",
76
76
  "@wise/dynamic-flow-renderers": "0.0.0"
@@ -83,10 +83,10 @@
83
83
  "@wise/art": "^2.19.0",
84
84
  "react": "^18",
85
85
  "react-dom": "^18",
86
- "react-intl": "^6"
86
+ "react-intl": "^6 || ^7"
87
87
  },
88
88
  "dependencies": {
89
- "@wise/dynamic-flow-types": "4.4.0"
89
+ "@wise/dynamic-flow-types": "4.5.0"
90
90
  },
91
91
  "scripts": {
92
92
  "dev": "EXCLUDE_VISUAL_TESTS=true pnpm storybook dev -p 3003",
@@ -1,42 +0,0 @@
1
- import type { Action, ErrorResponseBody, Model, Step } from '@wise/dynamic-flow-types/spec';
2
- import type { AnalyticsEventDispatcher, LoggingEventDispatcher } from '../domain/features/events';
3
- import { SubmissionRequestCache } from '../domain/prefetching/request-cache';
4
- import type { Behavior } from '../domain/types';
5
- import { HttpClient } from '../types';
6
- type Command = {
7
- type: 'complete';
8
- result: Model;
9
- } | {
10
- type: 'replace-step';
11
- step: Step;
12
- etag: string | null;
13
- } | {
14
- type: 'error';
15
- body?: {
16
- analytics?: ErrorResponseBody['analytics'];
17
- errors?: Step['errors'];
18
- };
19
- httpError?: {
20
- message?: string;
21
- statusCode?: number;
22
- };
23
- } | {
24
- type: 'refresh';
25
- body: {
26
- refreshUrl: string;
27
- errors?: Step['errors'];
28
- };
29
- } | {
30
- type: 'behavior';
31
- behavior: Behavior;
32
- };
33
- export declare const executeSubmission: (props: {
34
- action: Action;
35
- model: Model;
36
- isInitial: boolean;
37
- requestCache: SubmissionRequestCache | undefined;
38
- httpClient: HttpClient;
39
- trackEvent: AnalyticsEventDispatcher;
40
- logEvent: LoggingEventDispatcher;
41
- }) => Promise<Command>;
42
- export {};
@@ -1,3 +0,0 @@
1
- import type { Action, JsonElement } from '@wise/dynamic-flow-types/spec';
2
- import { HttpClient } from '../types';
3
- export declare const makeSubmissionRequest: (action: Action, model: JsonElement) => Parameters<HttpClient>;
@@ -1,15 +0,0 @@
1
- import { RootDomainComponent } from './domain/components/RootDomainComponent';
2
- import { FeatureFlags } from './domain/mappers/utils/FeatureFlags';
3
- import type { OnValueChange, ScrollToTop } from './domain/types';
4
- import type { DynamicFlowCoreProps } from './types';
5
- type UseDynamicFlowCoreProps = Omit<DynamicFlowCoreProps, 'renderers' | 'features'> & {
6
- features: FeatureFlags;
7
- onValueChange?: OnValueChange;
8
- scrollToTop?: ScrollToTop;
9
- onLink: (url: string) => boolean;
10
- };
11
- export declare function useDynamicFlowController(props: UseDynamicFlowCoreProps): {
12
- rootComponent: RootDomainComponent;
13
- cancel: () => void;
14
- };
15
- export {};