├── .editorconfig ├── .env.example ├── .github └── workflows │ └── nuxthub.yml ├── .gitignore ├── .npmrc ├── .vscode ├── extensions.json ├── launch.json └── settings.json ├── LICENSE ├── README.md ├── README_zh.md ├── app ├── app.vue ├── components │ ├── AdminIndex.vue │ ├── AdminUpload.vue │ ├── EditPhotoDialog.vue │ ├── Header.vue │ ├── InputDatetime.vue │ ├── ItemStatus.vue │ ├── LoginForm.vue │ ├── Logo.vue │ ├── PhotoItem.vue │ ├── PhotoItemCard.vue │ ├── PhotoItemCardDefault.vue │ ├── Tag.vue │ ├── Tags.vue │ ├── ThemeCustomizer.vue │ ├── ThemePopover.vue │ ├── TooltipIconButton.vue │ ├── UploadConfig.vue │ ├── UploadConfigCard.vue │ ├── UploadPhoto.vue │ ├── UploadPhotoForm.vue │ ├── UploadPhotoImage.vue │ ├── inspira │ │ ├── BorderBeam.vue │ │ ├── IInput.vue │ │ ├── InteractiveHoverButton.vue │ │ ├── file-upload │ │ │ ├── FileUpload.vue │ │ │ └── FileUploadGrid.vue │ │ └── three-d-card │ │ │ ├── CardContainer.vue │ │ │ └── CardItem.vue │ └── ui │ │ ├── badge │ │ ├── Badge.vue │ │ └── index.ts │ │ ├── button │ │ ├── Button.vue │ │ └── index.ts │ │ ├── card │ │ ├── Card.vue │ │ ├── CardContent.vue │ │ ├── CardDescription.vue │ │ ├── CardFooter.vue │ │ ├── CardHeader.vue │ │ ├── CardTitle.vue │ │ └── index.ts │ │ ├── checkbox │ │ ├── Checkbox.vue │ │ └── index.ts │ │ ├── collapsible │ │ ├── Collapsible.vue │ │ ├── CollapsibleContent.vue │ │ ├── CollapsibleTrigger.vue │ │ └── index.ts │ │ ├── dialog │ │ ├── Dialog.vue │ │ ├── DialogClose.vue │ │ ├── DialogContent.vue │ │ ├── DialogDescription.vue │ │ ├── DialogFooter.vue │ │ ├── DialogHeader.vue │ │ ├── DialogScrollContent.vue │ │ ├── DialogTitle.vue │ │ ├── DialogTrigger.vue │ │ └── index.ts │ │ ├── form │ │ ├── FormControl.vue │ │ ├── FormDescription.vue │ │ ├── FormItem.vue │ │ ├── FormLabel.vue │ │ ├── FormMessage.vue │ │ ├── index.ts │ │ ├── injectionKeys.ts │ │ └── useFormField.ts │ │ ├── input │ │ ├── Input.vue │ │ └── index.ts │ │ ├── label │ │ ├── Label.vue │ │ └── index.ts │ │ ├── number-field │ │ ├── NumberField.vue │ │ ├── NumberFieldContent.vue │ │ ├── NumberFieldDecrement.vue │ │ ├── NumberFieldIncrement.vue │ │ ├── NumberFieldInput.vue │ │ └── index.ts │ │ ├── popover │ │ ├── Popover.vue │ │ ├── PopoverContent.vue │ │ ├── PopoverTrigger.vue │ │ └── index.ts │ │ ├── scroll-area │ │ ├── ScrollArea.vue │ │ ├── ScrollBar.vue │ │ └── index.ts │ │ ├── select │ │ ├── Select.vue │ │ ├── SelectContent.vue │ │ ├── SelectGroup.vue │ │ ├── SelectItem.vue │ │ ├── SelectItemText.vue │ │ ├── SelectLabel.vue │ │ ├── SelectScrollDownButton.vue │ │ ├── SelectScrollUpButton.vue │ │ ├── SelectSeparator.vue │ │ ├── SelectTrigger.vue │ │ ├── SelectValue.vue │ │ └── index.ts │ │ ├── skeleton │ │ ├── Skeleton.vue │ │ └── index.ts │ │ ├── sonner │ │ ├── Sonner.vue │ │ └── index.ts │ │ ├── tags-input │ │ ├── TagsInput.vue │ │ ├── TagsInputInput.vue │ │ ├── TagsInputItem.vue │ │ ├── TagsInputItemDelete.vue │ │ ├── TagsInputItemText.vue │ │ ├── TagsInputString.vue │ │ └── index.ts │ │ ├── textarea │ │ ├── Textarea.vue │ │ └── index.ts │ │ └── tooltip │ │ ├── Tooltip.vue │ │ ├── TooltipContent.vue │ │ ├── TooltipProvider.vue │ │ ├── TooltipTrigger.vue │ │ └── index.ts ├── composables │ ├── infos.ts │ ├── useAIConfig.ts │ ├── useFile.ts │ ├── useMouseState.ts │ ├── usePhotos.ts │ ├── useTheme.ts │ └── useUploadConfig.ts ├── layouts │ ├── admin-demo.vue │ ├── admin.vue │ ├── default.vue │ └── home.vue ├── lib │ └── utils.ts ├── middleware │ ├── auth.ts │ └── disable-vue-transitions.global.ts ├── pages │ ├── admin │ │ ├── demo │ │ │ ├── index.vue │ │ │ └── upload.vue │ │ ├── index.vue │ │ ├── login.vue │ │ └── upload.vue │ ├── grid.vue │ ├── index.vue │ ├── p │ │ └── [...id].vue │ └── tag │ │ └── [...tag].vue ├── stores │ └── photos.ts ├── utils │ ├── ai.ts │ ├── compress.ts │ ├── cuid.ts │ ├── date.ts │ ├── exif.ts │ ├── index.ts │ ├── shadcn.ts │ ├── types.ts │ └── worker.ts └── workers │ ├── decode.worker.ts │ └── encode.worker.ts ├── components.json ├── drizzle.config.ts ├── eslint.config.mjs ├── i18n └── locales │ ├── en.yml │ └── zh.yml ├── nuxt.config.ts ├── package.json ├── pnpm-lock.yaml ├── public ├── exif-gallery-nuxt.jpg ├── exif-gallery.svg └── favicon.svg ├── server ├── api │ ├── auth.post.ts │ ├── photos │ │ ├── [id].delete.ts │ │ ├── [id].get.ts │ │ ├── [id].put.ts │ │ ├── index.get.ts │ │ └── upload.post.ts │ └── tags │ │ └── index.get.ts ├── database │ ├── migrations │ │ ├── 0000_serious_shinobi_shaw.sql │ │ ├── 0001_noisy_lightspeed.sql │ │ ├── 0002_colorful_reptil.sql │ │ ├── 0003_smooth_doctor_doom.sql │ │ ├── fix_tags.sql │ │ └── meta │ │ │ ├── 0000_snapshot.json │ │ │ ├── 0001_snapshot.json │ │ │ ├── 0002_snapshot.json │ │ │ ├── 0003_snapshot.json │ │ │ └── _journal.json │ └── schema.ts ├── routes │ └── photos │ │ └── [pathname].get.ts ├── tsconfig.json └── utils │ ├── drizzle.ts │ ├── tag.ts │ └── utils.ts ├── tsconfig.json ├── types ├── auth.d.ts └── index.ts └── uno.config.ts /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/.editorconfig -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/.env.example -------------------------------------------------------------------------------- /.github/workflows/nuxthub.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/.github/workflows/nuxthub.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/.gitignore -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/.npmrc -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/README.md -------------------------------------------------------------------------------- /README_zh.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/README_zh.md -------------------------------------------------------------------------------- /app/app.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/app.vue -------------------------------------------------------------------------------- /app/components/AdminIndex.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/AdminIndex.vue -------------------------------------------------------------------------------- /app/components/AdminUpload.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/AdminUpload.vue -------------------------------------------------------------------------------- /app/components/EditPhotoDialog.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/EditPhotoDialog.vue -------------------------------------------------------------------------------- /app/components/Header.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/Header.vue -------------------------------------------------------------------------------- /app/components/InputDatetime.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/InputDatetime.vue -------------------------------------------------------------------------------- /app/components/ItemStatus.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ItemStatus.vue -------------------------------------------------------------------------------- /app/components/LoginForm.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/LoginForm.vue -------------------------------------------------------------------------------- /app/components/Logo.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/Logo.vue -------------------------------------------------------------------------------- /app/components/PhotoItem.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/PhotoItem.vue -------------------------------------------------------------------------------- /app/components/PhotoItemCard.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/PhotoItemCard.vue -------------------------------------------------------------------------------- /app/components/PhotoItemCardDefault.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/PhotoItemCardDefault.vue -------------------------------------------------------------------------------- /app/components/Tag.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/Tag.vue -------------------------------------------------------------------------------- /app/components/Tags.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/Tags.vue -------------------------------------------------------------------------------- /app/components/ThemeCustomizer.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ThemeCustomizer.vue -------------------------------------------------------------------------------- /app/components/ThemePopover.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ThemePopover.vue -------------------------------------------------------------------------------- /app/components/TooltipIconButton.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/TooltipIconButton.vue -------------------------------------------------------------------------------- /app/components/UploadConfig.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/UploadConfig.vue -------------------------------------------------------------------------------- /app/components/UploadConfigCard.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/UploadConfigCard.vue -------------------------------------------------------------------------------- /app/components/UploadPhoto.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/UploadPhoto.vue -------------------------------------------------------------------------------- /app/components/UploadPhotoForm.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/UploadPhotoForm.vue -------------------------------------------------------------------------------- /app/components/UploadPhotoImage.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/UploadPhotoImage.vue -------------------------------------------------------------------------------- /app/components/inspira/BorderBeam.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/inspira/BorderBeam.vue -------------------------------------------------------------------------------- /app/components/inspira/IInput.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/inspira/IInput.vue -------------------------------------------------------------------------------- /app/components/inspira/InteractiveHoverButton.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/inspira/InteractiveHoverButton.vue -------------------------------------------------------------------------------- /app/components/inspira/file-upload/FileUpload.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/inspira/file-upload/FileUpload.vue -------------------------------------------------------------------------------- /app/components/inspira/file-upload/FileUploadGrid.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/inspira/file-upload/FileUploadGrid.vue -------------------------------------------------------------------------------- /app/components/inspira/three-d-card/CardContainer.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/inspira/three-d-card/CardContainer.vue -------------------------------------------------------------------------------- /app/components/inspira/three-d-card/CardItem.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/inspira/three-d-card/CardItem.vue -------------------------------------------------------------------------------- /app/components/ui/badge/Badge.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/badge/Badge.vue -------------------------------------------------------------------------------- /app/components/ui/badge/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/badge/index.ts -------------------------------------------------------------------------------- /app/components/ui/button/Button.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/button/Button.vue -------------------------------------------------------------------------------- /app/components/ui/button/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/button/index.ts -------------------------------------------------------------------------------- /app/components/ui/card/Card.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/card/Card.vue -------------------------------------------------------------------------------- /app/components/ui/card/CardContent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/card/CardContent.vue -------------------------------------------------------------------------------- /app/components/ui/card/CardDescription.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/card/CardDescription.vue -------------------------------------------------------------------------------- /app/components/ui/card/CardFooter.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/card/CardFooter.vue -------------------------------------------------------------------------------- /app/components/ui/card/CardHeader.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/card/CardHeader.vue -------------------------------------------------------------------------------- /app/components/ui/card/CardTitle.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/card/CardTitle.vue -------------------------------------------------------------------------------- /app/components/ui/card/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/card/index.ts -------------------------------------------------------------------------------- /app/components/ui/checkbox/Checkbox.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/checkbox/Checkbox.vue -------------------------------------------------------------------------------- /app/components/ui/checkbox/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/checkbox/index.ts -------------------------------------------------------------------------------- /app/components/ui/collapsible/Collapsible.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/collapsible/Collapsible.vue -------------------------------------------------------------------------------- /app/components/ui/collapsible/CollapsibleContent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/collapsible/CollapsibleContent.vue -------------------------------------------------------------------------------- /app/components/ui/collapsible/CollapsibleTrigger.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/collapsible/CollapsibleTrigger.vue -------------------------------------------------------------------------------- /app/components/ui/collapsible/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/collapsible/index.ts -------------------------------------------------------------------------------- /app/components/ui/dialog/Dialog.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/Dialog.vue -------------------------------------------------------------------------------- /app/components/ui/dialog/DialogClose.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/DialogClose.vue -------------------------------------------------------------------------------- /app/components/ui/dialog/DialogContent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/DialogContent.vue -------------------------------------------------------------------------------- /app/components/ui/dialog/DialogDescription.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/DialogDescription.vue -------------------------------------------------------------------------------- /app/components/ui/dialog/DialogFooter.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/DialogFooter.vue -------------------------------------------------------------------------------- /app/components/ui/dialog/DialogHeader.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/DialogHeader.vue -------------------------------------------------------------------------------- /app/components/ui/dialog/DialogScrollContent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/DialogScrollContent.vue -------------------------------------------------------------------------------- /app/components/ui/dialog/DialogTitle.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/DialogTitle.vue -------------------------------------------------------------------------------- /app/components/ui/dialog/DialogTrigger.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/DialogTrigger.vue -------------------------------------------------------------------------------- /app/components/ui/dialog/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/dialog/index.ts -------------------------------------------------------------------------------- /app/components/ui/form/FormControl.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/form/FormControl.vue -------------------------------------------------------------------------------- /app/components/ui/form/FormDescription.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/form/FormDescription.vue -------------------------------------------------------------------------------- /app/components/ui/form/FormItem.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/form/FormItem.vue -------------------------------------------------------------------------------- /app/components/ui/form/FormLabel.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/form/FormLabel.vue -------------------------------------------------------------------------------- /app/components/ui/form/FormMessage.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/form/FormMessage.vue -------------------------------------------------------------------------------- /app/components/ui/form/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/form/index.ts -------------------------------------------------------------------------------- /app/components/ui/form/injectionKeys.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/form/injectionKeys.ts -------------------------------------------------------------------------------- /app/components/ui/form/useFormField.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/form/useFormField.ts -------------------------------------------------------------------------------- /app/components/ui/input/Input.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/input/Input.vue -------------------------------------------------------------------------------- /app/components/ui/input/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/input/index.ts -------------------------------------------------------------------------------- /app/components/ui/label/Label.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/label/Label.vue -------------------------------------------------------------------------------- /app/components/ui/label/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/label/index.ts -------------------------------------------------------------------------------- /app/components/ui/number-field/NumberField.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/number-field/NumberField.vue -------------------------------------------------------------------------------- /app/components/ui/number-field/NumberFieldContent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/number-field/NumberFieldContent.vue -------------------------------------------------------------------------------- /app/components/ui/number-field/NumberFieldDecrement.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/number-field/NumberFieldDecrement.vue -------------------------------------------------------------------------------- /app/components/ui/number-field/NumberFieldIncrement.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/number-field/NumberFieldIncrement.vue -------------------------------------------------------------------------------- /app/components/ui/number-field/NumberFieldInput.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/number-field/NumberFieldInput.vue -------------------------------------------------------------------------------- /app/components/ui/number-field/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/number-field/index.ts -------------------------------------------------------------------------------- /app/components/ui/popover/Popover.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/popover/Popover.vue -------------------------------------------------------------------------------- /app/components/ui/popover/PopoverContent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/popover/PopoverContent.vue -------------------------------------------------------------------------------- /app/components/ui/popover/PopoverTrigger.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/popover/PopoverTrigger.vue -------------------------------------------------------------------------------- /app/components/ui/popover/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/popover/index.ts -------------------------------------------------------------------------------- /app/components/ui/scroll-area/ScrollArea.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/scroll-area/ScrollArea.vue -------------------------------------------------------------------------------- /app/components/ui/scroll-area/ScrollBar.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/scroll-area/ScrollBar.vue -------------------------------------------------------------------------------- /app/components/ui/scroll-area/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/scroll-area/index.ts -------------------------------------------------------------------------------- /app/components/ui/select/Select.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/Select.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectContent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectContent.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectGroup.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectGroup.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectItem.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectItem.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectItemText.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectItemText.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectLabel.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectLabel.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectScrollDownButton.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectScrollDownButton.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectScrollUpButton.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectScrollUpButton.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectSeparator.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectSeparator.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectTrigger.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectTrigger.vue -------------------------------------------------------------------------------- /app/components/ui/select/SelectValue.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/SelectValue.vue -------------------------------------------------------------------------------- /app/components/ui/select/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/select/index.ts -------------------------------------------------------------------------------- /app/components/ui/skeleton/Skeleton.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/skeleton/Skeleton.vue -------------------------------------------------------------------------------- /app/components/ui/skeleton/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/skeleton/index.ts -------------------------------------------------------------------------------- /app/components/ui/sonner/Sonner.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/sonner/Sonner.vue -------------------------------------------------------------------------------- /app/components/ui/sonner/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Toaster } from './Sonner.vue' 2 | -------------------------------------------------------------------------------- /app/components/ui/tags-input/TagsInput.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tags-input/TagsInput.vue -------------------------------------------------------------------------------- /app/components/ui/tags-input/TagsInputInput.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tags-input/TagsInputInput.vue -------------------------------------------------------------------------------- /app/components/ui/tags-input/TagsInputItem.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tags-input/TagsInputItem.vue -------------------------------------------------------------------------------- /app/components/ui/tags-input/TagsInputItemDelete.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tags-input/TagsInputItemDelete.vue -------------------------------------------------------------------------------- /app/components/ui/tags-input/TagsInputItemText.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tags-input/TagsInputItemText.vue -------------------------------------------------------------------------------- /app/components/ui/tags-input/TagsInputString.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tags-input/TagsInputString.vue -------------------------------------------------------------------------------- /app/components/ui/tags-input/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tags-input/index.ts -------------------------------------------------------------------------------- /app/components/ui/textarea/Textarea.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/textarea/Textarea.vue -------------------------------------------------------------------------------- /app/components/ui/textarea/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/textarea/index.ts -------------------------------------------------------------------------------- /app/components/ui/tooltip/Tooltip.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tooltip/Tooltip.vue -------------------------------------------------------------------------------- /app/components/ui/tooltip/TooltipContent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tooltip/TooltipContent.vue -------------------------------------------------------------------------------- /app/components/ui/tooltip/TooltipProvider.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tooltip/TooltipProvider.vue -------------------------------------------------------------------------------- /app/components/ui/tooltip/TooltipTrigger.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tooltip/TooltipTrigger.vue -------------------------------------------------------------------------------- /app/components/ui/tooltip/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/components/ui/tooltip/index.ts -------------------------------------------------------------------------------- /app/composables/infos.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/composables/infos.ts -------------------------------------------------------------------------------- /app/composables/useAIConfig.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/composables/useAIConfig.ts -------------------------------------------------------------------------------- /app/composables/useFile.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/composables/useFile.ts -------------------------------------------------------------------------------- /app/composables/useMouseState.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/composables/useMouseState.ts -------------------------------------------------------------------------------- /app/composables/usePhotos.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/composables/usePhotos.ts -------------------------------------------------------------------------------- /app/composables/useTheme.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/composables/useTheme.ts -------------------------------------------------------------------------------- /app/composables/useUploadConfig.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/composables/useUploadConfig.ts -------------------------------------------------------------------------------- /app/layouts/admin-demo.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/layouts/admin-demo.vue -------------------------------------------------------------------------------- /app/layouts/admin.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/layouts/admin.vue -------------------------------------------------------------------------------- /app/layouts/default.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/layouts/default.vue -------------------------------------------------------------------------------- /app/layouts/home.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/layouts/home.vue -------------------------------------------------------------------------------- /app/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/lib/utils.ts -------------------------------------------------------------------------------- /app/middleware/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/middleware/auth.ts -------------------------------------------------------------------------------- /app/middleware/disable-vue-transitions.global.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/middleware/disable-vue-transitions.global.ts -------------------------------------------------------------------------------- /app/pages/admin/demo/index.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/pages/admin/demo/index.vue -------------------------------------------------------------------------------- /app/pages/admin/demo/upload.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/pages/admin/demo/upload.vue -------------------------------------------------------------------------------- /app/pages/admin/index.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/pages/admin/index.vue -------------------------------------------------------------------------------- /app/pages/admin/login.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/pages/admin/login.vue -------------------------------------------------------------------------------- /app/pages/admin/upload.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/pages/admin/upload.vue -------------------------------------------------------------------------------- /app/pages/grid.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/pages/grid.vue -------------------------------------------------------------------------------- /app/pages/index.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/pages/index.vue -------------------------------------------------------------------------------- /app/pages/p/[...id].vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/pages/p/[...id].vue -------------------------------------------------------------------------------- /app/pages/tag/[...tag].vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/pages/tag/[...tag].vue -------------------------------------------------------------------------------- /app/stores/photos.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/stores/photos.ts -------------------------------------------------------------------------------- /app/utils/ai.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/utils/ai.ts -------------------------------------------------------------------------------- /app/utils/compress.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/utils/compress.ts -------------------------------------------------------------------------------- /app/utils/cuid.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/utils/cuid.ts -------------------------------------------------------------------------------- /app/utils/date.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/utils/date.ts -------------------------------------------------------------------------------- /app/utils/exif.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/utils/exif.ts -------------------------------------------------------------------------------- /app/utils/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/utils/index.ts -------------------------------------------------------------------------------- /app/utils/shadcn.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/utils/shadcn.ts -------------------------------------------------------------------------------- /app/utils/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/utils/types.ts -------------------------------------------------------------------------------- /app/utils/worker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/utils/worker.ts -------------------------------------------------------------------------------- /app/workers/decode.worker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/workers/decode.worker.ts -------------------------------------------------------------------------------- /app/workers/encode.worker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/app/workers/encode.worker.ts -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/components.json -------------------------------------------------------------------------------- /drizzle.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/drizzle.config.ts -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/eslint.config.mjs -------------------------------------------------------------------------------- /i18n/locales/en.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/i18n/locales/en.yml -------------------------------------------------------------------------------- /i18n/locales/zh.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/i18n/locales/zh.yml -------------------------------------------------------------------------------- /nuxt.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/nuxt.config.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /public/exif-gallery-nuxt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/public/exif-gallery-nuxt.jpg -------------------------------------------------------------------------------- /public/exif-gallery.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/public/exif-gallery.svg -------------------------------------------------------------------------------- /public/favicon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/public/favicon.svg -------------------------------------------------------------------------------- /server/api/auth.post.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/api/auth.post.ts -------------------------------------------------------------------------------- /server/api/photos/[id].delete.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/api/photos/[id].delete.ts -------------------------------------------------------------------------------- /server/api/photos/[id].get.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/api/photos/[id].get.ts -------------------------------------------------------------------------------- /server/api/photos/[id].put.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/api/photos/[id].put.ts -------------------------------------------------------------------------------- /server/api/photos/index.get.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/api/photos/index.get.ts -------------------------------------------------------------------------------- /server/api/photos/upload.post.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/api/photos/upload.post.ts -------------------------------------------------------------------------------- /server/api/tags/index.get.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/api/tags/index.get.ts -------------------------------------------------------------------------------- /server/database/migrations/0000_serious_shinobi_shaw.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/migrations/0000_serious_shinobi_shaw.sql -------------------------------------------------------------------------------- /server/database/migrations/0001_noisy_lightspeed.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/migrations/0001_noisy_lightspeed.sql -------------------------------------------------------------------------------- /server/database/migrations/0002_colorful_reptil.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE `tags` ADD `photo_count` integer DEFAULT 0 NOT NULL; -------------------------------------------------------------------------------- /server/database/migrations/0003_smooth_doctor_doom.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/migrations/0003_smooth_doctor_doom.sql -------------------------------------------------------------------------------- /server/database/migrations/fix_tags.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/migrations/fix_tags.sql -------------------------------------------------------------------------------- /server/database/migrations/meta/0000_snapshot.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/migrations/meta/0000_snapshot.json -------------------------------------------------------------------------------- /server/database/migrations/meta/0001_snapshot.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/migrations/meta/0001_snapshot.json -------------------------------------------------------------------------------- /server/database/migrations/meta/0002_snapshot.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/migrations/meta/0002_snapshot.json -------------------------------------------------------------------------------- /server/database/migrations/meta/0003_snapshot.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/migrations/meta/0003_snapshot.json -------------------------------------------------------------------------------- /server/database/migrations/meta/_journal.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/migrations/meta/_journal.json -------------------------------------------------------------------------------- /server/database/schema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/database/schema.ts -------------------------------------------------------------------------------- /server/routes/photos/[pathname].get.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/routes/photos/[pathname].get.ts -------------------------------------------------------------------------------- /server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../.nuxt/tsconfig.server.json" 3 | } 4 | -------------------------------------------------------------------------------- /server/utils/drizzle.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/utils/drizzle.ts -------------------------------------------------------------------------------- /server/utils/tag.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/utils/tag.ts -------------------------------------------------------------------------------- /server/utils/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/server/utils/utils.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/tsconfig.json -------------------------------------------------------------------------------- /types/auth.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/types/auth.d.ts -------------------------------------------------------------------------------- /types/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/types/index.ts -------------------------------------------------------------------------------- /uno.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wiidede/exif-gallery-nuxt/HEAD/uno.config.ts --------------------------------------------------------------------------------