├── .npmrc ├── apps └── chat │ ├── lib │ ├── index.ts │ ├── utils │ │ ├── cn.ts │ │ └── validation.ts │ ├── markdown.ts │ ├── openai │ │ └── client.ts │ ├── swagger │ │ └── client.ts │ └── chat │ │ └── service.ts │ ├── public │ ├── googlec4580f1dfaa2707f.html │ ├── favicon.ico │ ├── sns │ │ ├── x.webp │ │ ├── github.png │ │ ├── bluesky.png │ │ ├── discord.png │ │ └── instagram.png │ ├── opengraph.png │ ├── fonts │ │ ├── Pretendard-Medium.woff2 │ │ ├── Pretendard-ExtraBold.woff2 │ │ ├── Pretendard-Regular.woff2 │ │ ├── Pretendard-SemiBold.woff2 │ │ └── font.ts │ └── demo │ │ └── icon │ │ └── paw.svg │ ├── eslint.config.mjs │ ├── next.config.mjs │ ├── postcss.config.js │ ├── app │ ├── robots.ts │ ├── metadata.ts │ ├── JsonLd.tsx │ ├── chat │ │ ├── page.tsx │ │ └── input │ │ │ └── page.tsx │ ├── sitemap.ts │ ├── provider.tsx │ ├── page.tsx │ ├── globals.css │ └── layout.tsx │ ├── tailwind.config.js │ ├── components │ ├── features │ │ ├── landing │ │ │ ├── demo │ │ │ │ ├── types.ts │ │ │ │ ├── icons │ │ │ │ │ ├── coming-soon.tsx │ │ │ │ │ └── petstore.tsx │ │ │ │ └── container.tsx │ │ │ ├── landing-footer.tsx │ │ │ ├── sns │ │ │ │ └── sns-list.tsx │ │ │ ├── landing-popular-demos.tsx │ │ │ └── landing-hero.tsx │ │ ├── workspace │ │ │ ├── chat-panel.tsx │ │ │ ├── swagger-panel.tsx │ │ │ ├── mobile │ │ │ │ └── mobile-split-layout.tsx │ │ │ ├── desktop │ │ │ │ └── desktop-split-layout.tsx │ │ │ └── workspace-layout.tsx │ │ ├── chat │ │ │ ├── input │ │ │ │ └── chat-input.tsx │ │ │ └── content │ │ │ │ ├── message-history.tsx │ │ │ │ └── chat-content.tsx │ │ └── swagger │ │ │ ├── viewer │ │ │ └── swagger-wrapper.tsx │ │ │ └── input │ │ │ └── swagger-input.tsx │ └── common │ │ ├── feedback │ │ ├── loading-dots.tsx │ │ └── content-skeleton.tsx │ │ ├── buttons │ │ ├── button.tsx │ │ └── back-button.tsx │ │ ├── header │ │ └── header.tsx │ │ ├── inputs │ │ ├── input.tsx │ │ ├── text-area.tsx │ │ └── file-uploader.tsx │ │ ├── toggle │ │ └── toggle-switch.tsx │ │ ├── toast │ │ └── toast.tsx │ │ └── tooltips │ │ └── info-tooltip.tsx │ ├── types │ ├── chat.ts │ └── openai.ts │ ├── constants │ └── prompt.ts │ ├── hooks │ ├── useThrottle.ts │ └── useMediaQuery.ts │ ├── store │ ├── useChatStore.ts │ └── useSwaggerStore.ts │ ├── .gitignore │ ├── tsconfig.json │ ├── package.json │ └── README.md ├── pnpm-workspace.yaml ├── README.md ├── .prettierrc ├── .vscode └── settings.json ├── turbo.json ├── .eslintrc.json ├── .gitignore ├── package.json └── tsconfig.json /.npmrc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/chat/lib/index.ts: -------------------------------------------------------------------------------- 1 | export { cn } from './utils/cn'; 2 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "packages/*" 3 | - "apps/*" -------------------------------------------------------------------------------- /apps/chat/public/googlec4580f1dfaa2707f.html: -------------------------------------------------------------------------------- 1 | google-site-verification: googlec4580f1dfaa2707f.html -------------------------------------------------------------------------------- /apps/chat/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: ['../../.eslintrc.json'], 4 | }; 5 | -------------------------------------------------------------------------------- /apps/chat/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/favicon.ico -------------------------------------------------------------------------------- /apps/chat/public/sns/x.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/sns/x.webp -------------------------------------------------------------------------------- /apps/chat/public/opengraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/opengraph.png -------------------------------------------------------------------------------- /apps/chat/public/sns/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/sns/github.png -------------------------------------------------------------------------------- /apps/chat/next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /apps/chat/public/sns/bluesky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/sns/bluesky.png -------------------------------------------------------------------------------- /apps/chat/public/sns/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/sns/discord.png -------------------------------------------------------------------------------- /apps/chat/public/sns/instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/sns/instagram.png -------------------------------------------------------------------------------- /apps/chat/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /apps/chat/public/fonts/Pretendard-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/fonts/Pretendard-Medium.woff2 -------------------------------------------------------------------------------- /apps/chat/public/fonts/Pretendard-ExtraBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/fonts/Pretendard-ExtraBold.woff2 -------------------------------------------------------------------------------- /apps/chat/public/fonts/Pretendard-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/fonts/Pretendard-Regular.woff2 -------------------------------------------------------------------------------- /apps/chat/public/fonts/Pretendard-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anonymousRecords/swagger-chat/HEAD/apps/chat/public/fonts/Pretendard-SemiBold.woff2 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Don't Read README also. 2 | # Go to https://swagger-chat.vercel.app/ 3 | # And Just Chat 4 | 5 | https://deepwiki.com/anonymousRecords/swagger-chat/1-overview 6 | -------------------------------------------------------------------------------- /apps/chat/lib/utils/cn.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from 'clsx'; 2 | import { twMerge } from 'tailwind-merge'; 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)); 6 | } 7 | -------------------------------------------------------------------------------- /apps/chat/app/robots.ts: -------------------------------------------------------------------------------- 1 | export default function robots() { 2 | return { 3 | rules: { 4 | userAgent: '*', 5 | allow: '/', 6 | }, 7 | sitemap: 'https://swagger-chat.vercel.app/sitemap.xml', 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "es5", 4 | "printWidth": 100, 5 | "tabWidth": 2, 6 | "semi": true, 7 | "plugins": [ 8 | "prettier-plugin-tailwindcss" 9 | ] 10 | } -------------------------------------------------------------------------------- /apps/chat/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ['./app/**/*.{js,ts,jsx,tsx,mdx}', './components/**/*.{js,ts,jsx,tsx,mdx}'], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | }; 9 | -------------------------------------------------------------------------------- /apps/chat/components/features/landing/demo/types.ts: -------------------------------------------------------------------------------- 1 | export type DemoType = { 2 | name: string; 3 | description: string; 4 | subDescription?: string; 5 | url: string; 6 | gradientColors?: { 7 | from: string; 8 | to: string; 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /apps/chat/app/metadata.ts: -------------------------------------------------------------------------------- 1 | export const defaultMetadata = { 2 | title: { 3 | template: '%s | Swagger Chat', 4 | default: 'Swagger Chat', 5 | }, 6 | description: 'Chat with your Swagger API Documentation', 7 | metadataBase: new URL('https://swagger-chat.vercel.app'), 8 | }; 9 | -------------------------------------------------------------------------------- /apps/chat/app/JsonLd.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | type JsonLdProps = { 4 | data: Record; 5 | }; 6 | 7 | export const JsonLd = ({ data }: JsonLdProps) => { 8 | return ( 9 |