PageSourceSearch

https://no-db-webform.lovable.app/assets/onepatchAdminQuoteService-DBNWtsqq.js

js no-db-webform.lovable.app collected 2026-10-03 03:36:13 UTC 5,273 bytes, 1 lines download raw bytes

1import{m as P,g as k}from"./onepatchForm2Mapper-DdW7KqZ9.js";import"./index-DrMCWrbp.js";const N=1e3,$=2e3;function S(e){var c;if(!String((e==null?void 0:e.vehicle_usage)||"").toLowerCase().includes("private"))return{ok:!1,reason:`Usage "${e==null?void 0:e.vehicle_usage}" — OnePatch only quotes Private.`};if(String((e==null?void 0:e.coverage_level)||"").toLowerCase().includes("third party"))return{ok:!1,reason:`Coverage "${e==null?void 0:e.coverage_level}" — OnePatch is Comprehensive only.`};const t=!!(e!=null&&e.vehicle_registration&&String(e.vehicle_registration).trim()),n=(e==null?void 0:e.vehicle_nvic)??(e==null?void 0:e.nvic)??(e==null?void 0:e.vehicle_nvic_code)??((c=e==null?void 0:e.vehicle)==null?void 0:c.NVIC)??"",a=!!String(n).trim();return!t&&!a?{ok:!1,reason:"No registration number and no NVIC (manual entry needs an NVIC)."}:t&&!(e!=null&&e.vehicle_state)?{ok:!1,reason:"Rego provided but no vehicle state."}:!(e!=null&&e.parking_address)&&!(e!=null&&e.address)?{ok:!1,reason:"No parking address."}:{ok:!0}}function f(){return new Date().toLocaleTimeString()}function v(e){if(!e)return{};const o=Number(e.totalDueBroker),s=Number(e.subtotal),t=Number(e.annualPremium);return{premiumTotal:Number.isFinite(o)&&o>0?o:Number.isFinite(s)&&s>0?s:Number.isFinite(t)&&t>0?t:void 0,basePremium:Number.isFinite(t)&&t>0?t:Number.isFinite(Number(e.base))?Number(e.base):void 0,gst:Number.isFinite(Number(e.gstOnPremium))?Number(e.gstOnPremium):void 0,stampDuty:Number.isFinite(Number(e.stampDuty))?Number(e.stampDuty):void 0}}const w=e=>new Promise(o=>setTimeout(o,e));function x(e){var t,n,a;const o=String((e==null?void 0:e.message)||e||""),s=Number(e==null?void 0:e.status)||Number((t=e==null?void 0:e.context)==null?void 0:t.status)||Number((a=(n=e==null?void 0:e.context)==null?void 0:n.response)==null?void 0:a.status)||void 0;return s&&s>=500&&s<600?{transient:!0,status:s,hint:`HTTP ${s} from edge gateway`}:/failed to send a request/i.test(o)?{transient:!0,status:s,hint:"Likely Supabase edge gateway 504 (transient)"}:/fetch|network|timeout|timed out/i.test(o)?{transient:!0,status:s,hint:"Network/timeout — transient"}:{transient:!1,status:s}}async function y(e,o,s,t,n={}){var d,p;const a=Math.max(1,n.maxAttempts??1),c=n.retryDelayMs??3e3,l={...o,cover:{...o.cover||{},excess:s},commissionRate:0};t({step:1,title:`OnePatch ${e} Excess — Start`,status:"in-progress",message:`excess=$${s.toLocaleString()} · brokerCommission=0%${a>1?` · retries=${a-1}`:""}`,rawData:{excess:s,commissionRate:0,maxAttempts:a}});let g=null;for(let u=1;u<=a;u++){u>1&&(t({step:1,title:`OnePatch ${e} — Retry ${u-1}/${a-1}`,status:"in-progress",message:`Previous attempt failed transiently. Retrying after ${c}ms…`}),await w(c));try{const r=await k(l),i=v(r.priced);(r.stepLogs||[]).forEach((m,b)=>{t({step:b+2,title:m.label,status:m.ok?"success":"error",message:m.ok?`${m.ms} ms`:m.error||`${m.label} failed`,rawData:m.preview??void 0})});const h=(((d=r.stepLogs)==null?void 0:d.length)||0)+2;return r.success&&i.premiumTotal!=null?t({step:h,title:`OnePatch ${e} — Priced${u>1?` (attempt ${u})`:""}`,status:"success",message:`Quote ${r.quoteNumber||"(no number)"} · $${i.premiumTotal.toFixed(2)} · excess $${s}`,rawData:r.priced}):t({step:h,title:`OnePatch ${e} — Failed`,status:"error",message:r.error||((p=r.priced)==null?void 0:p.warning)||"No priced response from OnePatch",rawData:r.priced??r}),{success:!!r.success&&i.premiumTotal!=null,quoteNumber:r.quoteNumber,trackingNumber:r.trackingNumber,premiumTotal:i.premiumTotal,basePremium:i.basePremium,gst:i.gst,stampDuty:i.stampDuty,basicExcess:s,commissionRate:0,priced:r.priced,rawResponse:r,requestPayload:l,stepLog:r.stepLogs,error:r.error}}catch(r){g=r;const i=x(r),h=(r==null?void 0:r.message)||String(r),m=i.status?`status=${i.status} · `:"",b=i.hint?` · ${i.hint}`:"",D=u<a&&i.transient?" · will retry":"";if(t({step:99,title:`OnePatch ${e} — Exception (attempt ${u}/${a})`,status:"error",message:`${m}${h}${b}${D}`,rawData:{status:i.status,transient:i.transient,error:h}}),!i.transient||u>=a)break}}return{success:!1,basicExcess:s,commissionRate:0,requestPayload:l,error:(g==null?void 0:g.message)||String(g||"Unknown error")}}async function _(e,o,s,t){const n=S(e),a=[],c=[];if(!n.ok)return a.push({step:1,title:"OnePatch Skipped",status:"error",message:n.reason||"Not eligible",timestamp:f()}),{defaultExcess:{success:!1,commissionRate:0,basicExcess:N,error:n.reason},highExcess:{success:!1,commissionRate:0,basicExcess:$,error:n.reason},defaultDebugSteps:a,highExcessDebugSteps:c,skipped:{reason:n.reason||"Not eligible"}};const l=await P(e,{policyStartDateOverride:s});
1l.warnings.forEach((r,i)=>a.push({step:i+1,title:"Mapper Warning",status:"in-progress",message:r,timestamp:f()}));const g=r=>a.push({...r,step:a.length+1,timestamp:f()}),d=r=>c.push({...r,step:c.length+1,timestamp:f()});t==null||t("defaultStart",!0);const p=await y("Default",l.input,N,g);t==null||t("defaultDone",p.success),await w(2e3),t==null||t("highStart",!0);const u=await y("High",l.input,$,d,{maxAttempts:2,retryDelayMs:3e3});return t==null||t("highDone",u.success),{defaultExcess:p,highExcess:u,defaultDebugSteps:a,highExcessDebugSteps:c}}export{_ as generateOnepatchQuotes,S as isOnepatchEligible};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.