@forgerock/davinci-client 1.1.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 (68) hide show
  1. package/dist/src/lib/client.store.d.ts +43 -42
  2. package/dist/src/lib/client.store.d.ts.map +1 -1
  3. package/dist/src/lib/client.store.js +87 -82
  4. package/dist/src/lib/client.store.js.map +1 -1
  5. package/dist/src/lib/client.store.utils.d.ts +27 -14
  6. package/dist/src/lib/client.store.utils.d.ts.map +1 -1
  7. package/dist/src/lib/client.store.utils.js +15 -2
  8. package/dist/src/lib/client.store.utils.js.map +1 -1
  9. package/dist/src/lib/client.types.d.ts +3 -1
  10. package/dist/src/lib/client.types.d.ts.map +1 -1
  11. package/dist/src/lib/collector.types.d.ts +112 -7
  12. package/dist/src/lib/collector.types.d.ts.map +1 -1
  13. package/dist/src/lib/collector.types.js +0 -3
  14. package/dist/src/lib/collector.types.js.map +1 -1
  15. package/dist/src/lib/collector.utils.d.ts +36 -19
  16. package/dist/src/lib/collector.utils.d.ts.map +1 -1
  17. package/dist/src/lib/collector.utils.js +123 -9
  18. package/dist/src/lib/collector.utils.js.map +1 -1
  19. package/dist/src/lib/config.types.d.ts +3 -3
  20. package/dist/src/lib/config.types.d.ts.map +1 -1
  21. package/dist/src/lib/davinci.api.d.ts +6 -4
  22. package/dist/src/lib/davinci.api.d.ts.map +1 -1
  23. package/dist/src/lib/davinci.api.js +31 -18
  24. package/dist/src/lib/davinci.api.js.map +1 -1
  25. package/dist/src/lib/davinci.types.d.ts +46 -7
  26. package/dist/src/lib/davinci.types.d.ts.map +1 -1
  27. package/dist/src/lib/davinci.utils.d.ts +4 -7
  28. package/dist/src/lib/davinci.utils.d.ts.map +1 -1
  29. package/dist/src/lib/davinci.utils.js +14 -31
  30. package/dist/src/lib/davinci.utils.js.map +1 -1
  31. package/dist/src/lib/node.reducer.d.ts +4 -4
  32. package/dist/src/lib/node.reducer.d.ts.map +1 -1
  33. package/dist/src/lib/node.reducer.js +54 -4
  34. package/dist/src/lib/node.reducer.js.map +1 -1
  35. package/dist/src/lib/node.slice.d.ts +25 -7
  36. package/dist/src/lib/node.slice.d.ts.map +1 -1
  37. package/dist/src/lib/node.slice.js +40 -10
  38. package/dist/src/lib/node.slice.js.map +1 -1
  39. package/dist/src/lib/node.types.d.ts +3 -3
  40. package/dist/src/lib/node.types.d.ts.map +1 -1
  41. package/dist/src/lib/node.utils.d.ts +2 -2
  42. package/dist/src/lib/node.utils.d.ts.map +1 -1
  43. package/dist/src/lib/wellknown.api.d.ts +1 -1
  44. package/dist/src/types.d.ts +12 -3
  45. package/dist/src/types.d.ts.map +1 -1
  46. package/dist/src/types.js +1 -2
  47. package/dist/src/types.js.map +1 -1
  48. package/package.json +10 -20
  49. package/dist/src/lib/authorize.utils.d.ts +0 -22
  50. package/dist/src/lib/authorize.utils.d.ts.map +0 -1
  51. package/dist/src/lib/authorize.utils.js +0 -47
  52. package/dist/src/lib/authorize.utils.js.map +0 -1
  53. package/dist/src/lib/effects/request.effect.mock.d.ts +0 -4
  54. package/dist/src/lib/effects/request.effect.mock.d.ts.map +0 -1
  55. package/dist/src/lib/effects/request.effect.mock.js +0 -106
  56. package/dist/src/lib/effects/request.effect.mock.js.map +0 -1
  57. package/dist/src/lib/effects/request.effect.types.d.ts +0 -20
  58. package/dist/src/lib/effects/request.effect.types.d.ts.map +0 -1
  59. package/dist/src/lib/effects/request.effect.types.js +0 -2
  60. package/dist/src/lib/effects/request.effect.types.js.map +0 -1
  61. package/dist/src/lib/effects/request.effect.unions.d.ts +0 -12
  62. package/dist/src/lib/effects/request.effect.unions.d.ts.map +0 -1
  63. package/dist/src/lib/effects/request.effect.unions.js +0 -16
  64. package/dist/src/lib/effects/request.effect.unions.js.map +0 -1
  65. package/dist/src/lib/effects/request.effect.utils.d.ts +0 -27
  66. package/dist/src/lib/effects/request.effect.utils.d.ts.map +0 -1
  67. package/dist/src/lib/effects/request.effect.utils.js +0 -57
  68. package/dist/src/lib/effects/request.effect.utils.js.map +0 -1
