@forgerock/davinci-client 1.0.0 → 1.2.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 (124) 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/client.store.d.ts +352 -0
  6. package/dist/src/lib/client.store.d.ts.map +1 -0
  7. package/dist/src/lib/client.store.js +300 -0
  8. package/dist/src/lib/client.store.js.map +1 -0
  9. package/dist/src/lib/client.store.utils.d.ts +74 -0
  10. package/dist/src/lib/client.store.utils.d.ts.map +1 -0
  11. package/dist/src/lib/client.store.utils.js +48 -0
  12. package/dist/src/lib/client.store.utils.js.map +1 -0
  13. package/dist/src/lib/client.types.d.ts +19 -0
  14. package/dist/src/lib/client.types.d.ts.map +1 -0
  15. package/dist/src/lib/client.types.js +2 -0
  16. package/dist/src/lib/client.types.js.map +1 -0
  17. package/dist/src/lib/collector.types.d.ts +360 -0
  18. package/dist/src/lib/collector.types.d.ts.map +1 -0
  19. package/dist/src/lib/collector.types.js +8 -0
  20. package/dist/src/lib/collector.types.js.map +1 -0
  21. package/dist/src/lib/collector.utils.d.ts +117 -0
  22. package/dist/src/lib/collector.utils.d.ts.map +1 -0
  23. package/dist/src/lib/collector.utils.js +463 -0
  24. package/dist/src/lib/collector.utils.js.map +1 -0
  25. package/dist/{lib → src/lib}/config.slice.d.ts +12 -5
  26. package/dist/src/lib/config.slice.d.ts.map +1 -0
  27. package/dist/src/lib/config.slice.js +59 -0
  28. package/dist/src/lib/config.slice.js.map +1 -0
  29. package/dist/src/lib/config.types.d.ts +12 -0
  30. package/dist/src/lib/config.types.d.ts.map +1 -0
  31. package/dist/src/lib/config.types.js +2 -0
  32. package/dist/src/lib/config.types.js.map +1 -0
  33. package/dist/src/lib/davinci.api.d.ts +31 -0
  34. package/dist/src/lib/davinci.api.d.ts.map +1 -0
  35. package/dist/src/lib/davinci.api.js +346 -0
  36. package/dist/src/lib/davinci.api.js.map +1 -0
  37. package/dist/{lib → src/lib}/davinci.types.d.ts +101 -8
  38. package/dist/src/lib/davinci.types.d.ts.map +1 -0
  39. package/dist/src/lib/davinci.types.js +11 -0
  40. package/dist/src/lib/davinci.types.js.map +1 -0
  41. package/dist/{lib → src/lib}/davinci.utils.d.ts +10 -6
  42. package/dist/src/lib/davinci.utils.d.ts.map +1 -0
  43. package/dist/src/lib/davinci.utils.js +168 -0
  44. package/dist/src/lib/davinci.utils.js.map +1 -0
  45. package/dist/src/lib/error.types.d.ts.map +1 -0
  46. package/dist/src/lib/error.types.js +2 -0
  47. package/dist/src/lib/error.types.js.map +1 -0
  48. package/dist/src/lib/index.d.ts.map +1 -0
  49. package/dist/src/lib/index.js +9 -0
  50. package/dist/src/lib/index.js.map +1 -0
  51. package/dist/src/lib/node.reducer.d.ts +27 -0
  52. package/dist/src/lib/node.reducer.d.ts.map +1 -0
  53. package/dist/src/lib/node.reducer.js +193 -0
  54. package/dist/src/lib/node.reducer.js.map +1 -0
  55. package/dist/{lib → src/lib}/node.slice.d.ts +55 -26
  56. package/dist/src/lib/node.slice.d.ts.map +1 -0
  57. package/dist/src/lib/node.slice.js +261 -0
  58. package/dist/src/lib/node.slice.js.map +1 -0
  59. package/dist/{lib → src/lib}/node.types.d.ts +17 -8
  60. package/dist/src/lib/node.types.d.ts.map +1 -0
  61. package/dist/src/lib/node.types.js +2 -0
  62. package/dist/src/lib/node.types.js.map +1 -0
  63. package/dist/src/lib/node.utils.d.ts +4 -0
  64. package/dist/src/lib/node.utils.d.ts.map +1 -0
  65. package/dist/src/lib/node.utils.js +32 -0
  66. package/dist/src/lib/node.utils.js.map +1 -0
  67. package/dist/src/lib/wellknown.api.d.ts +5 -0
  68. package/dist/src/lib/wellknown.api.d.ts.map +1 -0
  69. package/dist/src/lib/wellknown.api.js +22 -0
  70. package/dist/src/lib/wellknown.api.js.map +1 -0
  71. package/dist/src/lib/wellknown.types.d.ts.map +1 -0
  72. package/dist/src/lib/wellknown.types.js +2 -0
  73. package/dist/src/lib/wellknown.types.js.map +1 -0
  74. package/dist/src/types.d.ts +40 -0
  75. package/dist/src/types.d.ts.map +1 -0
  76. package/dist/src/types.js +7 -0
  77. package/dist/src/types.js.map +1 -0
  78. package/package.json +39 -20
  79. package/dist/index.d.ts.map +0 -1
  80. package/dist/index.js +0 -4
  81. package/dist/lib/authorize.utils.d.ts +0 -22
  82. package/dist/lib/authorize.utils.d.ts.map +0 -1
  83. package/dist/lib/authorize.utils.js +0 -23
  84. package/dist/lib/client.store.d.ts +0 -149
  85. package/dist/lib/client.store.d.ts.map +0 -1
  86. package/dist/lib/client.store.js +0 -131
  87. package/dist/lib/client.store.utils.d.ts +0 -46
  88. package/dist/lib/client.store.utils.d.ts.map +0 -1
  89. package/dist/lib/client.store.utils.js +0 -19
  90. package/dist/lib/client.types.d.ts +0 -9
  91. package/dist/lib/client.types.d.ts.map +0 -1
  92. package/dist/lib/collector.types.d.ts +0 -78
  93. package/dist/lib/collector.types.d.ts.map +0 -1
  94. package/dist/lib/collector.utils.d.ts +0 -54
  95. package/dist/lib/collector.utils.d.ts.map +0 -1
  96. package/dist/lib/collector.utils.js +0 -88
  97. package/dist/lib/config.slice.d.ts.map +0 -1
  98. package/dist/lib/config.slice.js +0 -40
  99. package/dist/lib/config.types.d.ts +0 -9
  100. package/dist/lib/config.types.d.ts.map +0 -1
  101. package/dist/lib/davinci.api.d.ts +0 -20
  102. package/dist/lib/davinci.api.d.ts.map +0 -1
  103. package/dist/lib/davinci.api.js +0 -172
  104. package/dist/lib/davinci.types.d.ts.map +0 -1
  105. package/dist/lib/davinci.utils.d.ts.map +0 -1
  106. package/dist/lib/davinci.utils.js +0 -102
  107. package/dist/lib/error.types.d.ts.map +0 -1
  108. package/dist/lib/index.d.ts.map +0 -1
  109. package/dist/lib/node.reducer.d.ts +0 -22
  110. package/dist/lib/node.reducer.d.ts.map +0 -1
  111. package/dist/lib/node.reducer.js +0 -31
  112. package/dist/lib/node.slice.d.ts.map +0 -1
  113. package/dist/lib/node.slice.js +0 -160
  114. package/dist/lib/node.types.d.ts.map +0 -1
  115. package/dist/lib/wellknown.api.d.ts +0 -5
  116. package/dist/lib/wellknown.api.d.ts.map +0 -1
  117. package/dist/lib/wellknown.api.js +0 -15
  118. package/dist/lib/wellknown.types.d.ts.map +0 -1
  119. package/dist/types.d.ts +0 -23
  120. package/dist/types.d.ts.map +0 -1
  121. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  122. /package/dist/{lib → src/lib}/error.types.d.ts +0 -0
  123. /package/dist/{lib → src/lib}/index.d.ts +0 -0
  124. /package/dist/{lib → src/lib}/wellknown.types.d.ts +0 -0
