diff --git a/app/sitemap.ts b/app/sitemap.ts new file mode 100644 index 00000000..b45fa381 --- /dev/null +++ b/app/sitemap.ts @@ -0,0 +1,225 @@ +import { MetadataRoute } from 'next' + +const WP_API_URL = process.env.NEXT_PUBLIC_WORDPRESS_API_URL || 'https://wp.keploy.io/graphql' + +interface WPPostNode { + slug: string + modified: string + categories?: { + nodes: { + slug: string + }[] + } +} + +async function fetchGraphQL(query: string, variables: Record = {}): Promise { + try { + const res = await fetch(WP_API_URL, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ query, variables }), + next: { revalidate: 86400 }, // 24-hour cache + }) + + if (!res.ok) { + console.error("fetchGraphQL res not ok:", res.status, res.statusText) + return null + } + const json = await res.json() + return json.data as T + } catch (error) { + console.error('WPGraphQL fetch error:', error) + return null + } +} + +async function fetchAllPosts(): Promise { + const allPosts: WPPostNode[] = [] + let hasNextPage = true + let after = '' + + while (hasNextPage) { + const query = ` + query AllPosts($after: String) { + posts(first: 100, after: $after) { + edges { + node { + slug + modified + categories { + nodes { + slug + } + } + } + } + pageInfo { + hasNextPage + endCursor + } + } + } + ` + const data = await fetchGraphQL(query, { after: after || null }) + if (!data?.posts) break + + allPosts.push(...data.posts.edges.map((edge: any) => edge.node)) + hasNextPage = data.posts.pageInfo.hasNextPage + after = data.posts.pageInfo.endCursor + } + return allPosts +} + +async function fetchAllTaxonomies(type: 'tags' | 'categories' | 'users'): Promise<{ slug: string; lastModified: Date }[]> { + const allNodes: { slug: string; lastModified: Date }[] = [] + let hasNextPage = true + let after = '' + + while (hasNextPage) { + const query = ` + query All${type}($after: String) { + ${type}(first: 100, after: $after) { + edges { + node { + slug + posts(first: 1) { + nodes { + modified + } + } + } + } + pageInfo { hasNextPage endCursor } + } + } + ` + const data = await fetchGraphQL(query, { after: after || null }) + if (!data?.[type]) { + if (process.env.NODE_ENV === 'development') { + console.debug(`fetchGraphQL returned missing data for ${type}`) + } + break + } + + if (process.env.NODE_ENV === 'development') { + console.debug(`Fetched ${type} page with ${data[type].edges.length} items. hasNextPage: ${data[type].pageInfo.hasNextPage}, endCursor: ${data[type].pageInfo.endCursor}`) + } + + // Failsafe to prevent excessive polling + if (allNodes.length > 5000) { + if (process.env.NODE_ENV === 'development') { + console.debug(`Failsafe triggered for ${type}`) + } + break + } + + for (const edge of data[type].edges) { + const node = edge.node + const postMod = node.posts?.nodes?.[0]?.modified + // Only include taxonomies that actually have published posts + if (postMod) { + allNodes.push({ slug: node.slug, lastModified: new Date(postMod) }) + } + } + hasNextPage = data[type].pageInfo.hasNextPage + after = data[type].pageInfo.endCursor + } + return allNodes +} + +export default async function sitemap(): Promise { + const baseUrl = 'https://keploy.io/blog' + + // Sequential fetching to deeply respect WP Engine GraphQL burst limits + const posts = await fetchAllPosts() + const tags = await fetchAllTaxonomies('tags') + const categories = await fetchAllTaxonomies('categories') + const authors = await fetchAllTaxonomies('users') + + // Get global latest from posts for the root `/blog` + let globalLatestModified = new Date(0) + posts.forEach(post => { + const postDate = new Date(post.modified) + if (postDate > globalLatestModified) { + globalLatestModified = postDate + } + }) + if (globalLatestModified.getTime() === 0) { + globalLatestModified = new Date() + } + + // Static root blog entry using global max post modification date + const sitemapData: MetadataRoute.Sitemap = [ + { + url: `${baseUrl}`, + lastModified: globalLatestModified, + changeFrequency: 'daily', + priority: 1.0, + } + ] + + // Process Tags + tags.forEach(tag => { + sitemapData.push({ + url: `${baseUrl}/tag/${encodeURIComponent(tag.slug)}`, + lastModified: tag.lastModified, + changeFrequency: 'weekly', + priority: 0.64, + }) + }) + + // Process Categories + categories.forEach(cat => { + sitemapData.push({ + url: `${baseUrl}/${encodeURIComponent(cat.slug)}`, + lastModified: cat.lastModified, + changeFrequency: 'weekly', + priority: 0.80, + }) + }) + + // Process Authors (verified exact path: /blog/authors/[slug]) + authors.forEach(author => { + sitemapData.push({ + url: `${baseUrl}/authors/${encodeURIComponent(author.slug)}`, + lastModified: author.lastModified, + changeFrequency: 'weekly', + priority: 0.64, + }) + }) + + const thirtyDaysAgo = new Date() + thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30) + + // Track unique URLs to ensure no duplicates + const addedUrls = new Set() + sitemapData.forEach(item => addedUrls.add(item.url)) + + // Process Posts + posts.forEach((post) => { + let primaryCategory = post.categories?.nodes[0]?.slug + if (!primaryCategory || primaryCategory === 'uncategorized') { + // Skip posts that aren't properly categorized to avoid providing invalid URLs with the wrong metadata/headers in the sitemap. + return + } + + const url = `${baseUrl}/${encodeURIComponent(primaryCategory)}/${encodeURIComponent(post.slug)}` + + if (addedUrls.has(url)) return + addedUrls.add(url) + + const postModifiedDate = new Date(post.modified) + const priority = postModifiedDate >= thirtyDaysAgo ? 0.8 : 0.5 + + sitemapData.push({ + url, + lastModified: postModifiedDate, + changeFrequency: 'daily', + priority, + }) + }) + + return sitemapData +} diff --git a/public/sitemap.xml b/public/sitemap.xml deleted file mode 100644 index fd919561..00000000 --- a/public/sitemap.xml +++ /dev/null @@ -1,1651 +0,0 @@ - - - - - - https://keploy.io/blog - 2024-03-07T09:25:36+00:00 - 1.00 - - - https://keploy.io/blog/technology - 2024-03-07T09:25:36+00:00 - 0.80 - - - https://keploy.io/blog/community - 2024-03-07T09:25:36+00:00 - 0.80 - - - https://keploy.io/blog/technology/mongodb-in-mock-mode-acting-the-server-part - 2024-03-07T09:25:36+00:00 - 0.80 - - - https://keploy.io/blog/technology/capture-grpc-traffic-going-out-from-a-server - 2024-03-07T09:25:36+00:00 - 0.80 - - - https://keploy.io/blog/technology/integration-vs-e2e-testing-what-worked-for-me-as-a-charm - 2024-03-07T09:25:36+00:00 - 0.80 - - - https://keploy.io/blog/community/canary-testing-a-comprehensive-guide-for-developers - 2024-03-07T09:25:36+00:00 - 0.80 - - - https://keploy.io/blog/community/mock-vs-stub-vs-fake-understand-the-difference - 2024-03-07T09:25:36+00:00 - 0.80 - - - https://keploy.io/blog/community/writing-test-cases-for-cron-jobs-testing - 2024-03-07T09:25:36+00:00 - 0.80 - - - https://keploy.io/gittogether - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/about - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/security - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/privacy-policy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/technology/automated-e2e-tests-using-property-based-testing-part-ii - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/technology/automated-end-to-end-tests-using-property-based-testing-part-i - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/technology/go-mocks-and-stubs-made-easy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/understand-the-role-of-continuous-testing-in-ci-cd - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/understanding-testing-in-production - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/5-unit-testing-tools-you-must-know-in-2024 - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/securing-data-protocols-tls-application - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/demystifying-cron-job-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/building-custom-yaml-dsl-in-python - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/what-is-service-mesh - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/understanding-condition-coverage-in-software-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/why-do-i-need-a-unit-testing-tool - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/revolutionizing-software-testing-with-feature-flags - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/all-about-system-integration-testing-in-software-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/bdd-testing-with-cucumber - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/how-to-choose-your-api-performance-testing-tool-a-guide - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/dignify-your-test-automation-with-concise-code-documentation - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/how-to-do-java-unit-testing-effectively - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/performance-testing-guide-to-ensure-your-software-performs-at-its-best - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/top-5-cypress-alternatives-for-web-testing-and-automation - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/what-is-quality-engineering-software - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/functional-testing-unveiling-types-and-real-world-applications - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/understanding-branch-coverage-in-software-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/creating-the-balance-between-end-to-end-and-unit-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/understanding-code-coverage-in-software-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/decoding-http2-traffic-is-hard-but-ebpf-can-help - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/testng-vs-junit-performance-ease-of-use-and-flexibility-compared - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/exploring-the-effectiveness-of-e2e-testing-in-comparison-with-integration-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/understanding-statement-coverage-in-software-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/why-i-love-end-to-end-e2e-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/how-to-generate-test-cases-with-automation-tools - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/decoding-brd-a-devs-guide-to-functional-and-non-functional-requirements-in-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/testing-in-production-with-keploy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/mastering-test-coverage-quality-over-quantity-in-software-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/all-about-api-testing-keploy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/exploring-end-to-end-testing-with-ai - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/ai-powered-testing-in-production-revolutionizing-software-stability - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/what-is-the-difference-between-uat-and-e2e-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/software-development-phases - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/testing-nirvana-unveiled-what-why-and-how-in-development - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/what-problem-keploy-solves - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/getting-started-with-keploy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/mastering-api-test-automation-best-practices-and-tools - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/why-more-end-to-end-testing-is-often-good-enough-for-less-stress - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/e2e-testing-strategies-handling-edge-cases-while-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/understanding-the-difference-between-test-scenarios-and-test-cases - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/qa-automation-engineers-overcoming-testing-limitations - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/code-integrity-explained-building-trust-in-software - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/testing-with-chatgpt-epic-wins-and-fails - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/a-guide-for-observing-go-process-with-ebpf - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/stubs-mocks-fakes-lets-define-the-boundaries - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/e2e-testing-or-unit-testing-difference - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/4-ways-to-accelerate-your-software-testing-life-cycle - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/using-ebpf-for-tracing-go-function-arguments-in-production - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/my-journey-of-devrel-cohort-at-keploy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/building-a-crud-application-from-scratch-using-golang - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/exploring-graphql-api-development - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/diverse-test-data-boosting-regression-testing-efficiency - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/writing-a-potions-bank-rest-api-with-spring-boot-mongodb - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/my-journey-of-automating-test-cases - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/a-guide-to-various-api-architectures - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/postman-features-that-will-help-you-on-your-journey - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/api-automation-testing-pynt-keploy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/fun-facts-about-apis - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/know-about-record-and-replay-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/the-game-of-shadow-testing-the-core-of-test-generation - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/apis-vs-webhooks-make-a-github-webhook - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/how-to-secure-your-apis-and-protect-sensitive-data - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/soap-vs-rest-choosing-the-right-api-protocol - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/simplifying-junit-test-stubs-and-mocking - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/terminologies-around-api - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/my-keploy-api-fellowship-journey-2 - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/what-is-unit-testing-anyways - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/what-is-end-to-end-testing-and-why-do-you-need-it - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/an-introduction-to-api-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/everything-you-need-to-know-about-unit-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/my-journey-of-keploy-fellowship-program - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/how-to-mock-backend-of-selenium-tests-using-keploy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/how-to-do-frontend-test-automation-using-selenium - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/types-of-apis-and-api-architecture - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/introduction-to-testing-with-mocha-keploy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/my-keploy-api-fellowship-journey - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/teleport-into-tech-space-through-api-gateways - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/frustrations-of-api-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/difficulties-of-api-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/swagger-design-and-document-your-apis - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/history-of-apis - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/understanding-http-and-https-as-a-beginner - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/understanding-the-components-of-apis - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/devrel-at-keploy-experience - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/community/how-did-i-get-to-know-about-apis - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/authors/Ritik%20Jain - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/go - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/http - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/mongodb - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/proxy-server - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/technology/canary-testing-a-comprehensive-guide-for-developers - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/technology/mock-vs-stub-vs-fake-understand-the-difference - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/authors/Mehfooz - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/golang - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/grpc - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/authors/Sarthak%20Shyngle - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/api-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/automation-testing - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/e2e - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/integration-test - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/testgpt - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/authors/Animesh%20Pathak - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/canary - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/Feature%20Flags - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/authors/Arindam - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/ai-tools - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/mocks - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/stub - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/ai%20tool - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/cron-job - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/cronjobs - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/blog/tag/keploy - 2024-03-07T09:25:36+00:00 - 0.64 - - - https://keploy.io/reset-password - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/signup - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/charan - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/apis - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/chatgpt - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/openai - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test-automation - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/tdd - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Jain - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/gomock - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test-generator - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/unit-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Prajwal - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/ci-cd - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/cicd - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/continuous-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/development - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/devops - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/testing-in-production - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test-coverage - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/unit%20testing%20tool - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Shivam - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/https - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/networking - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/protocols - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/redis - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/tls - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/cronjob - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/code - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/python - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/yaml-dsl - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/community/ebpf-service-mesh-and-sidecar - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/ebpf - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/service%20mesh - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/sidecar - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/condition%20coverage - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/software-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test-coverage-in-software-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/tvisha - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/junit - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/software-development - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/system%20integration - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/bdd%20test - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/cucumber%20js - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/performance - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/testing-tool - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/automation - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/documentation - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/java - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/java%20unit%20testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/performance%20testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/cypress%20alternative - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/katalon - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/developers - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/engineering - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/learning - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/quality-assurance - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/software-engineering - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/bdd - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/cross-browser-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/ecommerce - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/functional-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/security - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/branchcoverage - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/e2e%20testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/end%20to%20end%20test - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/coding - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/deployment - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/http2 - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/wireshark - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Pranshu%20Srivastava - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/maven - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/testing-library - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Shashwat - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/end-to-end-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/integration-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/software-development-life-cyclesdlc - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/backend-developments - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/statement-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/community/end-to-end-testing-and-why-do-you-need-it - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/banking - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/developers-mindset - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/gps - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/jest - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/postman - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/business-requirement-document - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/functional-requirement - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/functional-vs-non-functional-requirements - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/non-functional-requirements - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/prashant - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/ai - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/ai-based-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test-coverage-in-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Arindam,%20Neha - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/web-development - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/wemakedevs - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/developer-tools - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Aditya%20Tomar - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/e2etesting - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/uat-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Harshit%20Paneri - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/software-development-phases - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/community/strategies-handling-edge-cases-e2e-tests - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/continuous-deployment - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/continuous-integration - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/software-quality-assurance - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/testing-nirvana - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/api-automation - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/best-practices - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/mocking - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Shashwat%20Gupta - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/edge-cases - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test-driven-development - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/testing-tools - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/end-to-end-tests - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/qa-automation-engineers - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test-scenarios - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/testing-limitations - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/code-review - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/software - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Neha%20Gupta - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/generative-ai - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/observability - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/opensource - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/fakes - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/stubs - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test-doubles - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Shivang%20Shandilya - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/docker - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/docker-compose - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/postgresql - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/rest-api - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/graphql - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/ai-test-generation - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/data-generator - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/regression-test-suite - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/regression-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/test-data-management - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/springboot - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Nishant%20Mishra - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/api - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Aditya%20Singh - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/api-architecture - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/api-basics - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Sejal%20Jain - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Ankit%20Kumar - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Hardik%20kumar - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/databases - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/github - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/webhooks - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Jyotirmoy%20Roy - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/soap-api - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Sanskriti%20Harmukh - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/mockito - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Barkatul%20Mujauddin - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Yash%20Saxena - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Zoheb%20Ahmed - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/methodology-and-types-of-software-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Priya%20Srivastava - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Diganta%20Kr%20Banik - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/api-testing-tools - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Krupesh%20Vithlani - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/app-development - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/developer - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/technology - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Ankit%20Kumar,%20Animesh%20Pathak - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/backend - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/frontend-development - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/selenium - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/KANISHAK%20CHAURASIA - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/keploy-api-fellowship - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Pradhyuman%20Sharma - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/javascript - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/authors/Harsh%20Rastogi - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/devrel - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/api-gateway - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/microservices - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/monoliths - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/osi - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/api-development - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/frustration - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/swagger - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/history - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/ssl - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/internship - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/startup - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/technical-writing-1 - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/tag/beginners - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/community/mongodb-in-mock-mode-acting-the-server-part - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/technology/writing-test-cases-for-cron-jobs-testing - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/community/capture-grpc-traffic-going-out-from-a-server - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/community/automated-e2e-tests-using-property-based-testing-part-ii - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/community/automated-end-to-end-tests-using-property-based-testing-part-i - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/community/integration-vs-e2e-testing-what-worked-for-me-as-a-charm - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/blog/community/go-mocks-and-stubs-made-easy - 2024-03-07T09:25:36+00:00 - 0.51 - - - https://keploy.io/signin - 2024-03-07T09:25:36+00:00 - 0.41 - - - \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 1e626d7a..a2983b39 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,11 @@ { "compilerOptions": { "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": false, @@ -16,9 +20,24 @@ "incremental": true, "baseUrl": ".", "paths": { - "@/*": ["./*"] - } + "@/*": [ + "./*" + ] + }, + "plugins": [ + { + "name": "next" + } + ], + "strictNullChecks": true }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], - "exclude": ["node_modules"] + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts" + ], + "exclude": [ + "node_modules" + ] }