@@ -1,11 +1,16 @@
1
+ /**
2
+ * Import RTK slices and api
3
+ */
4
+ import { CustomLogger, LogLevel } from '@forgerock/sdk-logger';
5
+ import type { ActionTypes, RequestMiddleware } from '@forgerock/sdk-request-middleware';
1
6
  /**
2
7
  * Import the DaVinciRequest types
3
8
  */
4
9
  import type { DaVinciConfig } from './config.types.js';
5
10
  import type { DaVinciAction, DaVinciRequest, OutgoingQueryParams, StartOptions } from './davinci.types.js';
6
- import type { SingleValueCollectors, IdpCollector, MultiSelectCollector } from './collector.types.js';
7
- import type { InitFlow, Updater, Validator } from './client.types.js';
8
- import type { RequestMiddleware } from './effects/request.effect.types.js';
11
+ import type { SingleValueCollectors, MultiSelectCollector, ObjectValueCollectors } from './collector.types.js';
12
+ import type { InitFlow, InternalErrorResponse, NodeStates, Updater, Validator } from './client.types.js';
13
+ import { ContinueNode, StartNode } from './node.types.js';
9
14
  /**
10
15
  * Create a client function that returns a set of methods
11
16
  * to interact with and normalize the DaVinci API.
@@ -14,9 +19,13 @@ import type { RequestMiddleware } from './effects/request.effect.types.js';
14
19
  * @param {ConfigurationOptions} options - the configuration options for the client
15
20
  * @returns {Observable} - an observable client for DaVinci flows
16
21
  */
