imqa.document

Release Notes

Release notes for @imqa/web-agent

Latest Release

NPM Version NPM Last Update NPM Unpacked Size npm package minimized gzipped size NPM Downloads NPM Type Definitions

JSON SBOM XML SBOM Well-Known SBOM

Release Notes

1.5.0

Changes in @imqa/web-agent@1.5.0

New Features
  • IMQANativeIOS 브릿지: 외부 IMQABridge 스크립트 의존 없이 webkit.messageHandlers.IMQANative를 통해 iOS 네이티브와 직접 통신하는 자체 브릿지 구현
    • callbackId 기반 비동기 요청/응답 패턴으로 getSession, getResources 호출
    • 네이티브에서 window.IMQANativeIOS.onNativeCallback(callbackId, result)로 응답 전달
    • 타임아웃 처리 (기본 5초, getSession/getResources는 3초)
  • verbose() 메서드 추가: 런타임에서 디버그 로그 on/off 토글 가능
    • IMQA.verbose(true) — DEBUG 레벨 활성화
    • IMQA.verbose(false) — 로그 비활성화
Refactoring
  • IMQABridge / IMQABridgeInterface 제거, IMQANativeIOS / IMQANativeIOSInterface로 대체
  • iOS WebView 감지: window.IMQABridgewindow.webkit?.messageHandlers?.IMQANative 체크로 변경
  • 레거시 iOS 폴백 (window.__imqa_session_id) 유지
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.5.0/index.js"
  integrity="sha384-9KNUMetmYx5CrutpB7UiG2JtZGIKvD4wH2WWbTTwhzJgo7AugKLAYlOsUv/I2+3+"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.5.0/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.5.0
Offline download package

1.4.5

Changes in @imqa/web-agent@1.4.5

Bug Fixes
  • fix(instrumentation-browser-exception): 활성 span이 없을 때 에러 span이 root span으로 생성되도록 수정
    • context.active()에 recording span이 없는 경우 ROOT_CONTEXT를 사용하여 에러 span이 stale context의 orphaned child가 되지 않도록 개선
    • IMQAErrorInstrumentation.ts 3곳에서 ROOT_CONTEXT 사용하도록 수정
Tests
  • IMQAErrorInstrumentation.test.ts 11개 테스트 추가 (root context 선택, 디스패칭, 속성 검증)
  • jest 설정을 Nx jest preset으로 전환, build/ 디렉토리 제외
  • 테스트용 tsconfig.spec.json 추가
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.5/index.js"
  integrity="sha256-+BZqxRds38Hx1h6gTSftzJxZ5ZfCDxuQLI1gU1jJ8mE="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.5/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.4.5
Offline download package

1.4.4

Changes in @imqa/web-agent@1.4.4

Features
  • feat(web-agent): getDeviceId() 메서드 추가
    • 웹뷰 리소스에서 device.id를 조회하여 반환하는 API 추가
    • 디바이스 ID가 없는 경우 null 반환
Refactoring
  • refactor(instrumentation-browser-exception): 에러 처리 및 OpenTelemetry 준수 개선
    • Semantic convention 상수 사용 (ATTR_EXCEPTION_TYPE, ATTR_EXCEPTION_MESSAGE, ATTR_EXCEPTION_STACKTRACE)
    • Date.now() 대신 hrTime()으로 고해상도 타임스탬프 적용
    • applyCustomAttributes 콜백 옵션 추가로 커스텀 span/log 속성 설정 가능
    • logger.emit 호출을 try-catch로 감싸 로깅 실패가 span 처리를 중단하지 않도록 개선
    • recordException promise에 .catch() 핸들러 추가로 에러 복원력 향상
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.4/index.js"
  integrity="sha256-WC8xbZACOWYeftJInDerbDqnEF94M3AQrA3o0T0O+f4="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.4/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.4.4
Offline download package

1.4.3

Changes in @imqa/web-agent@1.4.3

Features
  • feat(web-agent): WebView Native Resource 지원

    • iOS: window.__imqa_resources 객체에서 네이티브 리소스 읽기
    • Android: IMQANative.getResources() 메서드에서 네이티브 리소스 읽기
    • 네이티브 앱에서 전달된 리소스가 globalAttributes에 자동 병합
  • feat(web-agent): Native User ID 자동 설정

    • _webviewNativeResourceuser.id가 포함된 경우 globalAttributes에 자동 설정
    • 네이티브 앱의 사용자 식별 정보가 모든 span에 자동 전파
