lume/packages/types/index.d.ts

144 lines
2.2 KiB
TypeScript
Raw Normal View History

2024-02-09 08:33:27 +00:00
export interface Settings {
autoupdate: boolean;
nsecbunker: boolean;
media: boolean;
hashtag: boolean;
lowPower: boolean;
translation: boolean;
translateApiKey: string;
instantZap: boolean;
defaultZapAmount: number;
}
2024-02-06 12:28:46 +00:00
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;
}
2024-02-09 08:33:27 +00:00
export interface EventWithReplies extends Event {
replies: Array<Event>;
}
2024-02-06 12:28:46 +00:00
export interface Metadata {
2024-02-09 08:33:27 +00:00
name?: string;
display_name?: string;
about?: string;
website?: string;
picture?: string;
banner?: string;
nip05?: string;
lud06?: string;
lud16?: string;
2024-02-06 12:28:46 +00:00
}
2024-02-23 07:56:24 +00:00
export interface Contact {
pubkey: string;
profile: Metadata;
}
2024-02-19 02:58:27 +00:00
export interface Account {
2024-02-12 02:08:35 +00:00
npub: string;
2024-02-08 14:24:08 +00:00
contacts?: string[];
interests?: Interests;
2024-02-06 12:28:46 +00:00
}
export interface Interests {
hashtags: string[];
users: string[];
words: string[];
}
2023-12-25 07:28:39 +00:00
export interface RichContent {
parsed: string;
images: string[];
videos: string[];
links: string[];
notes: string[];
}
2024-02-09 08:33:27 +00:00
export interface LumeColumn {
id: number;
title: string;
content: string;
}
2023-12-25 07:28:39 +00:00
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;
};
2024-01-10 02:22:13 +00:00
nip46: {
[key: string]: {
[key: string]: string[];
};
};
2023-12-25 07:28:39 +00:00
}