@forgerock/davinci-client 1.0.0 → 1.1.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 (142) hide show
  1. package/LICENSE +21 -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.map +1 -0
  6. package/dist/src/lib/authorize.utils.js +47 -0
  7. package/dist/src/lib/authorize.utils.js.map +1 -0
  8. package/dist/src/lib/client.store.d.ts +351 -0
  9. package/dist/src/lib/client.store.d.ts.map +1 -0
  10. package/dist/src/lib/client.store.js +295 -0
  11. package/dist/src/lib/client.store.js.map +1 -0
  12. package/dist/src/lib/client.store.utils.d.ts +61 -0
  13. package/dist/src/lib/client.store.utils.d.ts.map +1 -0
  14. package/dist/src/lib/client.store.utils.js +35 -0
  15. package/dist/src/lib/client.store.utils.js.map +1 -0
  16. package/dist/src/lib/client.types.d.ts +17 -0
  17. package/dist/src/lib/client.types.d.ts.map +1 -0
  18. package/dist/src/lib/client.types.js +2 -0
  19. package/dist/src/lib/client.types.js.map +1 -0
  20. package/dist/src/lib/collector.types.d.ts +255 -0
  21. package/dist/src/lib/collector.types.d.ts.map +1 -0
  22. package/dist/src/lib/collector.types.js +11 -0
  23. package/dist/src/lib/collector.types.js.map +1 -0
  24. package/dist/src/lib/collector.utils.d.ts +100 -0
  25. package/dist/src/lib/collector.utils.d.ts.map +1 -0
  26. package/dist/src/lib/collector.utils.js +349 -0
  27. package/dist/src/lib/collector.utils.js.map +1 -0
  28. package/dist/{lib → src/lib}/config.slice.d.ts +12 -5
  29. package/dist/src/lib/config.slice.d.ts.map +1 -0
  30. package/dist/src/lib/config.slice.js +59 -0
  31. package/dist/src/lib/config.slice.js.map +1 -0
  32. package/dist/src/lib/config.types.d.ts +12 -0
  33. package/dist/src/lib/config.types.d.ts.map +1 -0
  34. package/dist/src/lib/config.types.js +2 -0
  35. package/dist/src/lib/config.types.js.map +1 -0
  36. package/dist/src/lib/davinci.api.d.ts +29 -0
  37. package/dist/src/lib/davinci.api.d.ts.map +1 -0
  38. package/dist/src/lib/davinci.api.js +333 -0
  39. package/dist/src/lib/davinci.api.js.map +1 -0
  40. package/dist/{lib → src/lib}/davinci.types.d.ts +62 -8
  41. package/dist/src/lib/davinci.types.d.ts.map +1 -0
  42. package/dist/src/lib/davinci.types.js +11 -0
  43. package/dist/src/lib/davinci.types.js.map +1 -0
  44. package/dist/{lib → src/lib}/davinci.utils.d.ts +10 -3
  45. package/dist/src/lib/davinci.utils.d.ts.map +1 -0
  46. package/dist/src/lib/davinci.utils.js +185 -0
  47. package/dist/src/lib/davinci.utils.js.map +1 -0
  48. package/dist/src/lib/effects/request.effect.mock.d.ts +4 -0
  49. package/dist/src/lib/effects/request.effect.mock.d.ts.map +1 -0
  50. package/dist/src/lib/effects/request.effect.mock.js +106 -0
  51. package/dist/src/lib/effects/request.effect.mock.js.map +1 -0
  52. package/dist/src/lib/effects/request.effect.types.d.ts +20 -0
  53. package/dist/src/lib/effects/request.effect.types.d.ts.map +1 -0
  54. package/dist/src/lib/effects/request.effect.types.js +2 -0
  55. package/dist/src/lib/effects/request.effect.types.js.map +1 -0
  56. package/dist/src/lib/effects/request.effect.unions.d.ts +12 -0
  57. package/dist/src/lib/effects/request.effect.unions.d.ts.map +1 -0
  58. package/dist/src/lib/effects/request.effect.unions.js +16 -0
  59. package/dist/src/lib/effects/request.effect.unions.js.map +1 -0
  60. package/dist/src/lib/effects/request.effect.utils.d.ts +27 -0
  61. package/dist/src/lib/effects/request.effect.utils.d.ts.map +1 -0
  62. package/dist/src/lib/effects/request.effect.utils.js +57 -0
  63. package/dist/src/lib/effects/request.effect.utils.js.map +1 -0
  64. package/dist/src/lib/error.types.d.ts.map +1 -0
  65. package/dist/src/lib/error.types.js +2 -0
  66. package/dist/src/lib/error.types.js.map +1 -0
  67. package/dist/src/lib/index.d.ts.map +1 -0
  68. package/dist/src/lib/index.js +9 -0
  69. package/dist/src/lib/index.js.map +1 -0
  70. package/dist/src/lib/node.reducer.d.ts +27 -0
  71. package/dist/src/lib/node.reducer.d.ts.map +1 -0
  72. package/dist/src/lib/node.reducer.js +143 -0
  73. package/dist/src/lib/node.reducer.js.map +1 -0
  74. package/dist/{lib → src/lib}/node.slice.d.ts +34 -23
  75. package/dist/src/lib/node.slice.d.ts.map +1 -0
  76. package/dist/src/lib/node.slice.js +231 -0
  77. package/dist/src/lib/node.slice.js.map +1 -0
  78. package/dist/{lib → src/lib}/node.types.d.ts +16 -7
  79. package/dist/src/lib/node.types.d.ts.map +1 -0
  80. package/dist/src/lib/node.types.js +2 -0
  81. package/dist/src/lib/node.types.js.map +1 -0
  82. package/dist/src/lib/node.utils.d.ts +4 -0
  83. package/dist/src/lib/node.utils.d.ts.map +1 -0
  84. package/dist/src/lib/node.utils.js +32 -0
  85. package/dist/src/lib/node.utils.js.map +1 -0
  86. package/dist/src/lib/wellknown.api.d.ts +5 -0
  87. package/dist/src/lib/wellknown.api.d.ts.map +1 -0
  88. package/dist/src/lib/wellknown.api.js +22 -0
  89. package/dist/src/lib/wellknown.api.js.map +1 -0
  90. package/dist/src/lib/wellknown.types.d.ts.map +1 -0
  91. package/dist/src/lib/wellknown.types.js +2 -0
  92. package/dist/src/lib/wellknown.types.js.map +1 -0
  93. package/dist/{types.d.ts → src/types.d.ts} +9 -1
  94. package/dist/src/types.d.ts.map +1 -0
  95. package/dist/src/types.js +8 -0
  96. package/dist/src/types.js.map +1 -0
  97. package/package.json +49 -20
  98. package/dist/index.d.ts.map +0 -1
  99. package/dist/index.js +0 -4
  100. package/dist/lib/authorize.utils.d.ts.map +0 -1
  101. package/dist/lib/authorize.utils.js +0 -23
  102. package/dist/lib/client.store.d.ts +0 -149
  103. package/dist/lib/client.store.d.ts.map +0 -1
  104. package/dist/lib/client.store.js +0 -131
  105. package/dist/lib/client.store.utils.d.ts +0 -46
  106. package/dist/lib/client.store.utils.d.ts.map +0 -1
  107. package/dist/lib/client.store.utils.js +0 -19
  108. package/dist/lib/client.types.d.ts +0 -9
  109. package/dist/lib/client.types.d.ts.map +0 -1
  110. package/dist/lib/collector.types.d.ts +0 -78
  111. package/dist/lib/collector.types.d.ts.map +0 -1
  112. package/dist/lib/collector.utils.d.ts +0 -54
  113. package/dist/lib/collector.utils.d.ts.map +0 -1
  114. package/dist/lib/collector.utils.js +0 -88
  115. package/dist/lib/config.slice.d.ts.map +0 -1
  116. package/dist/lib/config.slice.js +0 -40
  117. package/dist/lib/config.types.d.ts +0 -9
  118. package/dist/lib/config.types.d.ts.map +0 -1
  119. package/dist/lib/davinci.api.d.ts +0 -20
  120. package/dist/lib/davinci.api.d.ts.map +0 -1
  121. package/dist/lib/davinci.api.js +0 -172
  122. package/dist/lib/davinci.types.d.ts.map +0 -1
  123. package/dist/lib/davinci.utils.d.ts.map +0 -1
  124. package/dist/lib/davinci.utils.js +0 -102
  125. package/dist/lib/error.types.d.ts.map +0 -1
  126. package/dist/lib/index.d.ts.map +0 -1
  127. package/dist/lib/node.reducer.d.ts +0 -22
  128. package/dist/lib/node.reducer.d.ts.map +0 -1
  129. package/dist/lib/node.reducer.js +0 -31
  130. package/dist/lib/node.slice.d.ts.map +0 -1
  131. package/dist/lib/node.slice.js +0 -160
  132. package/dist/lib/node.types.d.ts.map +0 -1
  133. package/dist/lib/wellknown.api.d.ts +0 -5
  134. package/dist/lib/wellknown.api.d.ts.map +0 -1
  135. package/dist/lib/wellknown.api.js +0 -15
  136. package/dist/lib/wellknown.types.d.ts.map +0 -1
  137. package/dist/types.d.ts.map +0 -1
  138. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  139. /package/dist/{lib → src/lib}/authorize.utils.d.ts +0 -0
  140. /package/dist/{lib → src/lib}/error.types.d.ts +0 -0
  141. /package/dist/{lib → src/lib}/index.d.ts +0 -0
  142. /package/dist/{lib → src/lib}/wellknown.types.d.ts +0 -0
