diff --git a/.dockerignore b/.dockerignore index 978c1b2..2ee1c20 100644 --- a/.dockerignore +++ b/.dockerignore @@ -7,7 +7,6 @@ apps/jadwal-sholat/cypress.config.ts .husky .vscode apps/jadwal-sholat/node_modules -apps/jadwal-sholat/.next packages/eslint-config/node_modules .turbo node_modules diff --git a/Dockerfile b/Dockerfile index 021681c..72d148f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,7 @@ RUN pnpm install --filter jadwal-sholat COPY . ./ RUN pnpm run build +COPY apps/jadwal-sholat/.next ./apps/jadwal-sholat/.next # run dev CMD ["pnpm", "run", "dev"] diff --git a/LICENSE b/LICENSE index 2cb25f1..afb2dc1 100644 --- a/LICENSE +++ b/LICENSE @@ -6,4 +6,4 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/apps/jadwal-sholat/package.json b/apps/jadwal-sholat/package.json index 3a7817b..a0fe2bf 100644 --- a/apps/jadwal-sholat/package.json +++ b/apps/jadwal-sholat/package.json @@ -23,6 +23,7 @@ "@radix-ui/react-slot": "^1.1.0", "@t3-oss/env-nextjs": "^0.10.1", "@tanstack/react-query": "^5.50.1", + "@urql/next": "^1.1.1", "axios": "^1.7.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", diff --git a/apps/jadwal-sholat/src/app/(data)/asmaul-husna/client.tsx b/apps/jadwal-sholat/src/app/(pages)/asmaul-husna/client.tsx similarity index 100% rename from apps/jadwal-sholat/src/app/(data)/asmaul-husna/client.tsx rename to apps/jadwal-sholat/src/app/(pages)/asmaul-husna/client.tsx diff --git a/apps/jadwal-sholat/src/app/(data)/asmaul-husna/page.tsx b/apps/jadwal-sholat/src/app/(pages)/asmaul-husna/page.tsx similarity index 73% rename from apps/jadwal-sholat/src/app/(data)/asmaul-husna/page.tsx rename to apps/jadwal-sholat/src/app/(pages)/asmaul-husna/page.tsx index ed5fd0e..80f5521 100644 --- a/apps/jadwal-sholat/src/app/(data)/asmaul-husna/page.tsx +++ b/apps/jadwal-sholat/src/app/(pages)/asmaul-husna/page.tsx @@ -1,11 +1,12 @@ +import { cacheExchange, createClient, fetchExchange } from "@urql/next"; +import { registerUrql } from "@urql/next/rsc"; import dynamic from "next/dynamic"; import TransitionLayout from "~components/transition-layout"; import { env } from "~env.mjs"; -import { AsmaulHusnaProps } from "~interfaces"; -import { getData } from "~lib/utils/axios-config"; import { cn } from "~lib/utils/cn"; import { MetaUrl } from "~lib/utils/enums"; import { bitter } from "~lib/utils/fonts"; +import { GetAllAsmaulHusnaQuery } from "~lib/utils/graphql"; const AsmaulHusnaClient = dynamic(() => import("./client")); @@ -44,19 +45,19 @@ export const metadata = { metadataBase: new URL(url), }; -async function getAsmaulHusna(): Promise { - try { - const response: { data: AsmaulHusnaProps[] } = await getData( - `${NEXT_PUBLIC_ASMAUL_HUSNA_API}/api/all` - ); - return response.data; - } catch (err: any) { - throw new Error(err.message); - } -} +/** + * @see https://commerce.nearform.com/open-source/urql/docs/advanced/server-side-rendering/#invalidating-data-from-a-server-component + */ +const urqlClient = () => + createClient({ + url: `${NEXT_PUBLIC_ASMAUL_HUSNA_API}/api/graphql`, + exchanges: [cacheExchange, fetchExchange], + }); + +const { getClient } = registerUrql(urqlClient); export default async function AsmaulHusna() { - const asmaulHusna = await getAsmaulHusna(); + const asmaulHusna = await getClient().query(GetAllAsmaulHusnaQuery, {}); return ( - + ); } diff --git a/apps/jadwal-sholat/src/app/(data)/doa-harian/client.tsx b/apps/jadwal-sholat/src/app/(pages)/doa-harian/client.tsx similarity index 100% rename from apps/jadwal-sholat/src/app/(data)/doa-harian/client.tsx rename to apps/jadwal-sholat/src/app/(pages)/doa-harian/client.tsx diff --git a/apps/jadwal-sholat/src/app/(data)/doa-harian/page.tsx b/apps/jadwal-sholat/src/app/(pages)/doa-harian/page.tsx similarity index 96% rename from apps/jadwal-sholat/src/app/(data)/doa-harian/page.tsx rename to apps/jadwal-sholat/src/app/(pages)/doa-harian/page.tsx index b4873af..da8b70d 100644 --- a/apps/jadwal-sholat/src/app/(data)/doa-harian/page.tsx +++ b/apps/jadwal-sholat/src/app/(pages)/doa-harian/page.tsx @@ -80,7 +80,7 @@ export default async function DoaHarian() { bitter.className )} > - Do'a Harian + Do'a Harian

