dymo-api
Version:
Flow system for Dymo API.
345 lines (344 loc) • 8.83 kB
TypeScript
import type * as React from "react";
export type PhoneData = {
iso: any;
phone: string;
} | string;
export interface CreditCardData {
pan: string | number;
expirationDate?: string;
cvc?: string | number;
cvv?: string | number;
}
export type VerifyPlugins = "blocklist" | "compromiseDetector" | "nsfw" | "reputation" | "riskScore" | "torNetwork" | "typosquatting" | "urlShortener";
export interface Validator {
url?: string;
email?: string;
phone?: PhoneData;
domain?: string;
creditCard?: string | CreditCardData;
ip?: string;
wallet?: string;
userAgent?: string;
plugins?: VerifyPlugins[];
}
export interface SRNG {
min: number;
max: number;
quantity?: number;
}
export type Attachment = {
filename: string;
path?: string;
content?: string | Buffer;
cid?: string;
};
export interface ServerEmailConfig {
host: string;
port: number;
secure: boolean;
auth: {
user: string;
pass: string;
};
dkim?: {
domainName: string;
keySelector: string;
privateKey: string;
};
}
export type SendEmail = {
from: string;
to: string;
subject: string;
attachments?: Attachment[];
options?: {
priority?: "high" | "normal" | "low";
composeTailwindClasses?: boolean;
compileToCssSafe?: boolean;
onlyVerifiedEmails?: boolean;
};
} & ({
html: string;
react?: never;
} | {
react: React.ReactNode;
html?: never;
});
export interface PrayerTimesData {
lat?: number;
lon?: number;
}
export interface InputSatinizerData {
input?: string;
}
export interface IsValidPwdData {
email?: string;
password?: string;
bannedWords?: string | string[];
min?: number;
max?: number;
}
export interface SRNComponent {
integer: number;
float: number;
}
export interface SRNSummary {
values: SRNComponent[];
executionTime: number;
}
export interface CountryPrayerTimes {
country: string;
prayerTimesByTimezone: {
timezone: string;
prayerTimes: {
coordinates: string;
date: string;
calculationParameters: string;
fajr: string;
sunrise: string;
dhuhr: string;
asr: string;
sunset: string;
maghrib: string;
isha: string;
};
}[];
}
export interface SatinizedInputAnalysis {
input: string;
formats: {
ascii: boolean;
bitcoinAddress: boolean;
cLikeIdentifier: boolean;
coordinates: boolean;
crediCard: boolean;
date: boolean;
discordUsername: boolean;
doi: boolean;
domain: boolean;
e164Phone: boolean;
email: boolean;
emoji: boolean;
hanUnification: boolean;
hashtag: boolean;
hyphenWordBreak: boolean;
ipv6: boolean;
ip: boolean;
jiraTicket: boolean;
macAddress: boolean;
name: boolean;
number: boolean;
panFromGstin: boolean;
password: boolean;
port: boolean;
tel: boolean;
text: boolean;
semver: boolean;
ssn: boolean;
uuid: boolean;
url: boolean;
urlSlug: boolean;
username: boolean;
};
includes: {
spaces: boolean;
hasSql: boolean;
hasNoSql: boolean;
letters: boolean;
uppercase: boolean;
lowercase: boolean;
symbols: boolean;
digits: boolean;
};
}
export interface EmailStatus {
status: boolean;
error?: string;
}
export interface ValidationDetail {
validation: string;
message: string;
word?: string;
}
export interface PasswordValidationResult {
valid: boolean;
password: string;
details: ValidationDetail[];
}
export interface DataValidationAnalysis {
url: {
valid: boolean;
fraud: boolean;
freeSubdomain: boolean;
customTLD: boolean;
url: string;
domain: string;
plugins: {
blocklist?: boolean;
compromiseDetector?: boolean;
nsfw?: boolean;
reputation?: "low" | "medium" | "high" | "very-high" | "education" | "governmental" | "unknown";
riskScore?: number;
torNetwork?: boolean;
typosquatting?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
urlShortener?: boolean;
};
};
email: {
valid: boolean;
fraud: boolean;
proxiedEmail: boolean;
freeSubdomain: boolean;
corporate: boolean;
email: string;
realUser: string;
didYouMean: string | null;
noReply: boolean;
customTLD: boolean;
domain: string;
roleAccount: boolean;
plugins: {
blocklist?: boolean;
compromiseDetector?: boolean;
nsfw?: boolean;
reputation?: "low" | "medium" | "high" | "very-high" | "education" | "governmental" | "unknown";
riskScore?: number;
torNetwork?: boolean;
typosquatting?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
urlShortener?: boolean;
};
};
phone: {
valid: boolean;
fraud: boolean;
phone: string;
prefix: string;
number: string;
lineType: "PREMIUM_RATE" | "TOLL_FREE" | "SHARED_COST" | "VOIP" | "PERSONAL_NUMBER" | "PAGER" | "UAN" | "VOICEMAIL" | "FIXED_LINE_OR_MOBILE" | "FIXED_LINE" | "MOBILE" | "Unknown";
carrierInfo: {
carrierName: string;
accuracy: number;
carrierCountry: string;
carrierCountryCode: string;
};
country: string;
countryCode: string;
plugins: {
blocklist?: boolean;
riskScore?: number;
};
};
domain: {
valid: boolean;
fraud: boolean;
freeSubdomain: boolean;
customTLD: boolean;
domain: string;
plugins: {
blocklist?: boolean;
compromiseDetector?: boolean;
nsfw?: boolean;
reputation?: "low" | "medium" | "high" | "very-high" | "education" | "governmental" | "unknown";
riskScore?: number;
torNetwork?: boolean;
typosquatting?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
urlShortener?: boolean;
};
};
creditCard: {
valid: boolean;
fraud: boolean;
test: boolean;
type: string;
creditCard: string;
plugins: {
blocklist?: boolean;
riskScore?: number;
};
};
ip: {
valid: boolean;
type: "IPv4" | "IPv6" | "Invalid";
class: "A" | "B" | "C" | "D" | "E" | "Unknown" | "None";
fraud: boolean;
ip: string;
continent: string;
continentCode: string;
country: string;
countryCode: string;
region: string;
regionName: string;
city: string;
district: string;
zipCode: string;
lat: number;
lon: number;
timezone: string;
offset: number;
currency: string;
isp: string;
org: string;
as: string;
asname: string;
mobile: boolean;
proxy: boolean;
hosting: boolean;
plugins: {
blocklist?: boolean;
riskScore?: number;
};
};
wallet: {
valid: boolean;
fraud: boolean;
wallet: string;
type: string;
plugins: {
blocklist?: boolean;
riskScore?: number;
torNetwork?: boolean;
};
};
userAgent: {
valid: boolean;
type?: string;
clientSlug?: string | null;
clientName?: string;
version?: string | null;
userAgent?: string;
fraud?: boolean;
bot?: boolean;
info?: string;
os?: string;
device: {
type?: string;
brand?: string;
};
plugins?: {
blocklist?: boolean;
riskScore?: number;
};
};
}
export type SchemaType = "string" | "number" | "boolean" | "array" | "object";
export interface JsonSchemaProperty {
type: SchemaType;
items?: JsonSchemaProperty;
properties?: Record<string, JsonSchemaProperty>;
required?: string[];
description?: string;
format?: string;
enum?: unknown[];
minimum?: number;
maximum?: number;
minLength?: number;
maxLength?: number;
pattern?: string;
[key: string]: unknown;
}
export interface ExtractWithTextly {
data: string;
format: {
[key: string]: JsonSchemaProperty;
};
}