Improvements
  • safeJsonParse 유틸리티 함수 추가 (@imqa/utils)

    • JSON 파싱 실패 시 fallback 값 반환으로 런타임 오류 방지
    • IMQANative.getSession(), IMQANative.getResources() 호출에 적용
  • otel-web에 webviewNativeResource 옵션 추가

    • 네이티브 리소스를 resource attributes에 포함 가능
Type Definitions
  • IMQANative.getResources() 메서드 타입 추가
  • window.__imqa_resources 타입 추가
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.3/index.js"
  integrity="sha256-0dw87B9TofF3JSNpNb5Ie+PsG90rP0jNe0A5d8W18k8="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.3/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.4.3
Offline download package

1.4.2

Changes in @imqa/web-agent@1.4.2

🚀 Features
  • captureConsoleError 옵션 추가: console.error 계측을 선택적으로 비활성화 가능 (기본값: true)
import IMQA from '@imqa/web-agent';

IMQA.init({
  // ... other configs
  instrumentations: {
    errors: {
      captureConsoleError: false, // console.error 계측 비활성화
    },
  },
});
Bug Fixes
  • 모든 에러 span에 SpanStatusCode.ERROR를 명시적으로 설정하여 span status가 null인 문제 수정
🔧 Chores
  • chore(wip): web version and fixing type
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.2/index.js"
  integrity="sha256-QkoV2bUs+Sa3Nzyv5CtDYuXBsLtoXDbtWDtsn015KbE="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.2/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.4.2
Offline download package

1.4.1

Changes in @imqa/web-agent@1.4.1

🚀 Features
  • feat: Service Status API 및 dropPolicy 기반 계측 제어 기능 추가
  • feat: collectorUrl 검증 및 웹뷰 serviceVersion 분리 처리
🔧 Chores
  • chore(wip): web version and fixing type
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.1/index.js"
  integrity="sha256-aeLr1Ff63P8EfyZ+ObAadUYJVnkYs+xVf4lAHnJp804="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.1/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.4.1
Offline download package

1.4.0

Changes in @imqa/web-agent@1.4.0

🚀 Features
  • feat: Service Status API 및 dropPolicy 기반 계측 제어 기능 추가
  • feat: collectorUrl 검증 및 웹뷰 serviceVersion 분리 처리
🩹 Patch Changes
  • fix(react): React 19.2.1 버전 업데이트
🔧 Chores
  • chore(wip): web version and fixing type
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.0/index.js"
  integrity="sha256-1cmF1YCfKUgCPVyvxn1I3Yds+8JmMHO13w/MrfVFIfY="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.4.0/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.4.0
Offline download package

1.3.8

Changes in @imqa/web-agent@1.3.8

🩹 Patch Changes
  • fix(webview bridge): added service.namespace, deployment.environment.name linked
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.8/index.js"
  integrity="sha256-3hcZD8lOjCBgyFE9SXhfBdf4XXGY6ARC45ZWx61mRAQ="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.8/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.3.8
Offline download package

1.3.6

Changes in @imqa/web-agent@1.3.6

🚀 Features
  • feat(serviceNamespace, deployment): added in resources
🩹 Patch Changes
  • fix(webview bridge): added service.namespace, deployment.environment.name linked
  • fix(imqa-next-sample): updated
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.6/index.js"
  integrity="sha256-9B5JTcEqINKp1bHz3fEx6WFfwMZcHZjLzPMjfBsVFkc="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.6/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.3.6
Offline download package

1.3.5

Changes in @imqa/web-agent@1.3.5

🚀 Features
  • feat(serviceNamespace, deployment): added in resources
🩹 Patch Changes
  • fix(imqa-next-sample): updated
🔧 Chores
  • chore(test): build vercel
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.5/index.js"
  integrity="sha256-1MJTCGUiXKEPJSuhjLi6YsXVcddf20LCm1gAVkncwSc="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.5/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.3.5
Offline download package

1.3.4

