Skip to content

Commit cc997d1

Browse files
committed
Revert "[FSSDK-8651] added support for user agent parser for odp (#854)"
This reverts commit b85af27.
1 parent e879925 commit cc997d1

13 files changed

+8
-235
lines changed

Diff for: .vscode/settings.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
{
22
"jest.rootPath": "/workspaces/javascript-sdk/packages/optimizely-sdk",
33
"jest.jestCommandLine": "./node_modules/.bin/jest",
4-
"jest.autoRevealOutput": "on-exec-error",
5-
"editor.tabSize": 2
4+
"jest.autoRevealOutput": "on-exec-error"
65
}

Diff for: lib/core/odp/odp_event_manager.ts

+1-34
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import { OdpEvent } from './odp_event';
2323
import { OdpConfig } from './odp_config';
2424
import { IOdpEventApiManager } from './odp_event_api_manager';
2525
import { invalidOdpDataFound } from './odp_utils';
26-
import { IUserAgentParser } from './user_agent_parser';
2726

2827
const MAX_RETRIES = 3;
2928

@@ -124,19 +123,6 @@ export abstract class OdpEventManager implements IOdpEventManager {
124123
*/
125124
private readonly clientVersion: string;
126125

127-
/**
128-
* Version of the client being used
129-
* @private
130-
*/
131-
private readonly userAgentParser?: IUserAgentParser;
132-
133-
134-
/**
135-
* Information about the user agent
136-
* @private
137-
*/
138-
private readonly userAgentData?: Map<string, unknown>;
139-
140126
constructor({
141127
odpConfig,
142128
apiManager,
@@ -146,7 +132,6 @@ export abstract class OdpEventManager implements IOdpEventManager {
146132
queueSize,
147133
batchSize,
148134
flushInterval,
149-
userAgentParser,
150135
}: {
151136
odpConfig: OdpConfig;
152137
apiManager: IOdpEventApiManager;
@@ -156,7 +141,6 @@ export abstract class OdpEventManager implements IOdpEventManager {
156141
queueSize?: number;
157142
batchSize?: number;
158143
flushInterval?: number;
159-
userAgentParser?: IUserAgentParser;
160144
}) {
161145
this.odpConfig = odpConfig;
162146
this.apiManager = apiManager;
@@ -165,22 +149,6 @@ export abstract class OdpEventManager implements IOdpEventManager {
165149
this.clientVersion = clientVersion;
166150
this.initParams(batchSize, queueSize, flushInterval);
167151
this.state = STATE.STOPPED;
168-
this.userAgentParser = userAgentParser;
169-
170-
if (userAgentParser) {
171-
const { os, device } = userAgentParser.parseUserAgentInfo();
172-
173-
const userAgentInfo: Record<string, unknown> = {
174-
'os': os.name,
175-
'os_version': os.version,
176-
'device_type': device.type,
177-
'model': device.model,
178-
};
179-
180-
this.userAgentData = new Map<string, unknown>(
181-
Object.entries(userAgentInfo).filter(([key, value]) => value != null && value != undefined)
182-
);
183-
}
184152

185153
this.apiManager.updateSettings(odpConfig);
186154
}
@@ -440,8 +408,7 @@ export abstract class OdpEventManager implements IOdpEventManager {
440408
* @private
441409
*/
442410
private augmentCommonData(sourceData: Map<string, unknown>): Map<string, unknown> {
443-
const data = new Map<string, unknown>(this.userAgentData);
444-
411+
const data = new Map<string, unknown>();
445412
data.set('idempotence_id', uuid());
446413
data.set('data_source_type', 'sdk');
447414
data.set('data_source', this.clientEngine);

Diff for: lib/core/odp/user_agent_info.ts

-26
This file was deleted.

Diff for: lib/core/odp/user_agent_parser.ts

-21
This file was deleted.

Diff for: lib/index.browser.tests.js

-51
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,6 @@ if (!global.window) {
6767
}
6868
}
6969

70-
const pause = (timeoutMilliseconds) => {
71-
return new Promise(resolve => setTimeout(resolve, timeoutMilliseconds));
72-
};
73-
7470
describe('javascript-sdk (Browser)', function() {
7571
var clock;
7672
beforeEach(function() {
@@ -842,53 +838,6 @@ describe('javascript-sdk (Browser)', function() {
842838
sinon.assert.called(fakeEventManager.sendEvent);
843839
});
844840

845-
it('should augment odp events with user agent data if userAgentParser is provided', async () => {
846-
const userAgentParser = {
847-
parseUserAgentInfo() {
848-
return {
849-
os: { 'name': 'windows', 'version': '11' },
850-
device: { 'type': 'laptop', 'model': 'thinkpad' },
851-
}
852-
}
853-
}
854-
855-
const fakeRequestHandler = {
856-
makeRequest: sinon.spy(function (requestUrl, headers, method, data) {
857-
return {
858-
abort: () => {},
859-
responsePromise: Promise.resolve({ statusCode: 200 }),
860-
}
861-
})
862-
};
863-
864-
const client = optimizelyFactory.createInstance({
865-
datafile: testData.getOdpIntegratedConfigWithSegments(),
866-
errorHandler: fakeErrorHandler,
867-
eventDispatcher: fakeEventDispatcher,
868-
eventBatchSize: null,
869-
logger,
870-
odpOptions: {
871-
userAgentParser,
872-
eventRequestHandler: fakeRequestHandler,
873-
},
874-
});
875-
const readyData = await client.onReady();
876-
877-
assert.equal(readyData.success, true);
878-
assert.isUndefined(readyData.reason);
879-
880-
client.sendOdpEvent('test', '', new Map([['eamil', '[email protected]']]), new Map([['key', 'value']]));
881-
clock.tick(10000);
882-
883-
const eventRequestUrl = new URL(fakeRequestHandler.makeRequest.lastCall.args[0]);
884-
const searchParams = eventRequestUrl.searchParams;
885-
886-
assert.equal(searchParams.get('os'), 'windows');
887-
assert.equal(searchParams.get('os_version'), '11');
888-
assert.equal(searchParams.get('device_type'), 'laptop');
889-
assert.equal(searchParams.get('model'), 'thinkpad');
890-
});
891-
892841
it('should convert fs-user-id, FS-USER-ID, and FS_USER_ID to fs_user_id identifier when calling sendOdpEvent', async () => {
893842
const fakeEventManager = {
894843
updateSettings: sinon.spy(),

Diff for: lib/index.browser.ts

-6
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ import { OptimizelyDecideOption, Client, Config, OptimizelyOptions } from './sha
2828
import { createHttpPollingDatafileManager } from './plugins/datafile_manager/browser_http_polling_datafile_manager';
2929
import { BrowserOdpManager } from './plugins/odp_manager/index.browser';
3030
import Optimizely from './optimizely';
31-
import { IUserAgentParser } from './core/odp/user_agent_parser';
32-
import { getUserAgentParser } from './plugins/odp/user_agent_parser/index.browser';
3331

3432
const logger = getLogger();
3533
logHelper.setLogHandler(loggerPlugin.createLogger());
@@ -166,7 +164,6 @@ const __internalResetRetryState = function(): void {
166164

167165
const setLogHandler = logHelper.setLogHandler;
168166
const setLogLevel = logHelper.setLogLevel;
169-
170167
export {
171168
loggerPlugin as logging,
172169
defaultErrorHandler as errorHandler,
@@ -177,8 +174,6 @@ export {
177174
createInstance,
178175
__internalResetRetryState,
179176
OptimizelyDecideOption,
180-
IUserAgentParser,
181-
getUserAgentParser,
182177
};
183178

184179
export default {
@@ -191,7 +186,6 @@ export default {
191186
createInstance,
192187
__internalResetRetryState,
193188
OptimizelyDecideOption,
194-
getUserAgentParser,
195189
};
196190

197191
export * from './export_types';

Diff for: lib/plugins/odp/user_agent_parser/index.browser.ts

-33
This file was deleted.

Diff for: lib/plugins/odp_manager/index.browser.ts

-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ export class BrowserOdpManager extends OdpManager {
118118
flushInterval: odpOptions?.eventFlushInterval,
119119
batchSize: odpOptions?.eventBatchSize,
120120
queueSize: odpOptions?.eventQueueSize,
121-
userAgentParser: odpOptions?.userAgentParser,
122121
});
123122
}
124123

Diff for: lib/shared_types.ts

-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import { IOdpSegmentManager } from './core/odp/odp_segment_manager';
3535
import { IOdpEventApiManager } from './core/odp/odp_event_api_manager';
3636
import { IOdpEventManager } from './core/odp/odp_event_manager';
3737
import { IOdpManager } from './core/odp/odp_manager';
38-
import { IUserAgentParser } from './core/odp/user_agent_parser';
3938

4039
export interface BucketerParams {
4140
experimentId: string;
@@ -106,7 +105,6 @@ export interface OdpOptions {
106105
eventApiTimeout?: number;
107106
eventRequestHandler?: RequestHandler;
108107
eventManager?: IOdpEventManager;
109-
userAgentParser?: IUserAgentParser;
110108
}
111109

112110
export interface ListenerPayload {

Diff for: package-lock.json

+4-15
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
"decompress-response": "^4.2.1",
4646
"json-schema": "^0.4.0",
4747
"murmurhash": "^2.0.1",
48-
"ua-parser-js": "^1.0.35",
4948
"uuid": "^8.3.2"
5049
},
5150
"devDependencies": {
@@ -58,7 +57,6 @@
5857
"@types/mocha": "^5.2.7",
5958
"@types/nise": "^1.4.0",
6059
"@types/node": "^18.7.18",
61-
"@types/ua-parser-js": "^0.7.36",
6260
"@types/uuid": "^3.4.4",
6361
"@typescript-eslint/eslint-plugin": "^5.33.0",
6462
"@typescript-eslint/parser": "^5.33.0",

Diff for: tests/odpEventManager.spec.ts

-37
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ import { anything, capture, instance, mock, resetCalls, spy, verify, when } from
2323
import { IOdpEventApiManager } from '../lib/core/odp/odp_event_api_manager';
2424
import { LogHandler, LogLevel } from '../lib/modules/logging';
2525
import { OdpEvent } from '../lib/core/odp/odp_event';
26-
import { IUserAgentParser } from '../lib/core/odp/user_agent_parser';
27-
import { UserAgentInfo } from '../lib/core/odp/user_agent_info';
2826

2927
const API_KEY = 'test-api-key';
3028
const API_HOST = 'https://odp.example.com';
@@ -374,41 +372,6 @@ describe('OdpEventManager', () => {
374372
expect(events[1].data.size).toEqual(PROCESSED_EVENTS[1].data.size);
375373
});
376374

377-
it('should augment events with data from user agent parser', async () => {
378-
const userAgentParser : IUserAgentParser = {
379-
parseUserAgentInfo: function (): UserAgentInfo {
380-
return {
381-
os: { 'name': 'windows', 'version': '11' },
382-
device: { 'type': 'laptop', 'model': 'thinkpad' },
383-
}
384-
}
385-
}
386-
387-
const eventManager = new OdpEventManager({
388-
odpConfig,
389-
apiManager,
390-
logger,
391-
clientEngine,
392-
clientVersion,
393-
batchSize: 10,
394-
flushInterval: 100,
395-
userAgentParser,
396-
});
397-
398-
eventManager.start();
399-
EVENTS.forEach(event => eventManager.sendEvent(event));
400-
await pause(1000);
401-
402-
verify(mockApiManager.sendEvents(anything())).called();
403-
const [events] = capture(mockApiManager.sendEvents).last();
404-
const event = events[0];
405-
406-
expect(event.data.get('os')).toEqual('windows');
407-
expect(event.data.get('os_version')).toEqual('11');
408-
expect(event.data.get('device_type')).toEqual('laptop');
409-
expect(event.data.get('model')).toEqual('thinkpad');
410-
});
411-
412375
it('should retry failed events', async () => {
413376
// all events should fail ie shouldRetry = true
414377
when(mockApiManager.sendEvents(anything())).thenResolve(true);

0 commit comments

Comments
 (0)