@@ -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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"}
@@ -1,8 +1,14 @@
1
- import { updateCollectorValues } from './node.reducer';
2
- import { PayloadAction } from '@reduxjs/toolkit';
3
- import { SubmitCollector } from './collector.types';
4
- import { DavinciErrorResponse, DaVinciFailureResponse, DaVinciNextResponse, DaVinciSuccessResponse } from './davinci.types';
5
- import { ContinueNode, SuccessNode, ErrorNode, StartNode, FailureNode } from './node.types';
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';
6
12
  /**
7
13
  * @const initialNodeState - Initial state for the node slice
8
14
  */
@@ -21,65 +27,69 @@ export declare const initialNodeState: {
21
27
  * @const nodeSlice - Slice for handling the node state
22
28
  * @see https://redux-toolkit.js.org/api/createSlice
23
29
  */
24
- export declare const nodeSlice: import('@reduxjs/toolkit').Slice<ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode, {
30
+ export declare const nodeSlice: import("@reduxjs/toolkit").Slice<ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode, {
25
31
  /**
26
32
  * @method error - Method for creating an error node
27
33
  * @param {Object} state - The current state of the slice
28
34
  * @param {PayloadAction<DaVinciErrorCacheEntry<DavinciErrorResponse>>} action - The action to be dispatched
29
35
  * @returns {ErrorNode} - The error node
30
36
  */
31
- error(state: import('immer').WritableDraft<ContinueNode> | import('immer').WritableDraft<ErrorNode> | import('immer').WritableDraft<FailureNode> | import('immer').WritableDraft<StartNode> | import('immer').WritableDraft<SuccessNode>, action: PayloadAction<{
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<{
32
38
  data: DavinciErrorResponse;
33
39
  requestId: string;
34
40
  httpStatus: number;
35
- }>): import('immer').WritableDraft<ErrorNode>;
41
+ }>): import("immer").WritableDraft<ErrorNode>;
36
42
  /**
37
43
  * @method failure - Method for creating an error node
38
44
  * @param {Object} state - The current state of the slice
39
45
  * @param {PayloadAction<DaVinciFailureResponse>} action - The action to be dispatched
40
46
  * @returns {FailureNode} - The error node
41
47
  */
42
- failure(state: import('immer').WritableDraft<ContinueNode> | import('immer').WritableDraft<ErrorNode> | import('immer').WritableDraft<FailureNode> | import('immer').WritableDraft<StartNode> | import('immer').WritableDraft<SuccessNode>, action: PayloadAction<{
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<{
43
49
  data: DaVinciFailureResponse | unknown;
44
50
  requestId: string;
45
51
  httpStatus: number;
46
- }>): import('immer').WritableDraft<FailureNode>;
52
+ }>): import("immer").WritableDraft<FailureNode>;
47
53
  /**
48
54
  * @method next - Method for creating a next node
49
55
  * @param {Object} state - The current state of the slice
50
56
  * @param {PayloadAction<DaVinciNextResponse>} action - The action to be dispatched
51
57
  * @returns {ContinueNode} - The next node
52
58
  */
53
- next(state: import('immer').WritableDraft<ContinueNode> | import('immer').WritableDraft<ErrorNode> | import('immer').WritableDraft<FailureNode> | import('immer').WritableDraft<StartNode> | import('immer').WritableDraft<SuccessNode>, action: PayloadAction<{
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<{
54
60
  data: DaVinciNextResponse;
55
61
  requestId: string;
56
62
  httpStatus: number;
57
- }>): import('immer').WritableDraft<ContinueNode>;
63
+ }>): import("immer").WritableDraft<ContinueNode>;
58
64
  /**
59
65
  * @method start - Method for creating a start node
60
66
  * @param {Object} state - The current state of the slice
61
67
  * @returns {StartNode} - The start node
62
68
  */
