diff --git a/app/services/references/reference_engine.ts b/app/services/references/reference_engine.ts index 6321f1b..615429f 100644 --- a/app/services/references/reference_engine.ts +++ b/app/services/references/reference_engine.ts @@ -154,3 +154,7 @@ export function getReferenceEngine(): ReferenceEngine { } return instance } + +export function resetReferenceEngine(): void { + instance = null +} diff --git a/inertia/pages/Home.vue b/inertia/pages/Home.vue index c5ad335..22cb0b0 100644 --- a/inertia/pages/Home.vue +++ b/inertia/pages/Home.vue @@ -57,8 +57,10 @@ function getPropertyValue(props: any[], name: string): string { } // Hoisted regex constants — compiled once, not on every call -const RE_IPV4 = /^Device\.IP\.Interface\.\d+\.IPv4Address\.\d+\.IPAddress$/ -const RE_IPV6 = /^Device\.IP\.Interface\.\d+\.IPv6Address\.\d+\.IPAddress$/ +// Matches both numeric indexes (e.g. Interface.1) and alias-based names (e.g. Interface.[BR_LAN]) +const IF_SEG = /(\d+|\[[^\]]+\])/ +const RE_IPV4 = new RegExp(`^Device\\.IP\\.Interface\\.${IF_SEG.source}\\.IPv4Address\\.${IF_SEG.source}\\.IPAddress$`) +const RE_IPV6 = new RegExp(`^Device\\.IP\\.Interface\\.${IF_SEG.source}\\.IPv6Address\\.${IF_SEG.source}\\.IPAddress$`) function getIpAddress(parameters: any[], properties: any[]): string { // Priority 1 : TR-098 ExternalIPAddress (reuse existing helpers to avoid duplication)