archetecture security fix
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},18967,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={DecodeError:function(){return P},MiddlewareNotFoundError:function(){return O},MissingStaticPage:function(){return h},NormalizeError:function(){return E},PageNotFoundError:function(){return b},SP:function(){return m},ST:function(){return y},WEB_VITALS:function(){return i},execOnce:function(){return u},getDisplayName:function(){return l},getLocationOrigin:function(){return c},getURL:function(){return f},isAbsoluteUrl:function(){return a},isResSent:function(){return d},loadGetInitialProps:function(){return g},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return N}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function u(e){let r,t=!1;return(...n)=>(t||(t=!0,r=e(...n)),r)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,a=e=>s.test(e);function c(){let{protocol:e,hostname:r,port:t}=window.location;return`${e}//${r}${t?":"+t:""}`}function f(){let{href:e}=window.location,r=c();return e.substring(r.length)}function l(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let r=e.split("?");return r[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(r[1]?`?${r.slice(1).join("?")}`:"")}async function g(e,r){let t=r.res||r.ctx&&r.ctx.res;if(!e.getInitialProps)return r.ctx&&r.Component?{pageProps:await g(r.Component,r.ctx)}:{};let n=await e.getInitialProps(r);if(t&&d(t))return n;if(!n)throw Object.defineProperty(Error(`"${l(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,y=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class P extends Error{}class E extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class h extends Error{constructor(e,r){super(),this.message=`Failed to load static file for page: ${e} ${r}`}}class O extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function N(e){return JSON.stringify({message:e.message,stack:e.stack})}},98183,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={assign:function(){return a},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});function i(e){let r={};for(let[t,n]of e.entries()){let e=r[t];void 0===e?r[t]=n:Array.isArray(e)?e.push(n):r[t]=[e,n]}return r}function u(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let r=new URLSearchParams;for(let[t,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)r.append(t,u(e));else r.set(t,u(n));return r}function a(e,...r){for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,23402,e=>{"use strict";var t=e.i(43476),s=e.i(43244),a=e.i(96576);let r={en:{kicker:"Footer information",cta:"Need more details?",support:"Contact the RentalDriveGo team through our official channels for business, support, or partnership requests."},fr:{kicker:"Informations du pied de page",cta:"Besoin de plus de détails ?",support:"Contactez l'équipe RentalDriveGo via nos canaux officiels pour toute demande commerciale, support ou partenariat."},ar:{kicker:"معلومات التذييل",cta:"هل تحتاج إلى مزيد من التفاصيل؟",support:"تواصل مع فريق RentalDriveGo عبر القنوات الرسمية للاستفسارات التجارية أو الدعم أو الشراكات."}},n=/(https?:\/\/[^\s]+)/g;function o(e){return e.split(n).map((e,s)=>{if(n.test(e)){n.lastIndex=0;let a=e.match(/^(https?:\/\/[^\s]+?)([.,!?;:]*)$/),r=a?.[1]??e,o=a?.[2]??"";return(0,t.jsxs)("span",{children:[(0,t.jsx)("a",{href:r,className:"text-orange-700 underline decoration-orange-300 underline-offset-4 transition hover:text-blue-900 dark:text-orange-300 dark:hover:text-stone-100",children:r}),o]},`${e}-${s}`)}return n.lastIndex=0,(0,t.jsx)("span",{children:e},`${e}-${s}`)})}e.s(["default",0,function({slug:e,forcedLanguage:n}){let{language:i}=(0,s.useMarketplacePreferences)(),l=n??i,d=(0,a.getFooterPageContent)(l,e),c=r[l],p="ar"===l;return(0,t.jsx)("main",{className:"site-page",children:(0,t.jsx)("div",{className:"site-section mx-auto max-w-4xl",children:(0,t.jsxs)("section",{className:"site-panel overflow-hidden p-0",children:[(0,t.jsxs)("div",{className:"site-panel-muted rounded-none border-0 border-b border-stone-100/80 px-6 py-10 sm:px-10 sm:py-14 dark:border-blue-900",children:[(0,t.jsx)("p",{className:"site-kicker",children:c.kicker}),(0,t.jsx)("h1",{className:"site-title",children:d.title})]}),(0,t.jsxs)("div",{className:`space-y-6 px-6 py-10 sm:px-10 sm:py-12 ${p?"text-right":"text-left"}`,children:[d.paragraphs.map(e=>(0,t.jsx)("p",{className:"text-lg leading-8 text-stone-700 dark:text-stone-300",children:o(e)},e)),d.sections?.map(e=>(0,t.jsxs)("section",{className:"space-y-4",children:[(0,t.jsx)("h2",{className:"text-xl font-semibold text-stone-900 dark:text-stone-100",children:e.heading}),e.paragraphs.map(s=>(0,t.jsx)("p",{className:"text-lg leading-8 text-stone-700 dark:text-stone-300",children:o(s)},`${e.heading}-${s}`))]},e.heading)),(0,t.jsxs)("div",{className:"rounded-3xl border border-orange-200 bg-orange-50 px-6 py-5 dark:border-orange-800 dark:bg-orange-950/30",children:[(0,t.jsx)("p",{className:"text-sm font-semibold uppercase tracking-[0.18em] text-orange-800 dark:text-orange-400",children:c.cta}),(0,t.jsx)("p",{className:"mt-2 text-base leading-7 text-stone-700 dark:text-stone-300",children:c.support})]})]})]})})})}])}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,7970,e=>{"use strict";var s=e.i(43476),a=e.i(43244);let r={en:{kicker:"Features",title:"Operations, marketplace discovery, and branded booking.",body:"RentalDriveGo combines company-only operations with a public marketplace that sends renters to each company's own payment flow.",cards:[["Private dashboard","Fleet, reservations, CRM, team permissions, billing, and reports stay isolated per company."],["Marketplace discovery","Published vehicles and public offers appear on `/explore` for cross-company browsing."],["Branded booking site","Each company gets its own subdomain where renters complete booking and payment directly."],["Payment flexibility","Use AmanPay or PayPal for subscriptions and for company-side renter payments."],["Advanced rental ops","Insurance, additional drivers, pricing rules, and structured fuel policies live in dashboard settings."],["Notification controls","Both company staff and renters can manage event-by-channel notification preferences."]]},fr:{kicker:"Fonctionnalités",title:"Opérations, découverte marketplace et réservation de marque.",body:"RentalDriveGo combine des opérations privées pour l'entreprise avec une marketplace publique qui redirige les clients vers le parcours de paiement propre à chaque société.",cards:[["Tableau de bord privé","Flotte, réservations, CRM, permissions d'équipe, facturation et rapports restent isolés par entreprise."],["Découverte marketplace","Les véhicules publiés et les offres publiques apparaissent sur `/explore` pour une navigation multi-entreprises."],["Site de réservation de marque","Chaque entreprise dispose de son propre sous-domaine où les clients finalisent la réservation et le paiement."],["Flexibilité de paiement","Utilisez AmanPay ou PayPal pour les abonnements et pour les paiements côté entreprise."],["Opérations avancées","Assurance, conducteurs supplémentaires, règles tarifaires et politiques carburant structurées sont gérés dans les paramètres du tableau de bord."],["Contrôle des notifications","Le personnel comme les clients peuvent gérer leurs préférences de notification par événement et canal."]]},ar:{kicker:"المزايا",title:"العمليات، اكتشاف السوق، والحجز المخصص.",body:"يجمع RentalDriveGo بين عمليات الشركة الخاصة وسوق عام يوجّه المستأجرين إلى مسار الدفع الخاص بكل شركة.",cards:[["لوحة تحكم خاصة","الأسطول والحجوزات وCRM وصلاحيات الفريق والفوترة والتقارير تبقى معزولة لكل شركة."],["اكتشاف عبر السوق","تظهر السيارات المنشورة والعروض العامة في `/explore` للتصفح بين الشركات."],["موقع حجز مخصص","تحصل كل شركة على نطاق فرعي خاص بها لإتمام الحجز والدفع مباشرة."],["مرونة الدفع","استخدم AmanPay أو PayPal للاشتراكات ومدفوعات المستأجرين من جهة الشركة."],["عمليات متقدمة","التأمين والسائقون الإضافيون وقواعد التسعير وسياسات الوقود المنظمة موجودة في إعدادات اللوحة."],["التحكم في الإشعارات","يمكن للموظفين والمستأجرين إدارة تفضيلات الإشعارات حسب الحدث والقناة."]]}};e.s(["default",0,function(){let{language:e}=(0,a.useMarketplacePreferences)(),t=r[e];return(0,s.jsx)("main",{className:"site-page",children:(0,s.jsxs)("div",{className:"site-section space-y-12",children:[(0,s.jsxs)("div",{className:"max-w-3xl",children:[(0,s.jsx)("p",{className:"site-kicker",children:t.kicker}),(0,s.jsx)("h1",{className:"site-title",children:t.title}),(0,s.jsx)("p",{className:"site-lead",children:t.body})]}),(0,s.jsx)("div",{className:"grid gap-6 md:grid-cols-2 xl:grid-cols-3",children:t.cards.map(([e,a])=>(0,s.jsxs)("article",{className:"card p-8",children:[(0,s.jsx)("h2",{className:"text-xl font-black text-stone-900 dark:text-stone-100",children:e}),(0,s.jsx)("p",{className:"mt-4 text-sm leading-7 text-stone-600 dark:text-stone-400",children:a})]},e))})]})})}])}]);
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,51013,e=>{"use strict";var a=e.i(43476),t=e.i(71645),s=e.i(22016),r=e.i(18566),n=e.i(53951),l=e.i(43244);e.s(["default",0,function(){let e=(0,r.useRouter)(),{language:o}=(0,l.useMarketplacePreferences)(),i={en:{load:"Could not load saved companies.",renter:"Renter",title:"Saved companies",back:"Back to dashboard",loading:"Loading saved companies…",empty:"You have not saved any companies yet.",browse:"Browse the marketplace",rentalCompany:"Rental company"},fr:{load:"Impossible de charger les entreprises sauvegardées.",renter:"Client",title:"Entreprises sauvegardées",back:"Retour au tableau de bord",loading:"Chargement des entreprises sauvegardées…",empty:"Vous n’avez encore enregistré aucune entreprise.",browse:"Parcourir la marketplace",rentalCompany:"Société de location"},ar:{load:"تعذر تحميل الشركات المحفوظة.",renter:"المستأجر",title:"الشركات المحفوظة",back:"العودة إلى بوابة المستأجر",loading:"جارٍ تحميل الشركات المحفوظة…",empty:"لم تقم بحفظ أي شركة بعد.",browse:"تصفح السوق",rentalCompany:"شركة تأجير"}}[o],[d,c]=(0,t.useState)([]),[m,u]=(0,t.useState)(""),[p,x]=(0,t.useState)(!0);return(0,t.useEffect)(()=>{(0,n.loadRenterProfile)().then(e=>c(e.savedCompanies??[])).catch(a=>{a instanceof n.RenterAuthError?e.replace("/"):u(a instanceof Error?a.message:i.load)}).finally(()=>x(!1))},[e]),(0,a.jsxs)("div",{className:"shell space-y-6",children:[(0,a.jsx)("h1",{className:"text-3xl font-black tracking-tight text-blue-900",children:i.title}),p?(0,a.jsx)("div",{className:"card p-8 text-sm text-stone-500",children:i.loading}):null,!p&&m?(0,a.jsx)("div",{className:"card p-8 text-sm text-rose-600",children:m}):null,p||m||0!==d.length?null:(0,a.jsxs)("div",{className:"card p-10 text-center",children:[(0,a.jsx)("p",{className:"text-sm text-stone-500",children:i.empty}),(0,a.jsx)(s.default,{href:"/explore",className:"mt-5 inline-flex rounded-full bg-orange-600 px-6 py-2.5 text-sm font-semibold text-white",children:i.browse})]}),p||m||!(d.length>0)?null:(0,a.jsx)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:d.map(e=>(0,a.jsxs)(s.default,{href:`/explore/${e.brand?.subdomain??e.id}`,className:"card flex items-center gap-4 p-5 hover:border-orange-300 transition-colors",children:[e.brand?.logoUrl?(0,a.jsx)("img",{src:e.brand.logoUrl,alt:e.brand.displayName,className:"h-11 w-11 rounded-xl object-contain"}):(0,a.jsx)("div",{className:"flex h-11 w-11 items-center justify-center rounded-xl bg-orange-100 text-sm font-bold text-orange-700",children:e.brand?.displayName?.charAt(0)??"?"}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"truncate text-sm font-semibold text-blue-900",children:e.brand?.displayName??i.rentalCompany}),(0,a.jsx)("p",{className:"mt-1 truncate text-xs text-stone-400",children:e.brand?.subdomain??e.id})]})]},e.id))})]})}])}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,63277,e=>{"use strict";var t=e.i(43476),a=e.i(71645),n=e.i(18566),l=e.i(53951),s=e.i(43244);e.s(["default",0,function(){let e=(0,n.useRouter)(),{language:i}=(0,s.useMarketplacePreferences)(),r={en:{load:"Could not load notifications.",updateOne:"Could not update the notification.",updateAll:"Could not update notifications.",renter:"Renter",title:"Notifications",markAll:"Mark all read",back:"Back to dashboard",loading:"Loading notifications…",empty:"No renter notifications yet.",read:"Read",markRead:"Mark read"},fr:{load:"Impossible de charger les notifications.",updateOne:"Impossible de mettre à jour la notification.",updateAll:"Impossible de mettre à jour les notifications.",renter:"Client",title:"Notifications",markAll:"Tout marquer comme lu",back:"Retour au tableau de bord",loading:"Chargement des notifications…",empty:"Aucune notification client pour le moment.",read:"Lu",markRead:"Marquer comme lu"},ar:{load:"تعذر تحميل الإشعارات.",updateOne:"تعذر تحديث الإشعار.",updateAll:"تعذر تحديث الإشعارات.",renter:"المستأجر",title:"الإشعارات",markAll:"تعيين الكل كمقروء",back:"العودة إلى بوابة المستأجر",loading:"جارٍ تحميل الإشعارات…",empty:"لا توجد إشعارات للمستأجر حالياً.",read:"مقروء",markRead:"تعيين كمقروء"}}[i],[o,d]=(0,a.useState)([]),[c,m]=(0,a.useState)(""),[u,p]=(0,a.useState)(!0),[x,f]=(0,a.useState)(!1);async function h(e){f(!0);try{await (0,l.markRenterNotificationRead)(e),d(t=>t.map(t=>t.id===e?{...t,readAt:t.readAt??new Date().toISOString()}:t))}catch(e){m(e instanceof Error?e.message:r.updateOne)}finally{f(!1)}}async function b(){f(!0);try{await (0,l.markAllRenterNotificationsRead)(),d(e=>e.map(e=>({...e,readAt:e.readAt??new Date().toISOString()})))}catch(e){m(e instanceof Error?e.message:r.updateAll)}finally{f(!1)}}return(0,a.useEffect)(()=>{(0,l.loadRenterNotifications)().then(e=>d(e)).catch(t=>{t instanceof l.RenterAuthError?e.replace("/"):m(t instanceof Error?t.message:r.load)}).finally(()=>p(!1))},[e]),(0,t.jsxs)("div",{className:"shell space-y-6",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[(0,t.jsx)("h1",{className:"text-3xl font-black tracking-tight text-blue-900",children:r.title}),(0,t.jsx)("button",{type:"button",onClick:b,disabled:u||x,className:"rounded-full border border-stone-200 bg-white px-5 py-2.5 text-sm font-semibold text-stone-700",children:r.markAll})]}),u?(0,t.jsx)("div",{className:"card p-8 text-sm text-stone-500",children:r.loading}):null,!u&&c?(0,t.jsx)("div",{className:"card p-8 text-sm text-rose-600",children:c}):null,u||c||0!==o.length?null:(0,t.jsx)("div",{className:"card p-10 text-center text-sm text-stone-500",children:r.empty}),u||c||!(o.length>0)?null:(0,t.jsx)("div",{className:"space-y-4",children:o.map(e=>(0,t.jsxs)("article",{className:"card p-6",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.16em] text-orange-700",children:e.type.replaceAll("_"," ")}),(0,t.jsx)("h2",{className:"mt-2 text-lg font-bold text-blue-900",children:e.title})]}),e.readAt?(0,t.jsx)("span",{className:"rounded-full bg-stone-100 px-3 py-1 text-xs font-semibold text-stone-600",children:r.read}):(0,t.jsx)("button",{type:"button",onClick:()=>h(e.id),disabled:x,className:"rounded-full bg-orange-100 px-3 py-1 text-xs font-semibold text-orange-800",children:r.markRead})]}),(0,t.jsx)("p",{className:"mt-3 text-sm leading-7 text-stone-600",children:e.body}),(0,t.jsx)("p",{className:"mt-4 text-xs text-stone-400",children:new Date(e.createdAt).toLocaleString()})]},e.id))})]})}])}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,24 @@
|
||||
self.__BUILD_MANIFEST = {
|
||||
"__rewrites": {
|
||||
"afterFiles": [
|
||||
{
|
||||
"source": "/dashboard"
|
||||
},
|
||||
{
|
||||
"source": "/dashboard/:path*"
|
||||
},
|
||||
{
|
||||
"source": "/admin"
|
||||
},
|
||||
{
|
||||
"source": "/admin/:path*"
|
||||
}
|
||||
],
|
||||
"beforeFiles": [],
|
||||
"fallback": []
|
||||
},
|
||||
"sortedPages": [
|
||||
"/_app",
|
||||
"/_error"
|
||||
]
|
||||
};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()
|
||||
@@ -0,0 +1,6 @@
|
||||
self.__MIDDLEWARE_MATCHERS = [
|
||||
{
|
||||
"regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next\\/static|_next\\/image|favicon\\.ico|.*\\.(?:png|ico|jpg|jpeg|svg|webp)$).*))(\\.json|\\.rsc|\\.segments\\/.+\\.segment\\.rsc)?[\\/#\\?]?$",
|
||||
"originalSource": "/((?!_next/static|_next/image|favicon\\.ico|.*\\.(?:png|ico|jpg|jpeg|svg|webp)$).*)"
|
||||
}
|
||||
];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB()
|
||||
@@ -0,0 +1 @@
|
||||
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
||||
Reference in New Issue
Block a user