diff --git a/next.config.mjs b/next.config.mjs index 709ce24..5192113 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -14,6 +14,10 @@ const withPWA = nextPWA({ /** @type {import("next").NextConfig} */ const config = { reactStrictMode: true, + experimental: { + forceSwcTransforms: true, + swcPlugins: [["next-superjson-plugin", {}]], + }, /** * If you are using `appDir` then you must comment the below `i18n` config out. diff --git a/package.json b/package.json index c082a27..2d34e20 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "next-auth": "^4.24.7", "next-pwa": "^5.6.0", "next-recaptcha-v3": "^1.4.1", + "next-superjson-plugin": "^0.6.3", "react": "18.3.1", "react-combine-reducers": "^1.1.1", "react-dom": "18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec41289..44c3c79 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,6 +80,9 @@ importers: next-recaptcha-v3: specifier: ^1.4.1 version: 1.4.1(next@14.2.5(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next-superjson-plugin: + specifier: ^0.6.3 + version: 0.6.3(next@14.2.5(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(superjson@1.13.3) react: specifier: 18.3.1 version: 18.3.1 @@ -5023,6 +5026,9 @@ packages: hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -6004,6 +6010,12 @@ packages: peerDependencies: next: '*' + next-superjson-plugin@0.6.3: + resolution: {integrity: sha512-gipGROzbbn1Koq84AZQodIvBdORp9dytIDv07SguwXdxnJb6v05KCmHVNU9L6AWqxjP14qNIWCNdKRDhnGRZrg==} + peerDependencies: + next: ^13.0 || ^14.0 + superjson: ^1 || ^2 + next@13.5.6: resolution: {integrity: sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==} engines: {node: '>=16.14.0'} @@ -14069,6 +14081,10 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + homedir-polyfill@1.0.3: dependencies: parse-passwd: 1.0.0 @@ -15051,6 +15067,12 @@ snapshots: minimist: 1.2.8 next: 14.2.5(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next-superjson-plugin@0.6.3(next@14.2.5(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(superjson@1.13.3): + dependencies: + hoist-non-react-statics: 3.3.2 + next: 14.2.5(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + superjson: 1.13.3 + next@13.5.6(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 13.5.6 diff --git a/public/sitemap-0.xml b/public/sitemap-0.xml index e4fef36..1f7ee84 100644 --- a/public/sitemap-0.xml +++ b/public/sitemap-0.xml @@ -1,116 +1,143 @@ -https://glssry.org2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/about2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/contribute2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/nuke2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/post/create2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/privacy2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/terms2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/literature/a-song-of-ice-and-fire2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/health/accident-and-emergency2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/networking/advanced-research-projects-agency-network2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/civics/affirmative-action2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/aviation/aircraft-maintenance-engineer2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/health/alcoholics-anonymous2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/internet/amazon-web-services2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/aviation/amelia-earhart2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/religion/anno-domini2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/finance/annual-percentage-rate2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/software/application-programming-interface2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/software/architectural-decision-record2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/technology/artificial-intelligence2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/slang/as-soon-as-possible2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/geology/association-of-european-geological-societies2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/communications/asymmetric-digital-subscriber-line2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/entertainment/attack-on-titan2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/health/autonomous-sensory-meridian-response2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/mathematics/axiom-of-choice2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/music/beats-per-minute2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/health/body-mass-index2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/geography/british-columbia2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/business/business-as-usual2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/astronomy/carl-sagan2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/programming/cascading-style-sheets2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/security/central-intelligence-agency2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/biology/charles-darwin2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/internet/click-through-rate2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/linguistics/collective-noun2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/security/common-vulnerabilities-and-exposures2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/computing/computer-accessibility2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/internet/content-delivery-network2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/software/content-management-system2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/business/curriculum-vitae2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/journalism/data-journalism2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/science/deoxyribonucleic-acid2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/teaching/department-for-education2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/music/digital-audio-workstation2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/oceanography/division-of-ocean-sciences2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/internet/domain-name-system2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/games/dungeons-and-dragons2024-01-13T10:14:10.375Zdaily0.7 -https://glssry.org/programming/ecmascript2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/physics/european-organization-for-nuclear-research2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/politics/first-past-the-post-voting2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/slang/for-your-information2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/games/fromsoftware2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/television/game-of-thrones2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/programming/gdscript2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/software/godot2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/internet/google-cloud-platform2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/space/great-red-spot2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/environment/greta-thunberg2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/economics/gross-domestic-product2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/health/heart-rate-variability2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/physics/high-altitude-observatory2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/programming/hypertext-markup-language2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/software/infrastructure-as-a-service2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/business/initial-public-offering2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/software/integrated-development-environment2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/law/internal-revenue-code2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/cinema/internet-movie-database2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/oceanography/jacques-cousteau2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/programming/javascript2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/philosophy/karl-marx2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/slang/laugh-out-loud2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/performance/lee-strasberg2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/gender/lesbian-gay-bisexual-and-transgender2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/games/live-action-role-playing2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/medicine/local-anesthetic2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/health/magnetic-resonance-imaging2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/chemistry/marie-curie2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/psychology/maslows-hierarchy-of-needs2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/games/massively-multiplayer-online-role-playing-game2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/construction/material-requirements-planning2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/business/minimum-viable-product2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/sports/most-valuable-player2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/internet/mozilla-developer-network2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/security/multi-factor-authentication2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/art/museum-of-modern-art-2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/music/musical-instrument-digital-interface2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/aeronautics/national-aeronautics-and-space-administration2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/games/naughty-dog2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/engineering/nikola-tesla2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/linguistics/noam-chomsky2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/military/north-atlantic-treaty-organization2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/software/operating-system2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/hardware/random-access-memory2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/technology/request-for-comments2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/programming/rust2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/science/science-technology-engineering-and-mathematics2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/health/selective-serotonin-reuptake-inhibitor2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/hardware/serial-at-attachment2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/mythology/shint2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/internet/simple-mail-transfer-protocol2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/internet/simple-storage-service2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/software/software-as-a-service2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/games/the-last-of-us2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/programming/typescript2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/animals/tyrannosaurus2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/business/unique-selling-proposition2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/cultural/united-nations-educational-scientific-and-cultural-organization2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/networking/unix-to-unix-copy2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/networking/users-network2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/computing/virtual-machine2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/internet/web-content-accessibility-guidelines2024-01-13T10:14:10.376Zdaily0.7 -https://glssry.org/programming/webassembly2024-01-13T10:14:10.376Zdaily0.7 +https://glssry.org2024-08-09T16:35:03.666Zdaily0.7 +https://glssry.org/about2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/contribute2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/nuke2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/post/create2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/privacy2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/terms2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/literature/a-song-of-ice-and-fire2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/health/accident-and-emergency2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/networking/advanced-research-projects-agency-network2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/civics/affirmative-action2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/aviation/aircraft-maintenance-engineer2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/health/alcoholics-anonymous2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/amazon-relational-database-service2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/amazon-web-services2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/aviation/amelia-earhart2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/religion/anno-domini2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/finance/annual-percentage-rate2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/application-programming-interface2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/architectural-decision-record2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/technology/artificial-intelligence2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/slang/as-soon-as-possible2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/geology/association-of-european-geological-societies2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/communications/asymmetric-digital-subscriber-line2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/entertainment/attack-on-titan2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/health/autonomous-sensory-meridian-response2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/mathematics/axiom-of-choice2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/music/beats-per-minute2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/benevolent-dictator-for-life2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/health/body-mass-index2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/geography/british-columbia2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/business/business-as-usual2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/astronomy/carl-sagan2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/programming/cascading-style-sheets2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/security/central-intelligence-agency2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/biology/charles-darwin2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/click-through-rate2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/linguistics/collective-noun2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/security/common-vulnerabilities-and-exposures2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/computing/computer-accessibility2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/content-delivery-network2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/content-management-system2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/cross-origin-resource-sharing2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/security/cross-site-request-forgery2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/security/cross-site-scripting2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/business/curriculum-vitae2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/journalism/data-journalism2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/science/deoxyribonucleic-acid2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/teaching/department-for-education2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/music/digital-audio-workstation2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/oceanography/division-of-ocean-sciences2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/domain-name-system2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/games/dungeons-and-dragons2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/programming/ecmascript2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/linguistics/edward-sapir2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/physics/european-organization-for-nuclear-research2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/politics/first-past-the-post-voting2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/slang/for-your-information2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/free-and-open-source-software2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/games/fromsoftware2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/fully-qualified-domain-name2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/television/game-of-thrones2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/programming/gdscript2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/godot2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/google-cloud-platform2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/space/great-red-spot2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/environment/greta-thunberg2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/economics/gross-domestic-product2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/graphic-novels/hajime-isayama2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/health/heart-rate-variability2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/physics/high-altitude-observatory2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/programming/hypertext-markup-language2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/in-memory-database2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/infrastructure-as-a-service2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/business/initial-public-offering2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/integrated-development-environment2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/law/internal-revenue-code2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/languages/international-organisation-for-standardisation2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/cinema/internet-movie-database2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/oceanography/jacques-cousteau2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/programming/javascript2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/javascript-registry2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/history/john-f-kennedy2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/crafts/john-ruskin2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/json-web-token2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/philosophy/karl-marx2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/slang/laugh-out-loud2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/performance/lee-strasberg2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/gender/lesbian-gay-bisexual-and-transgender2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/mathematics/linear-interpolation2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/games/live-action-role-playing2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/medicine/local-anesthetic2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/health/magnetic-resonance-imaging2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/chemistry/marie-curie2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/psychology/maslows-hierarchy-of-needs2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/games/massively-multiplayer-online-role-playing-game2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/construction/material-requirements-planning2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/business/minimum-viable-product2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/sports/most-valuable-player2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/mozilla-developer-network2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/security/multi-factor-authentication2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/art/museum-of-modern-art-2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/music/musical-instrument-digital-interface2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/aeronautics/national-aeronautics-and-space-administration2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/games/naughty-dog2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/engineering/nikola-tesla2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/linguistics/noam-chomsky2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/node-package-manager2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/military/north-atlantic-treaty-organization2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/operating-system2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/personally-identifiable-information2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/hardware/random-access-memory2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/technology/request-for-comments2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/programming/rust2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/science/science-technology-engineering-and-mathematics2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/health/selective-serotonin-reuptake-inhibitor2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/hardware/serial-at-attachment2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/mythology/shint2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/simple-mail-transfer-protocol2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/simple-storage-service2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/software-as-a-service2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/software-bill-of-materials2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/speedy-web-compiler2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/static-code-analysis2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/mathematics/tautology2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/games/the-last-of-us2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/top-level-domain2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/security/transport-security-layer2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/programming/typescript2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/animals/tyrannosaurus2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/environment/ultra-low-emission-zone2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/software/unified-modeling-language2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/business/unique-selling-proposition2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/cultural/united-nations-educational-scientific-and-cultural-organization2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/networking/unix-to-unix-copy2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/user-datagram-protocol2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/networking/users-network2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/computing/virtual-machine2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/internet/web-content-accessibility-guidelines2024-08-09T16:35:03.667Zdaily0.7 +https://glssry.org/programming/webassembly2024-08-09T16:35:03.667Zdaily0.7 \ No newline at end of file diff --git a/public/sw.js b/public/sw.js index a893765..9e02f0e 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1 +1 @@ -if(!self.define){let e,a={};const s=(s,c)=>(s=new URL(s+".js",c).href,a[s]||new Promise((a=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=a,document.head.appendChild(e)}else e=s,importScripts(s),a()})).then((()=>{let e=a[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e})));self.define=(c,i)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(a[n])return;let t={};const r=e=>s(e,n),d={module:{uri:n},exports:t,require:r};a[n]=Promise.all(c.map((e=>d[e]||r(e)))).then((e=>(i(...e),t)))}}define(["./workbox-e9849328"],(function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/chunks/292-3d35c7c914cdc31a.js",revision:"3d35c7c914cdc31a"},{url:"/_next/static/chunks/5baf55aa-07aa06ac510c0278.js",revision:"07aa06ac510c0278"},{url:"/_next/static/chunks/615-dd654a3aedca6d2b.js",revision:"dd654a3aedca6d2b"},{url:"/_next/static/chunks/797-a68f9a25cd0fe7ff.js",revision:"a68f9a25cd0fe7ff"},{url:"/_next/static/chunks/8d8af85f-ce11d65f0f315412.js",revision:"ce11d65f0f315412"},{url:"/_next/static/chunks/931-fb6566158921eb51.js",revision:"fb6566158921eb51"},{url:"/_next/static/chunks/987-ac682ea97d706489.js",revision:"ac682ea97d706489"},{url:"/_next/static/chunks/a194529e-a6809cf25106d4ec.js",revision:"a6809cf25106d4ec"},{url:"/_next/static/chunks/e198b2db-896fc98364c01616.js",revision:"896fc98364c01616"},{url:"/_next/static/chunks/framework-316188c4f5905b4d.js",revision:"316188c4f5905b4d"},{url:"/_next/static/chunks/main-e4b5380e51e3a7f2.js",revision:"e4b5380e51e3a7f2"},{url:"/_next/static/chunks/pages/%5B...post%5D-7335b0e73a1568ca.js",revision:"7335b0e73a1568ca"},{url:"/_next/static/chunks/pages/_app-d258f838b77b2b08.js",revision:"d258f838b77b2b08"},{url:"/_next/static/chunks/pages/_error-1d10190858dc72f7.js",revision:"1d10190858dc72f7"},{url:"/_next/static/chunks/pages/about-4ee7ab2389edef4d.js",revision:"4ee7ab2389edef4d"},{url:"/_next/static/chunks/pages/account/deauthorized-7b2091af856ae4cc.js",revision:"7b2091af856ae4cc"},{url:"/_next/static/chunks/pages/account/nuke-c3e4b48517b905d8.js",revision:"c3e4b48517b905d8"},{url:"/_next/static/chunks/pages/account/set-username-b104dd0e12377acf.js",revision:"b104dd0e12377acf"},{url:"/_next/static/chunks/pages/account/sign-in-ca9ea7e78829b40c.js",revision:"ca9ea7e78829b40c"},{url:"/_next/static/chunks/pages/account/sign-in/error-9adadca116a2ac59.js",revision:"9adadca116a2ac59"},{url:"/_next/static/chunks/pages/account/sign-in/magic-link-db8343e6444fec88.js",revision:"db8343e6444fec88"},{url:"/_next/static/chunks/pages/account/sign-in/success-49fbe137a805d4b0.js",revision:"49fbe137a805d4b0"},{url:"/_next/static/chunks/pages/account/signed-out-f21604b50de3344d.js",revision:"f21604b50de3344d"},{url:"/_next/static/chunks/pages/contribute-9746f1d599a6740f.js",revision:"9746f1d599a6740f"},{url:"/_next/static/chunks/pages/index-0443aa864c869a3b.js",revision:"0443aa864c869a3b"},{url:"/_next/static/chunks/pages/nuke-7acc1249e366a0db.js",revision:"7acc1249e366a0db"},{url:"/_next/static/chunks/pages/post/create-44fa5bf898bfd98a.js",revision:"44fa5bf898bfd98a"},{url:"/_next/static/chunks/pages/post/edit-f83078e160fae664.js",revision:"f83078e160fae664"},{url:"/_next/static/chunks/pages/post/list-161206545f56099e.js",revision:"161206545f56099e"},{url:"/_next/static/chunks/pages/post/pending-4cac9123375059e3.js",revision:"4cac9123375059e3"},{url:"/_next/static/chunks/pages/privacy-689e4e6f6e2239fa.js",revision:"689e4e6f6e2239fa"},{url:"/_next/static/chunks/pages/terms-5d33804507d2ec82.js",revision:"5d33804507d2ec82"},{url:"/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js",revision:"79330112775102f91e1010318bae2bd3"},{url:"/_next/static/chunks/webpack-8dd09aa3eca154e6.js",revision:"8dd09aa3eca154e6"},{url:"/_next/static/css/5fb0d86d697a80d1.css",revision:"5fb0d86d697a80d1"},{url:"/_next/static/media/10ca58f12dc31ec2.woff2",revision:"e0df918a07b640f09bb69751b040c517"},{url:"/_next/static/media/1fe05f8c46e9977c-s.p.woff2",revision:"c1fec4a19b3192d4701a6533aab96a61"},{url:"/_next/static/media/1ffa718e60efccd4-s.woff2",revision:"a8662b6d037362c4dc6470530d4bca51"},{url:"/_next/static/media/23f25237a0dd6e5e.woff2",revision:"95712b78a4a4cd25725d199575ce922c"},{url:"/_next/static/media/4211d34fd1c6f59f.woff2",revision:"10c49f8eebd781ea0feb134d5d895ae1"},{url:"/_next/static/media/46ada7a8096f3625-s.woff2",revision:"190b012a1ea4fa649277742d8aaa952f"},{url:"/_next/static/media/527ad038b46df541.woff2",revision:"9d5d33aac7b433227908a50658ebb82c"},{url:"/_next/static/media/590bfc1facaea403-s.woff2",revision:"2890339585a50c5843a89ea9788f0780"},{url:"/_next/static/media/61b81e7bde89ba40.p.woff2",revision:"e7c8b3a1196384678e2b2044f8baa115"},{url:"/_next/static/media/95e7cb10eda7a858-s.woff2",revision:"a17f6ed96209e29281424e6d7bab0ec8"},{url:"/_next/static/media/9f705a8904cabecc-s.p.woff2",revision:"d39b3002cb55ab0dba0c94a9132d4cc8"},{url:"/_next/static/media/b34eb5d9a2ebd9de-s.woff2",revision:"1c2eb10dc87812929e90e70cfdc75753"},{url:"/_next/static/media/fe0643d5f2ad0dcb-s.woff2",revision:"6de05c54b2b48e2b12745b95bcdd950d"},{url:"/_next/static/xevWPh0vcBbCK2PShjSE9/_buildManifest.js",revision:"8b1b17daeb2c05b54d22f8ff2044b2c5"},{url:"/_next/static/xevWPh0vcBbCK2PShjSE9/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/favicon/android-chrome-192x192.png",revision:"c0d5beb829690c3d18c31cb45174dc67"},{url:"/favicon/android-chrome-256x256.png",revision:"7c9bc14f15d5731e3bb1427c8baba551"},{url:"/favicon/apple-touch-icon.png",revision:"c77ac1e2d104e3e3a68bc70232ab9bba"},{url:"/favicon/browserconfig.xml",revision:"7f2b2f8a4c6863cc7be0a1e4b7963bd9"},{url:"/favicon/favicon-16x16.png",revision:"0e0998bad54483253eb2c54cd52f2620"},{url:"/favicon/favicon-32x32.png",revision:"9fcfab51d2269f5954a245263983cfe4"},{url:"/favicon/favicon-large.png",revision:"789b577c10c52b78fa901f49cc3d5161"},{url:"/favicon/favicon.ico",revision:"e09f15b2d8c043c9819b778811852dc4"},{url:"/favicon/favicon.png",revision:"6e948c4229998491ceb982d67f5ff79a"},{url:"/favicon/mstile-150x150.png",revision:"39bbe4b44f7a26e9f308b178f1c69f6f"},{url:"/favicon/safari-pinned-tab.svg",revision:"e4226dd601fda16790841b9189dcabb5"},{url:"/favicon/site.webmanifest",revision:"ab665afc09201416fecde4c3aa2bba88"},{url:"/robots.txt",revision:"59b5022b914a82f95d18493c2a28d218"},{url:"/sitemap-0.xml",revision:"a3476e156bf09ad4fd23da6e1cc7d9c1"},{url:"/sitemap.xml",revision:"c24dc2f275b85f38caa3c21d559c012f"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:a,event:s,state:c})=>a&&"opaqueredirect"===a.type?new Response(a.body,{status:200,statusText:"OK",headers:a.headers}):a}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const a=e.pathname;return!a.startsWith("/api/auth/")&&!!a.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")})); +if(!self.define){let e,a={};const s=(s,c)=>(s=new URL(s+".js",c).href,a[s]||new Promise((a=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=a,document.head.appendChild(e)}else e=s,importScripts(s),a()})).then((()=>{let e=a[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e})));self.define=(c,i)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(a[n])return;let t={};const d=e=>s(e,n),f={module:{uri:n},exports:t,require:d};a[n]=Promise.all(c.map((e=>f[e]||d(e)))).then((e=>(i(...e),t)))}}define(["./workbox-e9849328"],(function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/Vkn4hSNTBz4eZw-zia-N8/_buildManifest.js",revision:"37693f1f25c58332e14006f702dd9277"},{url:"/_next/static/Vkn4hSNTBz4eZw-zia-N8/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/_next/static/chunks/292-9dcf07d777d78b08.js",revision:"9dcf07d777d78b08"},{url:"/_next/static/chunks/5baf55aa-07aa06ac510c0278.js",revision:"07aa06ac510c0278"},{url:"/_next/static/chunks/615-dd654a3aedca6d2b.js",revision:"dd654a3aedca6d2b"},{url:"/_next/static/chunks/797-a68f9a25cd0fe7ff.js",revision:"a68f9a25cd0fe7ff"},{url:"/_next/static/chunks/8d8af85f-ce11d65f0f315412.js",revision:"ce11d65f0f315412"},{url:"/_next/static/chunks/931-fb6566158921eb51.js",revision:"fb6566158921eb51"},{url:"/_next/static/chunks/987-7fa69d0de790762a.js",revision:"7fa69d0de790762a"},{url:"/_next/static/chunks/a194529e-a6809cf25106d4ec.js",revision:"a6809cf25106d4ec"},{url:"/_next/static/chunks/e198b2db-896fc98364c01616.js",revision:"896fc98364c01616"},{url:"/_next/static/chunks/framework-316188c4f5905b4d.js",revision:"316188c4f5905b4d"},{url:"/_next/static/chunks/main-e4b5380e51e3a7f2.js",revision:"e4b5380e51e3a7f2"},{url:"/_next/static/chunks/pages/%5B...post%5D-3be3518b5f0389b7.js",revision:"3be3518b5f0389b7"},{url:"/_next/static/chunks/pages/_app-f7fc6316c9091771.js",revision:"f7fc6316c9091771"},{url:"/_next/static/chunks/pages/_error-1d10190858dc72f7.js",revision:"1d10190858dc72f7"},{url:"/_next/static/chunks/pages/about-4ee7ab2389edef4d.js",revision:"4ee7ab2389edef4d"},{url:"/_next/static/chunks/pages/account/deauthorized-7b2091af856ae4cc.js",revision:"7b2091af856ae4cc"},{url:"/_next/static/chunks/pages/account/nuke-bfae14d9388cd13e.js",revision:"bfae14d9388cd13e"},{url:"/_next/static/chunks/pages/account/set-username-b0b8a085a3692cdb.js",revision:"b0b8a085a3692cdb"},{url:"/_next/static/chunks/pages/account/sign-in-daf1cc68b39d6c94.js",revision:"daf1cc68b39d6c94"},{url:"/_next/static/chunks/pages/account/sign-in/error-9adadca116a2ac59.js",revision:"9adadca116a2ac59"},{url:"/_next/static/chunks/pages/account/sign-in/magic-link-db8343e6444fec88.js",revision:"db8343e6444fec88"},{url:"/_next/static/chunks/pages/account/sign-in/success-9f7c594ef80e8bdb.js",revision:"9f7c594ef80e8bdb"},{url:"/_next/static/chunks/pages/account/signed-out-f21604b50de3344d.js",revision:"f21604b50de3344d"},{url:"/_next/static/chunks/pages/contribute-9746f1d599a6740f.js",revision:"9746f1d599a6740f"},{url:"/_next/static/chunks/pages/index-10dd4a2d8f9b7532.js",revision:"10dd4a2d8f9b7532"},{url:"/_next/static/chunks/pages/nuke-7acc1249e366a0db.js",revision:"7acc1249e366a0db"},{url:"/_next/static/chunks/pages/post/create-44fa5bf898bfd98a.js",revision:"44fa5bf898bfd98a"},{url:"/_next/static/chunks/pages/post/edit-f83078e160fae664.js",revision:"f83078e160fae664"},{url:"/_next/static/chunks/pages/post/list-b6b892f4ed186c46.js",revision:"b6b892f4ed186c46"},{url:"/_next/static/chunks/pages/post/pending-3eb5ebb359d91f35.js",revision:"3eb5ebb359d91f35"},{url:"/_next/static/chunks/pages/privacy-689e4e6f6e2239fa.js",revision:"689e4e6f6e2239fa"},{url:"/_next/static/chunks/pages/terms-5d33804507d2ec82.js",revision:"5d33804507d2ec82"},{url:"/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js",revision:"79330112775102f91e1010318bae2bd3"},{url:"/_next/static/chunks/webpack-8dd09aa3eca154e6.js",revision:"8dd09aa3eca154e6"},{url:"/_next/static/css/5fb0d86d697a80d1.css",revision:"5fb0d86d697a80d1"},{url:"/_next/static/media/10ca58f12dc31ec2.woff2",revision:"e0df918a07b640f09bb69751b040c517"},{url:"/_next/static/media/1fe05f8c46e9977c-s.p.woff2",revision:"c1fec4a19b3192d4701a6533aab96a61"},{url:"/_next/static/media/1ffa718e60efccd4-s.woff2",revision:"a8662b6d037362c4dc6470530d4bca51"},{url:"/_next/static/media/23f25237a0dd6e5e.woff2",revision:"95712b78a4a4cd25725d199575ce922c"},{url:"/_next/static/media/4211d34fd1c6f59f.woff2",revision:"10c49f8eebd781ea0feb134d5d895ae1"},{url:"/_next/static/media/46ada7a8096f3625-s.woff2",revision:"190b012a1ea4fa649277742d8aaa952f"},{url:"/_next/static/media/527ad038b46df541.woff2",revision:"9d5d33aac7b433227908a50658ebb82c"},{url:"/_next/static/media/590bfc1facaea403-s.woff2",revision:"2890339585a50c5843a89ea9788f0780"},{url:"/_next/static/media/61b81e7bde89ba40.p.woff2",revision:"e7c8b3a1196384678e2b2044f8baa115"},{url:"/_next/static/media/95e7cb10eda7a858-s.woff2",revision:"a17f6ed96209e29281424e6d7bab0ec8"},{url:"/_next/static/media/9f705a8904cabecc-s.p.woff2",revision:"d39b3002cb55ab0dba0c94a9132d4cc8"},{url:"/_next/static/media/b34eb5d9a2ebd9de-s.woff2",revision:"1c2eb10dc87812929e90e70cfdc75753"},{url:"/_next/static/media/fe0643d5f2ad0dcb-s.woff2",revision:"6de05c54b2b48e2b12745b95bcdd950d"},{url:"/favicon/android-chrome-192x192.png",revision:"c0d5beb829690c3d18c31cb45174dc67"},{url:"/favicon/android-chrome-256x256.png",revision:"7c9bc14f15d5731e3bb1427c8baba551"},{url:"/favicon/apple-touch-icon.png",revision:"c77ac1e2d104e3e3a68bc70232ab9bba"},{url:"/favicon/browserconfig.xml",revision:"7f2b2f8a4c6863cc7be0a1e4b7963bd9"},{url:"/favicon/favicon-16x16.png",revision:"0e0998bad54483253eb2c54cd52f2620"},{url:"/favicon/favicon-32x32.png",revision:"9fcfab51d2269f5954a245263983cfe4"},{url:"/favicon/favicon-large.png",revision:"789b577c10c52b78fa901f49cc3d5161"},{url:"/favicon/favicon.ico",revision:"e09f15b2d8c043c9819b778811852dc4"},{url:"/favicon/favicon.png",revision:"6e948c4229998491ceb982d67f5ff79a"},{url:"/favicon/mstile-150x150.png",revision:"39bbe4b44f7a26e9f308b178f1c69f6f"},{url:"/favicon/safari-pinned-tab.svg",revision:"e4226dd601fda16790841b9189dcabb5"},{url:"/favicon/site.webmanifest",revision:"ab665afc09201416fecde4c3aa2bba88"},{url:"/robots.txt",revision:"59b5022b914a82f95d18493c2a28d218"},{url:"/sitemap-0.xml",revision:"a3476e156bf09ad4fd23da6e1cc7d9c1"},{url:"/sitemap.xml",revision:"c24dc2f275b85f38caa3c21d559c012f"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:a,event:s,state:c})=>a&&"opaqueredirect"===a.type?new Response(a.body,{status:200,statusText:"OK",headers:a.headers}):a}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const a=e.pathname;return!a.startsWith("/api/auth/")&&!!a.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")})); diff --git a/src/hooks/post/read-latest-posts.hook.tsx b/src/hooks/post/read-latest-posts.hook.tsx index 1a89af1..d530d0c 100644 --- a/src/hooks/post/read-latest-posts.hook.tsx +++ b/src/hooks/post/read-latest-posts.hook.tsx @@ -1,5 +1,7 @@ import { api } from "~/utils/api"; +export type TUSeReadLatestPosts = ReturnType; + export const useReadLatestPosts = () => { const { data, isFetching, error, isError } = api.post.readLatestPosts.useQuery(undefined, { diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 841caec..d73eb0c 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,3 +1,6 @@ +import { PrismaClient } from "@prisma/client"; +import type { GetStaticPropsResult } from "next"; + import { SectionSubtitle } from "~/components/atoms/section-subtitle/section-subtitle"; import { CategoryRowsLinks } from "~/components/molecules/category-rows-links/category-rows-links"; import { Intro } from "~/components/molecules/intro/intro"; @@ -6,16 +9,16 @@ import { PageMainIndent } from "~/components/molecules/page-main-indent/page-mai import { PostRowsLinks } from "~/components/molecules/post-rows-links/post-rows-links"; import { PostShort } from "~/components/molecules/post-short/post-short"; import { SharedHead } from "~/components/molecules/shared-head/shared-head"; -import { useReadLatestPosts } from "~/hooks/post/read-latest-posts.hook"; -import { useReadRandomCategoryPostCount } from "~/hooks/post/read-random-category-post-count"; -import { useReadRandomPost } from "~/hooks/post/read-random-post.hook"; +import { tagKeys } from "~/schemas/post/post.schema"; import { appDescription, appDomain, appStrapline } from "~/settings/constants"; +import type { IHomePageProperties } from "~/types/page.types"; +import { getShuffledArray } from "~/utils/get-shuffled-array"; -export default function Home() { - const { latestPostsData, latestPostsDataIsFetching } = useReadLatestPosts(); - const { randomPostData, randomPostDataIsFetching } = useReadRandomPost(); - const { randomCategoryPostCountData, randomCategoryPostCountIsFetching } = - useReadRandomCategoryPostCount({}); +export default function Home({ + latestPostsData, + randomPostData, + randomCategoryPostCountData, +}: IHomePageProperties) { return ( <>
- +
Random categories
Latest posts - +
@@ -55,3 +49,142 @@ export default function Home() { ); } + +// This function gets called at build time +export const getStaticProps = async (): Promise< + GetStaticPropsResult +> => { + const prisma = new PrismaClient(); + const allPublishedPostsData = await prisma.post.findMany({ + where: { + versions: { + some: { + published: true, + }, + }, + }, + orderBy: { + createdAt: "desc", + }, + select: { + author: { + select: { + id: true, + username: true, + image: true, + }, + }, + id: true, + title: true, + versions: { + select: { + author: true, + id: true, + title: true, + fileUnder: true, + acronym: true, + abbreviation: true, + slug: true, + tags: true, + updatedAt: true, + }, + orderBy: { + updatedAt: "desc", + }, + take: 1, + }, + }, + }); + + const latestPostsData: IHomePageProperties["latestPostsData"] = + allPublishedPostsData.slice(0, 10); + + const allPostsWithAuthor = await prisma.post.findMany({ + include: { + author: { + select: { + id: true, + username: true, + image: true, + }, + }, + versions: { + include: { + author: { + select: { + id: true, + username: true, + image: true, + }, + }, + }, + take: 1, + orderBy: { + updatedAt: "desc", + }, + where: { + published: true, + }, + }, + }, + }); + + const categoryPosts = await prisma.post.findMany({ + orderBy: { + createdAt: "desc", + }, + select: { + versions: { + select: { + fileUnder: true, + published: true, + }, + orderBy: { + updatedAt: "desc", + }, + take: 1, + }, + }, + }); + + const initialEmptyCategoriesMap = new Map( + tagKeys.map((tagKey) => [tagKey, 0]) + ); + + // eslint-disable-next-line unicorn/no-array-reduce -- Reduce might be the best way to do this + const postsInCategories = categoryPosts.reduce((accumulator, post) => { + const lastVersion = post.versions.at(-1); + + if (!lastVersion) { + return accumulator; + } + + const { fileUnder } = lastVersion; + + const currentCount = accumulator.get(fileUnder); + + if (currentCount === undefined) { + return accumulator; + } + + accumulator.set(fileUnder, currentCount + 1); + + return accumulator; + }, initialEmptyCategoriesMap); + + const randomCategoryPostCountData = getShuffledArray([ + ...postsInCategories.entries(), + ]).slice(0, 10); + + const randomPostData: IHomePageProperties["randomPostData"] = + getShuffledArray(allPostsWithAuthor).at(0); + + return { + props: { + latestPostsData, + randomPostData, + randomCategoryPostCountData, + }, + revalidate: 24 * 60 * 60, // 24 hours + }; +}; diff --git a/src/types/page.types.ts b/src/types/page.types.ts new file mode 100644 index 0000000..437f184 --- /dev/null +++ b/src/types/page.types.ts @@ -0,0 +1,9 @@ +import type { + TTRPCReadCategoryPosts, TTRPCReadLatestPosts, TTRPCReadRandomCategoryPostCount, TTRPCReadRandomPost, +} from "./prisma.types"; + +export interface IHomePageProperties { + latestPostsData: TTRPCReadLatestPosts | TTRPCReadCategoryPosts; + randomPostData: TTRPCReadRandomPost; + randomCategoryPostCountData: NonNullable +}