@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,463 @@
1
+ /**
2
+ * @function returnActionCollector - Creates an ActionCollector object based on the provided field and index.
3
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
4
+ * @param {number} idx - The index to be used in the id of the ActionCollector.
5
+ * @param {ActionCollectorTypes} [collectorType] - Optional type of the ActionCollector.
6
+ * @returns {ActionCollector} The constructed ActionCollector object.
7
+ */
8
+ export function returnActionCollector(field, idx, collectorType) {
9
+ let error = '';
10
+ if (!('label' in field)) {
11
+ error = `${error}Label is not found in the field object. `;
12
+ }
13
+ if (!('type' in field)) {
14
+ error = `${error}Type is not found in the field object. `;
15
+ }
16
+ if (collectorType === 'IdpCollector') {
17
+ let link;
18
+ if (!('links' in field)) {
19
+ error = `${error}Links property is not found in the field object. `;
20
+ link = null;
21
+ }
22
+ else {
23
+ link = field.links?.['authenticate']?.href || null;
24
+ }
25
+ return {
26
+ category: 'ActionCollector',
27
+ error: error || null,
28
+ type: collectorType,
29
+ id: `${field.key || field.type}-${idx}`,
30
+ name: field.key || field.type,
31
+ output: {
32
+ key: `${field.key || field.type}-${idx}`,
33
+ label: field.label,
34
+ type: field.type,
35
+ url: link,
36
+ },
37
+ };
38
+ }
39
+ else {
40
+ if (!('key' in field)) {
41
+ error = `${error}Key is not found in the field object. `;
42
+ }
43
+ return {
44
+ category: 'ActionCollector',
45
+ error: error || null,
46
+ type: collectorType || 'ActionCollector',
47
+ id: `${field.key}-${idx}`,
48
+ name: field.key,
49
+ output: {
50
+ key: field.key,
51
+ label: field.label,
52
+ type: field.type,
53
+ },
54
+ };
55
+ }
56
+ }
57
+ /**
58
+ * @function returnFlowCollector - Returns a flow collector object
59
+ * @param {DaVinciField} field - The field representing the flow button
60
+ * @param {number} idx - The index of the field in the form
61
+ * @returns {FlowCollector} - The flow collector object
62
+ */
63
+ export function returnFlowCollector(field, idx) {
64
+ return returnActionCollector(field, idx, 'FlowCollector');
65
+ }
66
+ /**
67
+ * @function returnIdpCollector - Returns a social login collector object
68
+ * @param {DaVinciField} field - The field representing the social login button
69
+ * @param {number} idx - The index of the field in the form
70
+ * @returns {SocialLoginCollector} - The social login collector object
71
+ */
72
+ export function returnIdpCollector(field, idx) {
73
+ return returnActionCollector(field, idx, 'IdpCollector');
74
+ }
75
+ /**
76
+ * @function returnSubmitCollector - Returns a submit collector object
77
+ * @param {DaVinciField} field - The field representing the submit button
78
+ * @param {number} idx - The index of the field in the form
79
+ * @returns {ActionCollector} - The submit collector object
80
+ */
81
+ export function returnSubmitCollector(field, idx) {
82
+ return returnActionCollector(field, idx, 'SubmitCollector');
83
+ }
84
+ /**
85
+ * @function returnSingleValueCollector - Creates a SingleValueCollector object based on the provided field, index, and optional collector type.
86
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
87
+ * @param {number} idx - The index to be used in the id of the SingleValueCollector.
88
+ * @param {SingleValueCollectorTypes} [collectorType] - Optional type of the SingleValueCollector.
89
+ * @returns {SingleValueCollector} The constructed SingleValueCollector object.
90
+ */
91
+ export function returnSingleValueCollector(field, idx, collectorType, data) {
92
+ let error = '';
93
+ if (!('key' in field)) {
94
+ error = `${error}Key is not found in the field object. `;
95
+ }
96
+ if (!('label' in field)) {
97
+ error = `${error}Label is not found in the field object. `;
98
+ }
99
+ if (!('type' in field)) {
100
+ error = `${error}Type is not found in the field object. `;
101
+ }
102
+ if (collectorType === 'PasswordCollector') {
103
+ return {
104
+ category: 'SingleValueCollector',
105
+ error: error || null,
106
+ type: collectorType,
107
+ id: `${field?.key}-${idx}`,
108
+ name: field.key,
109
+ input: {
110
+ key: field.key,
111
+ value: '',
112
+ type: field.type,
113
+ },
114
+ output: {
115
+ key: field.key,
116
+ label: field.label,
117
+ type: field.type,
118
+ // No default or existing value is passed
119
+ },
120
+ };
121
+ }
122
+ else if (collectorType === 'SingleSelectCollector') {
123
+ /**
124
+ * Check if options are present in the field object first
125
+ * If found, return existing error, which should be ''
126
+ * If not found, add additional message to error string
127
+ */
128
+ const err = 'options' in field ? error : `${error}Options are not found in the field object. `;
129
+ const options = 'options' in field ? field.options : []; // Fallback to ensure type consistency
130
+ return {
131
+ category: 'SingleValueCollector',
132
+ error: err || null,
133
+ type: collectorType,
134
+ id: `${field.key}-${idx}`,
135
+ name: field.key,
136
+ input: {
137
+ key: field.key,
138
+ value: '',
139
+ type: field.type,
140
+ },
141
+ output: {
142
+ key: field.key,
143
+ label: field.label,
144
+ type: field.type,
145
+ value: data || '',
146
+ options: options,
147
+ },
148
+ };
149
+ }
150
+ else if ('validation' in field || 'required' in field) {
151
+ const validationArray = [];
152
+ if ('validation' in field) {
153
+ validationArray.push({
154
+ type: 'regex',
155
+ message: field.validation?.errorMessage || '',
156
+ rule: field.validation?.regex || '',
157
+ });
158
+ }
159
+ if ('required' in field) {
160
+ validationArray.push({
161
+ type: 'required',
162
+ message: 'Value cannot be empty',
163
+ rule: true,
164
+ });
165
+ }
166
+ return {
167
+ category: 'ValidatedSingleValueCollector',
168
+ error: error || null,
169
+ type: 'TextCollector',
170
+ id: `${field.key}-${idx}`,
171
+ name: field.key,
172
+ input: {
173
+ key: field.key,
174
+ value: data || '',
175
+ type: field.type,
176
+ validation: validationArray,
177
+ },
178
+ output: {
179
+ key: field.key,
180
+ label: field.label,
181
+ type: field.type,
182
+ value: data || '',
183
+ },
184
+ };
185
+ }
186
+ else {
187
+ return {
188
+ category: 'SingleValueCollector',
189
+ error: error || null,
190
+ type: collectorType || 'SingleValueCollector',
191
+ id: `${field.key}-${idx}`,
192
+ name: field.key,
193
+ input: {
194
+ key: field.key,
195
+ value: '',
196
+ type: field.type,
197
+ },
198
+ output: {
199
+ key: field.key,
200
+ label: field.label,
201
+ type: field.type,
202
+ value: data || '',
203
+ },
204
+ };
205
+ }
206
+ }
207
+ /**
208
+ * @function returnPasswordCollector - Creates a PasswordCollector object based on the provided field and index.
209
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
210
+ * @param {number} idx - The index to be used in the id of the PasswordCollector.
211
+ * @returns {PasswordCollector} The constructed PasswordCollector object.
212
+ */
213
+ export function returnPasswordCollector(field, idx) {
214
+ return returnSingleValueCollector(field, idx, 'PasswordCollector');
215
+ }
216
+ /**
217
+ * @function returnTextCollector - Creates a TextCollector object based on the provided field and index.
218
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
219
+ * @param {number} idx - The index to be used in the id of the TextCollector.
220
+ * @returns {TextCollector} The constructed TextCollector object.
221
+ */
222
+ export function returnTextCollector(field, idx, data) {
223
+ return returnSingleValueCollector(field, idx, 'TextCollector', data);
224
+ }
225
+ /**
226
+ * @function returnSingleSelectCollector - Creates a SingleCollector object based on the provided field and index.
227
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
228
+ * @param {number} idx - The index to be used in the id of the SingleCollector.
229
+ * @returns {SingleValueCollector} The constructed SingleCollector object.
230
+ */
231
+ export function returnSingleSelectCollector(field, idx, data) {
232
+ return returnSingleValueCollector(field, idx, 'SingleSelectCollector', data);
233
+ }
234
+ /**
235
+ * @function returnMultiValueCollector - Creates a MultiValueCollector object based on the provided field, index, and optional collector type.
236
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
237
+ * @param {number} idx - The index to be used in the id of the MultiValueCollector.
238
+ * @param {MultiValueCollectorTypes} [collectorType] - Optional type of the MultiValueCollector.
239
+ * @returns {MultiValueCollector} The constructed MultiValueCollector object.
240
+ */
241
+ export function returnMultiValueCollector(field, idx, collectorType, data) {
242
+ let error = '';
243
+ if (!('key' in field)) {
244
+ error = `${error}Key is not found in the field object. `;
245
+ }
246
+ if (!('label' in field)) {
247
+ error = `${error}Label is not found in the field object. `;
248
+ }
249
+ if (!('type' in field)) {
250
+ error = `${error}Type is not found in the field object. `;
251
+ }
252
+ if (!('options' in field)) {
253
+ error = `${error}Options are not found in the field object. `;
254
+ }
255
+ return {
256
+ category: 'MultiValueCollector',
257
+ error: error || null,
258
+ type: collectorType || 'MultiValueCollector',
259
+ id: `${field.key}-${idx}`,
260
+ name: field.key,
261
+ input: {
262
+ key: field.key,
263
+ value: data || [],
264
+ type: field.type,
265
+ },
266
+ output: {
267
+ key: field.key,
268
+ label: field.label,
269
+ type: field.type,
270
+ value: data || [],
271
+ options: field.options || [],
272
+ },
273
+ };
274
+ }
275
+ /**
276
+ * @function returnMultiSelectCollector - Creates a DropDownCollector object based on the provided field and index.
277
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
278
+ * @param {number} idx - The index to be used in the id of the DropDownCollector.
279
+ * @returns {SingleValueCollector} The constructed DropDownCollector object.
280
+ */
281
+ export function returnMultiSelectCollector(field, idx, data) {
282
+ return returnMultiValueCollector(field, idx, 'MultiSelectCollector', data);
283
+ }
284
+ /**
285
+ * @function returnObjectCollector - Creates a ObjectCollector object based on the provided field, index, and optional collector type.
286
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
287
+ * @param {number} idx - The index to be used in the id of the ObjectCollector.
288
+ * @param {ObjectValueCollectorTypes} [collectorType] - Optional type of the ObjectCollector.
289
+ * @returns {ObjectCollector} The constructed ObjectCollector object.
290
+ */
291
+ export function returnObjectCollector(field, idx, collectorType) {
292
+ let error = '';
293
+ if (!('key' in field)) {
294
+ error = `${error}Key is not found in the field object. `;
295
+ }
296
+ if (!('label' in field)) {
297
+ error = `${error}Label is not found in the field object. `;
298
+ }
299
+ if (!('type' in field)) {
300
+ error = `${error}Type is not found in the field object. `;
301
+ }
302
+ let options;
303
+ let defaultValue;
304
+ if (field.type === 'DEVICE_AUTHENTICATION') {
305
+ if (!('options' in field)) {
306
+ error = `${error}Device options are not found in the field object. `;
307
+ }
308
+ if (Array.isArray(field.options) && field.options.length === 0) {
309
+ error = `${error}Device options are not an array or is empty. `;
310
+ }
311
+ const unmappedDefault = field.options.find((device) => device.default);
312
+ defaultValue = {
313
+ type: unmappedDefault ? unmappedDefault.type : '',
314
+ value: unmappedDefault ? unmappedDefault.description : '',
315
+ id: unmappedDefault ? unmappedDefault.id : '',
316
+ };
317
+ // Map DaVinci spec to normalized SDK API
318
+ options = field.options.map((device) => ({
319
+ type: device.type,
320
+ label: device.title,
321
+ content: device.description,
322
+ value: device.id,
323
+ key: device.id,
324
+ default: device.default,
325
+ }));
326
+ }
327
+ else if (field.type === 'DEVICE_REGISTRATION') {
328
+ if (!('options' in field)) {
329
+ error = `${error}Device options are not found in the field object. `;
330
+ }
331
+ if (Array.isArray(field.options) && field.options.length === 0) {
332
+ error = `${error}Device options are not an array or is empty. `;
333
+ }
334
+ defaultValue = '';
335
+ // Map DaVinci spec to normalized SDK API
336
+ options = field.options.map((device, idx) => ({
337
+ type: device.type,
338
+ label: device.title,
339
+ content: device.description,
340
+ value: device.type,
341
+ key: `${device.type}-${idx}`,
342
+ }));
343
+ }
344
+ else if (field.type === 'PHONE_NUMBER') {
345
+ defaultValue = {
346
+ countryCode: field.defaultCountryCode || '',
347
+ phoneNumber: '',
348
+ };
349
+ }
350
+ return {
351
+ category: 'ObjectValueCollector',
352
+ error: error || null,
353
+ type: collectorType || 'ObjectValueCollector',
354
+ id: `${field.key}-${idx}`,
355
+ name: field.key,
356
+ input: {
357
+ key: field.key,
358
+ value: defaultValue,
359
+ type: field.type,
360
+ },
361
+ output: {
362
+ key: field.key,
363
+ label: field.label,
364
+ type: field.type,
365
+ ...(options && { options: options || [] }),
366
+ ...(defaultValue && { value: defaultValue }),
367
+ },
368
+ };
369
+ }
370
+ /**
371
+ * @function returnObjectSelectCollector - Creates a DropDownCollector object based on the provided field and index.
372
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
373
+ * @param {number} idx - The index to be used in the id of the DropDownCollector.
374
+ * @returns {SingleValueCollector} The constructed DropDownCollector object.
375
+ */
376
+ export function returnObjectSelectCollector(field, idx) {
377
+ return returnObjectCollector(field, idx, field.type === 'DEVICE_AUTHENTICATION'
378
+ ? 'DeviceAuthenticationCollector'
379
+ : 'DeviceRegistrationCollector');
380
+ }
381
+ export function returnObjectValueCollector(field, idx) {
382
+ return returnObjectCollector(field, idx, 'PhoneNumberCollector');
383
+ }
384
+ /**
385
+ * @function returnNoValueCollector - Creates a NoValueCollector object based on the provided field, index, and optional collector type.
386
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
387
+ * @param {number} idx - The index to be used in the id of the NoValueCollector.
388
+ * @param {NoValueCollectorTypes} [collectorType] - Optional type of the NoValueCollector.
389
+ * @returns {NoValueCollector} The constructed NoValueCollector object.
390
+ */
391
+ export function returnNoValueCollector(field, idx, collectorType) {
392
+ let error = '';
393
+ if (!('content' in field)) {
394
+ error = `${error}Content is not found in the field object. `;
395
+ }
396
+ if (!('type' in field)) {
397
+ error = `${error}Type is not found in the field object. `;
398
+ }
399
+ return {
400
+ category: 'NoValueCollector',
401
+ error: error || null,
402
+ type: collectorType || 'NoValueCollector',
403
+ id: `${field.key || field.type}-${idx}`,
404
+ name: `${field.key || field.type}-${idx}`,
405
+ output: {
406
+ key: `${field.key || field.type}-${idx}`,
407
+ label: field.content,
408
+ type: field.type,
409
+ },
410
+ };
411
+ }
412
+ /**
413
+ * @function returnReadOnlyCollector - Creates a ReadOnlyCollector object based on the provided field and index.
414
+ * @param {DaVinciField} field - The field object containing key, label, type, and links.
415
+ * @param {number} idx - The index to be used in the id of the ReadOnlyCollector.
416
+ * @returns {ReadOnlyCollector} The constructed ReadOnlyCollector object.
417
+ */
418
+ export function returnReadOnlyCollector(field, idx) {
419
+ return returnNoValueCollector(field, idx, 'ReadOnlyCollector');
420
+ }
421
+ /**
422
+ * @function returnValidator - Creates a validator function based on the provided collector
423
+ * @param collector {ValidatedTextCollector} - The collector to which the value will be validated
424
+ * @returns {function} - A "validator" function that validates the input value
425
+ */
426
+ export function returnValidator(collector) {
427
+ const rules = collector.input.validation;
428
+ return (value) => {
429
+ return rules.reduce((acc, next) => {
430
+ if (next.type === 'required' && !value) {
431
+ acc.push(next.message);
432
+ }
433
+ else if (next.type === 'regex') {
434
+ try {
435
+ const result = new RegExp(next.rule).test(value);
436
+ if (!result) {
437
+ acc.push(next.message);
438
+ }
439
+ }
440
+ catch (err) {
441
+ const error = err;
442
+ acc.push(error.message);
443
+ }
444
+ }
445
+ return acc;
446
+ }, []);
447
+ };
448
+ }
449
+ export function returnUnknownCollector(field, idx) {
450
+ return {
451
+ category: 'UnknownCollector',
452
+ error: 'Detected an unknown or unsupported collector type',
453
+ type: field['type'],
454
+ id: `${field['key'] || field['type']}-${idx}`,
455
+ name: field['key'] || field['type'],
456
+ output: {
457
+ key: `${field['key'] || field['type']}-${idx}`,
458
+ label: field['label'] || field['content'],
459
+ type: field['type'],
460
+ },
461
+ };
462
+ }
463
+ //# sourceMappingURL=collector.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.utils.js","sourceRoot":"","sources":["../../../src/lib/collector.utils.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,18 @@
1
- import { PayloadAction } from '@reduxjs/toolkit';
2
- import { InternalDaVinciConfig } from './config.types.js';
1
+ /**
2
+ * Import the createSlice and PayloadAction utilities from Redux Toolkit
3
+ * @see https://redux-toolkit.js.org/api/createslice
4
+ */
5
+ import { type PayloadAction } from '@reduxjs/toolkit';
6
+ /**
7
+ * Import the types
8
+ */
9
+ import type { InternalDaVinciConfig } from './config.types.js';
3
10
  import { Endpoints } from './wellknown.types.js';