63
- success(state: import('immer').WritableDraft<ContinueNode> | import('immer').WritableDraft<ErrorNode> | import('immer').WritableDraft<FailureNode> | import('immer').WritableDraft<StartNode> | import('immer').WritableDraft<SuccessNode>, action: PayloadAction<{
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<{
64
70
  data: DaVinciSuccessResponse;
65
71
  requestId: string;
66
72
  httpStatus: number;
67
- }>): import('immer').WritableDraft<SuccessNode>;
73
+ }>): import("immer").WritableDraft<SuccessNode>;
68
74
  /**
69
75
  * @method update - Method for updating collector values with the node
70
76
  * @param {Object} state - The current state of the slice
71
77
  * @param {PayloadAction<unknown>} action - The action to be dispatched
72
78
  * @returns {ContinueNode} - The next node
73
79
  */
74
- 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>;
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>;
75
81
  }, "node", "node", {
76
82
  selectClient: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode) => {
77
83
  action: string;
78
- collectors: import('./node.types').Collectors[];
84
+ collectors: import("./node.types.js").Collectors[];
79
85
  description?: string;
80
86
  name?: string;
81
87
  status: "continue";
82
88
  } | {
89
+ action: string;
90
+ collectors: import("./node.types.js").Collectors[];
91
+ description?: string;
92
+ name?: string;
83
93
  status: "error";
84
94
  } | {
85
95
  status: "failure";
@@ -92,11 +102,12 @@ export declare const nodeSlice: import('@reduxjs/toolkit').Slice<ContinueNode |
92
102
  };