Changes in @imqa/web-agent@1.3.4

🚀 Features
  • feat(serviceNamespace, deployment): added in resources
  • feat(vercel analytics): added in next sample
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.4/index.js"
  integrity="sha256-yHyMtyx1ncV/4XRTxUJGaI4vARk8vo9QWKW+3+zkVvo="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.4/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.3.4
Offline download package

1.3.3

Changes in @imqa/web-agent@1.3.3

🩹 Patch Changes
  • fix(deploy-cdn): The schema validation failed with the following message: should NOT be longer than 256 characters
CDN Script Tag

For quick integration, add this script tag to your HTML:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.3/index.js"
  integrity="sha256-yl80KHxnjPa+Z0/RlgzLkRTBmbwiWQpm5NhKjoRwOi8="
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.3.3/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.3.3
Offline download package

1.3.0

New Features

Added User Event tracking API surface and UI controls (start, end, getActive, cancel) with guarded behavior on unsupported browsers. New dedicated “User Event Test” page with live actions, resource-load demo, persistence across pages, and real-time toasts. UI

Added User Event Controller widget to test pages; navbar links to "User Event Test". Test buttons include quick start/end controls and minor spacing/layout tweaks. Documentation

Added README for the user-event package. Chores

Upgraded NX tooling and added scaffolding for @imqa/user-event package.

  • Add histogram initialization in IMQAWebvitalsInstrumentation.init()

  • Implement metric recording alongside span creation for web vitals

  • Add meter provider to instrumentation registration in otel-web

  • Fix missing meterProvider assignment and cleanup in Rum object

  • Switch from console.log to diag API for consistent logging

  • Consolidate duplicate localStorage load/save logic in IMQAProvider

  • Fix configuration losing issue after page refresh

  • Add proper config synchronization between main config and instrumentations

  • Improve error handling and type safety with proper window type definitions

  • Remove race conditions between multiple useEffect hooks

  • Web vitals now send both spans and metrics when captureMetrics=true

  • localStorage config properly persists and loads on app restart

  • Enhanced debugging with structured logging via OpenTelemetry diag API

  • Better TypeScript types for window global variables

fix: resolve webvitals metrics transmission and config persistence issues

Web Vitals Metrics Fix

  • Add histogram initialization in IMQAWebvitalsInstrumentation.init()
  • Implement metric recording alongside span creation for web vitals
  • Add meter provider to instrumentation registration in otel-web
  • Fix missing meterProvider assignment and cleanup in Rum object
  • Switch from console.log to diag API for consistent logging

Next.js Sample App Config Persistence

  • Consolidate duplicate localStorage load/save logic in IMQAProvider
  • Fix configuration losing issue after page refresh
  • Add proper config synchronization between main config and instrumentations
  • Improve error handling and type safety with proper window type definitions
  • Remove race conditions between multiple useEffect hooks

Technical Details

  • Web vitals now send both spans and metrics when captureMetrics=true
  • localStorage config properly persists and loads on app restart
  • Enhanced debugging with structured logging via OpenTelemetry diag API
  • Better TypeScript types for window global variables

feat: Add comprehensive user-event package and testing infrastructure

  • Create new @imqa/user-event package with OpenTelemetry integration

    • Implement UserEvent class with start/end/getActive/cancel methods
    • Add TypeScript type definitions and comprehensive API documentation
    • Support event context management and automatic span creation
  • Add user-event testing capabilities to imqa-next-sample

    • Create dedicated /user-event-test page with full testing suite
    • Implement cross-page navigation testing and resource loading tests
    • Add UserEventController component for managing active events across pages
    • Update navigation menus and add quick test buttons to dashboard
  • Refactor otel-web package structure

    • Move user-event implementation to dedicated package
    • Remove duplicate type definitions and user-event files
    • Update imports to use new @imqa/user-event package
    • Add proper userEvent API integration to IMQA class
  • Enhance test page infrastructure

    • Add UserEventController components to all test pages (error, network, resource)
    • Enable cross-page user event management and testing
    • Improve navbar with user-event test menu integration

This implements a complete user event tracking system with comprehensive testing infrastructure and proper separation of concerns.

1.2.17

Changes in @imqa/web-agent@1.2.17

2025-08-25