@@ -0,0 +1,300 @@
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 RTK slices and api
9
+ */
10
+ import { logger as loggerFn } from '@forgerock/sdk-logger';
11
+ import { createStorage } from '@forgerock/storage';
12
+ import { createClientStore, handleUpdateValidateError } from './client.store.utils.js';
13
+ import { nodeSlice } from './node.slice.js';
14
+ import { davinciApi } from './davinci.api.js';
15
+ import { configSlice } from './config.slice.js';
16
+ import { wellknownApi } from './wellknown.api.js';
17
+ import { returnValidator } from './collector.utils.js';
18
+ /**
19
+ * Create a client function that returns a set of methods
20
+ * to interact with and normalize the DaVinci API.
21
+ *
22
+ * @function davinciClient - returns an "observable" client for DaVinci flows
23
+ * @param {ConfigurationOptions} options - the configuration options for the client
24
+ * @returns {Observable} - an observable client for DaVinci flows
25
+ */
26
+ export async function davinci({ config, requestMiddleware, logger, }) {
27
+ const log = loggerFn({ level: logger?.level || 'error', custom: logger?.custom });
28
+ const store = createClientStore({ requestMiddleware, logger: log });
29
+ const serverInfo = createStorage({ storeType: 'localStorage' }, 'serverInfo');
30
+ if (!config.serverConfig.wellknown) {
31
+ const error = new Error('`wellknown` property is a required as part of the `config.serverConfig`');
32
+ log.error(error.message);
33
+ throw error;
34
+ }
35
+ if (!config.clientId) {
36
+ const error = new Error('`clientId` property is a required as part of the `config`');
37
+ log.error(error.message);
38
+ throw error;
39
+ }
40
+ const { data: openIdResponse } = await store.dispatch(wellknownApi.endpoints.wellknown.initiate(config.serverConfig.wellknown));
41
+ if (!openIdResponse) {
42
+ const error = new Error('error fetching `wellknown` response for OpenId Configuration');
43
+ log.error(error.message);
44
+ throw error;
45
+ }
46
+ store.dispatch(configSlice.actions.set({ ...config, wellknownResponse: openIdResponse }));
47
+ return {
48
+ // Pass store methods to the client
49
+ subscribe: store.subscribe,
50
+ /**
51
+ * Social Login Handler
52
+ * Use this as part of an event when clicking on
53
+ * a social login button. Pass in the collector responsible
54
+ * for the social login being started.
55
+ *
56
+ * This method will save the `continueUrl`
57
+ * and then the app developer can use the url
58
+ * from the collector to redirect their application
59
+ *
60
+ * Can return an error when no continue url is found
61
+ * or no authenticate url is found in the collectors
62
+ *
63
+ * @method: externalIdp
64
+ * @param collector IdpCollector
65
+ * @returns {function}
66
+ */
67
+ externalIdp: () => {
68
+ const rootState = store.getState();
69
+ const serverSlice = nodeSlice.selectors.selectServer(rootState);
70
+ if (serverSlice && serverSlice.status === 'continue') {
71
+ return async () => {
72
+ await serverInfo.set(serverSlice);
73
+ };
74
+ }
75
+ return async () => {
76
+ return {
77
+ error: {
78
+ message: 'Not in a continue node state, must be in a continue node to use external idp method',
79
+ type: 'state_error',
80
+ },
81
+ };
82
+ };
83
+ },
84
+ /**
85
+ * @method flow - Method for initiating a new flow, different than current flow
86
+ * @param {DaVinciAction} action - the action to initiate the flow
87
+ * @returns {function} - an async function to call the flow
88
+ */
89
+ flow: (action) => {
90
+ if (!action.action) {
91
+ log.error('Missing `argument.action`');
92
+ return async function () {
93
+ return {
94
+ error: { message: 'Missing argument.action', type: 'argument_error' },
95
+ type: 'internal_error',
96
+ };
97
+ };
98
+ }
99
+ return async function () {
100
+ await store.dispatch(davinciApi.endpoints.flow.initiate(action));
101
+ const node = nodeSlice.selectSlice(store.getState());
102
+ return node;
103
+ };
104
+ },
105
+ /**
106
+ * @method next - Method for initiating the next node in the current flow
107
+ * @param {DaVinciRequest} args - the arguments to pass to the next
108
+ * @returns {Promise} - a promise that resolves to the next node
109
+ */
110
+ next: async (args) => {
111
+ const nodeCheck = nodeSlice.selectSlice(store.getState());
112
+ if (nodeCheck.status === 'start') {
113
+ return {
114
+ ...nodeCheck,
115
+ error: {
116
+ status: 'error',
117
+ type: 'state_error',
118
+ message: 'Please use `start` before calling `next`',
119
+ },
120
+ };
121
+ }
122
+ await store.dispatch(davinciApi.endpoints.next.initiate(args));
123
+ const node = nodeSlice.selectSlice(store.getState());
124
+ return node;
125
+ },
126
+ /**
127
+ * @method: resume - Resume a social login flow when returned to application
128
+ * @returns unknown
129
+ */
130
+ resume: async ({ continueToken, }) => {
131
+ try {
132
+ const storedServerInfo = (await serverInfo.get());
133
+ await store.dispatch(davinciApi.endpoints.resume.initiate({ continueToken, serverInfo: storedServerInfo }));
134
+ await serverInfo.remove();
135
+ const node = nodeSlice.selectSlice(store.getState());
136
+ return node;
137
+ }
138
+ catch {
139
+ // logger.error('No url found in collector, social login needs a url in the collector');
140
+ return {
141
+ error: {
142
+ message: 'No url found in storage, social login needs a continue url which is saved in local storage. You may have cleared your browser data',
143
+ type: 'internal_error',
144
+ },
145
+ type: 'internal_error',
146
+ };
147
+ }
148
+ },
149
+ /**
150
+ * @method start - Method for initiating a DaVinci flow
151
+ * @returns {Promise} - a promise that initiates a DaVinci flow and returns a node
152
+ */
153
+ start: async (options) => {
154
+ await store.dispatch(davinciApi.endpoints.start.initiate(options));
155
+ return store.getState().node;
156
+ },
157
+ /**
158
+ * @method update - Exclusive method for updating the current node with user provided values
159
+ * @param {SingleValueCollector} collector - the collector to update
160
+ * @returns {function} - a function to call for updating collector value
161
+ */
162
+ update: (collector) => {
163
+ if (!collector.id) {
164
+ return handleUpdateValidateError('Argument for `collector` has no ID', 'argument_error', log.error);
165
+ }
166
+ const { id } = collector;
167
+ const { error, state: collectorToUpdate } = nodeSlice.selectors.selectCollector(store.getState(), id);
168
+ if (error) {
169
+ return handleUpdateValidateError(error.message, 'state_error', log.error);
170
+ }
171
+ if (!collectorToUpdate) {
172
+ return handleUpdateValidateError('Collector not found', 'state_error', log.error);
173
+ }
174
+ if (collectorToUpdate.category !== 'MultiValueCollector' &&
175
+ collectorToUpdate.category !== 'SingleValueCollector' &&
176
+ collectorToUpdate.category !== 'ValidatedSingleValueCollector' &&
177
+ collectorToUpdate.category !== 'ObjectValueCollector') {
178
+ return handleUpdateValidateError('Collector is not a MultiValueCollector, SingleValueCollector or ValidatedSingleValueCollector and cannot be updated', 'state_error', log.error);
179
+ }
180
+ return function (value, index) {
181
+ try {
182
+ store.dispatch(nodeSlice.actions.update({ id, value, index }));
183
+ return null;
184
+ }
185
+ catch (err) {
186
+ const error = err;
187
+ return {
188
+ type: 'internal_error',
189
+ error: { message: error.message, type: 'internal_error' },
190
+ };
191
+ }
192
+ };
193
+ },
194
+ /**
195
+ * @method validate - Method for validating the value against validation rules
196
+ * @param {SingleValueCollector} collector - the collector to validate
197
+ * @returns {function} - a function to call for validating collector value
198
+ * @throws {Error} - if the collector is not a SingleValueCollector
199
+ */
200
+ validate: (collector) => {
201
+ if (!collector.id) {
202
+ return handleUpdateValidateError('Argument for `collector` has no ID', 'argument_error', log.error);
203
+ }
204
+ const { id } = collector;
205
+ const { error, state: collectorToUpdate } = nodeSlice.selectors.selectCollector(store.getState(), id);
206
+ if (error) {
207
+ return handleUpdateValidateError(error.message, 'state_error', log.error);
208
+ }
209
+ if (!collectorToUpdate) {
210
+ return handleUpdateValidateError('Collector not found', 'state_error', log.error);
211
+ }
212
+ if (collectorToUpdate.category !== 'ValidatedSingleValueCollector') {
213
+ return handleUpdateValidateError('Collector is not a SingleValueCollector and cannot be validated', 'state_error', log.error);
214
+ }
215
+ if (!('validation' in collectorToUpdate.input)) {
216
+ return handleUpdateValidateError('Collector has no validation rules', 'state_error', log.error);
217
+ }
218
+ return returnValidator(collectorToUpdate);
219
+ },
220
+ /**
221
+ * @method client - Selector to get the node.client from state
222
+ * @returns {Node.client} - the client property from the current node
223
+ */
224
+ getClient: () => nodeSlice.selectors.selectClient(store.getState()),
225
+ /**
226
+ * @method collectors - Selector to get the collectors from state
227
+ * @returns {Collector[]} - The collectors from the current node in state
228
+ */
229
+ getCollectors: () => {
230
+ const state = store.getState();
231
+ const client = nodeSlice.selectors.selectClient(state);
232
+ // Let's check if the node has a client and collectors
233
+ if (client && 'collectors' in client) {
234
+ const { error, state: collectors } = nodeSlice.selectors.selectCollectors(state) || [];
235
+ if (error) {
236
+ log.error(error.message);
237
+ return [];
238
+ }
239
+ return collectors;
240
+ }
241
+ // Return an empty array if no client or collectors are found
242
+ return [];
243
+ },
244
+ getError: () => {
245
+ const state = store.getState();
246
+ return nodeSlice.selectors.selectError(state);
247
+ },
248
+ getErrorCollectors: () => {
249
+ const state = store.getState();
250
+ const { error, state: collectors } = nodeSlice.selectors.selectErrorCollectors(state);
251
+ if (error) {
252
+ log.error(error.message);
253
+ return [];
254
+ }
255
+ return collectors;
256
+ },
257
+ /**
258
+ * @method node - Selector to get the node from state
259
+ * @returns {Node} - the current node from state
260
+ */
261
+ getNode: () => {
262
+ return nodeSlice.selectSlice(store.getState());
263
+ },
264
+ /**
265
+ * @method server - Selector to get the node.server from state
266
+ * @returns {Node.server} - the server property from the current node
267
+ */
268
+ getServer: () => {
269
+ const state = store.getState();
270
+ return nodeSlice.selectors.selectServer(state);
271
+ },
272
+ /**
273
+ * Utilities to help query cached responses from server
274
+ */
275
+ cache: {
276
+ getLatestResponse: () => {
277
+ const node = nodeSlice.selectSlice(store.getState());
278
+ if (!node.cache?.key) {
279
+ log.error(`Cannot find current node's cache key or no current node`);
280
+ return { error: { message: 'Cannot find current node', type: 'state_error' } };
281
+ }
282
+ const flowItem = davinciApi.endpoints.flow.select(node.cache.key);
283
+ const nextItem = davinciApi.endpoints.next.select(node.cache.key);
284
+ const startItem = davinciApi.endpoints.start.select(node.cache.key);
285
+ return flowItem || nextItem || startItem;
286
+ },
287
+ getResponseWithId: (requestId) => {
288
+ if (!requestId) {
289
+ log.error('Please provide the cache key');
290
+ return { error: { message: 'Please provide the cache key', type: 'argument_error' } };
291
+ }
292
+ const flowItem = davinciApi.endpoints.flow.select(requestId);
293
+ const nextItem = davinciApi.endpoints.next.select(requestId);
294
+ const startItem = davinciApi.endpoints.start.select(requestId);
295
+ return flowItem || nextItem || startItem;
296
+ },
297
+ },
298
+ };
299
+ }
300
+ //# sourceMappingURL=client.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.store.js","sourceRoot":"","sources":["../../../src/lib/client.store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import type { ActionTypes, RequestMiddleware } from '@forgerock/sdk-request-middleware';
2
+ import type { logger as loggerFn } from '@forgerock/sdk-logger';
3
+ import { ErrorNode, ContinueNode, StartNode, SuccessNode } from '../types.js';
4
+ import { InternalErrorResponse } from './client.types.js';
5
+ export declare function createClientStore<ActionType extends ActionTypes>({ requestMiddleware, logger, }: {
6
+ requestMiddleware?: RequestMiddleware<ActionType, unknown>[];
7
+ logger?: ReturnType<typeof loggerFn>;
8
+ }): import("@reduxjs/toolkit").EnhancedStore<{
9
+ config: {
10
+ endpoints: import("./wellknown.types.js").Endpoints;
11
+ clientId: string;
12
+ redirectUri: string;
13
+ responseType: string;
14
+ scope: string;
15
+ };
16
+ node: import("./node.types.js").ContinueNode | import("./node.types.js").ErrorNode | import("./node.types.js").FailureNode | import("./node.types.js").StartNode | import("./node.types.js").SuccessNode;
17
+ davinci: import("@reduxjs/toolkit/query").CombinedState<{
18
+ flow: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, unknown, "davinci", any>;
19
+ next: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, unknown, "davinci", any>;
20
+ start: import("@reduxjs/toolkit/query").MutationDefinition<import("./davinci.types.js").StartOptions<import("./davinci.types.js").OutgoingQueryParams> | undefined, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
21
+ resume: import("@reduxjs/toolkit/query").QueryDefinition<{
22
+ serverInfo: import("./node.types.js").ContinueNode["server"];
23
+ continueToken: string;
24
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
25
+ }, never, "davinci">;
26
+ wellknown: import("@reduxjs/toolkit/query").CombinedState<{
27
+ wellknown: import("@reduxjs/toolkit/query").QueryDefinition<string, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, import("./wellknown.types.js").WellknownResponse, "wellknown", unknown>;
28
+ }, never, "wellknown">;
29
+ }, import("@reduxjs/toolkit").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("@reduxjs/toolkit").StoreEnhancer<{
30
+ dispatch: import("@reduxjs/toolkit").ThunkDispatch<{
31
+ config: {
32
+ endpoints: import("./wellknown.types.js").Endpoints;
33
+ clientId: string;
34
+ redirectUri: string;
35
+ responseType: string;
36
+ scope: string;
37
+ };
38
+ node: import("./node.types.js").ContinueNode | import("./node.types.js").ErrorNode | import("./node.types.js").FailureNode | import("./node.types.js").StartNode | import("./node.types.js").SuccessNode;
39
+ davinci: import("@reduxjs/toolkit/query").CombinedState<{
40
+ flow: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, unknown, "davinci", any>;
41
+ next: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, unknown, "davinci", any>;
42
+ start: import("@reduxjs/toolkit/query").MutationDefinition<import("./davinci.types.js").StartOptions<import("./davinci.types.js").OutgoingQueryParams> | undefined, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
43
+ resume: import("@reduxjs/toolkit/query").QueryDefinition<{
44
+ serverInfo: import("./node.types.js").ContinueNode["server"];
45
+ continueToken: string;
46
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
47
+ }, never, "davinci">;
48
+ wellknown: import("@reduxjs/toolkit/query").CombinedState<{
49
+ wellknown: import("@reduxjs/toolkit/query").QueryDefinition<string, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, import("./wellknown.types.js").WellknownResponse, "wellknown", unknown>;
50
+ }, never, "wellknown">;
51
+ }, {
52
+ /**
53
+ * This becomes the `api.extra` argument, and will be passed into the
54
+ * customer query wrapper for `baseQuery`
55
+ */
56
+ requestMiddleware: RequestMiddleware<ActionType, unknown>[] | undefined;
57
+ logger: {
58
+ changeLevel: (level: import("@forgerock/sdk-logger").LogLevel) => void;
59
+ error: (...args: import("@forgerock/sdk-logger").LogMessage[]) => void;
60
+ warn: (...args: import("@forgerock/sdk-logger").LogMessage[]) => void;
61
+ info: (...args: import("@forgerock/sdk-logger").LogMessage[]) => void;
62
+ debug: (...args: import("@forgerock/sdk-logger").LogMessage[]) => void;
63
+ } | undefined;
64
+ }, import("@reduxjs/toolkit").UnknownAction>;
65
+ }>, import("@reduxjs/toolkit").StoreEnhancer]>>;
66
+ export declare function handleUpdateValidateError(message: string, type: 'argument_error' | 'state_error', cb: (message: string) => void): () => InternalErrorResponse;
67
+ type ClientStore = typeof createClientStore;
68
+ export type RootState = ReturnType<ReturnType<ClientStore>['getState']>;
69
+ export interface RootStateWithNode<T extends ErrorNode | ContinueNode | StartNode | SuccessNode> extends RootState {
70
+ node: T;
71
+ }
72
+ export type AppDispatch = ReturnType<ReturnType<ClientStore>['dispatch']>;
73
+ export {};
74
+ //# sourceMappingURL=client.store.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.store.utils.d.ts","sourceRoot":"","sources":["../../../src/lib/client.store.utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACxF,OAAO,KAAK,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKhE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,wBAAgB,iBAAiB,CAAC,UAAU,SAAS,WAAW,EAAE,EAChE,iBAAiB,EACjB,MAAM,GACP,EAAE;IACD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;IAC7D,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;CACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAYW;;;WAGG;;;;oBAjCM,GAAG;mBAEZ,GAAG;mBAAwC,GAAG;oBAChD,GAAG;;;gDAuCZ;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GAAG,aAAa,EACtC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAC5B,MAAM,qBAAqB,CAW7B;AAED,KAAK,WAAW,GAAG,OAAO,iBAAiB,CAAC;AAE5C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAExE,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,CAC7F,SAAQ,SAAS;IACjB,IAAI,EAAE,CAAC,CAAC;CACT;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC"}
@@ -0,0 +1,48 @@
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
+ import { configureStore } from '@reduxjs/toolkit';
8
+ import { configSlice } from './config.slice.js';
9
+ import { nodeSlice } from './node.slice.js';
10
+ import { davinciApi } from './davinci.api.js';
11
+ import { wellknownApi } from './wellknown.api.js';
12
+ export function createClientStore({ requestMiddleware, logger, }) {
13
+ return configureStore({
14
+ reducer: {
15
+ config: configSlice.reducer,
16
+ node: nodeSlice.reducer,
17
+ [davinciApi.reducerPath]: davinciApi.reducer,
18
+ [wellknownApi.reducerPath]: wellknownApi.reducer,
19
+ },
20
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware({
21
+ thunk: {
22
+ extraArgument: {
23
+ /**
24
+ * This becomes the `api.extra` argument, and will be passed into the
25
+ * customer query wrapper for `baseQuery`
26
+ */
27
+ requestMiddleware,
28
+ logger,
29
+ },
30
+ },
31
+ })
32
+ .concat(davinciApi.middleware)
33
+ .concat(wellknownApi.middleware),
34
+ });
35
+ }
36
+ export function handleUpdateValidateError(message, type, cb) {
37
+ cb(message);
38
+ return function () {
39
+ return {
40
+ error: {
41
+ message: message,
42
+ type: type,
43
+ },
44
+ type: 'internal_error',
45
+ };
46
+ };
47
+ }
48
+ //# sourceMappingURL=client.store.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.store.utils.js","sourceRoot":"","sources":["../../../src/lib/client.store.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,MAAM,UAAU,iBAAiB,CAAiC,EAChE,iBAAiB,EACjB,MAAM,GAIP;IACC,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE;YACP,MAAM,EAAE,WAAW,CAAC,OAAO;YAC3B,IAAI,EAAE,SAAS,CAAC,OAAO;YACvB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO;YAC5C,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,OAAO;SACjD;QACD,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CACnC,oBAAoB,CAAC;YACnB,KAAK,EAAE;gBACL,aAAa,EAAE;oBACb;;;uBAGG;oBACH,iBAAiB;oBACjB,MAAM;iBACP;aACF;SACF,CAAC;aACC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;aAC7B,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,IAAsC,EACtC,EAA6B;IAE7B,EAAE,CAAC,OAAO,CAAC,CAAC;IACZ,OAAO;QACL,OAAO;YACL,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,IAAI;aACX;YACD,IAAI,EAAE,gBAAyB;SAChC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { PhoneNumberInputValue } from './collector.types.js';
2
+ import { GenericError } from './error.types.js';
3
+ import { ErrorNode, FailureNode, ContinueNode, StartNode, SuccessNode } from './node.types.js';
4
+ export type FlowNode = ContinueNode | ErrorNode | StartNode | SuccessNode | FailureNode;
5
+ export interface InternalErrorResponse {
6
+ error: GenericError;
7
+ type: 'internal_error';
8
+ }
9
+ export type InitFlow = () => Promise<FlowNode | InternalErrorResponse>;
10
+ export type Updater = (value: string | string[] | PhoneNumberInputValue, index?: number) => InternalErrorResponse | null;
11
+ export type Validator = (value: string) => string[] | {
12
+ error: {
13
+ message: string;
14
+ type: string;
15
+ };
16
+ type: string;
17
+ };
18
+ export type NodeStates = StartNode | ContinueNode | ErrorNode | SuccessNode | FailureNode;
19
+ //# sourceMappingURL=client.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../../src/lib/client.types.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE/F,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAExF,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,GAAG,qBAAqB,CAAC,CAAC;AAEvE,MAAM,MAAM,OAAO,GAAG,CACpB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,qBAAqB,EAChD,KAAK,CAAC,EAAE,MAAM,KACX,qBAAqB,GAAG,IAAI,CAAC;AAClC,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,KAClC,MAAM,EAAE,GACR;IACE,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.types.js","sourceRoot":"","sources":["../../../src/lib/client.types.ts"],"names":[],"mappings":""}