2023-12-08 18:16:07 +00:00
|
|
|
import { env } from '@typebot.io/env'
|
|
|
|
|
2024-02-22 13:45:15 +01:00
|
|
|
type Params = {
|
|
|
|
debug: boolean
|
|
|
|
}
|
|
|
|
|
|
|
|
export const computeRiskLevel = (typebot: any, params?: Params) => {
|
2023-12-18 09:12:34 +01:00
|
|
|
const stringifiedTypebot = JSON.stringify(typebot)
|
2024-07-02 11:03:33 +02:00
|
|
|
console.log(
|
|
|
|
'debug cumulative',
|
|
|
|
env.RADAR_CUMULATIVE_KEYWORDS?.forEach((set) =>
|
|
|
|
set.forEach((keyword) =>
|
|
|
|
keyword.forEach((k) => {
|
|
|
|
console.log(
|
|
|
|
`(?<!(https?://|@)[^\\s"]*)\\b${k}${k.includes('$') ? '' : `\\b`}`
|
|
|
|
)
|
|
|
|
})
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
2023-12-08 18:16:07 +00:00
|
|
|
if (
|
2023-12-20 08:02:32 +01:00
|
|
|
env.RADAR_HIGH_RISK_KEYWORDS?.some((keyword) =>
|
2024-03-20 17:01:53 +01:00
|
|
|
new RegExp(
|
|
|
|
`(?<!(https?://|@)[^\\s"]*)\\b${keyword}${
|
|
|
|
keyword.includes('$') ? '' : `\\b`
|
|
|
|
}`,
|
|
|
|
'gi'
|
|
|
|
).test(stringifiedTypebot)
|
2023-12-08 18:16:07 +00:00
|
|
|
)
|
2024-02-22 13:45:15 +01:00
|
|
|
) {
|
|
|
|
if (params?.debug) {
|
|
|
|
console.log(
|
|
|
|
'High risk keywords detected:',
|
|
|
|
env.RADAR_HIGH_RISK_KEYWORDS?.find((keyword) =>
|
2024-03-20 17:01:53 +01:00
|
|
|
new RegExp(
|
|
|
|
`(?<!(https?://|@)[^\\s"]*)\\b${keyword}${
|
|
|
|
keyword.includes('$') ? '' : `\\b`
|
|
|
|
}`,
|
|
|
|
'gi'
|
|
|
|
).test(stringifiedTypebot)
|
2024-02-22 13:45:15 +01:00
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
2023-12-08 18:16:07 +00:00
|
|
|
return 100
|
2024-02-22 13:45:15 +01:00
|
|
|
}
|
|
|
|
|
2023-12-18 09:12:34 +01:00
|
|
|
if (
|
2024-01-08 14:34:35 +01:00
|
|
|
env.RADAR_CUMULATIVE_KEYWORDS?.some((set) =>
|
2024-01-10 09:55:02 +01:00
|
|
|
set.every((keyword) =>
|
2024-01-15 10:13:55 +01:00
|
|
|
keyword.some((k) =>
|
2024-03-20 17:01:53 +01:00
|
|
|
new RegExp(
|
|
|
|
`(?<!(https?://|@)[^\\s"]*)\\b${k}${k.includes('$') ? '' : `\\b`}`,
|
|
|
|
'gi'
|
|
|
|
).test(stringifiedTypebot)
|
2024-01-10 09:55:02 +01:00
|
|
|
)
|
|
|
|
)
|
2023-12-19 16:13:21 +01:00
|
|
|
)
|
2024-02-22 13:45:15 +01:00
|
|
|
) {
|
|
|
|
if (params?.debug) {
|
|
|
|
console.log(
|
|
|
|
'Cumulative keywords detected:',
|
|
|
|
env.RADAR_CUMULATIVE_KEYWORDS?.find((set) =>
|
|
|
|
set.every((keyword) =>
|
|
|
|
keyword.some((k) =>
|
2024-03-20 17:01:53 +01:00
|
|
|
new RegExp(
|
|
|
|
`(?<!(https?://|@)[^\\s"]*)\\b${k}${
|
|
|
|
k.includes('$') ? '' : `\\b`
|
|
|
|
}`,
|
|
|
|
'gi'
|
|
|
|
).test(stringifiedTypebot)
|
2024-02-22 13:45:15 +01:00
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
2023-12-19 16:13:21 +01:00
|
|
|
return 100
|
2024-02-22 13:45:15 +01:00
|
|
|
}
|
2023-12-19 16:13:21 +01:00
|
|
|
if (
|
2023-12-20 08:02:32 +01:00
|
|
|
env.RADAR_INTERMEDIATE_RISK_KEYWORDS?.some((keyword) =>
|
2023-12-18 09:12:34 +01:00
|
|
|
stringifiedTypebot.toLowerCase().includes(keyword)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
return 50
|
|
|
|
return 0
|
2023-12-08 18:16:07 +00:00
|
|
|
}
|