Release Summary

This release focuses on device detection improvements and schema enhancements.

Key Changes from 1.2.16:

  • Device Detection: Enhanced tablet device type detection in the device module
  • Schema Updates: Added comprehensive JSON schema files for various telemetry data types
  • Package Updates: Updated 5 packages with latest changes
🐛 Bug Fixes
  • fix(device): tablet case added
🔧 Chores
  • RELEASING: Releasing 5 package(s)
  • chore(schema): added
📚 Documentation
  • docs(changeset): Tablet device added

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.17/index.js"
  integrity="sha384-QBO2sTN/xU9foviHoa2Odp6E4JVvfWG8tfc+lfenwY1y/AifbTcP4WHtrP3yqK9U"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.17/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.17
Offline download package

1.2.16

2025-08-19

Changes in @imqa/web-agent@1.2.16

  • OpenTelemetry context 전파 및 에러 스팬 처리 개선.
  • 로그에 span/trace ID를 명시적으로 포함하여 디버깅 및 연관 분석 용이성 향상.
  • 비동기 unhandled rejection에서 원래의 trace context 유지.
주요 변경사항
  1. unhandledrejection 처리: active context 보존 변경 전
  • before
const _unhandledRejectionListener = (event: PromiseRejectionEvent) => {
  this.imqaReport('unhandledrejection', event.reason);
};
  • after
const _unhandledRejectionListener = (event: PromiseRejectionEvent) => {
  const activeContext = context.active();
  context.with(activeContext, () => {
    this.imqaReport('unhandledrejection', event.reason);
  });
};
  1. span 생성 시 부모 context 전달
  • 모든 tracer.startSpan 호출에 현재 active context를 전달하도록 변경:
// before
const span = this.tracer.startSpan(source, { startTime: now });

// after
const activeContext = context.active();
const span = this.tracer.startSpan(source, { startTime: now }, activeContext);
  1. spanContext 명시적 설정 및 recordException 호출을 해당 context 안에서 실행
  • spanContext를 생성하여 logger.emit의 context로 사용하고, recordException/span.end 호출을 context.with(spanContext, ...) 내부에서 실행하도록 변경:
const spanContext = trace.setSpanContext(activeContext, span.spanContext());

this.logger.emit({
  ...,
  context: spanContext,
});

context.with(spanContext, () => {
  recordException(err, { tracer: this.tracer, span }).finally(() => {
    span.end(now);
  });
});
  1. 로그/속성에 span.id 및 trace.id 추가
  • logger.emit 시 attributes에 span.id와 trace.id를 명시적으로 포함:
attributes: {
  ...,
  'span.id': span.spanContext().spanId,
  'trace.id': span.spanContext().traceId,
}
적용된 메서드

다음 메서드들이 동일한 패턴으로 수정되었습니다:

  • imqaReportError
  • imqaReportString
  • imqaReportEvent
  • _unhandledRejectionListener
개선 효과
  1. 비동기 작업 추적 개선
  • Promise rejection이나 async/await 에러에서도 원래의 실행 context 유지
  • 분산 추적에서 부모-자식 관계가 올바르게 설정됨
  1. 추적 가시성 향상
  • 로그에 span ID와 trace ID가 포함되어 에러 추적이 용이해짐
  • OpenTelemetry 백엔드에서 에러의 전체 추적 경로 확인 가능
  1. Context 전파 일관성
  • 모든 에러 보고 메서드에서 일관된 context 관리
  • context.with() 패턴을 사용하여 명시적인 context 전파
🐛 Bug Fixes
  • docs(changeset): fix(browser-exception): async reference error context fix
  • fix(browser-exception): context peristing
🔧 Chores
  • RELEASING: Releasing 5 package(s)

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.16/index.js"
  integrity="sha384-JGTfUnBw6NWpE5s5Na1pIrHp4Svz0eu9lwisAkjr4CiBCPXc94aocIMC6JBF4zit"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.16/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.16
Offline download package

1.2.15

Changes in @imqa/web-agent@1.2.15

주요 변경사항
1. 로그 속성 표준화
  • 로그 속성에서 사용하던 일반 문자열 키(componentspan.typesession.idscreen.name)를 IMQA 시맨틱 컨벤션 상수로 통일

    • ATTR_IMQA_SPAN_TYPE
    • ATTR_IMQA_SESSION_ID
    • ATTR_IMQA_SCREEN_NAME
