diff --git a/src/index.js b/src/index.js index 0e67195..dbd57cd 100644 --- a/src/index.js +++ b/src/index.js @@ -25,6 +25,43 @@ app.use('*', async (c, next) => { await next(); }); +// ── WordPress media proxy — serves /wp-content/* from origin host ──────────── +const WP_ORIGIN = '62.169.17.14'; +app.get('/wp-content/*', async c => { + const path = new URL(c.req.url).pathname + new URL(c.req.url).search; + const originUrl = `https://${WP_ORIGIN}${path}`; + const res = await fetch(originUrl, { + headers: { + 'Host': 'careersgateway.com.au', + 'User-Agent': 'Mozilla/5.0', + }, + cf: { cacheTtl: 86400, cacheEverything: true }, + }).catch(() => null); + if (!res || !res.ok) { + // Fallback: try HTTP + const httpRes = await fetch(`http://${WP_ORIGIN}${path}`, { + headers: { 'Host': 'careersgateway.com.au' }, + }).catch(() => null); + if (!httpRes || !httpRes.ok) return c.notFound(); + return new Response(httpRes.body, { + status: httpRes.status, + headers: { + 'Content-Type': httpRes.headers.get('Content-Type') || 'application/octet-stream', + 'Cache-Control': 'public, max-age=86400', + 'Access-Control-Allow-Origin': '*', + }, + }); + } + return new Response(res.body, { + status: res.status, + headers: { + 'Content-Type': res.headers.get('Content-Type') || 'application/octet-stream', + 'Cache-Control': 'public, max-age=86400', + 'Access-Control-Allow-Origin': '*', + }, + }); +}); + // ── Auth middleware (attaches user to context) ────────────────────────────── app.use('*', async (c, next) => { c.set('user', await getCurrentUser(c.env, c)); diff --git a/src/visa-data.js b/src/visa-data.js index 98e25ae..6b217f4 100644 --- a/src/visa-data.js +++ b/src/visa-data.js @@ -93,25 +93,25 @@ export function calcPoints(profile) { return { total: pts, breakdown }; } -// ── VAC FEES — updated 1 July 2025 (2025-26 financial year) ────────────────── +// ── VAC FEES — updated 1 July 2026 (2026-27 financial year) ────────────────── // Source: Department of Home Affairs — immi.homeaffairs.gov.au/visas/fees // Fees increase annually on 1 July. Always verify before lodging. export const VAC_FEES = [ - { subclass: '189', name: 'Skilled Independent', primary: 4990, secondary: 2495, child: 1250 }, - { subclass: '190', name: 'Skilled Nominated', primary: 4990, secondary: 2495, child: 1250 }, - { subclass: '491', name: 'Skilled Work Regional', primary: 4990, secondary: 2495, child: 1250 }, - { subclass: '186', name: 'Employer Nomination (ENS)', primary: 4990, secondary: 2495, child: 1250 }, - { subclass: '187', name: 'Regional Sponsored (RSMS)', primary: 4990, secondary: 2495, child: 1250 }, - { subclass: '482', name: 'Temporary Skill Shortage (TSS)', primary: 3270, secondary: 1635, child: 1635 }, - { subclass: '494', name: 'Skilled Employer Sponsored Regional', primary: 4990, secondary: 2495, child: 1250 }, - { subclass: '500', name: 'Student Visa', primary: 750, secondary: 375, child: 375 }, - { subclass: '485', name: 'Graduate Temporary', primary: 1985, secondary: 995, child: 500 }, - { subclass: '820', name: 'Partner (onshore)', primary: 9265, secondary: 4635, child: 0, note: 'Includes 801 permanent component' }, + { subclass: '189', name: 'Skilled Independent', primary: 6135, secondary: 3070, child: 1540 }, + { subclass: '190', name: 'Skilled Nominated', primary: 6140, secondary: 3070, child: 1535 }, + { subclass: '491', name: 'Skilled Work Regional', primary: 6140, secondary: 3070, child: 1535 }, + { subclass: '186', name: 'Employer Nomination (ENS)', primary: 6140, secondary: 3070, child: 1535 }, + { subclass: '482', name: 'Skills in Demand (SID)', primary: 4015, secondary: 4015, child: 1005 }, + { subclass: '494', name: 'Skilled Employer Sponsored Regional', primary: 6140, secondary: 3070, child: 1535 }, + { subclass: '191', name: 'Permanent Residence (Skilled Regional)', primary: 630, secondary: 315, child: 160 }, + { subclass: '500', name: 'Student Visa', primary: 2500, secondary: 1530, child: 500 }, + { subclass: '485', name: 'Graduate Temporary', primary: 5750, secondary: 2875, child: 1450 }, + { subclass: '820', name: 'Partner (onshore)', primary: 11710, secondary: 5860, child: 2935, note: 'Includes 801 permanent component' }, { subclass: '801', name: 'Partner (permanent onshore)', primary: 0, secondary: 0, child: 0, note: 'No additional fee if applying with 820' }, - { subclass: '309', name: 'Partner (offshore)', primary: 9265, secondary: 4635, child: 0 }, + { subclass: '309', name: 'Partner (offshore)', primary: 11710, secondary: 5860, child: 2935 }, { subclass: '100', name: 'Partner (permanent offshore)', primary: 0, secondary: 0, child: 0, note: 'No additional fee if applying with 309' }, - { subclass: '600', name: 'Visitor Visa', primary: 195, secondary: 195, child: 195 }, - { subclass: '407', name: 'Training Visa', primary: 350, secondary: 175, child: 175 }, + { subclass: '600', name: 'Visitor Visa', primary: 250, secondary: 250, child: 250 }, + { subclass: '407', name: 'Training Visa', primary: 535, secondary: 535, child: 135 }, ]; // ── PROCESSING TIMES ────────────────────────────────────────────────────────── diff --git a/src/visa-tracker.js b/src/visa-tracker.js index b7381c4..c73a7a9 100644 --- a/src/visa-tracker.js +++ b/src/visa-tracker.js @@ -322,7 +322,7 @@ export function documentsPage(user, docs, flash) { export function feesPage(user) { const body = `
Estimate your Visa Application Charge (as at 2025–26)
+Estimate your Visa Application Charge (as at 2026–27)
Minimum points and key requirements for SC 190 and SC 491 by state/territory (2025–26)
+Minimum points and key requirements for SC 190 and SC 491 by state/territory (2026–27)
Estimated processing times in months (percentile-based, 2025–26)
+Estimated processing times in months (percentile-based, 2026–27)