Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
2e888c5
[Main] Increase CDN Deprecation Message Sampling Rate to 40% (#2492)
siyuniu-ms Mar 25, 2025
8fe3389
[beta] Merge [main] into [beta] and set next release to minor
MSNev Mar 26, 2025
8728e90
Update AISKU/Tests/Unit/src/AISKUSize.Tests.ts
MSNev Mar 26, 2025
3097337
Update AISKU/Tests/Perf/src/AISKUPerf.Tests.ts
MSNev Mar 26, 2025
8b29797
[beta] Merge [main] into [beta] and set next release to minor (#2493)
MSNev Mar 26, 2025
9946ed4
[main] Add stale bot for assigned issues and prs (#2495)
MSNev Apr 2, 2025
ffbd877
move to beta again (#2496)
siyuniu-ms Apr 2, 2025
9a33ccd
[beta] Update publishing scripts for nightly beta releases (#2498)
MSNev Apr 2, 2025
82c7981
[main] support adding cross origin resource policy for #1851 (#2423)
siyuniu-ms Apr 2, 2025
a864ed5
[Main][Task]31248254: Add Monitor Tests for CDN OPTIONS Calls (#2491)
Karlie-777 Apr 2, 2025
6258457
[main] Minor fixes for handling ikey promises with dynamic changes (#…
MSNev Apr 4, 2025
10053b1
[chrome debug tool] publish 0.8.0 for manifect V3 (#2499)
siyuniu-ms Apr 9, 2025
a8d229e
[Main][Task]31233527:Change Default RequestSizeLimitBytes (#2501)
Karlie-777 Apr 17, 2025
bb52809
[main][stats beat] implement stats beat in application insights (#2489)
siyuniu-ms Apr 24, 2025
fc2ee8d
[main] Handle race condition during unload (#2507)
MSNev Apr 28, 2025
188c755
Drop correlation header to be passed on the dependency (#2506)
aimbrenda Apr 29, 2025
87971a1
[beta] Merge remote-tracking branch 'origin/main' into `beta` (#2509)
MSNev Apr 30, 2025
6e315f1
[main] enable compress api in 1ds-post-channel and applicationinsight…
siyuniu-ms Apr 30, 2025
b5a24d5
[main] [Click analytics] not logging no native html input elements #…
siyuniu-ms Apr 30, 2025
4f7f645
[Main][Task]31233527: Add a Config to Allow Users to Change RequestSi…
Karlie-777 May 1, 2025
93a3713
Address issues with isFeatureEnabled changes (#2514)
MSNev May 3, 2025
629d8bf
Add additional SendPostManager tests (#2515)
MSNev May 5, 2025
e0f21e0
Reduce Stale period (#2519)
MSNev May 5, 2025
4ec25ca
[Main][Task]32698211: Add a Config to Allow Users to Change Max Numbe…
Karlie-777 May 6, 2025
72fd702
Remove Generated docs from the repo (#2518)
MSNev May 6, 2025
123ba4c
Update Components to address governance issues (#2517)
MSNev May 6, 2025
1647e6f
[Release] Increase version to 3.3.7 (#2520)
Karlie-777 May 7, 2025
a2b229f
[beta] Merge [main] (3.3.7) to beta branch (#2521)
MSNev May 9, 2025
6e145d9
Update Components to address governance issues (#2524)
MSNev May 12, 2025
f4a2cf1
Add back "request" devDependency for now (#2525)
MSNev May 12, 2025
76ebbff
Fix TestCase PollingAssert argument passing for testContext (#2526)
MSNev May 13, 2025
ebfd4d6
[beta] Merge remote-tracking branch 'origin/main' into `beta` (#2528)
MSNev May 15, 2025
a38e08e
add negative isArray check to _isConfigDefaults (#2530)
Linkgoron May 19, 2025
0f42a7c
Fix ReferenceError in Click Analytics v3.3.7 by reordering variable d…
Copilot May 20, 2025
493dc40
Fix Click Analytics contentName callback in v3.3.7 (#2535)
Copilot May 22, 2025
af80972
[Release] Increase version to 3.3.8 (#2542)
Karlie-777 May 22, 2025
c628245
[Task] Fix CodeQL version to v2 (#2547)
Copilot May 22, 2025
a54e3bd
Creates a github action to assign co-pilot to a task or PR if the lab…
MSNev May 23, 2025
ed1f3df
CodeQL Action major versions v1 and v2 have been deprecated. (#2553)
MSNev May 23, 2025
c27ee44
Assign Co-Pilot updates (#2554)
MSNev May 23, 2025
896b869
Potential fix for code scanning alert no. 2259: Unused variable, impo…
MSNev May 23, 2025
0ea981a
Auto Assign Copilot Updates (#2555)
MSNev May 23, 2025
625e3b5
Auto assign copilot update -- use environment variable for usernames …
MSNev May 23, 2025
8ec2a81
Update SDK Loader to rename the snippet postfix file to avoid CodeQL …
MSNev May 23, 2025
8606e71
Update to correctly reference the repository variable within the acti…
MSNev May 23, 2025
3ab124a
CodeQL - Don't attempt to upload from the CI (#2560)
MSNev May 24, 2025
11350b6
CodeQL - Add more exclusions as they are causing false positive alert…
MSNev May 27, 2025
5b989f8
CodeQL Update configuration to run on all branches (#2564)
MSNev May 27, 2025
b2f6d1c
[Task] Add additional stale operations for wontfix Issues and PRs as …
MSNev May 27, 2025
5077e78
Add merge-queue setting for the ci tests (#2565)
MSNev May 27, 2025
039983f
Auto Assign - Update the lookup for a valid user id. (#2559)
MSNev May 27, 2025
c4f96e6
Remove Auto-Assign workflow (#2569)
MSNev May 28, 2025
3289e9f
Update analytics-js unit tests to use asyncQueue pattern (#2544)
Copilot May 28, 2025
446ee61
Add documentation for disablePageUnloadEvents to address jQuery 3.7.1…
Copilot May 28, 2025
ea38019
[Main][Task]32864048: Improve Offline Channel Test (#2534)
Karlie-777 May 28, 2025
28b4000
Merge remote-tracking branch 'upstream/main' into beta
MSNev May 28, 2025
61bba70
Restore CodeQL schedule back to previous value (#2574)
MSNev May 29, 2025
a44d68f
[Fix] Export IConfiguration interface from AISKU package (#2579)
Copilot Jun 2, 2025
67bef18
Export ICorrelationConfig interface from dependencies extension (#2581)
Copilot Jun 2, 2025
d585133
[Main][Task]32909441: Increase Web Snippet to 1.2.2 (#2577)
Karlie-777 Jun 17, 2025
a39f2ae
[AI][Task] 33246973: Update Readme on Error Handler (#2586)
Karlie-777 Jun 20, 2025
8295d1e
Fix issue with array _clickCaptureElements being referenced by value …
Barry-RG Jun 23, 2025
23e7b03
[Main][Task] 33497606: Add Tests for ClickAnalytics AutoCaptureHandle…
Karlie-777 Jun 25, 2025
163959d
[Release] Increase version to 3.3.9 (#2593)
Karlie-777 Jun 25, 2025
048f914
Add TypeDoc links to README configuration tables (#2576)
Copilot Jul 3, 2025
a71071d
Fix TypeScript compatibility issue with ITelemetryPlugin interface (#…
Copilot Jul 3, 2025
7b702db
Remove unused jquery-1.11.1.js from the repository (#2600)
Copilot Jul 7, 2025
2c31bab
Create IAnalyticsConfig interface to properly define AnalyticsPlugin …
Copilot Jul 7, 2025
b26d49a
Fix documentation links pointing to incorrect /docs/ path (#2604)
Copilot Jul 7, 2025
1a6700b
Adding copilot instructions (#2605)
hectorhdzg Jul 8, 2025
8934050
Redacting urls before sending to telemetry data. (#2549)
rads-1996 Jul 10, 2025
8ba4a51
[Beta] Merge [main] to [beta] (#2610)
MSNev Jul 10, 2025
e93e46e
Merge remote-tracking branch 'origin/main' into MSNev/beta
MSNev Jul 10, 2025
2927525
[Beta] Updated and remerge [main] to [beta] (#2611)
MSNev Jul 10, 2025
efe79bf
Merge remote-tracking branch 'origin/beta' into otel-sdk
MSNev Jul 11, 2025
5788cf7
Update ci.yml
MSNev Jul 11, 2025
89e9035
Update codeql-analysis.yml
MSNev Jul 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
298 changes: 298 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,298 @@
# GitHub Copilot Instructions for Application Insights JavaScript SDK

## Project Overview
This is the **Microsoft Application Insights JavaScript SDK** - a browser-based telemetry library for monitoring web applications. The SDK tracks page views, user interactions, performance metrics, exceptions, and custom events.

## Architecture & Structure

### Monorepo Structure
- **AISKU/**: Main Application Insights SDK package
- **AISKULight/**: Lightweight version of the SDK
- **shared/**: Core shared libraries (AppInsightsCore, AppInsightsCommon, 1ds-core-js)
- **extensions/**: Plugin-based extensions (analytics, dependencies, etc.)
- **channels/**: Data transmission channels (online, offline, tee)
- **tools/**: Build and development tools
- **examples/**: Sample implementations

### Key Technologies
- **TypeScript/JavaScript**: Primary languages (ES5 target for browser compatibility)
- **Rush**: Monorepo management tool
- **Rollup**: Module bundler
- **Grunt**: Task runner
- **Dynamic Proto**: Dynamic prototype pattern for performance

## Code Style & Patterns

### TypeScript/JavaScript Conventions
- Use **ES5-compatible** syntax for browser support and target ES5 for modern browsers
- Prefer `function` declarations over arrow functions for better IE compatibility
- Use `var` instead of `let/const` in JavaScript files for ES5 compatibility (use `let/const` in TypeScript files)
- Always use semicolons
- Use 4-space indentation
- Maximum line length: 140 characters

### Naming Conventions
- **Classes**: PascalCase (e.g., `PageViewManager`, `TelemetryContext`)
- **Interfaces**: PascalCase with `I` prefix (e.g., `ITelemetryItem`, `IPageViewTelemetry`)
- **Methods/Functions**: camelCase (e.g., `trackPageView`, `sendTelemetry`)
- **Constants**: UPPER_SNAKE_CASE (e.g., `MAX_DURATION_ALLOWED`)
- **Private variables**: underscore prefix (e.g., `_logger`, `_hasInitialized`)
- **Enums**: PascalCase with `e` prefix (e.g., `eLoggingSeverity`, `eInternalMessageId`)
- Must be const enums with integer values (not strings)
- Use `createEnumStyle` helper for exported enums
- All usage should reference the const enum directly

### Dynamic Proto Pattern
This project uses a unique `dynamicProto` pattern for performance optimization. This pattern should be used for all classes:

```typescript
export class MyClass {
constructor() {
dynamicProto(MyClass, this, (_self, _base) => {
// Private variables should be included inside the constructor closure
// They are not publicly visible on the class
let _logger = _self._logger;
let _hasInitialized = false;

// Public methods need @DynamicProtoStub comment for TypeScript definitions
_self.myMethod = () => {
// Method implementation
};
});
}

/**
* @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging
*/
public myMethod(): void {
// This stub will be replaced by the dynamicProto implementation
}
}
```

Key requirements:
- Use this pattern for all classes
- Private variables must be inside the constructor closure
- Public functions need `@DynamicProtoStub` comment for TypeScript definition generation
- Never add implementation code to the stub methods

### Error Handling
- Use `_throwInternal` for logging diagnostic errors
- Always include telemetry context in error messages
- Use appropriate logging severity levels: `CRITICAL`, `WARNING`, `INFORMATION`

```typescript
_throwInternal(_logger,
eLoggingSeverity.WARNING,
_eInternalMessageId.InvalidDurationValue,
"Invalid page load duration value",
{ total, network, request, response, dom });
```

### Performance Considerations
- Minimize object allocations in hot paths
- Use `doPerf()` wrapper for performance tracking
- Avoid synchronous operations that could block the browser
- Implement lazy initialization where possible
- Use object pooling for frequently created objects
- Minimize the size of generated JavaScript by avoiding certain TypeScript features:
- Do not use the spread `...` operator
- Do not use optional chaining `?.` operator
- Do not use the nullish coalescing `??` operator - use `||` instead
- These restrictions will be removed once ES5 support is discontinued

## Browser Compatibility

### Target Support
- **Modern browsers**: Chrome, Firefox, Safari, Edge (targeting ES5 for modern browsers)
- **Legacy support**: Internet Explorer 8+ (ES5 compatibility required)
- **Mobile browsers**: iOS Safari, Android Chrome
- **Non-browser runtimes**: Node.js and other browser-like environments (for worker contexts and server-side rendering)

### Compatibility Patterns
- Feature detection over browser detection
- Graceful degradation for missing APIs
- Use existing polyfills rather than creating new ones
- Safe API usage with null checks

### Async Operations Support
Support async operations using ts-async helpers instead of native async/await:
- Use `doAwait` for `await` operations
- Use `doAwaitResponse` to handle catch operations for asynchronous operations
- Use `createPromise`, `createSyncPromise`, `createIdlePromise` instead of declaring functions as `async`
- Return type should use `IPromise` instead of `Promise` for IE support

```typescript
const perf = getPerformance();
if (perf && perf.timing && perf.timing.navigationStart) {
// Use performance API
}
```

## Telemetry & Data Collection

### Core Telemetry Types
- **Page Views**: `IPageViewTelemetry` - Track page navigation
- **Events**: `IEventTelemetry` - Custom user actions
- **Metrics**: `IMetricTelemetry` - Numeric measurements
- **Exceptions**: `IExceptionTelemetry` - Error tracking
- **Dependencies**: `IDependencyTelemetry` - External calls
- **Traces**: `ITraceTelemetry` - Logging messages

### Data Privacy & Compliance
- Never collect PII (personally identifiable information) by default
- Sanitize URLs and remove sensitive query parameters
- Implement data sampling and throttling
- Support opt-out mechanisms
- Follow GDPR/privacy regulations

### Performance Monitoring
- Use `IPerfManager` and `IPerfEvent` for internal performance tracking
- Collect browser timing APIs (Navigation Timing, Resource Timing)
- Track page load performance metrics
- Monitor SDK overhead and impact

## Plugin Architecture

### Plugin Development
- Extend `BaseTelemetryPlugin` for new plugins
- Implement `ITelemetryPlugin` interface
- Use `IProcessTelemetryContext` for processing pipeline
- Support plugin chaining and dependencies

```typescript
export class MyPlugin extends BaseTelemetryPlugin {
public processTelemetry(evt: ITelemetryItem, itemCtx?: IProcessTelemetryContext) {
// Process telemetry
this.processNext(evt, itemCtx);
}
}
```

### Extension Points
- **Telemetry Initializers**: Modify telemetry before sending
- **Dependency Listeners**: Track AJAX/fetch calls
- **Channels**: Custom data transmission

## Testing Patterns

### Unit Testing
- Use framework-agnostic test patterns
- Mock browser APIs consistently
- Test both success and failure scenarios
- Verify telemetry data structure and content

### Browser Testing
- Cross-browser compatibility testing
- Performance regression testing
- Memory leak detection
- Network failure scenarios

### Test Organization
- Collocate tests with source code in `Tests/` directories
- Use descriptive test names
- Group related tests in test suites
- Mock external dependencies

## Configuration & Initialization

### SDK Configuration
- Support both snippet and npm installation
- Provide sensible defaults
- Allow runtime configuration changes
- Validate configuration parameters
- Configuration names should be descriptive but mindful of browser bundle size by keeping names concise and readable

```typescript
const config: IConfiguration = {
instrumentationKey: "your-key",
enableAutoRouteTracking: true,
disableTelemetry: false,
samplingPercentage: 100
};
```

### Initialization Patterns
- Lazy initialization to minimize startup impact
- Graceful handling of initialization failures
- Support for multiple SDK instances
- Plugin dependency resolution

## Performance Guidelines

### Bundle Size Optimization
- Tree-shaking friendly exports
- Conditional feature loading
- Minimize third-party dependencies
- Use rollup for optimal bundling

### Runtime Performance
- Avoid blocking the main thread
- Use requestIdleCallback when available
- Batch telemetry operations
- Implement efficient queuing mechanisms

### Memory Management
- Clean up event listeners on teardown
- Avoid memory leaks in long-running applications
- Use weak references where appropriate
- Implement proper disposal patterns

### Code Organization & Tree-Shaking
- Each package should be side-effect free to enable proper tree-shaking
- All code should be tree-shakable - avoid global side effects
- Use lazy initialization for any globals via `ILazyValue` interface or similar patterns
- Distinguish between "value not yet checked/assigned" vs "resulting value is null/undefined"
- Export functions and classes individually rather than as default exports
- Avoid executing code at module load time

## Common Patterns & Anti-Patterns

### ✅ Good Practices
- Use TypeScript interfaces for contracts
- Implement proper error boundaries
- Follow the plugin architecture
- Use performance monitoring internally
- Sanitize all user inputs
- Support both sync and async operations

### ❌ Anti-Patterns
- Don't block the browser UI thread
- Avoid throwing unhandled exceptions
- Don't collect sensitive user data
- Avoid tight coupling between components
- Don't ignore browser compatibility
- Avoid memory leaks in event handlers

## Documentation Standards

### Code Comments
- Use TypeDoc format for public APIs
- Document complex algorithms and business logic
- Include examples for public methods
- Explain browser compatibility considerations

### Interface Documentation
- Document all public interfaces thoroughly using TypeDoc comments
- Include parameter validation requirements
- Include defaults and any relevant examples
- Specify return value contracts
- Note any side effects or state changes

## Build & Deployment

### Build Process
- Rush for monorepo management
- TypeScript compilation with strict settings
- Rollup bundling with multiple output formats
- Minification and size optimization

### Release Process
- Semantic versioning
- Automated testing before release
- Bundle size monitoring
- Browser compatibility verification

---

*This document helps GitHub Copilot understand the unique patterns, architecture, and requirements of the Application Insights JavaScript SDK project.*
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ name: Node.js CI

on:
push:
branches: [ main, master, beta, Release2.7, release-3.0 ]
branches: [ main, master, beta, Release2.7, release-3.0, otel-sdk ]
pull_request:
branches: [ main, master, beta, Release2.7, release-3.0 ]
branches: [ main, master, beta, Release2.7, release-3.0, otel-sdk ]
merge_group:
branches: [ "main", "master", "beta", "Release*", "release*", "*-legacy", "legacy-v1" ]

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ on:
branches: [ "main", "master", "beta", "Release*", "release*", "*-legacy", "legacy-v1" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main", "master", "beta", "Release*", "release*", "*-legacy", "legacy-v1" ]
branches: [ "main", "master", "beta", "Release*", "release*", "*-legacy", "legacy-v1", "otel-sdk" ]
schedule:
- cron: '15 */2 * * *' # run every 2 hours at 15 minutes past the hour
- cron: '15 17 * * 2' # Every Tuesday at 17:15 UTC

jobs:
analyze:
Expand Down Expand Up @@ -99,4 +99,4 @@ jobs:
run: |
echo "Executed CodeQL for language: ${{ matrix.language }}"
echo "Category used: /language:${{ matrix.language }}"
echo "Node version: ${{ matrix.node-version || 'N/A' }}"
echo "Node version: ${{ matrix.node-version || 'N/A' }}"
1 change: 1 addition & 0 deletions AISKU/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ See [Breaking Changes](https://microsoft.github.io/ApplicationInsights-JS/upgrad
| Version | Full Size | Raw Minified | GZip Size
|---------|-----------|--------------|-------------
| [<nightly3>](https://github.com/microsoft/ApplicationInsights-JS/tree/main/AISKU) | [![full size size](https://js.monitor.azure.com/nightly/ai.3-nightly3.js.svg)](https://js.monitor.azure.com/nightly/ai.3-nightly3.js.svg)| ![minified size size](https://js.monitor.azure.com/nightly/ai.3-nightly3.min.js.svg) | ![gzip size](https://js.monitor.azure.com/nightly/ai.3-nightly3.min.js.gzip.svg)
| 3.3.9: | [![full size size](https://js.monitor.azure.com/scripts/b/ai.3.3.9.js.svg)](https://js.monitor.azure.com/scripts/b/ai.3.3.9.js.svg)| ![minified size size](https://js.monitor.azure.com/scripts/b/ai.3.3.9.min.js.svg) | ![gzip size](https://js.monitor.azure.com/scripts/b/ai.3.3.9.min.js.gzip.svg)
| 3.3.8: | [![full size size](https://js.monitor.azure.com/scripts/b/ai.3.3.8.js.svg)](https://js.monitor.azure.com/scripts/b/ai.3.3.8.js.svg)| ![minified size size](https://js.monitor.azure.com/scripts/b/ai.3.3.8.min.js.svg) | ![gzip size](https://js.monitor.azure.com/scripts/b/ai.3.3.8.min.js.gzip.svg)
| 3.3.7: | [![full size size](https://js.monitor.azure.com/scripts/b/ai.3.3.7.js.svg)](https://js.monitor.azure.com/scripts/b/ai.3.3.7.js.svg)| ![minified size size](https://js.monitor.azure.com/scripts/b/ai.3.3.7.min.js.svg) | ![gzip size](https://js.monitor.azure.com/scripts/b/ai.3.3.7.min.js.gzip.svg)
| 3.3.6: | [![full size size](https://js.monitor.azure.com/scripts/b/ai.3.3.6.js.svg)](https://js.monitor.azure.com/scripts/b/ai.3.3.6.js.svg)| ![minified size size](https://js.monitor.azure.com/scripts/b/ai.3.3.6.min.js.svg) | ![gzip size](https://js.monitor.azure.com/scripts/b/ai.3.3.6.min.js.gzip.svg)
Expand Down
4 changes: 2 additions & 2 deletions AISKU/Tests/Perf/src/AISKUPerf.Tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,8 @@ export class AISKUPerf extends AITestClass {
}

public testCleanup() {
utlRemoveSessionStorage(null as any, "AI_sentBuffer", );
utlRemoveSessionStorage(null as any, "AI_buffer", );
utlRemoveSessionStorage(null as any, "AI_sentBuffer");
utlRemoveSessionStorage(null as any, "AI_buffer");
}

public registerTests() {
Expand Down
2 changes: 1 addition & 1 deletion AISKU/Tests/Perf/src/AISKUPerf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export class AppInsightsInitPerfTestClass {
* should update version after new release
* version with doperf(): after 2.5.6
* */
var defaultVer = "3.3.8";
var defaultVer = "3.3.9";
this.version = ver? ver:this._getQueryParameterVersion(defaultVer);
this.perfEventsBuffer = [];
this.perfEventWaitBuffer = [];
Expand Down
10 changes: 5 additions & 5 deletions AISKU/Tests/Unit/src/AISKUSize.Tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,13 @@ function _checkSize(checkType: string, maxSize: number, size: number, isNightly:
}

export class AISKUSizeCheck extends AITestClass {
private readonly MAX_RAW_SIZE = 147;
private readonly MAX_BUNDLE_SIZE = 147;
private readonly MAX_RAW_SIZE = 148;
private readonly MAX_BUNDLE_SIZE = 148;
private readonly MAX_RAW_DEFLATE_SIZE = 59;
private readonly MAX_BUNDLE_DEFLATE_SIZE = 59;
private readonly rawFilePath = "../dist/es5/applicationinsights-web.min.js";
// Automatically updated by version scripts
private readonly currentVer = "3.3.8";
private readonly currentVer = "3.3.9";
private readonly prodFilePath = `../browser/es5/ai.${this.currentVer[0]}.min.js`;

public testInitialize() {
Expand All @@ -85,8 +85,8 @@ export class AISKUSizeCheck extends AITestClass {
}

public testCleanup() {
utlRemoveSessionStorage(null as any, "AI_sentBuffer", );
utlRemoveSessionStorage(null as any, "AI_buffer", );
utlRemoveSessionStorage(null as any, "AI_sentBuffer");
utlRemoveSessionStorage(null as any, "AI_buffer");
}

public registerTests() {
Expand Down
2 changes: 1 addition & 1 deletion AISKU/Tests/Unit/src/CdnPackaging.tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const enum CdnFormat {

export class CdnPackagingChecks extends AITestClass {
// Automatically updated by version scripts
private readonly currentVer = "3.3.8";
private readonly currentVer = "3.3.9";

public testInitialize() {
}
Expand Down
Loading