2. 에러 로그 본문 개선
  • imqaReportError: 로그 body를 단순 메시지(msg)에서 stringifyValue(err)로 변경하여 더 자세한 에러 정보 제공
3. 스크린 이름 처리 개선
  • 모든 에러 리포트 메서드에서 스크린 이름을 일관되게 처리

    • screenNameType: 'routeOnly'
    • urlWithSearchParams: false
4. 컨텍스트 처리 단순화
  • 사용하지 않는 TRACE_ID_KEYSPAN_ID_KEY 심볼 제거
  • 커스텀 컨텍스트 설정 대신 표준 OpenTelemetry 방식 사용: trace.setSpanContext(context.active(), span.spanContext())
5. DOM 이벤트 에러 처리 개선
  • imqaReportEvent: DOM 이벤트 에러에 대한 로그 출력 추가
  • 타겟 엘리먼트의 src 속성을 안전하게 처리 (타입 체크 추가)
6. 타입 안정성 향상
  • imqaReport 메서드의 인자 타입을 Array<any>에서 Array<unknown> 으로 변경
  • DOM 엘리먼트 타입 캐스팅 개선
🐛 Bug Fixes
  • docs(changeset): fix(browser-exception): fixed lost context
  • fix(browser-exception): context fix
🔧 Chores
  • RELEASING: Releasing 5 package(s)
  • chore(next-sample): added init options testers

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.15/index.js"
  integrity="sha384-6992wDhXaEL15IBud51FQJ+Y2PFi+IaD1adDg1ryCMfcrL9+gYtvFtYa2YoBbLnz"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.15/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.15
Offline download package

1.2.14

Changes in @imqa/web-agent@1.2.14

🐛 Bug Fixes
  • docs(changeset): fix(browser-exception): console.error capturing stacktrace
  • fix(instrumentation-exception): console.error stacktrace capturing
🔧 Chores
  • RELEASING: Releasing 6 package(s)

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.14/index.js"
  integrity="sha384-pO2pQidAE3nAQ1Dz8CHK6rbxZ3kJSB2O4pjS+ZJoGArkF99vOl1vvcFb/6CbkiAg"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.14/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.14
Offline download package

1.2.13

Changes in @imqa/web-agent@1.2.13

🐛 Bug Fixes
  • fix(serviceType): fixed missed RumOtel init
  • fix(servicetype): conditional
🔧 Chores
  • RELEASING: Releasing 5 package(s)
  • chore(console.log): changed to diag
📚 Documentation
  • docs(changeset): fixed missed RumOtel init config of serviceType

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.13/index.js"
  integrity="sha384-inXmrwMFi8kLiqSfaFmUVWYiXBmk3cFczWz1bH6BnGHMe4P7yCEe6sWRHjA12tnO"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.13/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.13
Offline download package

1.2.12

Changes in @imqa/web-agent@1.2.12

🐛 Bug Fixes
  • fix(url hash router): conserving hash router
🔧 Chores
  • RELEASING: Releasing 7 package(s)
📚 Documentation
  • docs(changeset): URL conserving hash router
/**
 * 현재 브라우저의 URL에서 쿼리스트링 포함 여부에 따라 전체 URL 또는 정제된 URL을 반환합니다.
 *
 * @param {boolean} urlWithSearchParams - `true`인 경우 쿼리스트링과 해시를 포함한 전체 URL을 반환하며,
 * `false`인 경우 쿼리스트링을 제거하고 origin, pathname, 해시 경로만 포함한 URL을 반환합니다.
 *
 * @returns {string} 쿼리스트링을 포함하거나 제거한 현재 URL 문자열을 반환합니다.
 *
 * @example
 * // URL: https://example.com/page#section?param=123
 * getUrl(true);  // "https://example.com/page#section?param=123"
 * getUrl(false); // "https://example.com/page#section"
 */