4
11
  /**
5
12
  * @const configSlice - Define the configuration slice for Redux state management
6
13
  * @see https://redux-toolkit.js.org/api/createslice
7
14
  */
8
- export declare const configSlice: import('@reduxjs/toolkit').Slice<{
15
+ export declare const configSlice: import("@reduxjs/toolkit").Slice<{
9
16
  endpoints: Endpoints;
10
17
  clientId: string;
11
18
  redirectUri: string;
@@ -18,14 +25,14 @@ export declare const configSlice: import('@reduxjs/toolkit').Slice<{
18
25
  * @param {PayloadAction<InternalDaVinciConfig>} action - The action to be dispatched
19
26
  * @returns {void}
20
27
  */
21
- set(state: import('immer').WritableDraft<{
28
+ set(state: import("immer").WritableDraft<{
22
29
  endpoints: Endpoints;
23
30
  clientId: string;
24
31
  redirectUri: string;
25
32
  responseType: string;
26
33
  scope: string;
27
34
  }>, action: PayloadAction<InternalDaVinciConfig>): void;
28
- }, "config", "config", import('@reduxjs/toolkit').SliceSelectors<{
35
+ }, "config", "config", import("@reduxjs/toolkit").SliceSelectors<{
29
36
  endpoints: Endpoints;
30
37
  clientId: string;
31
38
  redirectUri: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.slice.d.ts","sourceRoot":"","sources":["../../../src/lib/config.slice.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;GAEG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAcjD;;;GAGG;AACH,eAAO,MAAM,WAAW;eAXL,SAAS;;;;;;IAgBxB;;;;;OAKG;;mBArBY,SAAS;;;;;gBAsBL,aAAa,CAAC,qBAAqB,CAAC;;eAtBxC,SAAS;;;;;GAkD1B,CAAC"}
@@ -0,0 +1,59 @@
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 createSlice and PayloadAction utilities from Redux Toolkit
9
+ * @see https://redux-toolkit.js.org/api/createslice
10
+ */
11
+ import { createSlice } from '@reduxjs/toolkit';
12
+ /**
13
+ * @const initialState - The initial state of the configuration slice
14
+ * NOTE: The clientId, redirectUri, responseType, and scope are set to empty strings
15
+ */
16
+ const initialState = {
17
+ endpoints: {},
18
+ clientId: '',
19
+ redirectUri: '',
20
+ responseType: '',
21
+ scope: '',
22
+ };
23
+ /**
24
+ * @const configSlice - Define the configuration slice for Redux state management
25
+ * @see https://redux-toolkit.js.org/api/createslice
26
+ */
27
+ export const configSlice = createSlice({
28
+ name: 'config',
29
+ initialState,
30
+ reducerPath: 'config',
31
+ reducers: {
32
+ /**
33
+ * @method set - Set the configuration for the DaVinci client
34
+ * @param {Object} state - The current state of the slice
35
+ * @param {PayloadAction<InternalDaVinciConfig>} action - The action to be dispatched
36
+ * @returns {void}
37
+ */
38
+ set(state, action) {
39
+ state.clientId = action.payload.clientId || '';
40
+ state.redirectUri = action.payload.redirectUri || `${location.origin}/handle-redirect`;
41
+ if ('responseType' in action.payload && action.payload.responseType) {
42
+ state.responseType = action.payload.responseType;
43
+ }
44
+ else {
45
+ state.responseType = 'code';
46
+ }
47
+ state.scope = action.payload.scope || 'openid';
48
+ const { authorization_endpoint: authorize, issuer: issuer, introspection_endpoint: introspection, token_endpoint: tokens, userinfo_endpoint: userinfo, } = action.payload.wellknownResponse;
49
+ state.endpoints = {
50
+ authorize,
51
+ issuer,
52
+ introspection,
53
+ tokens,
54
+ userinfo,
55
+ };
56
+ },
57
+ },
58
+ });
59
+ //# sourceMappingURL=config.slice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.slice.js","sourceRoot":"","sources":["../../../src/lib/config.slice.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAQnE;;;GAGG;AACH,MAAM,YAAY,GAAG;IACnB,SAAS,EAAE,EAAe;IAC1B,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE;IAChB,KAAK,EAAE,EAAE;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;IACrC,IAAI,EAAE,QAAQ;IACd,YAAY;IACZ,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE;QACR;;;;;WAKG;QACH,GAAG,CAAC,KAAK,EAAE,MAA4C;YACrD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC/C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,QAAQ,CAAC,MAAM,kBAAkB,CAAC;YACvF,IAAI,cAAc,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACpE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;YAC9B,CAAC;YAED,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;YAE/C,MAAM,EACJ,sBAAsB,EAAE,SAAS,EACjC,MAAM,EAAE,MAAM,EACd,sBAAsB,EAAE,aAAa,EACrC,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,QAAQ,GAC5B,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAErC,KAAK,CAAC,SAAS,GAAG;gBAChB,SAAS;gBACT,MAAM;gBACN,aAAa;gBACb,MAAM;gBACN,QAAQ;aACT,CAAC;QACJ,CAAC;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Import LegacyConfigOptions type from the JavaScript SDK
3
+ */
4
+ import type { AsyncLegacyConfigOptions } from '@forgerock/sdk-types';
5
+ import { WellknownResponse } from './wellknown.types.js';
6
+ export interface DaVinciConfig extends AsyncLegacyConfigOptions {
7
+ responseType?: string;
8
+ }
9
+ export interface InternalDaVinciConfig extends DaVinciConfig {
10
+ wellknownResponse: WellknownResponse;
11
+ }
12
+ //# sourceMappingURL=config.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../../src/lib/config.types.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,aAAc,SAAQ,wBAAwB;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,iBAAiB,EAAE,iBAAiB,CAAC;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../../src/lib/config.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Import the RTK Query library from Redux Toolkit
3
+ * @see https://redux-toolkit.js.org/rtk-query/overview
4
+ */
5
+ import { FetchArgs, FetchBaseQueryError, FetchBaseQueryMeta } from '@reduxjs/toolkit/query';
6
+ import type { OutgoingQueryParams, StartOptions } from './davinci.types.js';
7
+ import type { ContinueNode } from './node.types.js';
8
+ /**
9
+ * @const davinciApi - Define the DaVinci API for Redux state management
10
+ * @see https://redux-toolkit.js.org/rtk-query/overview
11
+ */
12
+ export declare const davinciApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, {
13
+ /**
14
+ * @method flow - method for initiating a new flow with the DaVinci API
15
+ */
16
+ flow: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", any>;
17
+ /**
18
+ * @method next - method for initiating the next node in the current flow
19
+ */
20
+ next: import("@reduxjs/toolkit/query").MutationDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", any>;
21
+ /**
22
+ * @method start - method for initiating a DaVinci flow
23
+ * @param - needs no arguments, but need to declare types to make it explicit
24
+ */
25
+ start: import("@reduxjs/toolkit/query").MutationDefinition<StartOptions<OutgoingQueryParams> | undefined, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
26
+ resume: import("@reduxjs/toolkit/query").QueryDefinition<{
27
+ serverInfo: ContinueNode["server"];
28
+ continueToken: string;
29
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, never, unknown, "davinci", unknown>;
30
+ }, "davinci", never, typeof import("@reduxjs/toolkit/query").coreModuleName>;
31
+ //# sourceMappingURL=davinci.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"davinci.api.d.ts","sourceRoot":"","sources":["../../../src/lib/davinci.api.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,OAAO,EAEL,SAAS,EAET,mBAAmB,EACnB,kBAAkB,EAEnB,MAAM,wBAAwB,CAAC;AAgBhC,OAAO,KAAK,EAEV,mBAAmB,EACnB,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAapD;;;GAGG;AACH,eAAO,MAAM,UAAU;IAYnB;;OAEG;;IAgFH;;OAEG;;IAoFH;;;OAGG;;;oBA8G0C,YAAY,CAAC,QAAQ,CAAC;uBAAiB,MAAM;;4EA2E5F,CAAC"}