Initial Commit
linter / quality (push) Canceled after 0s
tests / ci (8.3) (push) Canceled after 0s
tests / ci (8.4) (push) Canceled after 0s
tests / ci (8.5) (push) Canceled after 0s

This commit is contained in:
2026-08-28 21:50:26 +10:00
commit d8d4ecbe8a
142 changed files with 25234 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
export type User = {
id: number;
name: string;
email: string;
avatar?: string;
email_verified_at: string | null;
two_factor_enabled?: boolean;
created_at: string;
updated_at: string;
[key: string]: unknown;
};
export type Auth = {
user: User;
};
/* @chisel-passkeys */
export type Passkey = {
id: number;
name: string;
authenticator: string | null;
created_at_diff: string;
last_used_at_diff: string | null;
};
/* @end-chisel-passkeys */
export type TwoFactorConfigContent = {
title: string;
description: string;
buttonText: string;
};
+50
View File
@@ -0,0 +1,50 @@
export interface CarouselImage {
url: string | null;
video_url: string | null;
accessibility_caption: string | null;
}
export interface Post {
id: string;
code: string | null;
username: string;
full_name: string | null;
caption: string | null;
accessibility_caption: string | null;
is_video: boolean;
is_carousel: boolean;
like_count: number | null;
comment_count: number | null;
taken_at: number | null;
image_url: string | null;
video_url: string | null;
carousel_images: CarouselImage[] | null;
scraped_at: string; // ISO datetime string
permalink: string | null; // appended accessor
taken_at_date: string | null; // appended accessor, ISO datetime string
profile_pic_url: string | null;
}
export interface StoryLink {
username: string;
profile_pic_url: string | null;
is_unread: boolean;
muted: boolean;
}
export interface StoryItem {
id: string;
code: string | null;
is_video: boolean;
image_url: string | null;
video_url: string | null;
accessibility_caption: string | null;
taken_at: number;
}
export interface StoryDetail {
username: string;
profile_pic_url: string | null;
start_index: number;
items: StoryItem[];
}
+33
View File
@@ -0,0 +1,33 @@
import type { Auth } from '@/types/auth';
// Extend ImportMeta interface for Vite...
declare module 'vite/client' {
interface ImportMetaEnv {
readonly VITE_APP_NAME: string;
[key: string]: string | boolean | undefined;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
readonly glob: <T>(pattern: string) => Record<string, () => Promise<T>>;
}
}
declare module '@inertiajs/core' {
export interface InertiaConfig {
sharedPageProps: {
name: string;
auth: Auth;
sidebarOpen: boolean;
[key: string]: unknown;
};
}
}
declare module 'vue' {
interface ComponentCustomProperties {
$inertia: typeof Router;
$page: Page;
$headManager: ReturnType<typeof createHeadManager>;
}
}
+3
View File
@@ -0,0 +1,3 @@
export * from './auth';
export * from './navigation';
export * from './ui';
+14
View File
@@ -0,0 +1,14 @@
import type { InertiaLinkProps } from '@inertiajs/vue3';
import type { LucideIcon } from '@lucide/vue';
export type BreadcrumbItem = {
title: string;
href: NonNullable<InertiaLinkProps['href']>;
};
export type NavItem = {
title: string;
href: NonNullable<InertiaLinkProps['href']>;
icon?: LucideIcon;
isActive?: boolean;
};
+9
View File
@@ -0,0 +1,9 @@
export type Appearance = 'light' | 'dark' | 'system';
export type ResolvedAppearance = 'light' | 'dark';
export type AppVariant = 'header' | 'sidebar';
export type FlashToast = {
type: 'success' | 'info' | 'warning' | 'error';
message: string;
};
+5
View File
@@ -0,0 +1,5 @@
declare module '*.vue' {
import type { DefineComponent } from 'vue';
const component: DefineComponent;
export default component;
}