const getUrl = (urlWithSearchParams: boolean) => {
  const url = new URL(window.location.href);
  const cleanHash = url.hash.split('?')[0];
  const cleanedURL = `${url.origin}${url.pathname}${cleanHash}`;

  return urlWithSearchParams ? url.href : cleanedURL;
};

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.12/index.js"
  integrity="sha384-9TXqeG+F9AhmpSYPnW8lsLACnlvS8l22acnEWZU5lbm8EoKQV85ttkLqAhx8ZXh8"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.12/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.12
Offline download package

1.2.11

Changes in @imqa/web-agent@1.2.11

🔧 Chores
  • chore(type): fixed
  • RELEASING: Releasing 5 package(s)
    Releases:
      @imqa/web-agent@1.2.11
      imqa-lit-sample@0.0.104
      imqa-react-sample@0.1.83
      imqa-vanilla-sample@0.0.91
      imqa-vue2-sample@0.0.97

    [skip ci]

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.11/index.js"
  integrity="sha384-OJ/l4KbDN40ZOipCsQLwm+P+bNZYK1QiMCxtse0kGa4JEB9c3dkTcs9EA6MLMRTh"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.11/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.11
Offline download package

1.2.10

Changes in @imqa/web-agent@1.2.10

🚀 Features
  • feat(serviceType): mobile native 에서 받은 serviceType 추가

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.10/index.js"
  integrity="sha384-8+2219MkyjZ9r07dbq+jWOMx5gXj5XkwAr1S3Wtukwmuhs9JjwxdgE5WOyp0MuXy"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.10/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.10
Offline download package

1.2.9

Changes in @imqa/web-agent@1.2.9

🚀 Features
  • feat(session): storage option added
  • RELEASING: Releasing 7 package(s)
    Releases:
      @imqa/session@1.0.0
      @imqa/otel-web@1.1.1
      @imqa/web-agent@1.2.9
      imqa-lit-sample@0.0.102
      imqa-react-sample@0.1.81
      imqa-vanilla-sample@0.0.89
      imqa-vue2-sample@0.0.95

    [skip ci]
sessionStorage

(StorageType, 선택)

type StorageType = 'cookie' | 'localStorage';

세션ID 저장소의 타입을 설정합니다. 기본값은 cookie이며, localStorage로 변경할 수 있습니다. 이 설정은 세션 데이터의 저장 방식을 결정합니다. 일반적으로 cookie를 사용하며, 브라우저 쿠키를 사용할 수 없는 하이브리드앱의 웹뷰의 경우 localStorage를 사용합니다.

ImportantWarning

모바일 웹뷰 설정 이 기능을 localStorage 옵션을 사용할 경우 웹뷰 브라우저의 localStorage 저장소가 활성화되어 있어야 합니다. 안드로이드의 경우

webview.settings.domStorageEnabled = true

iOS의 경우 기본적으로 활성화 되어있으나 명시적으로 허용해야하는 경우

let config = WKWebViewConfiguration()
config.websiteDataStore = WKWebsiteDataStore.default()
let webView = WKWebView(frame: .zero, configuration: config)

설정을 통해 활성화할 수 있습니다.

사용 방법

IMQA.init({
  collectorUrl: '{{IMQA_TRACES_COLLECTOR_URL}}',
  serviceName: '{{NAME_OF_YOUR_WEB_SERVICE}}',
  serviceVersion: '{{VERSION_OF_YOUR_WEB_SERVICE}}',
  serviceKey: '{{SERVICE_KEY}}',
  sessionStorage: 'localStorage' // or 'cookie'
});
🩹 Patch Changes
  • fix(imqa-next-sample): test button fix
🔧 Chores
  • chore(sample-apps): updated storage switch
  • chore(README): updated
  • chore(imqa-jquery-sample): sessionUrl removed
  • chore(ci): except hotrod

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.9/index.js"
  integrity="sha384-OJbRQ1Vep+nhiR/tEDYhCTaWIEhcM4qLLDwVfPen5AVU4YSe+5vBvYZkwO3hCApH"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.9/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.9
Offline download package

1.2.8

Changes in @imqa/web-agent@1.2.8

🚀 Features
  • feat(setScreenAttribute): custom screen.name added
IMQA.setScreenAttribute(name: string): void
TipTip

IMQA automatically collects screen names. However, if you want to provide additional information for a specific screen, you can use the setScreenAttribute function to set screen attributes. This function sets the screen name and records the current URL in a global variable.

