update global (texte + logo)
This commit is contained in:
11
Linkwarden/types/colorthief.d.ts
vendored
Normal file
11
Linkwarden/types/colorthief.d.ts
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
declare module "colorthief" {
|
||||
export type RGBColor = [number, number, number];
|
||||
export default class ColorThief {
|
||||
getColor: (img: HTMLImageElement | null, quality: number = 10) => RGBColor;
|
||||
getPalette: (
|
||||
img: HTMLImageElement | null,
|
||||
colorCount: number = 10,
|
||||
quality: number = 10
|
||||
) => RGBColor[];
|
||||
}
|
||||
}
|
413
Linkwarden/types/enviornment.d.ts
vendored
Normal file
413
Linkwarden/types/enviornment.d.ts
vendored
Normal file
@ -0,0 +1,413 @@
|
||||
declare global {
|
||||
namespace NodeJS {
|
||||
interface ProcessEnv {
|
||||
NEXTAUTH_SECRET: string;
|
||||
DATABASE_URL: string;
|
||||
NEXTAUTH_URL: string;
|
||||
NEXT_PUBLIC_DISABLE_REGISTRATION?: string;
|
||||
PAGINATION_TAKE_COUNT?: string;
|
||||
STORAGE_FOLDER?: string;
|
||||
AUTOSCROLL_TIMEOUT?: string;
|
||||
RE_ARCHIVE_LIMIT?: string;
|
||||
NEXT_PUBLIC_MAX_FILE_SIZE?: string;
|
||||
MAX_LINKS_PER_USER?: string;
|
||||
ARCHIVE_TAKE_COUNT?: string;
|
||||
IGNORE_UNAUTHORIZED_CA?: string;
|
||||
|
||||
SPACES_KEY?: string;
|
||||
SPACES_SECRET?: string;
|
||||
SPACES_ENDPOINT?: string;
|
||||
SPACES_BUCKET_NAME?: string;
|
||||
SPACES_REGION?: string;
|
||||
SPACES_FORCE_PATH_STYLE?: string;
|
||||
|
||||
NEXT_PUBLIC_CREDENTIALS_ENABLED?: string;
|
||||
DISABLE_NEW_SSO_USERS?: string;
|
||||
|
||||
NEXT_PUBLIC_EMAIL_PROVIDER?: string;
|
||||
EMAIL_FROM?: string;
|
||||
EMAIL_SERVER?: string;
|
||||
|
||||
NEXT_PUBLIC_STRIPE?: string;
|
||||
STRIPE_SECRET_KEY?: string;
|
||||
MONTHLY_PRICE_ID?: string;
|
||||
YEARLY_PRICE_ID?: string;
|
||||
NEXT_PUBLIC_STRIPE_BILLING_PORTAL_URL?: string;
|
||||
NEXT_PUBLIC_TRIAL_PERIOD_DAYS?: string;
|
||||
BASE_URL?: string;
|
||||
|
||||
// Proxy settings
|
||||
PROXY?: string;
|
||||
PROXY_USERNAME?: string;
|
||||
PROXY_PASSWORD?: string;
|
||||
PROXY_BYPASS?: string;
|
||||
|
||||
// PDF archive settings
|
||||
PDF_MARGIN_TOP?: string;
|
||||
PDF_MARGIN_BOTTOM?: string;
|
||||
|
||||
//
|
||||
// SSO Providers
|
||||
//
|
||||
|
||||
// 42 School
|
||||
NEXT_PUBLIC_FORTYTWO_ENABLED?: string;
|
||||
FORTYTWO_CUSTOM_NAME?: string;
|
||||
FORTYTWO_CLIENT_ID?: string;
|
||||
FORTYTWO_CLIENT_SECRET?: string;
|
||||
|
||||
// Apple
|
||||
NEXT_PUBLIC_APPLE_ENABLED?: string;
|
||||
APPLE_CUSTOM_NAME?: string;
|
||||
APPLE_ID?: string;
|
||||
APPLE_SECRET?: string;
|
||||
|
||||
// Atlassian
|
||||
NEXT_PUBLIC_ATLASSIAN_ENABLED?: string;
|
||||
ATLASSIAN_CUSTOM_NAME?: string;
|
||||
ATLASSIAN_CLIENT_ID?: string;
|
||||
ATLASSIAN_CLIENT_SECRET?: string;
|
||||
ATLASSIAN_SCOPE?: string;
|
||||
|
||||
// Auth0
|
||||
NEXT_PUBLIC_AUTH0_ENABLED?: string;
|
||||
AUTH0_CUSTOM_NAME?: string;
|
||||
AUTH0_ISSUER?: string;
|
||||
AUTH0_CLIENT_SECRET?: string;
|
||||
AUTH0_CLIENT_ID?: string;
|
||||
|
||||
// Authentik
|
||||
NEXT_PUBLIC_AUTHENTIK_ENABLED?: string;
|
||||
AUTHENTIK_CUSTOM_NAME?: string;
|
||||
AUTHENTIK_ISSUER?: string;
|
||||
AUTHENTIK_CLIENT_ID?: string;
|
||||
AUTHENTIK_CLIENT_SECRET?: string;
|
||||
|
||||
// TODO: Azure AD B2C
|
||||
// TODO: Azure AD
|
||||
|
||||
// Battle.net
|
||||
NEXT_PUBLIC_BATTLENET_ENABLED?: string;
|
||||
BATTLENET_CUSTOM_NAME?: string;
|
||||
BATTLENET_CLIENT_ID?: string;
|
||||
BATTLENET_CLIENT_SECRET?: string;
|
||||
BATLLENET_ISSUER?: string;
|
||||
|
||||
// Box
|
||||
NEXT_PUBLIC_BOX_ENABLED?: string;
|
||||
BOX_CUSTOM_NAME?: string;
|
||||
BOX_CLIENT_ID?: string;
|
||||
BOX_CLIENT_SECRET?: string;
|
||||
|
||||
// TODO: BoxyHQ SAML
|
||||
|
||||
// Bungie
|
||||
NEXT_PUBLIC_BUNGIE_ENABLED?: string;
|
||||
BUNGIE_CUSTOM_NAME?: string;
|
||||
BUNGIE_CLIENT_ID?: string;
|
||||
BUNGIE_CLIENT_SECRET?: string;
|
||||
BUNGIE_API_KEY?: string;
|
||||
|
||||
// Cognito
|
||||
NEXT_PUBLIC_COGNITO_ENABLED?: string;
|
||||
COGNITO_CUSTOM_NAME?: string;
|
||||
COGNITO_CLIENT_ID?: string;
|
||||
COGNITO_CLIENT_SECRET?: string;
|
||||
COGNITO_ISSUER?: string;
|
||||
|
||||
// Coinbase
|
||||
NEXT_PUBLIC_COINBASE_ENABLED?: string;
|
||||
COINBASE_CUSTOM_NAME?: string;
|
||||
COINBASE_CLIENT_ID?: string;
|
||||
COINBASE_CLIENT_SECRET?: string;
|
||||
|
||||
// Discord
|
||||
NEXT_PUBLIC_DISCORD_ENABLED?: string;
|
||||
DISCORD_CUSTOM_NAME?: string;
|
||||
DISCORD_CLIENT_ID?: string;
|
||||
DISCORD_CLIENT_SECRET?: string;
|
||||
|
||||
// Dropbox
|
||||
NEXT_PUBLIC_DROPBOX_ENABLED?: string;
|
||||
DROPBOX_CUSTOM_NAME?: string;
|
||||
DROPBOX_CLIENT_ID?: string;
|
||||
DROPBOX_CLIENT_SECRET?: string;
|
||||
|
||||
// DuendeIndentityServer6
|
||||
NEXT_PUBLIC_DUENDE_IDS6_ENABLED?: string;
|
||||
DUENDE_IDS6_CUSTOM_NAME?: string;
|
||||
DUENDE_IDS6_CLIENT_ID?: string;
|
||||
DUENDE_IDS6_CLIENT_SECRET?: string;
|
||||
DUENDE_IDS6_ISSUER?: string;
|
||||
|
||||
// EVE Online
|
||||
NEXT_PUBLIC_EVEONLINE_ENABLED?: string;
|
||||
EVEONLINE_CUSTOM_NAME?: string;
|
||||
EVEONLINE_CLIENT_ID?: string;
|
||||
EVEONLINE_CLIENT_SECRET?: string;
|
||||
|
||||
// Facebook
|
||||
NEXT_PUBLIC_FACEBOOK_ENABLED?: string;
|
||||
FACEBOOK_CUSTOM_NAME?: string;
|
||||
FACEBOOK_CLIENT_ID?: string;
|
||||
FACEBOOK_CLIENT_SECRET?: string;
|
||||
|
||||
// FACEIT
|
||||
NEXT_PUBLIC_FACEIT_ENABLED?: string;
|
||||
FACEIT_CUSTOM_NAME?: string;
|
||||
FACEIT_CLIENT_ID?: string;
|
||||
FACEIT_CLIENT_SECRET?: string;
|
||||
|
||||
// Foursquare
|
||||
NEXT_PUBLIC_FOURSQUARE_ENABLED?: string;
|
||||
FOURSQUARE_CUSTOM_NAME?: string;
|
||||
FOURSQUARE_CLIENT_ID?: string;
|
||||
FOURSQUARE_CLIENT_SECRET?: string;
|
||||
FOURSQUARE_APIVERSION?: string;
|
||||
|
||||
// Freshbooks
|
||||
NEXT_PUBLIC_FRESHBOOKS_ENABLED?: string;
|
||||
FRESHBOOKS_CUSTOM_NAME?: string;
|
||||
FRESHBOOKS_CLIENT_ID?: string;
|
||||
FRESHBOOKS_CLIENT_SECRET?: string;
|
||||
|
||||
// FusionAuth
|
||||
NEXT_PUBLIC_FUSIONAUTH_ENABLED?: string;
|
||||
FUSIONAUTH_CUSTOM_NAME?: string;
|
||||
FUSIONAUTH_CLIENT_ID?: string;
|
||||
FUSIONAUTH_CLIENT_SECRET?: string;
|
||||
FUSIONAUTH_ISSUER?: string;
|
||||
FUSIONAUTH_TENANT_ID?: string;
|
||||
|
||||
// GitHub
|
||||
NEXT_PUBLIC_GITHUB_ENABLED?: string;
|
||||
GITHUB_CUSTOM_NAME?: string;
|
||||
GITHUB_CLIENT_ID?: string;
|
||||
GITHUB_CLIENT_SECRET?: string;
|
||||
|
||||
// GitLab
|
||||
NEXT_PUBLIC_GITLAB_ENABLED?: string;
|
||||
GITLAB_CUSTOM_NAME?: string;
|
||||
GITLAB_CLIENT_ID?: string;
|
||||
GITLAB_CLIENT_SECRET?: string;
|
||||
|
||||
// Google
|
||||
NEXT_PUBLIC_GOOGLE_ENABLED?: string;
|
||||
GOOGLE_CUSTOM_NAME?: string;
|
||||
GOOGLE_CLIENT_ID?: string;
|
||||
GOOGLE_CLIENT_SECRET?: string;
|
||||
|
||||
// HubSpot
|
||||
NEXT_PUBLIC_HUBSPOT_ENABLED?: string;
|
||||
HUBSPOT_CUSTOM_NAME?: string;
|
||||
HUBSPOT_CLIENT_ID?: string;
|
||||
HUBSPOT_CLIENT_SECRET?: string;
|
||||
|
||||
// IdentityServer4
|
||||
NEXT_PUBLIC_IDS4_ENABLED?: string;
|
||||
IDS4_CUSTOM_NAME?: string;
|
||||
IDS4_CLIENT_ID?: string;
|
||||
IDS4_CLIENT_SECRET?: string;
|
||||
IDS4_ISSUER?: string;
|
||||
|
||||
// TODO: Instagram (Doesn't return email)
|
||||
|
||||
// Kakao
|
||||
NEXT_PUBLIC_KAKAO_ENABLED?: string;
|
||||
KAKAO_CUSTOM_NAME?: string;
|
||||
KAKAO_CLIENT_ID?: string;
|
||||
KAKAO_CLIENT_SECRET?: string;
|
||||
|
||||
// Keycloak
|
||||
NEXT_PUBLIC_KEYCLOAK_ENABLED?: string;
|
||||
KEYCLOAK_CUSTOM_NAME?: string;
|
||||
KEYCLOAK_ISSUER?: string;
|
||||
KEYCLOAK_CLIENT_ID?: string;
|
||||
KEYCLOAK_CLIENT_SECRET?: string;
|
||||
|
||||
// LINE
|
||||
NEXT_PUBLIC_LINE_ENABLED?: string;
|
||||
LINE_CUSTOM_NAME?: string;
|
||||
LINE_CLIENT_ID?: string;
|
||||
LINE_CLIENT_SECRET?: string;
|
||||
|
||||
// LinkedIn
|
||||
NEXT_PUBLIC_LINKEDIN_ENABLED?: string;
|
||||
LINKEDIN_CUSTOM_NAME?: string;
|
||||
LINKEDIN_CLIENT_ID?: string;
|
||||
LINKEDIN_CLIENT_SECRET?: string;
|
||||
|
||||
// Mailchimp
|
||||
NEXT_PUBLIC_MAILCHIMP_ENABLED?: string;
|
||||
MAILCHIMP_CUSTOM_NAME?: string;
|
||||
MAILCHIMP_CLIENT_ID?: string;
|
||||
MAILCHIMP_CLIENT_SECRET?: string;
|
||||
|
||||
// Mail.ru
|
||||
NEXT_PUBLIC_MAILRU_ENABLED?: string;
|
||||
MAILRU_CUSTOM_NAME?: string;
|
||||
MAILRU_CLIENT_ID?: string;
|
||||
MAILRU_CLIENT_SECRET?: string;
|
||||
|
||||
// TODO: Medium (Doesn't return email)
|
||||
|
||||
// Naver
|
||||
NEXT_PUBLIC_NAVER_ENABLED?: string;
|
||||
NAVER_CUSTOM_NAME?: string;
|
||||
NAVER_CLIENT_ID?: string;
|
||||
NAVER_CLIENT_SECRET?: string;
|
||||
|
||||
// Netlify
|
||||
NEXT_PUBLIC_NETLIFY_ENABLED?: string;
|
||||
NETLIFY_CUSTOM_NAME?: string;
|
||||
NETLIFY_CLIENT_ID?: string;
|
||||
NETLIFY_CLIENT_SECRET?: string;
|
||||
|
||||
// Okta
|
||||
NEXT_PUBLIC_OKTA_ENABLED?: string;
|
||||
OKTA_CUSTOM_NAME?: string;
|
||||
OKTA_CLIENT_ID?: string;
|
||||
OKTA_CLIENT_SECRET?: string;
|
||||
OKTA_ISSUER?: string;
|
||||
|
||||
// OneLogin
|
||||
NEXT_PUBLIC_ONELOGIN_ENABLED?: string;
|
||||
ONELOGIN_CUSTOM_NAME?: string;
|
||||
ONELOGIN_CLIENT_ID?: string;
|
||||
ONELOGIN_CLIENT_SECRET?: string;
|
||||
ONELOGIN_ISSUER?: string;
|
||||
|
||||
// Osso
|
||||
NEXT_PUBLIC_OSSO_ENABLED?: string;
|
||||
OSSO_CUSTOM_NAME?: string;
|
||||
OSSO_CLIENT_ID?: string;
|
||||
OSSO_CLIENT_SECRET?: string;
|
||||
OSSO_ISSUER?: string;
|
||||
|
||||
// osu!
|
||||
NEXT_PUBLIC_OSU_ENABLED?: string;
|
||||
OSU_CUSTOM_NAME?: string;
|
||||
OSU_CLIENT_ID?: string;
|
||||
OSU_CLIENT_SECRET?: string;
|
||||
|
||||
// Patreon
|
||||
NEXT_PUBLIC_PATREON_ENABLED?: string;
|
||||
PATREON_CUSTOM_NAME?: string;
|
||||
PATREON_CLIENT_ID?: string;
|
||||
PATREON_CLIENT_SECRET?: string;
|
||||
|
||||
// Pinterest
|
||||
NEXT_PUBLIC_PINTEREST_ENABLED?: string;
|
||||
PINTEREST_CUSTOM_NAME?: string;
|
||||
PINTEREST_CLIENT_ID?: string;
|
||||
PINTEREST_CLIENT_SECRET?: string;
|
||||
|
||||
// Pipedrive
|
||||
NEXT_PUBLIC_PIPEDRIVE_ENABLED?: string;
|
||||
PIPEDRIVE_CUSTOM_NAME?: string;
|
||||
PIPEDRIVE_CLIENT_ID?: string;
|
||||
PIPEDRIVE_CLIENT_SECRET?: string;
|
||||
|
||||
// Reddit
|
||||
// TODO (1h tokens)
|
||||
NEXT_PUBLIC_REDDIT_ENABLED?: string;
|
||||
REDDIT_CUSTOM_NAME?: string;
|
||||
REDDIT_CLIENT_ID?: string;
|
||||
REDDIT_CLIENT_SECRET?: string;
|
||||
|
||||
// Salesforce
|
||||
NEXT_PUBLIC_SALESFORCE_ENABLED?: string;
|
||||
SALESFORCE_CUSTOM_NAME?: string;
|
||||
SALESFORCE_CLIENT_ID?: string;
|
||||
SALESFORCE_CLIENT_SECRET?: string;
|
||||
|
||||
// Slack
|
||||
NEXT_PUBLIC_SLACK_ENABLED?: string;
|
||||
SLACK_CUSTOM_NAME?: string;
|
||||
SLACK_CLIENT_ID?: string;
|
||||
SLACK_CLIENT_SECRET?: string;
|
||||
|
||||
// Spotify
|
||||
NEXT_PUBLIC_SPOTIFY_ENABLED?: string;
|
||||
SPOTIFY_CUSTOM_NAME?: string;
|
||||
SPOTIFY_CLIENT_ID?: string;
|
||||
SPOTIFY_CLIENT_SECRET?: string;
|
||||
|
||||
// Strava
|
||||
NEXT_PUBLIC_STRAVA_ENABLED?: string;
|
||||
STRAVA_CUSTOM_NAME?: string;
|
||||
STRAVA_CLIENT_ID?: string;
|
||||
STRAVA_CLIENT_SECRET?: string;
|
||||
|
||||
// Todoist
|
||||
NEXT_PUBLIC_TODOIST_ENABLED?: string;
|
||||
TODOIST_CUSTOM_NAME?: string;
|
||||
TODOIST_CLIENT_ID?: string;
|
||||
TODOIST_CLIENT_SECRET?: string;
|
||||
|
||||
// TODO: Trakt (Doesn't return email)
|
||||
|
||||
// Twitch
|
||||
NEXT_PUBLIC_TWITCH_ENABLED?: string;
|
||||
TWITCH_CUSTOM_NAME?: string;
|
||||
TWITCH_CLIENT_ID?: string;
|
||||
TWITCH_CLIENT_SECRET?: string;
|
||||
|
||||
// TODO: Twitter (OAuth 1.0)
|
||||
|
||||
// United Effects
|
||||
NEXT_PUBLIC_UNITED_EFFECTS_ENABLED?: string;
|
||||
UNITED_EFFECTS_CUSTOM_NAME?: string;
|
||||
UNITED_EFFECTS_CLIENT_ID?: string;
|
||||
UNITED_EFFECTS_CLIENT_SECRET?: string;
|
||||
UNITED_EFFECTS_ISSUER?: string;
|
||||
|
||||
// VK
|
||||
NEXT_PUBLIC_VK_ENABLED?: string;
|
||||
VK_CUSTOM_NAME?: string;
|
||||
VK_CLIENT_ID?: string;
|
||||
VK_CLIENT_SECRET?: string;
|
||||
|
||||
// Wikimedia
|
||||
NEXT_PUBLIC_WIKIMEDIA_ENABLED?: string;
|
||||
WIKIMEDIA_CUSTOM_NAME?: string;
|
||||
WIKIMEDIA_CLIENT_ID?: string;
|
||||
WIKIMEDIA_CLIENT_SECRET?: string;
|
||||
|
||||
// Wordpress.com
|
||||
NEXT_PUBLIC_WORDPRESS_ENABLED?: string;
|
||||
WORDPRESS_CUSTOM_NAME?: string;
|
||||
WORDPRESS_CLIENT_ID?: string;
|
||||
WORDPRESS_CLIENT_SECRET?: string;
|
||||
|
||||
// TODO: WorkOS (Custom flow)
|
||||
|
||||
// Yandex
|
||||
NEXT_PUBLIC_YANDEX_ENABLED?: string;
|
||||
YANDEX_CUSTOM_NAME?: string;
|
||||
YANDEX_CLIENT_ID?: string;
|
||||
YANDEX_CLIENT_SECRET?: string;
|
||||
|
||||
// Zitadel
|
||||
NEXT_PUBLIC_ZITADEL_ENABLED?: string;
|
||||
ZITADEL_CUSTOM_NAME?: string;
|
||||
ZITADEL_CLIENT_ID?: string;
|
||||
ZITADEL_CLIENT_SECRET?: string;
|
||||
ZITADEL_ISSUER?: string;
|
||||
|
||||
// Zoho
|
||||
NEXT_PUBLIC_ZOHO_ENABLED?: string;
|
||||
ZOHO_CUSTOM_NAME?: string;
|
||||
ZOHO_CLIENT_ID?: string;
|
||||
ZOHO_CLIENT_SECRET?: string;
|
||||
|
||||
// Zoom
|
||||
NEXT_PUBLIC_ZOOM_ENABLED?: string;
|
||||
ZOOM_CUSTOM_NAME?: string;
|
||||
ZOOM_CLIENT_ID?: string;
|
||||
ZOOM_CLIENT_SECRET?: string;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export {};
|
151
Linkwarden/types/global.ts
Normal file
151
Linkwarden/types/global.ts
Normal file
@ -0,0 +1,151 @@
|
||||
import { Collection, Link, Tag, User } from "@prisma/client";
|
||||
import Stripe from "stripe";
|
||||
|
||||
type OptionalExcluding<T, TRequired extends keyof T> = Partial<T> &
|
||||
Pick<T, TRequired>;
|
||||
|
||||
export interface LinkIncludingShortenedCollectionAndTags
|
||||
extends Omit<
|
||||
Link,
|
||||
| "id"
|
||||
| "createdAt"
|
||||
| "collectionId"
|
||||
| "updatedAt"
|
||||
| "lastPreserved"
|
||||
| "importDate"
|
||||
> {
|
||||
id?: number;
|
||||
createdAt?: string;
|
||||
importDate?: string;
|
||||
collectionId?: number;
|
||||
tags: Tag[];
|
||||
pinnedBy?: {
|
||||
id: number;
|
||||
}[];
|
||||
collection: OptionalExcluding<Collection, "name" | "ownerId">;
|
||||
}
|
||||
|
||||
export interface Member {
|
||||
collectionId?: number;
|
||||
userId: number;
|
||||
canCreate: boolean;
|
||||
canUpdate: boolean;
|
||||
canDelete: boolean;
|
||||
user: OptionalExcluding<User, "username" | "name" | "id">;
|
||||
}
|
||||
|
||||
export interface CollectionIncludingMembersAndLinkCount
|
||||
extends Omit<Collection, "id" | "createdAt" | "ownerId" | "updatedAt"> {
|
||||
id?: number;
|
||||
ownerId?: number;
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
_count?: { links: number };
|
||||
members: Member[];
|
||||
}
|
||||
|
||||
export interface TagIncludingLinkCount extends Tag {
|
||||
_count?: { links: number };
|
||||
}
|
||||
|
||||
export interface AccountSettings extends User {
|
||||
newPassword?: string;
|
||||
whitelistedUsers: string[];
|
||||
subscription?: {
|
||||
active?: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
interface LinksIncludingTags extends Link {
|
||||
tags: Tag[];
|
||||
}
|
||||
|
||||
export interface PublicCollectionIncludingLinks extends Collection {
|
||||
links: LinksIncludingTags[];
|
||||
}
|
||||
|
||||
export enum ViewMode {
|
||||
Card = "card",
|
||||
Grid = "grid",
|
||||
List = "list",
|
||||
}
|
||||
|
||||
export enum Sort {
|
||||
DateNewestFirst,
|
||||
DateOldestFirst,
|
||||
NameAZ,
|
||||
NameZA,
|
||||
DescriptionAZ,
|
||||
DescriptionZA,
|
||||
}
|
||||
|
||||
export type LinkRequestQuery = {
|
||||
sort: Sort;
|
||||
cursor?: number;
|
||||
collectionId?: number;
|
||||
tagId?: number;
|
||||
pinnedOnly?: boolean;
|
||||
searchQueryString?: string;
|
||||
searchByName?: boolean;
|
||||
searchByUrl?: boolean;
|
||||
searchByDescription?: boolean;
|
||||
searchByTextContent?: boolean;
|
||||
searchByTags?: boolean;
|
||||
};
|
||||
|
||||
export type PublicLinkRequestQuery = {
|
||||
cursor?: number;
|
||||
collectionId: number;
|
||||
};
|
||||
|
||||
interface CollectionIncludingLinks extends Collection {
|
||||
links: LinksIncludingTags[];
|
||||
}
|
||||
|
||||
export interface Backup extends Omit<User, "password" | "id"> {
|
||||
collections: CollectionIncludingLinks[];
|
||||
}
|
||||
|
||||
export type MigrationRequest = {
|
||||
format: MigrationFormat;
|
||||
data: string;
|
||||
};
|
||||
|
||||
export enum MigrationFormat {
|
||||
linkwarden,
|
||||
htmlFile,
|
||||
}
|
||||
|
||||
export enum Plan {
|
||||
monthly,
|
||||
yearly,
|
||||
}
|
||||
|
||||
export type DeleteUserBody = {
|
||||
password: string;
|
||||
cancellation_details?: {
|
||||
comment?: string;
|
||||
feedback?: Stripe.SubscriptionCancelParams.CancellationDetails.Feedback;
|
||||
};
|
||||
};
|
||||
|
||||
export enum ArchivedFormat {
|
||||
png,
|
||||
jpeg,
|
||||
pdf,
|
||||
readability,
|
||||
}
|
||||
|
||||
export enum LinkType {
|
||||
url,
|
||||
pdf,
|
||||
image,
|
||||
}
|
||||
|
||||
export enum TokenExpiry {
|
||||
sevenDays,
|
||||
oneMonth,
|
||||
twoMonths,
|
||||
threeMonths,
|
||||
never,
|
||||
}
|
22
Linkwarden/types/himalaya.d.ts
vendored
Normal file
22
Linkwarden/types/himalaya.d.ts
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
declare module "himalaya" {
|
||||
export interface Attribute {
|
||||
key: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export interface TextNode {
|
||||
type: "text";
|
||||
content: string;
|
||||
}
|
||||
|
||||
export type Node = TextNode | Element;
|
||||
|
||||
export interface Element {
|
||||
type: "element";
|
||||
tagName: string;
|
||||
attributes: Attribute[];
|
||||
children: Node[];
|
||||
}
|
||||
|
||||
export function parse(html: string): Node[];
|
||||
}
|
24
Linkwarden/types/next-auth.d.ts
vendored
Normal file
24
Linkwarden/types/next-auth.d.ts
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
import NextAuth from "next-auth";
|
||||
import { JWT } from "next-auth/jwt";
|
||||
|
||||
declare module "next-auth" {
|
||||
interface Session {
|
||||
user: {
|
||||
id: number;
|
||||
};
|
||||
}
|
||||
|
||||
interface User {
|
||||
id: number;
|
||||
}
|
||||
}
|
||||
|
||||
declare module "next-auth/jwt" {
|
||||
interface JWT {
|
||||
sub?: number;
|
||||
id: number;
|
||||
iat: number;
|
||||
exp: number;
|
||||
jti: string;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user