mirror of
https://github.com/luminous-devs/lume.git
synced 2024-09-30 00:41:00 +00:00
145 lines
2.2 KiB
TypeScript
145 lines
2.2 KiB
TypeScript
export interface Settings {
|
|
autoupdate: boolean;
|
|
nsecbunker: boolean;
|
|
media: boolean;
|
|
hashtag: boolean;
|
|
lowPower: boolean;
|
|
translation: boolean;
|
|
translateApiKey: string;
|
|
instantZap: boolean;
|
|
defaultZapAmount: number;
|
|
}
|
|
|
|
export interface Keys {
|
|
npub: string;
|
|
nsec: string;
|
|
}
|
|
|
|
export enum Kind {
|
|
Metadata = 0,
|
|
Text = 1,
|
|
RecommendRelay = 2,
|
|
Contacts = 3,
|
|
Repost = 6,
|
|
Reaction = 7,
|
|
// NIP-89: App Metadata
|
|
AppRecommendation = 31989,
|
|
AppHandler = 31990,
|
|
// #TODO: Add all nostr kinds
|
|
}
|
|
|
|
export interface Event {
|
|
id: string;
|
|
pubkey: string;
|
|
created_at: number;
|
|
kind: Kind;
|
|
tags: string[][];
|
|
content: string;
|
|
sig: string;
|
|
relay?: string;
|
|
}
|
|
|
|
export interface EventWithReplies extends Event {
|
|
replies: Array<Event>;
|
|
}
|
|
|
|
export interface Metadata {
|
|
name?: string;
|
|
display_name?: string;
|
|
about?: string;
|
|
website?: string;
|
|
picture?: string;
|
|
banner?: string;
|
|
nip05?: string;
|
|
lud06?: string;
|
|
lud16?: string;
|
|
}
|
|
|
|
export interface Contact {
|
|
pubkey: string;
|
|
profile: Metadata;
|
|
}
|
|
|
|
export interface Account {
|
|
npub: string;
|
|
contacts?: string[];
|
|
interests?: Interests;
|
|
}
|
|
|
|
export interface Interests {
|
|
hashtags: string[];
|
|
users: string[];
|
|
words: string[];
|
|
}
|
|
|
|
export interface RichContent {
|
|
parsed: string;
|
|
images: string[];
|
|
videos: string[];
|
|
links: string[];
|
|
notes: string[];
|
|
}
|
|
|
|
export interface LumeColumn {
|
|
id: number;
|
|
title: string;
|
|
content: string;
|
|
}
|
|
|
|
export interface Opengraph {
|
|
url: string;
|
|
title?: string;
|
|
description?: string;
|
|
image?: string;
|
|
}
|
|
|
|
export interface NostrBuildResponse {
|
|
ok: boolean;
|
|
data?: {
|
|
message: string;
|
|
status: string;
|
|
data: Array<{
|
|
blurhash: string;
|
|
dimensions: {
|
|
width: number;
|
|
height: number;
|
|
};
|
|
mime: string;
|
|
name: string;
|
|
sha256: string;
|
|
size: number;
|
|
url: string;
|
|
}>;
|
|
};
|
|
}
|
|
|
|
export interface NIP11 {
|
|
name: string;
|
|
description: string;
|
|
pubkey: string;
|
|
contact: string;
|
|
supported_nips: number[];
|
|
software: string;
|
|
version: string;
|
|
limitation: {
|
|
[key: string]: string | number | boolean;
|
|
};
|
|
relay_countries: string[];
|
|
language_tags: string[];
|
|
tags: string[];
|
|
posting_policy: string;
|
|
payments_url: string;
|
|
icon: string[];
|
|
}
|
|
|
|
export interface NIP05 {
|
|
names: {
|
|
[key: string]: string;
|
|
};
|
|
nip46: {
|
|
[key: string]: {
|
|
[key: string]: string[];
|
|
};
|
|
};
|
|
}
|