This is a dynamic method---as long as the URL (location.href) does not change, the screen name set with this method will be used for measuring page performance. When the URL changes, the screen name will automatically reset based on the screenNameOption setting.

Therefore, to maintain the screen name consistently, you should call this method whenever the URL or screen changes. This ensures effective performance measurement of each page.

The measured performance data per screen is used with a unique screen name in the IMQA Screen Analysis view.

For more details, refer to the Screen Analysis section in the User Guide.

  • docs(changeset): separated method, @imqa/custom-log release
🩹 Patch Changes
  • fix(custom-log): added tracer and logger to @imqa/custom-log
🔧 Chores
  • chore(docs): user-interaction README

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.8/index.js"
  integrity="sha384-FvJDGFiUBStYwQuHg/sGa4AGDyDOM2Qrzui5m0gdomSQiygidkY2VqHuOgyl0kX7"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.8/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.8
Offline download package

1.2.7

Changes in @imqa/web-agent@1.2.7

🚀 Features
  • feat(exports): export legacy agent in package.json

In legacy browser project

import IMQA from "@imqa/web-agent/legacy"

IMQA.init({
    /** options *//
});
🔧 Chores
  • chore(type): type fix
  • chore(nx): migration completed
  • chore(nx): migrate nx to latest
  • chore(bundle): rollup bundler fix

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.7/index.js"
  integrity="sha384-iDStDZYezeg4RfbLP1V6hEEBZuGt6o/8r+cidSusH973VsFnc8v95oaNq8OT1AgC"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.7/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.7
Offline download package

1.2.6

Changes in @imqa/web-agent@1.2.6

🚀 Features
  • feat(recordLogs): added global attributes for logRecords attributes. (session.iduser.id when it set, etc)
  • feat(log-processor): added @imqa/log-processor for recordLogs
  • feat(customLog): added globalAttributes and log processor
🩹 Patch Changes
  • fix(setUserIdAttributes): fixed globalAttributes
  • fix(vercel): fixed vercel build
🔧 Chores
  • chore(imqa-lit-sample): sample web (webcomponent) updated
  • chore(imqa-react-sample): sample web (react) fixed

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.6/index.js"
  integrity="sha384-bYLFMx42bCi1VyYBkR0LH9Cpwef9tkJsMIEg5nsLwhSYyQw9DfIlk2HiUwaTtE5d"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.6/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.6
Offline download package

1.2.5

Changes in @imqa/web-agent@1.2.5

🚀 Features
  • feat(exporters): refactored OTLP exporters using custom transformer to support protobuf, gzip, plain text, and JSON formats
  • feat(exporters): passing headers
  • feat(semantic-conventions): user-interaction attributes key name changed

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.5/index.js"
  integrity="sha384-A+oLTxIHggQ5Qp9owQ3ZNebXhqgWPGhbsw6eKGHUCQMB8iUQBx/BRtPJ0ZNUDPPp"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.5/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.5
Offline download package

1.2.4

Changes in @imqa/web-agent@1.2.4

🩹 Patch Changes
  • docs(changeset): feat(setUserAttribute): added in resources
  • fix(setUserIdAttribute): added in resources

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.4/index.js"
  integrity="sha384-QvK8TCGA48iJeYUxVrO7rG2G3XwyDcX/t3ZHAQ2EfklN2x2+xWSsnu2AaxTPxT2k"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.4/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.4
Offline download package

1.2.3

Changes in @imqa/web-agent@1.2.3

🩹 Patch Changes
  • fix(setScreenName): fixed undefined issue
🔧 Chores
  • chore(fix): ci
  • chore(lock): fix
  • chore(imqa-next-sample): more test button added

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.3/index.js"
  integrity="sha384-butfMODk82wuvDu7KLZCDE5H7+tNRy3m4pJH3qTALAH3t9Pcn0St1D66Eo2awgpd"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.3/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.3
Offline download package

1.2.2

Changes in @imqa/web-agent@1.2.2

🚀 Features
  • feat(screenName): IMQA-442 added screen.name options
  • feat(added attrs): custom attributes
  • feat(user-interaction): added interaction attrs and service type
  • feat(user-interaction): added elementtagidtext and className
