MCPcopy
hub / github.com/CodebuffAI/codebuff / privacySignalsFromSpur

Function privacySignalsFromSpur

web/src/server/free-mode-country.ts:343–381  ·  view source on GitHub ↗
(
  data: Record<string, unknown>,
)

Source from the content-addressed store, hash-verified

341}
342
343export function privacySignalsFromSpur(
344 data: Record<string, unknown>,
345): FreeModeIpPrivacySignal[] {
346 const signals: FreeModeIpPrivacySignal[] = []
347
348 const services = Array.isArray(data.services) ? data.services : []
349 for (const service of services) {
350 const signal = signalFromSpurService(service)
351 if (signal) pushUniqueSignal(signals, signal)
352 }
353
354 const tunnels = Array.isArray(data.tunnels) ? data.tunnels : []
355 for (const tunnel of tunnels) {
356 if (!tunnel || typeof tunnel !== 'object') continue
357 const tunnelRecord = tunnel as Record<string, unknown>
358 const operatorSignal = signalFromSpurValue(tunnelRecord.operator)
359 if (operatorSignal) pushUniqueSignal(signals, operatorSignal)
360 const signal = signalFromSpurValue(tunnelRecord.type)
361 if (signal) pushUniqueSignal(signals, signal)
362 }
363
364 const client =
365 data.client && typeof data.client === 'object'
366 ? (data.client as Record<string, unknown>)
367 : {}
368 const behaviors = Array.isArray(client.behaviors) ? client.behaviors : []
369 for (const behavior of behaviors) {
370 const signal = signalFromSpurValue(behavior)
371 if (signal) pushUniqueSignal(signals, signal)
372 }
373
374 const proxies = Array.isArray(client.proxies) ? client.proxies : []
375 for (const proxy of proxies) {
376 const signal = signalFromSpurValue(proxy) ?? 'proxy'
377 pushUniqueSignal(signals, signal)
378 }
379
380 return signals
381}
382
383export async function lookupIpinfoPrivacy(params: {
384 ip: string

Callers 2

lookupSpurIpPrivacyFunction · 0.85

Calls 3

signalFromSpurServiceFunction · 0.85
pushUniqueSignalFunction · 0.85
signalFromSpurValueFunction · 0.85

Tested by

no test coverage detected