|
1 | | -// @ts-nocheck |
2 | 1 | import { BasicQueryStringUtils } from '@openid/appauth' |
3 | 2 |
|
4 | | -export const isFourZeroOneError = (error) => { |
5 | | - return error.status === 401 ? true : false |
| 3 | +type GenericRecord = Record<string, unknown> |
| 4 | + |
| 5 | +type AdditionalActionData = GenericRecord & { |
| 6 | + modifiedFields?: unknown |
| 7 | + performedOn?: unknown |
6 | 8 | } |
7 | 9 |
|
8 | | -export const hasApiToken = () => { |
9 | | - if (localStorage.getItem('gluu.api.token')) { |
10 | | - return true |
| 10 | +type AdditionalPayload = GenericRecord & { |
| 11 | + action?: { |
| 12 | + action_message?: string |
| 13 | + action_data?: AdditionalActionData |
11 | 14 | } |
12 | | - return false |
| 15 | + action_message?: string |
| 16 | + message?: string |
| 17 | + modifiedFields?: unknown |
| 18 | + performedOn?: unknown |
| 19 | + tableData?: unknown |
| 20 | + omitPayload?: boolean |
| 21 | +} |
| 22 | + |
| 23 | +export const isFourZeroOneError = (error?: { status?: number } | null): boolean => { |
| 24 | + return error?.status === 401 |
13 | 25 | } |
14 | 26 |
|
15 | | -export const saveState = (state) => { |
| 27 | +export const hasApiToken = (): boolean => { |
| 28 | + return Boolean(localStorage.getItem('gluu.api.token')) |
| 29 | +} |
| 30 | + |
| 31 | +export const saveState = (state?: string | null): void => { |
16 | 32 | if (state) { |
17 | 33 | localStorage.setItem('gluu.flow.state', state) |
18 | 34 | } |
19 | 35 | } |
20 | 36 |
|
21 | | -export const saveIssuer = (issuer) => { |
| 37 | +export const saveIssuer = (issuer: string): void => { |
22 | 38 | localStorage.setItem('issuer', issuer) |
23 | 39 | } |
24 | 40 |
|
25 | | -export const getIssuer = () => { |
| 41 | +export const getIssuer = (): string | null => { |
26 | 42 | return localStorage.getItem('issuer') |
27 | 43 | } |
28 | 44 |
|
29 | | -export const isValidState = (newState) => { |
30 | | - return localStorage.getItem('gluu.flow.state') === newState ? true : false |
| 45 | +export const isValidState = (newState?: string | null): boolean => { |
| 46 | + return localStorage.getItem('gluu.flow.state') === newState |
31 | 47 | } |
32 | 48 |
|
33 | | -export const addAdditionalData = (audit, action, resource, payload) => { |
34 | | - audit['action'] = action |
35 | | - audit['resource'] = resource |
36 | | - audit['message'] = payload?.action?.action_message || payload.action_message || payload.message |
37 | | - if (payload.action?.action_data?.modifiedFields || payload?.modifiedFields) { |
38 | | - audit['modifiedFields'] = payload.action |
39 | | - ? payload.action?.action_data?.modifiedFields |
40 | | - : payload?.modifiedFields |
| 49 | +export const addAdditionalData = ( |
| 50 | + audit: GenericRecord, |
| 51 | + action: string, |
| 52 | + resource: string, |
| 53 | + payload: AdditionalPayload = {}, |
| 54 | +): void => { |
| 55 | + const sanitizedPayload: AdditionalPayload = { ...payload } |
| 56 | + |
| 57 | + if (payload.action) { |
| 58 | + sanitizedPayload.action = { ...payload.action } |
| 59 | + if (payload.action.action_data) { |
| 60 | + sanitizedPayload.action.action_data = { ...payload.action.action_data } |
| 61 | + } |
| 62 | + } |
| 63 | + |
| 64 | + const shouldOmitPayload = Boolean(sanitizedPayload.omitPayload) |
| 65 | + if ('omitPayload' in sanitizedPayload) { |
| 66 | + delete sanitizedPayload.omitPayload |
| 67 | + } |
| 68 | + |
| 69 | + audit.action = action |
| 70 | + audit.resource = resource |
| 71 | + |
| 72 | + const message = |
| 73 | + sanitizedPayload.action?.action_message ?? |
| 74 | + sanitizedPayload.action_message ?? |
| 75 | + sanitizedPayload.message |
| 76 | + if (message !== undefined) { |
| 77 | + audit.message = message |
| 78 | + } |
| 79 | + |
| 80 | + const actionData = sanitizedPayload.action?.action_data |
| 81 | + |
| 82 | + if (actionData?.modifiedFields !== undefined || sanitizedPayload.modifiedFields !== undefined) { |
| 83 | + audit.modifiedFields = |
| 84 | + actionData?.modifiedFields !== undefined |
| 85 | + ? actionData.modifiedFields |
| 86 | + : sanitizedPayload.modifiedFields |
41 | 87 | } |
42 | | - if (payload.action?.action_data?.performedOn || payload?.performedOn) { |
43 | | - audit['performedOn'] = payload.action |
44 | | - ? payload.action?.action_data?.performedOn |
45 | | - : payload?.performedOn |
| 88 | + |
| 89 | + if (actionData?.performedOn !== undefined || sanitizedPayload.performedOn !== undefined) { |
| 90 | + audit.performedOn = |
| 91 | + actionData?.performedOn !== undefined ? actionData.performedOn : sanitizedPayload.performedOn |
| 92 | + } |
| 93 | + |
| 94 | + if (actionData) { |
| 95 | + if ('modifiedFields' in actionData) { |
| 96 | + delete actionData.modifiedFields |
| 97 | + } |
| 98 | + if ('performedOn' in actionData) { |
| 99 | + delete actionData.performedOn |
| 100 | + } |
| 101 | + } |
| 102 | + |
| 103 | + if ('modifiedFields' in sanitizedPayload) { |
| 104 | + delete sanitizedPayload.modifiedFields |
| 105 | + } |
| 106 | + |
| 107 | + if ('performedOn' in sanitizedPayload) { |
| 108 | + delete sanitizedPayload.performedOn |
| 109 | + } |
| 110 | + |
| 111 | + if ('action_message' in sanitizedPayload) { |
| 112 | + delete sanitizedPayload.action_message |
| 113 | + } |
| 114 | + |
| 115 | + if ('tableData' in sanitizedPayload) { |
| 116 | + delete sanitizedPayload.tableData |
| 117 | + } |
| 118 | + |
| 119 | + if (!shouldOmitPayload) { |
| 120 | + audit.payload = sanitizedPayload.action ? sanitizedPayload.action.action_data : sanitizedPayload |
46 | 121 | } |
47 | | - delete payload.action?.action_data?.modifiedFields |
48 | | - delete payload?.modifiedFields |
49 | | - delete payload.action_message |
50 | | - delete payload.tableData |
51 | 122 |
|
52 | | - audit['payload'] = payload.action ? payload.action.action_data : payload || {} |
53 | | - audit['date'] = new Date() |
| 123 | + audit.date = new Date() |
54 | 124 | } |
55 | 125 |
|
56 | 126 | export class NoHashQueryStringUtils extends BasicQueryStringUtils { |
57 | | - parse(input, useHash) { |
| 127 | + parse( |
| 128 | + input: Parameters<BasicQueryStringUtils['parse']>[0], |
| 129 | + _useHash?: Parameters<BasicQueryStringUtils['parse']>[1], |
| 130 | + ): ReturnType<BasicQueryStringUtils['parse']> { |
58 | 131 | return super.parse(input, false) |
59 | 132 | } |
60 | 133 | } |
0 commit comments