🩹 Patch Changes
  • @imqa/web-agent@1.2.1 RELEASING: Releasing 5 package(s)
    Releases:
      @imqa/web-agent@1.2.1
      imqa-lit-sample@0.0.94
      imqa-react-sample@0.1.73
      imqa-vanilla-sample@0.0.81
      imqa-vue2-sample@0.0.87

    [skip ci]
  • @imqa/web-agent@1.2.0 RELEASING: Releasing 5 package(s)
    Releases:
      @imqa/web-agent@1.2.0
      imqa-lit-sample@0.0.93
      imqa-react-sample@0.1.72
      imqa-vanilla-sample@0.0.80
      imqa-vue2-sample@0.0.86
  • @imqa/semantic-conventions@0.1.1 RELEASING: Releasing 1 package(s)
  • @imqa/web-agent@1.1.16 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.15 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.14 webagent-v1.1.14 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.13 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.12 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.11 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.10 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.9 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.8 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.7 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.6 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.5 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.4 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.3 RELEASING: Releasing 5 package(s)
  • @imqa/web-agent@1.1.2 chore(version): patch
  • fix(deploy): fixing workflows
🔧 Chores
  • chore(workflows): Error: Validation Failed: "resource":"Release","code":"custom","field":"pre_receive","message":"pre_receive Sorry, branch or tag names starting with refs/ are not allowed.""resource":"Release","code":"custom","message":"Published releases must have a valid tag"
  • chore(workflow): separated NPM and CDN
  • chore(webview): webview params added and screenNameOption adding to all instruments
  • docs(changeset): feat(user-interaction): added interaction attrs and service type
  • chore(workflow): can't resolve workflows added manual tag
  • chore: tag push marker [skip ci]
  • chore(workflows): remains only web agent
  • chore(bump): deployment
  • chore(user-interaction): updated deps
  • @imqa/instrumentation-user-interaction@0.1.0 @imqa/semantic-conventions@0.1.0 RELEASING: Releasing 2 package(
  • @imqa/instrumentation-user-interaction@0.0.7 @imqa/semantic-conventions@0.0.7 RELEASING: Releasing 2 package(
  • chore(imqa-next-sample): added preview script
  • chore(imqa-next-sample): added sourcemap build
  • chore(imqa-next-sample@0.1.65) RELEASING: Releasing 1 package(s)
  • chore(bootstrap): changed branch
  • chore(imqa-next-sample@0.1.64) RELEASING: Releasing 1 package(s)
  • chore(changeset): config
  • chore(version): patch
  • docs(changeset): chore(bump): deployment
  • chore(version): patch
  • chore(version): patch
  • chore(deployment): separated in github action
  • chore(next-sample): fix error test
  • chore(apps): build script
  • chore(lock): fix
  • chore(docs): updated README badge
  • chore(deps): updated nx
  • chore(imqa-vue2-sample): fix build script
  • chore(imqa-vue2-sample): fix build script
  • chore(docs): updated README badge
  • chore(sbom): cyclonedx added in web-agent
  • chore(tools): format
  • chore(reset): build tools
  • chore(build tools): added deps
  • chore(build tools): added json
  • chore(next): script fix
  • chore(version): patch
  • chore(apps): fix script
  • chore(apps): fix deps

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.2/index.js"
  integrity="sha384-alKtkXv/cVmjLF0X5lshYS29hs7cIobOb574h7q0INWMR9/T7UKQUvU9LGmEZrEk"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.2.2/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.2.2
Offline download package

1.1.1

Changes in @imqa/web-agent@1.1.1

🚧 Other Changes
  • chore(web-agent): expose IMQASDKConfig type

Installation

CDN
<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.1.1/index.js"
  integrity="sha384-q/3NCciT5HVJSFtXWq/peT2T3ApMj13pDVeFDk861xUy+P78UkbbO2+3KkQH8aDN"
  crossorigin="anonymous">
</script>
IE11 Support

For IE11 support, use the following script tag instead:

<script
  src="https://cdn.imqa.io/release/npm/@web-agent/1.1.1/index-legacy.js"
  type="text/javascript">
</script>
NPM

web-agent badge

npm install @imqa/web-agent@1.1.1
Offline download package