93
103
  status: "success";
94
104
  } | null;
95
- selectCollectors: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode) => import('./node.types').Collectors[];
96
- selectCollector: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode, id: string) => import('./collector.types').ActionCollectorNoUrl<"ActionCollector"> | import('./collector.types').FlowCollector | import('./collector.types').PasswordCollector | import('./collector.types').TextCollector | import('./collector.types').SocialLoginCollector | SubmitCollector | import('./collector.types').SingleValueCollectorNoValue<"SingleValueCollector"> | undefined;
97
- selectError: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode) => import('./node.types').DaVinciError | 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[];
98
109
  selectServer: (state: ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode) => {
99
- _links?: import('./davinci.types').Links;
110
+ _links?: import("./davinci.types.js").Links;
100
111
  id?: string;
101
112
  interactionId?: string;
102
113
  interactionToken?: string;
@@ -104,14 +115,14 @@ export declare const nodeSlice: import('@reduxjs/toolkit').Slice<ContinueNode |
104
115
  eventName?: string;
105
116
  status: "continue";
106
117
  } | {
107
- _links?: import('./davinci.types').Links;
118
+ _links?: import("./davinci.types.js").Links;
108
119
  eventName?: string;
109
120
  id?: string;
110
121
  interactionId?: string;
111
122
  interactionToken?: string;
112
123
  status: "error";
113
124
  } | {
114
- _links?: import('./davinci.types').Links;
125
+ _links?: import("./davinci.types.js").Links;
115
126
  eventName?: string;
116
127
  href?: string;
117
128
  id?: string;
@@ -121,7 +132,7 @@ export declare const nodeSlice: import('@reduxjs/toolkit').Slice<ContinueNode |
121
132
  } | {
122
133
  status: "start";
123
134
  } | {
124
- _links?: import('./davinci.types').Links;
135
+ _links?: import("./davinci.types.js").Links;
125
136
  eventName?: string;
126
137
  id?: string;
127
138
  interactionId?: string;
@@ -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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"}
@@ -1,12 +1,12 @@
1
- import { FlowCollector, PasswordCollector, TextCollector, SocialLoginCollector, SubmitCollector, ActionCollector, SingleValueCollector } from './collector.types.js';
2
- import { ErrorDetail, Links } from './davinci.types.js';
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
3
  import { GenericError } from './error.types.js';
4
- export interface DaVinciError extends GenericError {
5
- details?: ErrorDetail[];
6
- internalHttpStatus?: number;
7
- status: 'error' | 'failure' | 'unknown';
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;
8
9
  }
9
- export type Collectors = FlowCollector | PasswordCollector | TextCollector | SocialLoginCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'>;
10
10
  export interface ContinueNode {
11
11
  cache: {
12
12
  key: string;
@@ -31,11 +31,20 @@ export interface ContinueNode {
31
31
  };
32
32
  status: 'continue';
33
33
  }
34
+ export interface DaVinciError extends GenericError {
35
+ collectors?: CollectorErrors[];
36
+ internalHttpStatus?: number;
37
+ status: 'error' | 'failure' | 'unknown';
38
+ }
34
39
  export interface ErrorNode {
35
40
  cache: {
36
41
  key: string;
37
42
  };
38
43
  client: {
44
+ action: string;
45
+ collectors: Collectors[];
46
+ description?: string;
47
+ name?: string;
39
48
  status: 'error';
40
49
  };
41
50
  error: DaVinciError;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.types.d.ts","sourceRoot":"","sources":["../../../src/lib/node.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=node.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.types.js","sourceRoot":"","sources":["../../../src/lib/node.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { DavinciErrorResponse } from './davinci.types';
2
+ import { CollectorErrors } from './node.types';
3
+ export declare function getCollectorErrors(error: DavinciErrorResponse): CollectorErrors[];
4
+ //# sourceMappingURL=node.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.utils.d.ts","sourceRoot":"","sources":["../../../src/lib/node.utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,qBA+B7D"}