@forgerock/davinci-client 0.0.0-beta-20250414111925 → 0.0.0-beta-20250414115256

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 (101) hide show
  1. package/dist/src/index.d.ts +3 -0
  2. package/dist/src/index.d.ts.map +1 -0
  3. package/dist/src/index.js +9 -0
  4. package/dist/src/index.js.map +1 -0
  5. package/dist/src/lib/authorize.utils.d.ts +22 -0
  6. package/dist/src/lib/authorize.utils.d.ts.map +1 -0
  7. package/dist/src/lib/authorize.utils.js +47 -0
  8. package/dist/src/lib/authorize.utils.js.map +1 -0
  9. package/dist/src/lib/client.store.d.ts +351 -0
  10. package/dist/src/lib/client.store.d.ts.map +1 -0
  11. package/dist/src/lib/client.store.js +295 -0
  12. package/dist/src/lib/client.store.js.map +1 -0
  13. package/dist/src/lib/client.store.utils.d.ts +61 -0
  14. package/dist/src/lib/client.store.utils.d.ts.map +1 -0
  15. package/dist/src/lib/client.store.utils.js +35 -0
  16. package/dist/src/lib/client.store.utils.js.map +1 -0
  17. package/dist/src/lib/client.types.d.ts +17 -0
  18. package/dist/src/lib/client.types.d.ts.map +1 -0
  19. package/dist/src/lib/client.types.js +2 -0
  20. package/dist/src/lib/client.types.js.map +1 -0
  21. package/dist/src/lib/collector.types.d.ts +255 -0
  22. package/dist/src/lib/collector.types.d.ts.map +1 -0
  23. package/dist/src/lib/collector.types.js +11 -0
  24. package/dist/src/lib/collector.types.js.map +1 -0
  25. package/dist/src/lib/collector.utils.d.ts +100 -0
  26. package/dist/src/lib/collector.utils.d.ts.map +1 -0
  27. package/dist/src/lib/collector.utils.js +349 -0
  28. package/dist/src/lib/collector.utils.js.map +1 -0
  29. package/dist/src/lib/config.slice.d.ts +42 -0
  30. package/dist/src/lib/config.slice.d.ts.map +1 -0
  31. package/dist/src/lib/config.slice.js +59 -0
  32. package/dist/src/lib/config.slice.js.map +1 -0
  33. package/dist/src/lib/config.types.d.ts +12 -0
  34. package/dist/src/lib/config.types.d.ts.map +1 -0
  35. package/dist/src/lib/config.types.js +2 -0
  36. package/dist/src/lib/config.types.js.map +1 -0
  37. package/dist/src/lib/davinci.api.d.ts +29 -0
  38. package/dist/src/lib/davinci.api.d.ts.map +1 -0
  39. package/dist/src/lib/davinci.api.js +333 -0
  40. package/dist/src/lib/davinci.api.js.map +1 -0
  41. package/dist/src/lib/davinci.types.d.ts +239 -0
  42. package/dist/src/lib/davinci.types.d.ts.map +1 -0
  43. package/dist/src/lib/davinci.types.js +11 -0
  44. package/dist/src/lib/davinci.types.js.map +1 -0
  45. package/dist/src/lib/davinci.utils.d.ts +25 -0
  46. package/dist/src/lib/davinci.utils.d.ts.map +1 -0
  47. package/dist/src/lib/davinci.utils.js +185 -0
  48. package/dist/src/lib/davinci.utils.js.map +1 -0
  49. package/dist/src/lib/effects/request.effect.mock.d.ts +4 -0
  50. package/dist/src/lib/effects/request.effect.mock.d.ts.map +1 -0
  51. package/dist/src/lib/effects/request.effect.mock.js +106 -0
  52. package/dist/src/lib/effects/request.effect.mock.js.map +1 -0
  53. package/dist/src/lib/effects/request.effect.types.d.ts +20 -0
  54. package/dist/src/lib/effects/request.effect.types.d.ts.map +1 -0
  55. package/dist/src/lib/effects/request.effect.types.js +2 -0
  56. package/dist/src/lib/effects/request.effect.types.js.map +1 -0
  57. package/dist/src/lib/effects/request.effect.unions.d.ts +12 -0
  58. package/dist/src/lib/effects/request.effect.unions.d.ts.map +1 -0
  59. package/dist/src/lib/effects/request.effect.unions.js +16 -0
  60. package/dist/src/lib/effects/request.effect.unions.js.map +1 -0
  61. package/dist/src/lib/effects/request.effect.utils.d.ts +27 -0
  62. package/dist/src/lib/effects/request.effect.utils.d.ts.map +1 -0
  63. package/dist/src/lib/effects/request.effect.utils.js +57 -0
  64. package/dist/src/lib/effects/request.effect.utils.js.map +1 -0
  65. package/dist/src/lib/error.types.d.ts +6 -0
  66. package/dist/src/lib/error.types.d.ts.map +1 -0
  67. package/dist/src/lib/error.types.js +2 -0
  68. package/dist/src/lib/error.types.js.map +1 -0
  69. package/dist/src/lib/index.d.ts +3 -0
  70. package/dist/src/lib/index.d.ts.map +1 -0
  71. package/dist/src/lib/index.js +9 -0
  72. package/dist/src/lib/index.js.map +1 -0
  73. package/dist/src/lib/node.reducer.d.ts +27 -0
  74. package/dist/src/lib/node.reducer.d.ts.map +1 -0
  75. package/dist/src/lib/node.reducer.js +143 -0
  76. package/dist/src/lib/node.reducer.js.map +1 -0
  77. package/dist/src/lib/node.slice.d.ts +145 -0
  78. package/dist/src/lib/node.slice.d.ts.map +1 -0
  79. package/dist/src/lib/node.slice.js +231 -0
  80. package/dist/src/lib/node.slice.js.map +1 -0
  81. package/dist/src/lib/node.types.d.ts +118 -0
  82. package/dist/src/lib/node.types.d.ts.map +1 -0
  83. package/dist/src/lib/node.types.js +2 -0
  84. package/dist/src/lib/node.types.js.map +1 -0
  85. package/dist/src/lib/node.utils.d.ts +4 -0
  86. package/dist/src/lib/node.utils.d.ts.map +1 -0
  87. package/dist/src/lib/node.utils.js +32 -0
  88. package/dist/src/lib/node.utils.js.map +1 -0
  89. package/dist/src/lib/wellknown.api.d.ts +5 -0
  90. package/dist/src/lib/wellknown.api.d.ts.map +1 -0
  91. package/dist/src/lib/wellknown.api.js +22 -0
  92. package/dist/src/lib/wellknown.api.js.map +1 -0
  93. package/dist/src/lib/wellknown.types.d.ts +38 -0
  94. package/dist/src/lib/wellknown.types.d.ts.map +1 -0
  95. package/dist/src/lib/wellknown.types.js +2 -0
  96. package/dist/src/lib/wellknown.types.js.map +1 -0
  97. package/dist/src/types.d.ts +31 -0
  98. package/dist/src/types.d.ts.map +1 -0
  99. package/dist/src/types.js +8 -0
  100. package/dist/src/types.js.map +1 -0
  101. package/package.json +3 -2