17
- export declare function davinci({ config, requestMiddleware, }: {
22
+ export declare function davinci<ActionType extends ActionTypes = ActionTypes>({ config, requestMiddleware, logger, }: {
18
23
  config: DaVinciConfig;
19
- requestMiddleware?: RequestMiddleware[];
24
+ requestMiddleware?: RequestMiddleware<ActionType>[];
25
+ logger?: {
26
+ level: LogLevel;
27
+ custom?: CustomLogger;
28
+ };
20
29
  }): Promise<{
21
30
  subscribe: (listener: () => void) => import("@reduxjs/toolkit").Unsubscribe;
22
31
  /**
@@ -26,8 +35,8 @@ export declare function davinci({ config, requestMiddleware, }: {
26
35
  * for the social login being started.
27
36
  *
28
37
  * This method will save the `continueUrl`
29
- * and then replace the window with the authenticate
30
- * url from the collector
38
+ * and then the app developer can use the url
39
+ * from the collector to redirect their application
31
40
  *
32
41
  * Can return an error when no continue url is found
33
42
  * or no authenticate url is found in the collectors
@@ -36,7 +45,7 @@ export declare function davinci({ config, requestMiddleware, }: {
36
45
  * @param collector IdpCollector
37
46
  * @returns {function}
38
47
  */
39
- externalIdp: (collector: IdpCollector) => () => void | import("./client.types.js").InternalErrorResponse;
48
+ externalIdp: () => (() => Promise<void | InternalErrorResponse>);
40
49
  /**
41
50
  * @method flow - Method for initiating a new flow, different than current flow
42
51
  * @param {DaVinciAction} action - the action to initiate the flow
@@ -48,35 +57,25 @@ export declare function davinci({ config, requestMiddleware, }: {
48
57
  * @param {DaVinciRequest} args - the arguments to pass to the next
49
58
  * @returns {Promise} - a promise that resolves to the next node
50
59
  */
51
- next: (args?: DaVinciRequest) => Promise<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 | {
52
- error: string;
53
- cache: null;
54
- client: {
55
- status: "start";
56
- };
57
- server: {
58
- status: "start";
59
- };
60
- status: "start";
61
- }>;
60
+ next: (args?: DaVinciRequest) => Promise<NodeStates>;
62
61
  /**
63
62
  * @method: resume - Resume a social login flow when returned to application
64
63
  * @returns unknown
65
64
  */
66
- resume: ({ continueToken }: {
65
+ resume: ({ continueToken, }: {
67
66
  continueToken: string;
68
- }) => Promise<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>;
67
+ }) => Promise<InternalErrorResponse | NodeStates>;
69
68
  /**
70
69
  * @method start - Method for initiating a DaVinci flow
71
70
  * @returns {Promise} - a promise that initiates a DaVinci flow and returns a node
72
71
  */
73
- start: <QueryParams extends OutgoingQueryParams = OutgoingQueryParams>(options?: StartOptions<QueryParams> | undefined) => Promise<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>;
72
+ start: <QueryParams extends OutgoingQueryParams = OutgoingQueryParams>(options?: StartOptions<QueryParams> | undefined) => Promise<ContinueNode | import("./node.types.js").ErrorNode | import("./node.types.js").FailureNode | StartNode | import("./node.types.js").SuccessNode>;
74
73
  /**
75
74
  * @method update - Exclusive method for updating the current node with user provided values
76
75
  * @param {SingleValueCollector} collector - the collector to update
77
76
  * @returns {function} - a function to call for updating collector value
78
77
  */
79
- update: (collector: SingleValueCollectors | MultiSelectCollector) => Updater;
78
+ update: (collector: SingleValueCollectors | MultiSelectCollector | ObjectValueCollectors) => Updater;
80
79
  /**
81
80
  * @method validate - Method for validating the value against validation rules
82
81
  * @param {SingleValueCollector} collector - the collector to validate
@@ -122,7 +121,7 @@ export declare function davinci({ config, requestMiddleware, }: {
122
121
  * @method node - Selector to get the node from state
123
122
  * @returns {Node} - the current node from state
124
123
  */
125
- getNode: () => 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;
124
+ getNode: () => ContinueNode | import("./node.types.js").ErrorNode | import("./node.types.js").FailureNode | StartNode | import("./node.types.js").SuccessNode;
126
125
  /**
127
126
  * @method server - Selector to get the node.server from state
128
127
  * @returns {Node.server} - the server property from the current node
@@ -167,12 +166,13 @@ export declare function davinci({ config, requestMiddleware, }: {
167
166
  */
168
167
  cache: {
169
168
  getLatestResponse: () => ((state: import("@reduxjs/toolkit/query").RootState<{
170
- 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">;
171
- 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">;
172
- start: import("@reduxjs/toolkit/query").MutationDefinition<StartOptions<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">;
169
+ 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>;
170
+ 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>;
171
+ start: import("@reduxjs/toolkit/query").MutationDefinition<StartOptions<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>;
173
172
  resume: import("@reduxjs/toolkit/query").QueryDefinition<{
173
+ serverInfo: ContinueNode["server"];
174
174
  continueToken: string;
175
- }, 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">;
175
+ }, 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>;
176
176
  }, never, "davinci">) => ({
177
177
  requestId?: undefined;
178
178
  status: import("@reduxjs/toolkit/query").QueryStatus.uninitialized;
@@ -192,14 +192,14 @@ export declare function davinci({ config, requestMiddleware, }: {
192
192
  } & Omit<{
193
193
  requestId: string;
194
194
  data?: unknown;
195
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
195
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
196
196
  endpointName: string;
197
197
  startedTimeStamp: number;
198
198
  fulfilledTimeStamp?: number;
199
199
  }, "data" | "fulfilledTimeStamp"> & Required<Pick<{
200
200
  requestId: string;
201
201
  data?: unknown;
202
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
202
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
203
203
  endpointName: string;
204
204
  startedTimeStamp: number;
205
205
  fulfilledTimeStamp?: number;
@@ -216,7 +216,7 @@ export declare function davinci({ config, requestMiddleware, }: {
216
216
  } & {
217
217
  requestId: string;
218
218
  data?: unknown;
219
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
219
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
220
220
  endpointName: string;
221
221
  startedTimeStamp: number;
222
222
  fulfilledTimeStamp?: number;
@@ -233,14 +233,14 @@ export declare function davinci({ config, requestMiddleware, }: {
233
233
  } & Omit<{
234
234
  requestId: string;
235
235
  data?: unknown;
236
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
236
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
237
237
  endpointName: string;
238
238
  startedTimeStamp: number;
239
239
  fulfilledTimeStamp?: number;
240
240
  }, "error"> & Required<Pick<{
241
241
  requestId: string;
242
242
  data?: unknown;
243
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
243
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
244
244
  endpointName: string;
245
245
  startedTimeStamp: number;
246
246
  fulfilledTimeStamp?: number;
@@ -257,12 +257,13 @@ export declare function davinci({ config, requestMiddleware, }: {
257
257
  };
258
258
  };
259
259
  getResponseWithId: (requestId: string) => ((state: import("@reduxjs/toolkit/query").RootState<{
260
- 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">;
261
- 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">;
262
- start: import("@reduxjs/toolkit/query").MutationDefinition<StartOptions<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">;
260
+ 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>;
261
+ 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>;
262
+ start: import("@reduxjs/toolkit/query").MutationDefinition<StartOptions<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>;
263
263
  resume: import("@reduxjs/toolkit/query").QueryDefinition<{
264
+ serverInfo: ContinueNode["server"];
264
265
  continueToken: string;
265
- }, 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">;
266
+ }, 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>;
266
267
  }, never, "davinci">) => ({
267
268
  requestId?: undefined;
268
269
  status: import("@reduxjs/toolkit/query").QueryStatus.uninitialized;
@@ -282,14 +283,14 @@ export declare function davinci({ config, requestMiddleware, }: {
282
283
  } & Omit<{
283
284
  requestId: string;
284
285
  data?: unknown;
285
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
286
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
286
287
  endpointName: string;
287
288
  startedTimeStamp: number;
288
289
  fulfilledTimeStamp?: number;
289
290
  }, "data" | "fulfilledTimeStamp"> & Required<Pick<{
290
291
  requestId: string;
291
292
  data?: unknown;
292
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
293
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
293
294
  endpointName: string;
294
295
  startedTimeStamp: number;
295
296
  fulfilledTimeStamp?: number;
@@ -306,7 +307,7 @@ export declare function davinci({ config, requestMiddleware, }: {
306
307
  } & {
307
308
  requestId: string;
308
309
  data?: unknown;
309
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
310
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
310
311
  endpointName: string;
311
312
  startedTimeStamp: number;
312
313
  fulfilledTimeStamp?: number;
@@ -323,14 +324,14 @@ export declare function davinci({ config, requestMiddleware, }: {
323
324
  } & Omit<{
324
325
  requestId: string;
325
326
  data?: unknown;
326
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
327
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
327
328
  endpointName: string;
328
329
  startedTimeStamp: number;
329
330
  fulfilledTimeStamp?: number;
330
331
  }, "error"> & Required<Pick<{
331
332
  requestId: string;
332
333
  data?: unknown;
333
- error?: import("@reduxjs/toolkit/query").FetchBaseQueryError | import("@reduxjs/toolkit").SerializedError | undefined;
334
+ error?: import("@reduxjs/toolkit").SerializedError | import("@reduxjs/toolkit/query").FetchBaseQueryError | undefined;
334
335
  endpointName: string;
335
336
  startedTimeStamp: number;
336
337
  fulfilledTimeStamp?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"client.store.d.ts","sourceRoot":"","sources":["../../../src/lib/client.store.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,EAC5B,MAAM,EACN,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACzC;;IAyBG;;;;;;;;;;;;;;;;OAgBG;6BACsB,YAAY;IAQrC;;;;OAIG;mBACY,aAAa,KAAG,QAAQ;IAkBvC;;;;OAIG;kBACiB,cAAc;;;;;;;;;;;IAclC;;;OAGG;gCAC+B;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE;IAQ3D;;;OAGG;YACW,WAAW,SAAS,mBAAmB,kCACzC,YAAY,CAAC,WAAW,CAAC,GAAG,SAAS;IAMjD;;;;OAIG;wBACiB,qBAAqB,GAAG,oBAAoB,KAAG,OAAO;IA6D1E;;;;;OAKG;0BACmB,qBAAqB,KAAG,SAAS;IAkDvD;;;OAGG;;;;;;;;;;;;;;;;;;;gBA/MC,CAAC;iBACJ,CAAJ;;;;IAiNG;;;OAGG;;;;IAsBH;;;OAGG;;IAKH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAgB8B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAc1C"}
1
+ {"version":3,"file":"client.store.d.ts","sourceRoot":"","sources":["../../../src/lib/client.store.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAsB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AASnF,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACxF;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,OAAO,EACP,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,UAAU,SAAS,WAAW,GAAG,WAAW,EAAE,EAC1E,MAAM,EACN,iBAAiB,EACjB,MAAM,GACP,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;IACpD,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,QAAQ,CAAC;QAChB,MAAM,CAAC,EAAE,YAAY,CAAC;KACvB,CAAC;CACH;;IAqCG;;;;;;;;;;;;;;;;OAgBG;uBACc,CAAC,MAAM,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC,CAAC;IAoB9D;;;;OAIG;mBACY,aAAa,KAAG,QAAQ;IAkBvC;;;;OAIG;kBACiB,cAAc,KAAG,OAAO,CAAC,UAAU,CAAC;IAkBxD;;;OAGG;iCAGA;QACD,aAAa,EAAE,MAAM,CAAC;KACvB,KAAG,OAAO,CAAC,qBAAqB,GAAG,UAAU,CAAC;IAwB/C;;;OAGG;YACW,WAAW,SAAS,mBAAmB,kCACzC,YAAY,CAAC,WAAW,CAAC,GAAG,SAAS;IAMjD;;;;OAIG;wBAEU,qBAAqB,GAAG,oBAAoB,GAAG,qBAAqB,KAC9E,OAAO;IAkDV;;;;;OAKG;0BACmB,qBAAqB,KAAG,SAAS;IA0CvD;;;OAGG;;;;;;;;;;;;;;;;;;;gBArPwE,CAAC;iBACxE,CAAC;;;;IAuPL;;;OAGG;;;;IAgCH;;;OAGG;;IAKH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAgB8B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAc1C"}
@@ -7,13 +7,14 @@
7
7
  /**
8
8
  * Import RTK slices and api
9
9
  */
10
- import { createClientStore } from './client.store.utils.js';
10
+ import { logger as loggerFn } from '@forgerock/sdk-logger';
11
+ import { createStorage } from '@forgerock/storage';
12
+ import { createClientStore, handleUpdateValidateError } from './client.store.utils.js';
11
13
  import { nodeSlice } from './node.slice.js';
12
14
  import { davinciApi } from './davinci.api.js';
13
15
  import { configSlice } from './config.slice.js';
14
16
  import { wellknownApi } from './wellknown.api.js';
15
17
  import { returnValidator } from './collector.utils.js';
16
- import { authorize } from './davinci.utils.js';
17
18
  /**
18
19
  * Create a client function that returns a set of methods
19
20
  * to interact with and normalize the DaVinci API.
@@ -22,17 +23,25 @@ import { authorize } from './davinci.utils.js';
22
23
  * @param {ConfigurationOptions} options - the configuration options for the client
23
24
  * @returns {Observable} - an observable client for DaVinci flows
24
25
  */
25
- export async function davinci({ config, requestMiddleware, }) {
26
- const store = createClientStore({ requestMiddleware });
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');
27
30
  if (!config.serverConfig.wellknown) {
28
- throw new Error('`wellknown` property is a required as part of the `config.serverOptions`');
31
+ const error = new Error('`wellknown` property is a required as part of the `config.serverConfig`');
32
+ log.error(error.message);
33
+ throw error;
29
34
  }
30
35
  if (!config.clientId) {
31
- throw new Error('`clientId` property is a required as part of the `config`');
36
+ const error = new Error('`clientId` property is a required as part of the `config`');
37
+ log.error(error.message);
38
+ throw error;
32
39
  }
33
40
  const { data: openIdResponse } = await store.dispatch(wellknownApi.endpoints.wellknown.initiate(config.serverConfig.wellknown));
34
41
  if (!openIdResponse) {
35
- throw new Error('error fetching `wellknown` response for OpenId Configuration');
42
+ const error = new Error('error fetching `wellknown` response for OpenId Configuration');
43
+ log.error(error.message);
44
+ throw error;
36
45
  }
37
46
  store.dispatch(configSlice.actions.set({ ...config, wellknownResponse: openIdResponse }));
38
47
  return {
@@ -45,8 +54,8 @@ export async function davinci({ config, requestMiddleware, }) {
45
54
  * for the social login being started.
46
55
  *
47
56
  * This method will save the `continueUrl`
48
- * and then replace the window with the authenticate
49
- * url from the collector
57
+ * and then the app developer can use the url
58
+ * from the collector to redirect their application
50
59
  *
51
60
  * Can return an error when no continue url is found
52
61
  * or no authenticate url is found in the collectors
@@ -55,10 +64,22 @@ export async function davinci({ config, requestMiddleware, }) {
55
64
  * @param collector IdpCollector
56
65
  * @returns {function}
57
66
  */
58
- externalIdp: (collector) => {
67
+ externalIdp: () => {
59
68
  const rootState = store.getState();
60
69
  const serverSlice = nodeSlice.selectors.selectServer(rootState);
61
- return () => authorize(serverSlice, collector);
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
+ };
62
83
  },
63
84
  /**
64
85
  * @method flow - Method for initiating a new flow, different than current flow
@@ -67,7 +88,7 @@ export async function davinci({ config, requestMiddleware, }) {
67
88
  */
68
89
  flow: (action) => {
69
90
  if (!action.action) {
70
- console.error('Missing `argument.action`');
91
+ log.error('Missing `argument.action`');
71
92
  return async function () {
72
93
  return {
73
94
  error: { message: 'Missing argument.action', type: 'argument_error' },
@@ -91,7 +112,11 @@ export async function davinci({ config, requestMiddleware, }) {
91
112
  if (nodeCheck.status === 'start') {
92
113
  return {
93
114
  ...nodeCheck,
94
- error: 'Please use `start` before calling `next`',
115
+ error: {
116
+ status: 'error',
117
+ type: 'state_error',
118
+ message: 'Please use `start` before calling `next`',
119
+ },
95
120
  };
96
121
  }
97
122
  await store.dispatch(davinciApi.endpoints.next.initiate(args));
@@ -102,10 +127,24 @@ export async function davinci({ config, requestMiddleware, }) {
102
127
  * @method: resume - Resume a social login flow when returned to application
103
128
  * @returns unknown
104
129
  */
105
- resume: async ({ continueToken }) => {
106
- await store.dispatch(davinciApi.endpoints.resume.initiate({ continueToken }));
107
- const node = nodeSlice.selectSlice(store.getState());
108
- return node;
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
+ }
109
148
  },
110
149
  /**
111
150
  * @method start - Method for initiating a DaVinci flow
@@ -122,41 +161,21 @@ export async function davinci({ config, requestMiddleware, }) {
122
161
  */
123
162
  update: (collector) => {
124
163
  if (!collector.id) {
125
- console.error('Argument for `collector` has no ID');
126
- return function () {
127
- return {
128
- error: {
129
- message: 'Argument for `collector` has no ID',
130
- type: 'argument_error',
131
- },
132
- type: 'internal_error',
133
- };
134
- };
164
+ return handleUpdateValidateError('Argument for `collector` has no ID', 'argument_error', log.error);
135
165
  }
136
166
  const { id } = collector;
137
- const collectorToUpdate = nodeSlice.selectors.selectCollector(store.getState(), id);
167
+ const { error, state: collectorToUpdate } = nodeSlice.selectors.selectCollector(store.getState(), id);
168
+ if (error) {
169
+ return handleUpdateValidateError(error.message, 'state_error', log.error);
170
+ }
138
171
  if (!collectorToUpdate) {
139
- return function () {
140
- console.error('Collector not found');
141
- return {
142
- type: 'internal_error',
143
- error: { message: 'Collector not found', type: 'state_error' },
144
- };
145
- };
172
+ return handleUpdateValidateError('Collector not found', 'state_error', log.error);
146
173
  }
147
174
  if (collectorToUpdate.category !== 'MultiValueCollector' &&
148
175
  collectorToUpdate.category !== 'SingleValueCollector' &&
149
- collectorToUpdate.category !== 'ValidatedSingleValueCollector') {
150
- console.error('Collector is not a MultiValueCollector, SingleValueCollector or ValidatedSingleValueCollector and cannot be updated');
151
- return function () {
152
- return {
153
- type: 'internal_error',
154
- error: {
155
- message: 'Collector is not a SingleValueCollector or ValidatedSingleValueCollector and cannot be updated',
156
- type: 'state_error',
157
- },
158
- };
159
- };
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);
160
179
  }
161
180
  return function (value, index) {
162
181
  try {
@@ -180,45 +199,21 @@ export async function davinci({ config, requestMiddleware, }) {
180
199
  */
181
200
  validate: (collector) => {
182
201
  if (!collector.id) {
183
- console.error('Argument for `collector` has no ID');
184
- return function () {
185
- return {
186
- error: { message: 'Argument for `collector` has no ID', type: 'argument_error' },
187
- type: 'internal_error',
188
- };
189
- };
202
+ return handleUpdateValidateError('Argument for `collector` has no ID', 'argument_error', log.error);
190
203
  }
191
204
  const { id } = collector;
192
- const collectorToUpdate = nodeSlice.selectors.selectCollector(store.getState(), id);
205
+ const { error, state: collectorToUpdate } = nodeSlice.selectors.selectCollector(store.getState(), id);
206
+ if (error) {
207
+ return handleUpdateValidateError(error.message, 'state_error', log.error);
208
+ }
193
209
  if (!collectorToUpdate) {
194
- return function () {
195
- console.error('Collector not found');
196
- return {
197
- type: 'internal_error',
198
- error: { message: 'Collector not found', type: 'state_error' },
199
- };
200
- };
210
+ return handleUpdateValidateError('Collector not found', 'state_error', log.error);
201
211
  }
202
212
  if (collectorToUpdate.category !== 'ValidatedSingleValueCollector') {
203
- console.error('Collector is not a SingleValueCollector and cannot be validated');
204
- return function () {
205
- return {
206
- type: 'internal_error',
207
- error: {
208
- message: 'Collector is not a SingleValueCollector and cannot be validated',
209
- type: 'state_error',
210
- },
211
- };
212
- };
213
+ return handleUpdateValidateError('Collector is not a SingleValueCollector and cannot be validated', 'state_error', log.error);
213
214
  }
214
215
  if (!('validation' in collectorToUpdate.input)) {
215
- console.error('Collector has no validation rules');
216
- return function () {
217
- return {
218
- type: 'internal_error',
219
- error: { message: 'Collector has no validation rules', type: 'state_error' },
220
- };
221
- };
216
+ return handleUpdateValidateError('Collector has no validation rules', 'state_error', log.error);
222
217
  }
223
218
  return returnValidator(collectorToUpdate);
224
219
  },
@@ -236,7 +231,12 @@ export async function davinci({ config, requestMiddleware, }) {
236
231
  const client = nodeSlice.selectors.selectClient(state);
237
232
  // Let's check if the node has a client and collectors
238
233
  if (client && 'collectors' in client) {
239
- return nodeSlice.selectors.selectCollectors(state) || [];
234
+ const { error, state: collectors } = nodeSlice.selectors.selectCollectors(state) || [];
235
+ if (error) {
236
+ log.error(error.message);
237
+ return [];
238
+ }
239
+ return collectors;
240
240
  }
241
241
  // Return an empty array if no client or collectors are found
242
242
  return [];
@@ -247,7 +247,12 @@ export async function davinci({ config, requestMiddleware, }) {
247
247
  },
248
248
  getErrorCollectors: () => {
249
249
  const state = store.getState();
250
- return nodeSlice.selectors.selectErrorCollectors(state);
250
+ const { error, state: collectors } = nodeSlice.selectors.selectErrorCollectors(state);
251
+ if (error) {
252
+ log.error(error.message);
253
+ return [];
254
+ }
255
+ return collectors;
251
256
  },
252
257
  /**
253
258
  * @method node - Selector to get the node from state
@@ -271,7 +276,7 @@ export async function davinci({ config, requestMiddleware, }) {
271
276
  getLatestResponse: () => {
272
277
  const node = nodeSlice.selectSlice(store.getState());
273
278
  if (!node.cache?.key) {
274
- console.error(`Cannot find current node's cache key or no current node`);
279
+ log.error(`Cannot find current node's cache key or no current node`);
275
280
  return { error: { message: 'Cannot find current node', type: 'state_error' } };
276
281
  }
277
282
  const flowItem = davinciApi.endpoints.flow.select(node.cache.key);
@@ -281,7 +286,7 @@ export async function davinci({ config, requestMiddleware, }) {
281
286
  },
282
287
  getResponseWithId: (requestId) => {
283
288
  if (!requestId) {
284
- console.error('Please provide the cache key');
289
+ log.error('Please provide the cache key');
285
290
  return { error: { message: 'Please provide the cache key', type: 'argument_error' } };
286
291
  }
287
292
  const flowItem = davinciApi.endpoints.flow.select(requestId);
@@ -1 +1 @@
1
- {"version":3,"file":"client.store.js","sourceRoot":"","sources":["../../../src/lib/client.store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.store.js","sourceRoot":"","sources":["../../../src/lib/client.store.ts"],"names":[],"mappings":"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"}