- Berikut daftar do'a harian yang tersedia + Berikut daftar do'a harian yang tersedia

diff --git a/apps/jadwal-sholat/src/app/(data)/quran/client.tsx b/apps/jadwal-sholat/src/app/(pages)/quran/client.tsx similarity index 100% rename from apps/jadwal-sholat/src/app/(data)/quran/client.tsx rename to apps/jadwal-sholat/src/app/(pages)/quran/client.tsx diff --git a/apps/jadwal-sholat/src/app/(data)/quran/page.tsx b/apps/jadwal-sholat/src/app/(pages)/quran/page.tsx similarity index 100% rename from apps/jadwal-sholat/src/app/(data)/quran/page.tsx rename to apps/jadwal-sholat/src/app/(pages)/quran/page.tsx diff --git a/apps/jadwal-sholat/src/app/(data)/quran/surat/[number]/client.tsx b/apps/jadwal-sholat/src/app/(pages)/quran/surat/[number]/client.tsx similarity index 78% rename from apps/jadwal-sholat/src/app/(data)/quran/surat/[number]/client.tsx rename to apps/jadwal-sholat/src/app/(pages)/quran/surat/[number]/client.tsx index 23b0ef7..940a528 100644 --- a/apps/jadwal-sholat/src/app/(data)/quran/surat/[number]/client.tsx +++ b/apps/jadwal-sholat/src/app/(pages)/quran/surat/[number]/client.tsx @@ -12,11 +12,93 @@ import { env } from "~env.mjs"; import { useFetch } from "~hooks"; import { cn } from "~lib/utils/cn"; import { bitter } from "~lib/utils/fonts"; -import { qoriOptions } from "~lib/utils/qori-options"; import useGlobalStore from "~store"; const { NEXT_PUBLIC_QURAN_API } = env; +export const qoriOptions: Array<{ id: number; name: string }> = [ + { + id: 1, + name: "Abdul Basit Murattal", + }, + { + id: 2, + name: "Abdul Basit Mujawwad", + }, + { + id: 3, + name: "Abdullah Basfar", + }, + { + id: 4, + name: "Abdurrahmaan As-Sudais", + }, + { + id: 5, + name: "Abu Bakr Ash-Shaatri", + }, + { + id: 6, + name: "Ahmed ibn Ali al-Ajamy", + }, + { + id: 7, + name: "Mishari Rashid Al-Afasy", + }, + { + id: 8, + name: "Saad Al-Ghamidi", + }, + { + id: 9, + name: "Hani Ar-Rifai", + }, + { + id: 10, + name: "Mahmoud Khalil Al-Hussary", + }, + { + id: 11, + name: "Mahmoud Khalil Al-Hussary Mujawwad", + }, + { + id: 12, + name: "Al Hudhaify", + }, + { + id: 13, + name: "Ibrahim Akhdar", + }, + { + id: 14, + name: "Maher Al Muaiqly", + }, + { + id: 15, + name: "Menshawi", + }, + { + id: 16, + name: "Minshawy Mujawwad", + }, + { + id: 17, + name: "Mohammad al Tablaway", + }, + { + id: 18, + name: "Muhammad Ayyoub", + }, + { + id: 19, + name: "Muhammad Jibreel", + }, + { + id: 20, + name: "Saood bin Ibraaheem Ash-Shuraym", + }, +]; + export default function Client({ number }: { number: string }) { const { audio, diff --git a/apps/jadwal-sholat/src/app/(data)/quran/surat/[number]/page.tsx b/apps/jadwal-sholat/src/app/(pages)/quran/surat/[number]/page.tsx similarity index 100% rename from apps/jadwal-sholat/src/app/(data)/quran/surat/[number]/page.tsx rename to apps/jadwal-sholat/src/app/(pages)/quran/surat/[number]/page.tsx diff --git a/apps/jadwal-sholat/src/components/map.tsx b/apps/jadwal-sholat/src/components/map.tsx index a73e203..5c4af1e 100644 --- a/apps/jadwal-sholat/src/components/map.tsx +++ b/apps/jadwal-sholat/src/components/map.tsx @@ -18,20 +18,19 @@ import useGlobalStore from "~store"; function SearchField() { const provider = new OpenStreetMapProvider(); - - // @ts-ignore - const searchControl = new GeoSearchControl({ - provider: provider, - style: "bar", - }); - const map = useMap(); // @ts-ignore useEffect(() => { + // @ts-ignore + const searchControl = new GeoSearchControl({ + provider: provider, + style: "bar", + }); + map.addControl(searchControl); return () => map.removeControl(searchControl); - }, [map, searchControl]); + }, [map]); return null; } diff --git a/apps/jadwal-sholat/src/components/previous-or-next.tsx b/apps/jadwal-sholat/src/components/previous-or-next.tsx index 0e25eac..b4c844b 100644 --- a/apps/jadwal-sholat/src/components/previous-or-next.tsx +++ b/apps/jadwal-sholat/src/components/previous-or-next.tsx @@ -1,7 +1,6 @@ import { ArrowLeft, ArrowRight } from "lucide-react"; import Link from "next/link"; import { P, match } from "ts-pattern"; -import { SuratProps } from "~interfaces"; import { removeSelectedSurat } from "~lib/helpers"; import { cn } from "~lib/utils/cn"; diff --git a/apps/jadwal-sholat/src/components/ui/card.tsx b/apps/jadwal-sholat/src/components/ui/card.tsx index 2210edf..c1d6a24 100644 --- a/apps/jadwal-sholat/src/components/ui/card.tsx +++ b/apps/jadwal-sholat/src/components/ui/card.tsx @@ -4,7 +4,7 @@ import { cn } from "~lib/utils/cn"; const Card = React.forwardRef< HTMLDivElement, React.HTMLAttributes ->(({ className, ...props }, ref) => ( +>(({ className, children, ...props }, ref) => (
+ > + {children} +
)); Card.displayName = "Card"; const CardHeader = React.forwardRef< HTMLDivElement, React.HTMLAttributes ->(({ className, ...props }, ref) => ( +>(({ className, children, ...props }, ref) => (
+ > + {children} +
)); CardHeader.displayName = "CardHeader"; const CardTitle = React.forwardRef< HTMLParagraphElement, React.HTMLAttributes ->(({ className, ...props }, ref) => ( +>(({ className, children, ...props }, ref) => (

+ > + {children} +

)); CardTitle.displayName = "CardTitle"; const CardDescription = React.forwardRef< HTMLParagraphElement, React.HTMLAttributes ->(({ className, ...props }, ref) => ( +>(({ className, children, ...props }, ref) => (

+ > + {children} +

)); CardDescription.displayName = "CardDescription"; @@ -66,12 +74,14 @@ CardContent.displayName = "CardContent"; const CardFooter = React.forwardRef< HTMLDivElement, React.HTMLAttributes ->(({ className, ...props }, ref) => ( +>(({ className, children, ...props }, ref) => (
+ > + {children} +
)); CardFooter.displayName = "CardFooter"; diff --git a/apps/jadwal-sholat/src/hooks/use-ascending.ts b/apps/jadwal-sholat/src/hooks/use-ascending.ts index 45d5eaa..c9e7b07 100644 --- a/apps/jadwal-sholat/src/hooks/use-ascending.ts +++ b/apps/jadwal-sholat/src/hooks/use-ascending.ts @@ -1,5 +1,3 @@ -"use client"; - import { Dispatch, SetStateAction, useDeferredValue, useState } from "react"; interface UseAscendingProps { diff --git a/apps/jadwal-sholat/src/hooks/use-fetch.ts b/apps/jadwal-sholat/src/hooks/use-fetch.ts index 4d3fd2c..21362b1 100644 --- a/apps/jadwal-sholat/src/hooks/use-fetch.ts +++ b/apps/jadwal-sholat/src/hooks/use-fetch.ts @@ -1,5 +1,3 @@ -"use client"; - import { UseQueryResult, keepPreviousData, diff --git a/apps/jadwal-sholat/src/hooks/use-geolocation.ts b/apps/jadwal-sholat/src/hooks/use-geolocation.ts index ec396ae..203ae0e 100644 --- a/apps/jadwal-sholat/src/hooks/use-geolocation.ts +++ b/apps/jadwal-sholat/src/hooks/use-geolocation.ts @@ -1,5 +1,3 @@ -"use client"; - import { useEffect } from "react"; import useGlobalStore from "~store"; diff --git a/apps/jadwal-sholat/src/hooks/use-play-next-audio.ts b/apps/jadwal-sholat/src/hooks/use-play-next-audio.ts index 9171fd5..a012bc9 100644 --- a/apps/jadwal-sholat/src/hooks/use-play-next-audio.ts +++ b/apps/jadwal-sholat/src/hooks/use-play-next-audio.ts @@ -1,5 +1,3 @@ -"use client"; - import { useRouter } from "next/navigation"; import { Dispatch, SetStateAction, useState } from "react"; import { AudioLoadOptions, useAudioPlayer } from "react-use-audio-player"; diff --git a/apps/jadwal-sholat/src/hooks/use-scroll-ayat.ts b/apps/jadwal-sholat/src/hooks/use-scroll-ayat.ts index 42d0dcd..b0c6e12 100644 --- a/apps/jadwal-sholat/src/hooks/use-scroll-ayat.ts +++ b/apps/jadwal-sholat/src/hooks/use-scroll-ayat.ts @@ -1,5 +1,3 @@ -"use client"; - import { useEffect } from "react"; import { LastReadProps } from "~interfaces"; @@ -19,17 +17,14 @@ interface ScrollAyatProps { * @param {boolean} param0.isAudioEnded * @param {(isAudioEnded: boolean) => void} param0.setIsAudioEnded */ -export function useScrollAyat({ - lastRead, - ayat, - isAudioEnded, - setIsAudioEnded, -}: ScrollAyatProps) { +export function useScrollAyat( + { lastRead, ayat, isAudioEnded, setIsAudioEnded }: ScrollAyatProps +) { useEffect(() => { + const ayatId = document.getElementById(ayat); const lastReadId = document.getElementById( - `ayat-${lastRead.ayat?.toString()}` + `ayat-${lastRead.ayat?.toString() as string}` ); - const ayatId = document.getElementById(ayat); if ( lastReadId && @@ -38,7 +33,10 @@ export function useScrollAyat({ lastReadId.scrollIntoView({ behavior: "smooth" }); } - if (isAudioEnded) ayatId?.scrollIntoView({ behavior: "smooth" }); + if (isAudioEnded) { + ayatId?.scrollIntoView({ behavior: "smooth" }); + } + setIsAudioEnded(false); }, [lastRead, isAudioEnded, setIsAudioEnded, ayat]); } diff --git a/apps/jadwal-sholat/src/hooks/use-scroll.ts b/apps/jadwal-sholat/src/hooks/use-scroll.ts index 174ac99..b79dad3 100644 --- a/apps/jadwal-sholat/src/hooks/use-scroll.ts +++ b/apps/jadwal-sholat/src/hooks/use-scroll.ts @@ -1,5 +1,3 @@ -"use client"; - import { useCallback, useEffect } from "react"; import useGlobalStore from "~store"; diff --git a/apps/jadwal-sholat/src/interfaces/index.ts b/apps/jadwal-sholat/src/interfaces/index.ts index f1ca99a..80ad98e 100644 --- a/apps/jadwal-sholat/src/interfaces/index.ts +++ b/apps/jadwal-sholat/src/interfaces/index.ts @@ -30,7 +30,10 @@ export interface ScrollSliceProps { } export interface LocationPositionProps { - position: { lat: number; lng: number }; + position: { + lat: number; + lng: number; + }; setPosition: (pos: { lat: number; lng: number }) => void; } diff --git a/apps/jadwal-sholat/src/lib/utils/axios-config.ts b/apps/jadwal-sholat/src/lib/utils/axios-config.ts index 19a5cbf..018a3e4 100644 --- a/apps/jadwal-sholat/src/lib/utils/axios-config.ts +++ b/apps/jadwal-sholat/src/lib/utils/axios-config.ts @@ -8,7 +8,7 @@ const config: AxiosRequestConfig = { }, }; -const axios = Axios.create(config); +export const axios = Axios.create(config); export async function getData(url: string): Promise { try { diff --git a/apps/jadwal-sholat/src/lib/utils/graphql.ts b/apps/jadwal-sholat/src/lib/utils/graphql.ts new file mode 100644 index 0000000..588ced9 --- /dev/null +++ b/apps/jadwal-sholat/src/lib/utils/graphql.ts @@ -0,0 +1,12 @@ +export const GetAllAsmaulHusnaQuery: string = ` + query { + allAsmaulHusna { + data { + urutan + latin + arti + arab + } + } + } +`; diff --git a/docker-compose.yaml b/docker-compose.yaml index 7943c40..d37ad35 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -2,10 +2,10 @@ version: "3.5" services: app: + container_name: jadwal-sholat build: context: . dockerfile: Dockerfile - container_name: jadwal_sholat ports: - 3000:3000 volumes: @@ -13,10 +13,3 @@ services: - /app/node_modules - /app/apps/jadwal-sholat/node_modules - /app/packages/eslint-config-custom/node_modules - - /app/apps/jadwal-sholat/.next - environment: - - NEXT_PUBLIC_QURAN_API=${NEXT_PUBLIC_QURAN_API} - - NEXT_PUBLIC_PUASA_SUNNAH_API=${NEXT_PUBLIC_PUASA_SUNNAH_API} - - NEXT_PUBLIC_JADWAL_SHOLAT_API=${NEXT_PUBLIC_JADWAL_SHOLAT_API} - - NEXT_PUBLIC_ASMAUL_HUSNA_API=${NEXT_PUBLIC_ASMAUL_HUSNA_API} - - NEXT_PUBLIC_DOA_HARIAN_API=${NEXT_PUBLIC_DOA_HARIAN_API} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e512b7e..5575119 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,6 +53,9 @@ importers: '@tanstack/react-query': specifier: ^5.50.1 version: 5.50.1(react@18.3.1) + '@urql/next': + specifier: ^1.1.1 + version: 1.1.1(next@14.2.4)(react@18.3.1)(urql@4.1.0) axios: specifier: ^1.7.2 version: 1.7.2 @@ -200,6 +203,15 @@ importers: packages: + /@0no-co/graphql.web@1.0.7: + resolution: {integrity: sha512-E3Qku4mTzdrlwVWGPxklDnME5ANrEGetvYw4i2GCRlppWXXE4QD66j7pwb8HelZwS6LnqEChhrSOGCXpbiu6MQ==} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + dev: false + /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -2398,6 +2410,27 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true + /@urql/core@5.0.6: + resolution: {integrity: sha512-38rgSDqVNihFDauw1Pm9V7XLWIKuK8V9CKgrUF7/xEKinze8ENKP1ZeBhkG+dxWzJan7CHK+SLl46kAdvZwIlA==} + dependencies: + '@0no-co/graphql.web': 1.0.7 + wonka: 6.3.4 + transitivePeerDependencies: + - graphql + dev: false + + /@urql/next@1.1.1(next@14.2.4)(react@18.3.1)(urql@4.1.0): + resolution: {integrity: sha512-dLk4npLZeWDCevua3gM5f8WS1IyyJUsjOvUU9tnFRSjTSn2fQcgYAYZbLfpneLTg+1rYNCLgSMJMuBr95PofTQ==} + peerDependencies: + next: '>=13.0.0' + react: '>=18.0.0' + urql: ^4.0.0 + dependencies: + next: 14.2.4(@babel/core@7.24.7)(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + urql: 4.1.0(@urql/core@5.0.6)(react@18.3.1) + dev: false + /@webassemblyjs/ast@1.12.1: resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} dependencies: @@ -7091,6 +7124,17 @@ packages: requires-port: 1.0.0 dev: true + /urql@4.1.0(@urql/core@5.0.6)(react@18.3.1): + resolution: {integrity: sha512-NfbfTvxy1sM89EQAJWm89qJZihUWk7BSMfrWgfljFXLOf+e7RK7DtV/Tbg2+82HnCG2x3LcEOJenxiFSYEC+bw==} + peerDependencies: + '@urql/core': ^5.0.0 + react: '>= 16.8.0' + dependencies: + '@urql/core': 5.0.6 + react: 18.3.1 + wonka: 6.3.4 + dev: false + /use-clipboard-copy@0.2.0(react@18.3.1): resolution: {integrity: sha512-f0PMMwZ2/Hh9/54L12capx4s6ASdd6edNJxg2OcqWVNM8BPvtOSmNFIN1Dg/q//fPp8MpUZceHfr7cnWOS0RxA==} peerDependencies: @@ -7273,6 +7317,10 @@ packages: dependencies: isexe: 2.0.0 + /wonka@6.3.4: + resolution: {integrity: sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg==} + dev: false + /word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} diff --git a/turbo.json b/turbo.json index f009b45..ec28969 100644 --- a/turbo.json +++ b/turbo.json @@ -14,12 +14,5 @@ "persistent": true } }, - "globalEnv": [ - "NODE_ENV", - "NEXT_PUBLIC_QURAN_API", - "NEXT_PUBLIC_PUASA_SUNNAH_API", - "NEXT_PUBLIC_JADWAL_SHOLAT_API", - "NEXT_PUBLIC_ASMAUL_HUSNA_API", - "NEXT_PUBLIC_NOMINATIM_API" - ] + "globalEnv": ["NODE_ENV"] }