@@ -0,0 +1,143 @@
1
+ /*
2
+ * Copyright (c) 2025 Ping Identity Corporation. All rights reserved.
3
+ *
4
+ * This software may be modified and distributed under the terms
5
+ * of the MIT license. See the LICENSE file for details.
6
+ */
7
+ /**
8
+ * Import the required utilities from Redux Toolkit
9
+ */
10
+ import { createAction, createReducer } from '@reduxjs/toolkit';
11
+ /**
12
+ * Import the collector utilities
13
+ */
14
+ import { returnActionCollector, returnFlowCollector, returnPasswordCollector, returnSingleValueCollector, returnIdpCollector, returnSubmitCollector, returnTextCollector, returnSingleSelectCollector, returnMultiSelectCollector, returnReadOnlyCollector, } from './collector.utils.js';
15
+ /**
16
+ * @const nextCollectorValues - Action for setting the next collector values
17
+ * @see https://redux-toolkit.js.org/api/createAction
18
+ *
19
+ * This is for internal "collector" setup for handling the state of the current node
20
+ */
21
+ export const nextCollectorValues = createAction('node/next');
22
+ export const updateCollectorValues = createAction('node/update');
23
+ /**
24
+ * @const initialCollectorValues - Initial state for the collector values
25
+ */
26
+ const initialCollectorValues = [];
27
+ /**
28
+ * @const nodeCollectorReducer - Reducer for handling the collector values
29
+ * @see https://redux-toolkit.js.org/api/createReducer
30
+ */
31
+ export const nodeCollectorReducer = createReducer(initialCollectorValues, (builder) => {
32
+ builder
33
+ /**
34
+ * Using the `nextCollectorValues` const (e.g. `'node/next'`) to add the case
35
+ * 'node/next' is essentially derived `createSlice` below. `node.next()` is
36
+ * transformed to `'node/next'` for the action type.
37
+ */
38
+ .addCase(nextCollectorValues, (_, action) => {
39
+ const fields = action.payload.fields;
40
+ // Map the fields to the initial state with the schema of Generic Collector
41
+ const collectors = Array.isArray(fields)
42
+ ? fields.map((field, idx) => {
43
+ /**
44
+ * Some collectors may not have the same properties as others;
45
+ * LABEL field types are one of them, so let's catch them first.
46
+ */
47
+ if (field.type === 'LABEL') {
48
+ return returnReadOnlyCollector(field, idx);
49
+ }
50
+ // *Some* collectors may have default or existing data to display
51
+ const data = action.payload.formData &&
52
+ action.payload.formData.value &&
53
+ action.payload.formData.value[field.key];
54
+ // Match specific collectors
55
+ switch (field.type) {
56
+ case 'CHECKBOX':
57
+ case 'COMBOBOX': {
58
+ // Intentional fall-through
59
+ const strArr = data;
60
+ return returnMultiSelectCollector(field, idx, strArr);
61
+ }
62
+ case 'DROPDOWN':
63
+ case 'RADIO': {
64
+ // Intentional fall-through
65
+ const str = data;
66
+ return returnSingleSelectCollector(field, idx, str);
67
+ }
68
+ case 'FLOW_BUTTON':
69
+ case 'FLOW_LINK': {
70
+ // Intentional fall-through
71
+ // No data to send
72
+ return returnFlowCollector(field, idx);
73
+ }
74
+ case 'PASSWORD':
75
+ case 'PASSWORD_VERIFY': {
76
+ // No data to send
77
+ return returnPasswordCollector(field, idx);
78
+ }
79
+ case 'TEXT': {
80
+ const str = data;
81
+ return returnTextCollector(field, idx, str);
82
+ }
83
+ case 'SOCIAL_LOGIN_BUTTON': {
84
+ // No data to send
85
+ return returnIdpCollector(field, idx);
86
+ }
87
+ case 'SUBMIT_BUTTON': {
88
+ // No data to send
89
+ return returnSubmitCollector(field, idx);
90
+ }
91
+ default:
92
+ // Default is handled below
93
+ }
94
+ // Generic Collectors
95
+ if (field.type.includes('BUTTON') || field.type.includes('LINK')) {
96
+ // No data to send
97
+ return returnActionCollector(field, idx, 'ActionCollector');
98
+ }
99
+ const str = data;
100
+ return returnSingleValueCollector(field, idx, 'SingleValueCollector', str);
101
+ })
102
+ : [];
103
+ return collectors || [];
104
+ })
105
+ /**
106
+ * Using the `updateCollectorValues` const (e.g. `'node/update'`) to add the case
107
+ * 'node/next' is essentially derived `createSlice` below. `node.next()` is
108
+ * transformed to `'node/next'` for the action type.
109
+ */
110
+ .addCase(updateCollectorValues, (state, action) => {
111
+ const collector = state.find((collector) => collector.id === action.payload.id);
112
+ if (!collector) {
113
+ throw new Error('No collector found to update');
114
+ }
115
+ if (collector.category === 'ActionCollector') {
116
+ throw new Error('ActionCollectors are read-only');
117
+ }
118
+ if (collector.category === 'NoValueCollector') {
119
+ throw new Error('NoValueCollectors, like ReadOnlyCollectors, are read-only');
120
+ }
121
+ if (action.payload.value === undefined) {
122
+ throw new Error('Value argument cannot be undefined');
123
+ }
124
+ if (collector.category === 'SingleValueCollector' ||
125
+ collector.category === 'ValidatedSingleValueCollector') {
126
+ if (Array.isArray(action.payload.value)) {
127
+ throw new Error('SingleValueCollector does not accept an array');
128
+ }
129
+ collector.input.value = action.payload.value;
130
+ return;
131
+ }
132
+ if (collector.category === 'MultiValueCollector') {
133
+ if (Array.isArray(action.payload.value)) {
134
+ collector.input.value = [...action.payload.value];
135
+ }
136
+ else {
137
+ collector.input.value.push(action.payload.value);
138
+ }
139
+ return;
140
+ }
141
+ });
142
+ });
143
+ //# sourceMappingURL=node.reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.reducer.js","sourceRoot":"","sources":["../../../src/lib/node.reducer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Import the needed reducers
3
+ */
4
+ import { updateCollectorValues } from './node.reducer.js';
5
+ /**
6
+ * Import the types
7
+ */
8
+ import type { PayloadAction } from '@reduxjs/toolkit';
9
+ import type { SubmitCollector } from './collector.types.js';
10
+ import type { DavinciErrorResponse, DaVinciFailureResponse, DaVinciNextResponse, DaVinciSuccessResponse } from './davinci.types.js';
11
+ import type { ContinueNode, SuccessNode, ErrorNode, StartNode, FailureNode } from './node.types.js';
12
+ /**
13
+ * @const initialNodeState - Initial state for the node slice
14
+ */
15
+ export declare const initialNodeState: {
16
+ cache: null;
17
+ client: {
18
+ status: string;
19
+ };
20
+ error: null;
21
+ server: {
22
+ status: string;
23
+ };
24
+ status: string;
25
+ };
26
+ /**
27
+ * @const nodeSlice - Slice for handling the node state
28
+ * @see https://redux-toolkit.js.org/api/createSlice
29
+ */
30
+ export declare const nodeSlice: import("@reduxjs/toolkit").Slice<ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode, {
31
+ /**
32
+ * @method error - Method for creating an error node
33
+ * @param {Object} state - The current state of the slice
34
+ * @param {PayloadAction<DaVinciErrorCacheEntry<DavinciErrorResponse>>} action - The action to be dispatched
35
+ * @returns {ErrorNode} - The error node
36
+ */
37
+ error(state: import("immer").WritableDraft<ContinueNode> | import("immer").WritableDraft<ErrorNode> | import("immer").WritableDraft<FailureNode> | import("immer").WritableDraft<StartNode> | import("immer").WritableDraft<SuccessNode>, action: PayloadAction<{
38
+ data: DavinciErrorResponse;
39
+ requestId: string;
40
+ httpStatus: number;
41
+ }>): import("immer").WritableDraft<ErrorNode>;
42
+ /**
43
+ * @method failure - Method for creating an error node
44
+ * @param {Object} state - The current state of the slice
45
+ * @param {PayloadAction<DaVinciFailureResponse>} action - The action to be dispatched
46
+ * @returns {FailureNode} - The error node
47
+ */
48
+ failure(state: import("immer").WritableDraft<ContinueNode> | import("immer").WritableDraft<ErrorNode> | import("immer").WritableDraft<FailureNode> | import("immer").WritableDraft<StartNode> | import("immer").WritableDraft<SuccessNode>, action: PayloadAction<{
49
+ data: DaVinciFailureResponse | unknown;
50
+ requestId: string;
51
+ httpStatus: number;
52
+ }>): import("immer").WritableDraft<FailureNode>;
53
+ /**
54
+ * @method next - Method for creating a next node
55
+ * @param {Object} state - The current state of the slice
56
+ * @param {PayloadAction<DaVinciNextResponse>} action - The action to be dispatched
57
+ * @returns {ContinueNode} - The next node
58
+ */
59
+ next(state: import("immer").WritableDraft<ContinueNode> | import("immer").WritableDraft<ErrorNode> | import("immer").WritableDraft<FailureNode> | import("immer").WritableDraft<StartNode> | import("immer").WritableDraft<SuccessNode>, action: PayloadAction<{
60
+ data: DaVinciNextResponse;
61
+ requestId: string;
62
+ httpStatus: number;
63
+ }>): import("immer").WritableDraft<ContinueNode>;
64
+ /**
65
+ * @method start - Method for creating a start node
66
+ * @param {Object} state - The current state of the slice
67
+ * @returns {StartNode} - The start node
68
+ */
69
+ success(state: import("immer").WritableDraft<ContinueNode> | import("immer").WritableDraft<ErrorNode> | import("immer").WritableDraft<FailureNode> | import("immer").WritableDraft<StartNode> | import("immer").WritableDraft<SuccessNode>, action: PayloadAction<{
70
+ data: DaVinciSuccessResponse;
71
+ requestId: string;
72
+ httpStatus: number;
73
+ }>): import("immer").WritableDraft<SuccessNode>;
74
+ /**
75
+ * @method update - Method for updating collector values with the node
76
+ * @param {Object} state - The current state of the slice
77
+ * @param {PayloadAction<unknown>} action - The action to be dispatched
78
+ * @returns {ContinueNode} - The next node
79
+ */
80
+ update(state: import("immer").WritableDraft<ContinueNode> | import("immer").WritableDraft<ErrorNode> | import("immer").WritableDraft<FailureNode> | import("immer").WritableDraft<StartNode> | import("immer").WritableDraft<SuccessNode>, action: ReturnType<typeof updateCollectorValues>): import("immer").WritableDraft<ContinueNode>;
81
+ }, "node", "node", {
82
+ selectClient: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode) => {
83
+ action: string;
84
+ collectors: import("./node.types.js").Collectors[];
85
+ description?: string;
86
+ name?: string;
87
+ status: "continue";
88
+ } | {
89
+ action: string;
90
+ collectors: import("./node.types.js").Collectors[];
91
+ description?: string;
92
+ name?: string;
93
+ status: "error";
94
+ } | {
95
+ status: "failure";
96
+ } | {
97
+ status: "start";
98
+ } | {
99
+ authorization?: {
100
+ code?: string;
101
+ state?: string;
102
+ };
103
+ status: "success";
104
+ } | null;
105
+ selectCollectors: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode) => import("./node.types.js").Collectors[];
106
+ selectCollector: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode, id: string) => import("./collector.types.js").TextCollector | import("./collector.types.js").SingleSelectCollector | import("./collector.types.js").PasswordCollector | import("./collector.types.js").SingleValueCollectorNoValue<"SingleValueCollector"> | import("./collector.types.js").ValidatedTextCollector | import("./collector.types.js").MultiSelectCollector | import("./collector.types.js").IdpCollector | SubmitCollector | import("./collector.types.js").FlowCollector | import("./collector.types.js").ActionCollectorNoUrl<"ActionCollector"> | import("./collector.types.js").ReadOnlyCollector | undefined;
107
+ selectError: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode) => import("./node.types.js").DaVinciError | null;
108
+ selectErrorCollectors: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode) => import("./node.types.js").CollectorErrors[];
109
+ selectServer: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode) => {
110
+ _links?: import("./davinci.types.js").Links;
111
+ id?: string;
112
+ interactionId?: string;
113
+ interactionToken?: string;
114
+ href?: string;
115
+ eventName?: string;
116
+ status: "continue";
117
+ } | {
118
+ _links?: import("./davinci.types.js").Links;
119
+ eventName?: string;
120
+ id?: string;
121
+ interactionId?: string;
122
+ interactionToken?: string;
123
+ status: "error";
124
+ } | {
125
+ _links?: import("./davinci.types.js").Links;
126
+ eventName?: string;
127
+ href?: string;
128
+ id?: string;
129
+ interactionId?: string;
130
+ interactionToken?: string;
131
+ status: "failure";
132
+ } | {
133
+ status: "start";
134
+ } | {
135
+ _links?: import("./davinci.types.js").Links;
136
+ eventName?: string;
137
+ id?: string;
138
+ interactionId?: string;
139
+ interactionToken?: string;
140
+ href?: string;
141
+ session?: string;
142
+ status: "success";
143
+ } | null;
144
+ }>;
145
+ //# sourceMappingURL=node.slice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.slice.d.ts","sourceRoot":"","sources":["../../../src/lib/node.slice.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,OAAO,EAAwB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAGhF;;GAEG;AACH,OAAO,KAAK,EAAS,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAWpG;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;CAU5B,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,SAAS;IAIlB;;;;;OAKG;sPAGO,aAAa,CAAC;QAAE,IAAI,EAAE,oBAAoB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAsC9F;;;;;OAKG;wPAGO,aAAa,CAAC;QACpB,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IA2CJ;;;;;OAKG;qPAGO,aAAa,CAAC;QACpB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IA4CJ;;;;OAIG;wPAGO,aAAa,CAAC;QACpB,IAAI,EAAE,sBAAsB,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IA8BJ;;;;;OAKG;uPACmB,UAAU,CAAC,OAAO,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;gBAjLxD,CAAC;iBAAqB,CAAC;;;;;mGAsMA,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBrC,CAAC"}
@@ -0,0 +1,231 @@
1
+ /*
2
+ * Copyright (c) 2025 Ping Identity Corporation. All rights reserved.
3
+ *
4
+ * This software may be modified and distributed under the terms
5
+ * of the MIT license. See the LICENSE file for details.
6
+ */
7
+ /**
8
+ * Import the required utilities from Redux Toolkit
9
+ */
10
+ import { createSlice } from '@reduxjs/toolkit';
11
+ /**
12
+ * Import the needed reducers
13
+ */
14
+ import { nodeCollectorReducer } from './node.reducer.js';
15
+ import { getCollectorErrors } from './node.utils.js';
16
+ /**
17
+ * The possible statuses for the four types of nodes
18
+ */
19
+ const CONTINUE_STATUS = 'continue';
20
+ const ERROR_STATUS = 'error';
21
+ const FAILURE_STATUS = 'failure';
22
+ const SUCCESS_STATUS = 'success';
23
+ const START_STATUS = 'start';
24
+ /**
25
+ * @const initialNodeState - Initial state for the node slice
26
+ */
27
+ export const initialNodeState = {
28
+ cache: null,
29
+ client: {
30
+ status: START_STATUS,
31
+ },
32
+ error: null,
33
+ server: {
34
+ status: START_STATUS,
35
+ },
36
+ status: START_STATUS,
37
+ };
38
+ /**
39
+ * @const nodeSlice - Slice for handling the node state
40
+ * @see https://redux-toolkit.js.org/api/createSlice
41
+ */
42
+ export const nodeSlice = createSlice({
43
+ name: 'node',
44
+ initialState: initialNodeState,
45
+ reducers: {
46
+ /**
47
+ * @method error - Method for creating an error node
48
+ * @param {Object} state - The current state of the slice
49
+ * @param {PayloadAction<DaVinciErrorCacheEntry<DavinciErrorResponse>>} action - The action to be dispatched
50
+ * @returns {ErrorNode} - The error node
51
+ */
52
+ error(state, action) {
53
+ const newState = state;
54
+ // Reference to the original response from DaVinci in the cache
55
+ newState.cache = {
56
+ key: action.payload.requestId,
57
+ };
58
+ // Data for the client to consume
59
+ newState.client = {
60
+ ...state.client,
61
+ status: ERROR_STATUS,
62
+ };
63
+ newState.error = {
64
+ code: action.payload.data.code,
65
+ collectors: getCollectorErrors(action.payload.data),
66
+ message: action.payload.data.message,
67
+ internalHttpStatus: action.payload.data.httpResponseCode,
68
+ status: 'error',
69
+ type: 'davinci_error',
70
+ };
71
+ newState.httpStatus = action.payload.httpStatus;
72
+ // Data that the server users
73
+ newState.server = {
74
+ ...state.server,
75
+ status: ERROR_STATUS,
76
+ };
77
+ // Used to help detect the node type
78
+ newState.status = ERROR_STATUS;
79
+ return newState;
80
+ },
81
+ /**
82
+ * @method failure - Method for creating an error node
83
+ * @param {Object} state - The current state of the slice
84
+ * @param {PayloadAction<DaVinciFailureResponse>} action - The action to be dispatched
85
+ * @returns {FailureNode} - The error node
86
+ */
87
+ failure(state, action) {
88
+ const newState = state;
89
+ newState.cache = {
90
+ key: action.payload.requestId,
91
+ };
92
+ newState.client = {
93
+ status: FAILURE_STATUS,
94
+ };
95
+ if (action.payload.data && typeof action.payload.data === 'object') {
96
+ const data = action.payload.data;
97
+ newState.error = {
98
+ code: data['code'] || 'unknown',
99
+ message: data['message'] || data['errorMessage'] || '',
100
+ internalHttpStatus: typeof data['httpResponseCode'] === 'number' ? data['httpResponseCode'] : 0,
101
+ status: FAILURE_STATUS,
102
+ type: 'davinci_error',
103
+ };
104
+ }
105
+ else {
106
+ newState.error = {
107
+ code: 'unknown',
108
+ message: 'An unknown error occurred',
109
+ status: FAILURE_STATUS,
110
+ type: 'network_error',
111
+ };
112
+ }
113
+ newState.httpStatus = action.payload.httpStatus;
114
+ newState.server = {
115
+ status: FAILURE_STATUS,
116
+ };
117
+ newState.status = FAILURE_STATUS;
118
+ return newState;
119
+ },
120
+ /**
121
+ * @method next - Method for creating a next node
122
+ * @param {Object} state - The current state of the slice
123
+ * @param {PayloadAction<DaVinciNextResponse>} action - The action to be dispatched
124
+ * @returns {ContinueNode} - The next node
125
+ */
126
+ next(state, action) {
127
+ const newState = state;
128
+ const collectors = nodeCollectorReducer([], {
129
+ type: action.type,
130
+ payload: {
131
+ fields: action.payload.data?.form?.components?.fields,
132
+ formData: action.payload.data?.formData,
133
+ },
134
+ });
135
+ const submitCollector = collectors.filter((collector) => collector.type === 'SubmitCollector')[0];
136
+ newState.cache = {
137
+ key: action.payload.requestId,
138
+ };
139
+ newState.client = {
140
+ action: submitCollector?.output.key,
141
+ description: action.payload.data?.form?.description,
142
+ collectors,
143
+ name: action.payload.data.form?.name,
144
+ status: CONTINUE_STATUS,
145
+ };
146
+ newState.httpStatus = action.payload.httpStatus;
147
+ newState.server = {
148
+ _links: action.payload.data._links,
149
+ id: action.payload.data.id,
150
+ interactionId: action.payload.data.interactionId,
151
+ interactionToken: action.payload.data.interactionToken,
152
+ eventName: action.payload.data.eventName,
153
+ status: CONTINUE_STATUS,
154
+ };
155
+ // Used to help detect the node type
156
+ newState.status = CONTINUE_STATUS;
157
+ return newState;
158
+ },
159
+ /**
160
+ * @method start - Method for creating a start node
161
+ * @param {Object} state - The current state of the slice
162
+ * @returns {StartNode} - The start node
163
+ */
164
+ success(state, action) {
165
+ const newState = state;
166
+ newState.cache = {
167
+ key: action.payload.requestId,
168
+ };
169
+ newState.client = {
170
+ authorization: {
171
+ code: action.payload.data.authorizeResponse?.code,
172
+ state: action.payload.data.authorizeResponse?.state,
173
+ },
174
+ status: SUCCESS_STATUS,
175
+ };
176
+ newState.httpStatus = action.payload.httpStatus;
177
+ newState.server = {
178
+ id: action.payload.data.id,
179
+ interactionId: action.payload.data.interactionId,
180
+ interactionToken: action.payload.data.interactionToken,
181
+ session: action.payload.data.session?.id,
182
+ status: SUCCESS_STATUS,
183
+ };
184
+ newState.status = SUCCESS_STATUS;
185
+ return newState;
186
+ },
187
+ /**
188
+ * @method update - Method for updating collector values with the node
189
+ * @param {Object} state - The current state of the slice
190
+ * @param {PayloadAction<unknown>} action - The action to be dispatched
191
+ * @returns {ContinueNode} - The next node
192
+ */
193
+ update(state, action) {
194
+ const newState = state;
195
+ newState.client.collectors = nodeCollectorReducer(newState.client.collectors, action);
196
+ return newState;
197
+ },
198
+ },
199
+ selectors: {
200
+ selectClient: (state) => {
201
+ return state.client;
202
+ },
203
+ selectCollectors: (state) => {
204
+ if (state.client && 'collectors' in state.client) {
205
+ return state?.client.collectors;
206
+ }
207
+ console.error(`\`collectors\` are only available on nodes with \`status\` of ${CONTINUE_STATUS} or ${ERROR_STATUS}`);
208
+ return [];
209
+ },
210
+ selectCollector: (state, id) => {
211
+ if (state.client && 'collectors' in state.client) {
212
+ return state.client.collectors?.find((collector) => collector.id === id);
213
+ }
214
+ console.error(`\`collectors\` are only available on nodes with \`status\` of ${CONTINUE_STATUS} or ${ERROR_STATUS}`);
215
+ return;
216
+ },
217
+ selectError: (state) => {
218
+ return state.error;
219
+ },
220
+ selectErrorCollectors: (state) => {
221
+ if (state.status !== ERROR_STATUS) {
222
+ console.error(`\`errorCollectors\` are only available on nodes with \`status\` of ${ERROR_STATUS}`);
223
+ }
224
+ return state.error?.collectors || [];
225
+ },
226
+ selectServer: (state) => {
227
+ return state.server;
228
+ },
229
+ },
230
+ });
231
+ //# sourceMappingURL=node.slice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.slice.js","sourceRoot":"","sources":["../../../src/lib/node.slice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import type { FlowCollector, PasswordCollector, TextCollector, IdpCollector, SubmitCollector, ActionCollector, SingleValueCollector, SingleSelectCollector, MultiSelectCollector, ReadOnlyCollector, ValidatedTextCollector } from './collector.types.js';
2
+ import type { Links } from './davinci.types.js';
3
+ import { GenericError } from './error.types.js';
4
+ export type Collectors = FlowCollector | PasswordCollector | TextCollector | SingleSelectCollector | IdpCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'> | MultiSelectCollector | ReadOnlyCollector | ValidatedTextCollector;
5
+ export interface CollectorErrors {
6
+ code: string;
7
+ message: string;
8
+ target: string;
9
+ }
10
+ export interface ContinueNode {
11
+ cache: {
12
+ key: string;
13
+ };
14
+ client: {
15
+ action: string;
16
+ collectors: Collectors[];
17
+ description?: string;
18
+ name?: string;
19
+ status: 'continue';
20
+ };
21
+ error: null;
22
+ httpStatus: number;
23
+ server: {
24
+ _links?: Links;
25
+ id?: string;
26
+ interactionId?: string;
27
+ interactionToken?: string;
28
+ href?: string;
29
+ eventName?: string;
30
+ status: 'continue';
31
+ };
32
+ status: 'continue';
33
+ }
34
+ export interface DaVinciError extends GenericError {
35
+ collectors?: CollectorErrors[];
36
+ internalHttpStatus?: number;
37
+ status: 'error' | 'failure' | 'unknown';
38
+ }
39
+ export interface ErrorNode {
40
+ cache: {
41
+ key: string;
42
+ };
43
+ client: {
44
+ action: string;
45
+ collectors: Collectors[];
46
+ description?: string;
47
+ name?: string;
48
+ status: 'error';
49
+ };
50
+ error: DaVinciError;
51
+ httpStatus: number;
52
+ server: {
53
+ _links?: Links;
54
+ eventName?: string;
55
+ id?: string;
56
+ interactionId?: string;
57
+ interactionToken?: string;
58
+ status: 'error';
59
+ } | null;
60
+ status: 'error';
61
+ }
62
+ export interface FailureNode {
63
+ cache: {
64
+ key: string;
65
+ };
66
+ client: {
67
+ status: 'failure';
68
+ };
69
+ error: DaVinciError;
70
+ httpStatus: number;
71
+ server: {
72
+ _links?: Links;
73
+ eventName?: string;
74
+ href?: string;
75
+ id?: string;
76
+ interactionId?: string;
77
+ interactionToken?: string;
78
+ status: 'failure';
79
+ } | null;
80
+ status: 'failure';
81
+ }
82
+ export interface StartNode {
83
+ cache: null;
84
+ client: {
85
+ status: 'start';
86
+ };
87
+ error: null;
88
+ server: {
89
+ status: 'start';
90
+ };
91
+ status: 'start';
92
+ }
93
+ export interface SuccessNode {
94
+ cache: {
95
+ key: string;
96
+ };
97
+ client: {
98
+ authorization?: {
99
+ code?: string;
100
+ state?: string;
101
+ };
102
+ status: 'success';
103
+ } | null;
104
+ error: null;
105
+ httpStatus: number;
106
+ server: {
107
+ _links?: Links;
108
+ eventName?: string;
109
+ id?: string;
110
+ interactionId?: string;
111
+ interactionToken?: string;
112
+ href?: string;
113
+ session?: string;
114
+ status: 'success';
115
+ };
116
+ status: 'success';
117
+ }
118
+ //# sourceMappingURL=node.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.types.d.ts","sourceRoot":"","sources":["../../../src/lib/node.types.ts"],"names":[],"mappings":"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"}