@webex/calling 3.7.0-next.9 → 3.7.0-web-workers-keepalive.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/CallingClient/CallingClient.js +49 -9
  2. package/dist/CallingClient/CallingClient.js.map +1 -1
  3. package/dist/CallingClient/CallingClient.test.js +23 -24
  4. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  5. package/dist/CallingClient/calling/call.js +121 -57
  6. package/dist/CallingClient/calling/call.js.map +1 -1
  7. package/dist/CallingClient/calling/call.test.js +21 -8
  8. package/dist/CallingClient/calling/call.test.js.map +1 -1
  9. package/dist/CallingClient/line/line.test.js +39 -22
  10. package/dist/CallingClient/line/line.test.js.map +1 -1
  11. package/dist/CallingClient/registration/register.js +333 -333
  12. package/dist/CallingClient/registration/register.js.map +1 -1
  13. package/dist/CallingClient/registration/register.test.js +3 -4
  14. package/dist/CallingClient/registration/register.test.js.map +1 -1
  15. package/dist/CallingClient/registration/webWorker.js +104 -0
  16. package/dist/CallingClient/registration/webWorker.js.map +1 -0
  17. package/dist/Logger/index.js +22 -14
  18. package/dist/Logger/index.js.map +1 -1
  19. package/dist/Logger/index.test.js +30 -5
  20. package/dist/Logger/index.test.js.map +1 -1
  21. package/dist/SDKConnector/types.js.map +1 -1
  22. package/dist/common/Utils.js +96 -0
  23. package/dist/common/Utils.js.map +1 -1
  24. package/dist/common/Utils.test.js +98 -0
  25. package/dist/common/Utils.test.js.map +1 -1
  26. package/dist/common/types.js +8 -1
  27. package/dist/common/types.js.map +1 -1
  28. package/dist/module/CallingClient/CallingClient.js +8 -1
  29. package/dist/module/CallingClient/calling/call.js +64 -1
  30. package/dist/module/CallingClient/registration/register.js +50 -54
  31. package/dist/module/CallingClient/registration/webWorker.js +51 -0
  32. package/dist/module/Logger/index.js +20 -11
  33. package/dist/module/common/Utils.js +48 -0
  34. package/dist/module/common/types.js +7 -0
  35. package/dist/types/CallingClient/CallingClient.d.ts +3 -0
  36. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  37. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  38. package/dist/types/CallingClient/registration/register.d.ts +1 -2
  39. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  40. package/dist/types/CallingClient/registration/webWorker.d.ts +2 -0
  41. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -0
  42. package/dist/types/Logger/index.d.ts +2 -0
  43. package/dist/types/Logger/index.d.ts.map +1 -1
  44. package/dist/types/SDKConnector/types.d.ts +12 -9
  45. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  46. package/dist/types/common/Utils.d.ts +2 -0
  47. package/dist/types/common/Utils.d.ts.map +1 -1
  48. package/dist/types/common/types.d.ts +6 -0
  49. package/dist/types/common/types.d.ts.map +1 -1
  50. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_types","currentLogLevel","LOGGING_LEVEL","error","writeToConsole","message","level","LOGGER","INFO","LOG","console","log","WARN","warn","ERROR","TRACE","trace","format","context","timestamp","Date","toUTCString","concat","REPO_NAME","LOG_PREFIX","FILE","file","METHOD","method","setLogger","module","info","MESSAGE","getLogLevel","logMessage","logInfo","logWarn","logTrace","logError","_default","exports","default"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {REPO_NAME} from '../CallingClient/constants';\nimport {IMetaContext} from '../common/types';\nimport ExtendedError from '../Errors/catalog/ExtendedError';\nimport {LOGGING_LEVEL, LogContext, LOGGER, LOG_PREFIX} from './types';\n\n/*\n * These are the order of log levels :-\n * error - 1\n * warn - 2\n * log - 3\n * info - 4\n * trace - 5\n *\n * Where log level n denotes that level 1 -> level n will be logged.\n */\n\nlet currentLogLevel = LOGGING_LEVEL.error;\n\n/**\n * A wrapper around console which prints to stderr or stdout\n * based on the level defined.\n *\n * @param message - Log Message to print.\n * @param level - Log level.\n */\nconst writeToConsole = (message: string, level: LOGGER) => {\n switch (level) {\n case LOGGER.INFO:\n case LOGGER.LOG: {\n // eslint-disable-next-line no-console\n console.log(message);\n break;\n }\n case LOGGER.WARN: {\n console.warn(message);\n break;\n }\n case LOGGER.ERROR: {\n console.error(message);\n break;\n }\n case LOGGER.TRACE: {\n // eslint-disable-next-line no-console\n console.trace(message);\n break;\n }\n default: {\n // Since this is internal , we shouldn't reach here\n }\n }\n};\n\n/**\n * Format the Log message as 'timestamp Calling SDK - [level]: file:example.ts - method:methodName - Actual log message'.\n *\n * @param context - File and method.\n * @param level - Log level.\n * @returns - Formatted string.\n */\nconst format = (context: IMetaContext, level: string): string => {\n const timestamp = new Date().toUTCString();\n\n return `${REPO_NAME}: ${timestamp}: ${level}: ${LOG_PREFIX.FILE}:${context.file} - ${LOG_PREFIX.METHOD}:${context.method}`;\n};\n\n/**\n * Used by the Calling Client to initialize the logger module\n * with a certain level.\n *\n * @param level - Log Level.\n */\nconst setLogger = (level: string, module: string) => {\n switch (level) {\n case LOGGER.WARN: {\n currentLogLevel = LOGGING_LEVEL.warn;\n break;\n }\n case LOGGER.LOG: {\n currentLogLevel = LOGGING_LEVEL.log;\n break;\n }\n case LOGGER.INFO: {\n currentLogLevel = LOGGING_LEVEL.info;\n break;\n }\n case LOGGER.TRACE: {\n currentLogLevel = LOGGING_LEVEL.trace;\n break;\n }\n default: {\n currentLogLevel = LOGGING_LEVEL.error;\n }\n }\n\n const message = `Logger initialized for module: ${module} with level: ${currentLogLevel}`;\n\n writeToConsole(\n `${format({file: 'logger.ts', method: 'setLogger'}, '')} - ${LOG_PREFIX.MESSAGE}:${message}`,\n LOGGER.INFO\n );\n};\n\n/**\n * To retrieve the current log level.\n *\n * @returns - Log level.\n */\nconst getLogLevel = (): LOGGER => {\n let level;\n\n switch (currentLogLevel) {\n case LOGGING_LEVEL.warn: {\n level = LOGGER.WARN;\n break;\n }\n case LOGGING_LEVEL.log: {\n level = LOGGER.LOG;\n break;\n }\n case LOGGING_LEVEL.info: {\n level = LOGGER.INFO;\n break;\n }\n case LOGGING_LEVEL.trace: {\n level = LOGGER.TRACE;\n break;\n }\n default: {\n level = LOGGER.ERROR;\n }\n }\n\n return level;\n};\n\n/**\n * Can be used to print only useful information.\n *\n * @param message - Caller emitted string.\n * @param context - File and method which called.\n */\nconst logMessage = (message: string, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.log) {\n writeToConsole(`${format(context, '[LOG]')} - ${LOG_PREFIX.MESSAGE}:${message}`, LOGGER.LOG);\n }\n};\n\n/**\n * Can be used to print informational messages.\n *\n * @param message - Caller emitted string.\n * @param context - File and method which called.\n */\nconst logInfo = (message: string, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.info) {\n writeToConsole(`${format(context, '[INFO]')} - ${LOG_PREFIX.MESSAGE}:${message}`, LOGGER.INFO);\n }\n};\n\n/**\n * Can be used to print warning messages.\n *\n * @param message - Caller emitted string.\n * @param context - File and method which called.\n */\nconst logWarn = (message: string, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.warn) {\n writeToConsole(`${format(context, '[WARN]')} - ${LOG_PREFIX.MESSAGE}:${message}`, LOGGER.WARN);\n }\n};\n\n/**\n * Can be used to print the stack trace of the entire call path.\n *\n * @param message - Caller emitted string.\n * @param context - File and method which called.\n */\nconst logTrace = (message: string, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.trace) {\n writeToConsole(\n `${format(context, '[TRACE]')} - ${LOG_PREFIX.MESSAGE}:${message}`,\n LOGGER.TRACE\n );\n }\n};\n\n/**\n * Can be used to print only errors.\n *\n * @param error - Error string .\n * @param context - File and method which called.\n */\nconst logError = (error: ExtendedError, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.error) {\n writeToConsole(\n `${format(context, '[ERROR]')} - !${LOG_PREFIX.ERROR}!${LOG_PREFIX.MESSAGE}:${error.message}`,\n LOGGER.ERROR\n );\n }\n};\n\nexport default {\n log: logMessage,\n error: logError,\n info: logInfo,\n warn: logWarn,\n trace: logTrace,\n setLogger,\n getLogLevel,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","require","_types","currentLogLevel","LOGGING_LEVEL","error","webexLogger","console","writeToLogger","message","level","LOGGER","INFO","info","LOG","log","WARN","warn","ERROR","TRACE","trace","format","context","timestamp","Date","toUTCString","concat","REPO_NAME","LOG_PREFIX","FILE","file","METHOD","method","setLogger","module","MESSAGE","getLogLevel","logMessage","logInfo","logWarn","logTrace","logError","setWebexLogger","logger","_default","exports","default"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {Logger} from '../SDKConnector/types';\nimport {REPO_NAME} from '../CallingClient/constants';\nimport {IMetaContext} from '../common/types';\nimport ExtendedError from '../Errors/catalog/ExtendedError';\nimport {LOGGING_LEVEL, LogContext, LOGGER, LOG_PREFIX} from './types';\n\n/*\n * These are the order of log levels :-\n * error - 1\n * warn - 2\n * log - 3\n * info - 4\n * trace - 5\n *\n * Where log level n denotes that level 1 -> level n will be logged.\n */\n\nlet currentLogLevel = LOGGING_LEVEL.error;\n\nlet webexLogger: Logger = console; // Default to console logger\n\n/**\n * A wrapper around console which prints to stderr or stdout\n * based on the level defined.\n *\n * @param message - Log Message to print.\n * @param level - Log level.\n */\nconst writeToLogger = (message: string, level: LOGGER) => {\n switch (level) {\n case LOGGER.INFO:\n webexLogger.info(message);\n break;\n case LOGGER.LOG: {\n webexLogger.log(message);\n break;\n }\n case LOGGER.WARN: {\n webexLogger.warn(message);\n break;\n }\n case LOGGER.ERROR: {\n webexLogger.error(message);\n break;\n }\n case LOGGER.TRACE: {\n webexLogger.trace(message);\n break;\n }\n default: {\n // Since this is internal , we shouldn't reach here\n }\n }\n};\n\n/**\n * Format the Log message as 'timestamp Calling SDK - [level]: file:example.ts - method:methodName - Actual log message'.\n *\n * @param context - File and method.\n * @param level - Log level.\n * @returns - Formatted string.\n */\nconst format = (context: IMetaContext, level: string): string => {\n const timestamp = new Date().toUTCString();\n\n return `${REPO_NAME}: ${timestamp}: ${level}: ${LOG_PREFIX.FILE}:${context.file} - ${LOG_PREFIX.METHOD}:${context.method}`;\n};\n\n/**\n * Used by the Calling Client to initialize the logger module\n * with a certain level.\n *\n * @param level - Log Level.\n */\nconst setLogger = (level: string, module: string) => {\n switch (level) {\n case LOGGER.WARN: {\n currentLogLevel = LOGGING_LEVEL.warn;\n break;\n }\n case LOGGER.LOG: {\n currentLogLevel = LOGGING_LEVEL.log;\n break;\n }\n case LOGGER.INFO: {\n currentLogLevel = LOGGING_LEVEL.info;\n break;\n }\n case LOGGER.TRACE: {\n currentLogLevel = LOGGING_LEVEL.trace;\n break;\n }\n default: {\n currentLogLevel = LOGGING_LEVEL.error;\n }\n }\n\n const message = `Logger initialized for module: ${module} with level: ${currentLogLevel}`;\n\n writeToLogger(\n `${format({file: 'logger.ts', method: 'setLogger'}, '')} - ${LOG_PREFIX.MESSAGE}:${message}`,\n LOGGER.INFO\n );\n};\n\n/**\n * To retrieve the current log level.\n *\n * @returns - Log level.\n */\nconst getLogLevel = (): LOGGER => {\n let level;\n\n switch (currentLogLevel) {\n case LOGGING_LEVEL.warn: {\n level = LOGGER.WARN;\n break;\n }\n case LOGGING_LEVEL.log: {\n level = LOGGER.LOG;\n break;\n }\n case LOGGING_LEVEL.info: {\n level = LOGGER.INFO;\n break;\n }\n case LOGGING_LEVEL.trace: {\n level = LOGGER.TRACE;\n break;\n }\n default: {\n level = LOGGER.ERROR;\n }\n }\n\n return level;\n};\n\n/**\n * Can be used to print only useful information.\n *\n * @param message - Caller emitted string.\n * @param context - File and method which called.\n */\nconst logMessage = (message: string, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.log) {\n writeToLogger(`${format(context, '[LOG]')} - ${LOG_PREFIX.MESSAGE}:${message}`, LOGGER.LOG);\n }\n};\n\n/**\n * Can be used to print informational messages.\n *\n * @param message - Caller emitted string.\n * @param context - File and method which called.\n */\nconst logInfo = (message: string, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.info) {\n writeToLogger(`${format(context, '[INFO]')} - ${LOG_PREFIX.MESSAGE}:${message}`, LOGGER.INFO);\n }\n};\n\n/**\n * Can be used to print warning messages.\n *\n * @param message - Caller emitted string.\n * @param context - File and method which called.\n */\nconst logWarn = (message: string, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.warn) {\n writeToLogger(`${format(context, '[WARN]')} - ${LOG_PREFIX.MESSAGE}:${message}`, LOGGER.WARN);\n }\n};\n\n/**\n * Can be used to print the stack trace of the entire call path.\n *\n * @param message - Caller emitted string.\n * @param context - File and method which called.\n */\nconst logTrace = (message: string, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.trace) {\n writeToLogger(`${format(context, '[TRACE]')} - ${LOG_PREFIX.MESSAGE}:${message}`, LOGGER.TRACE);\n }\n};\n\n/**\n * Can be used to print only errors.\n *\n * @param error - Error string .\n * @param context - File and method which called.\n */\nconst logError = (error: ExtendedError, context: LogContext) => {\n if (currentLogLevel >= LOGGING_LEVEL.error) {\n writeToLogger(\n `${format(context, '[ERROR]')} - !${LOG_PREFIX.ERROR}!${LOG_PREFIX.MESSAGE}:${error.message}`,\n LOGGER.ERROR\n );\n }\n};\n\nconst setWebexLogger = (logger: Logger) => {\n if (logger) {\n // if logger is not passed, defaults to console\n webexLogger = logger;\n }\n};\n\nexport default {\n log: logMessage,\n error: logError,\n info: logInfo,\n warn: logWarn,\n trace: logTrace,\n setLogger,\n getLogLevel,\n setWebexLogger,\n};\n"],"mappings":"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"}
@@ -6,12 +6,28 @@ var _ = _interopRequireDefault(require("."));
6
6
  describe('Coverage tests for logger', function () {
7
7
  var logLevel;
8
8
  var logSpy = jest.spyOn(console, 'log');
9
+ var infoSpy = jest.spyOn(console, 'info');
9
10
  var traceSpy = jest.spyOn(console, 'trace');
10
11
  var warnSpy = jest.spyOn(console, 'warn');
11
12
  var errorSpy = jest.spyOn(console, 'error');
13
+ var dummyWebexLogger = {
14
+ log: jest.fn(),
15
+ info: jest.fn(),
16
+ warn: jest.fn(),
17
+ error: jest.fn(),
18
+ debug: jest.fn(),
19
+ trace: jest.fn()
20
+ };
12
21
  beforeEach(function () {
13
22
  logLevel = _types.LOGGER.ERROR;
14
23
  });
24
+ afterEach(function () {
25
+ logSpy.mockClear();
26
+ traceSpy.mockClear();
27
+ warnSpy.mockClear();
28
+ errorSpy.mockClear();
29
+ infoSpy.mockClear();
30
+ });
15
31
  var fakePrint = 'Example log statement';
16
32
  var dummyContext = {
17
33
  file: 'logger.test.ts',
@@ -19,7 +35,7 @@ describe('Coverage tests for logger', function () {
19
35
  };
20
36
  it('Set the log level to error and verify that all levels are not executed except error', function () {
21
37
  _.default.info(fakePrint, dummyContext);
22
- expect(logSpy).not.toHaveBeenCalledTimes(1);
38
+ expect(infoSpy).not.toHaveBeenCalledTimes(1);
23
39
  _.default.log(fakePrint, dummyContext);
24
40
  expect(logSpy).not.toHaveBeenCalledTimes(1);
25
41
  _.default.warn(fakePrint, dummyContext);
@@ -37,9 +53,9 @@ describe('Coverage tests for logger', function () {
37
53
  it('Set the log level to Info and verify levels below info are executed or not', function () {
38
54
  _.default.setLogger(_types.LOGGER.INFO);
39
55
  _.default.info(fakePrint, dummyContext);
40
- expect(logSpy).toHaveBeenCalledTimes(2);
56
+ expect(infoSpy).toHaveBeenCalledTimes(2);
41
57
  _.default.log(fakePrint, dummyContext);
42
- expect(logSpy).toHaveBeenCalledTimes(3);
58
+ expect(logSpy).toHaveBeenCalledTimes(1);
43
59
  _.default.warn(fakePrint, dummyContext);
44
60
  expect(warnSpy).toHaveBeenCalledTimes(1);
45
61
  _.default.trace(fakePrint, dummyContext);
@@ -48,15 +64,24 @@ describe('Coverage tests for logger', function () {
48
64
  it('Set the log level to Trace and verify that all levels are executed', function () {
49
65
  _.default.setLogger(_types.LOGGER.TRACE);
50
66
  _.default.info(fakePrint, dummyContext);
51
- expect(logSpy).toHaveBeenCalledTimes(2); // one during initialization and one with the statement
67
+ expect(infoSpy).toHaveBeenCalledTimes(2); // one during initialization and one with the statement
52
68
 
53
69
  _.default.log(fakePrint, dummyContext);
54
- expect(logSpy).toHaveBeenCalledTimes(3); // +1 because both info and log internally use console.log
70
+ expect(logSpy).toHaveBeenCalledTimes(1); // +1 because both info and log internally use console.log
55
71
 
56
72
  _.default.warn(fakePrint, dummyContext);
57
73
  expect(warnSpy).toHaveBeenCalledTimes(1);
58
74
  _.default.trace(fakePrint, dummyContext);
59
75
  expect(traceSpy).toHaveBeenCalledTimes(1);
60
76
  });
77
+ it('Set webexLogger and check console log is not called', function () {
78
+ var webexLoggerInfoSpy = jest.spyOn(dummyWebexLogger, 'info');
79
+ _.default.setLogger(_types.LOGGER.INFO);
80
+ logSpy.mockClear();
81
+ _.default.setWebexLogger(dummyWebexLogger);
82
+ _.default.info(fakePrint, dummyContext);
83
+ expect(logSpy).not.toHaveBeenCalled();
84
+ expect(webexLoggerInfoSpy).toHaveBeenCalledTimes(1);
85
+ });
61
86
  });
62
87
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_","_interopRequireDefault","describe","logLevel","logSpy","jest","spyOn","console","traceSpy","warnSpy","errorSpy","beforeEach","LOGGER","ERROR","fakePrint","dummyContext","file","method","it","log","info","expect","not","toHaveBeenCalledTimes","warn","trace","error","Error","toStrictEqual","setLogger","TRACE","getLogLevel","INFO"],"sources":["index.test.ts"],"sourcesContent":["import ExtendedError from '../Errors/catalog/ExtendedError';\nimport {LOGGER} from './types';\nimport log from '.';\n\ndescribe('Coverage tests for logger', () => {\n let logLevel: LOGGER;\n\n const logSpy = jest.spyOn(console, 'log');\n const traceSpy = jest.spyOn(console, 'trace');\n const warnSpy = jest.spyOn(console, 'warn');\n const errorSpy = jest.spyOn(console, 'error');\n\n beforeEach(() => {\n logLevel = LOGGER.ERROR;\n });\n\n const fakePrint = 'Example log statement';\n const dummyContext = {\n file: 'logger.test.ts',\n method: 'dummy',\n };\n\n it('Set the log level to error and verify that all levels are not executed except error', () => {\n log.info(fakePrint, dummyContext);\n expect(logSpy).not.toHaveBeenCalledTimes(1);\n\n log.log(fakePrint, dummyContext);\n expect(logSpy).not.toHaveBeenCalledTimes(1);\n\n log.warn(fakePrint, dummyContext);\n expect(warnSpy).not.toHaveBeenCalledTimes(1);\n\n log.trace(fakePrint, dummyContext);\n expect(traceSpy).not.toHaveBeenCalledTimes(1);\n\n log.error(new Error(fakePrint) as ExtendedError, dummyContext);\n expect(errorSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Set the logger and verify the level', () => {\n expect(logLevel).toStrictEqual(LOGGER.ERROR);\n log.setLogger(LOGGER.TRACE);\n expect(log.getLogLevel()).toStrictEqual(LOGGER.TRACE);\n });\n\n it('Set the log level to Info and verify levels below info are executed or not', () => {\n log.setLogger(LOGGER.INFO);\n\n log.info(fakePrint, dummyContext);\n expect(logSpy).toHaveBeenCalledTimes(2);\n\n log.log(fakePrint, dummyContext);\n expect(logSpy).toHaveBeenCalledTimes(3);\n\n log.warn(fakePrint, dummyContext);\n expect(warnSpy).toHaveBeenCalledTimes(1);\n\n log.trace(fakePrint, dummyContext);\n expect(traceSpy).not.toHaveBeenCalledTimes(1);\n });\n\n it('Set the log level to Trace and verify that all levels are executed', () => {\n log.setLogger(LOGGER.TRACE);\n\n log.info(fakePrint, dummyContext);\n expect(logSpy).toHaveBeenCalledTimes(2); // one during initialization and one with the statement\n\n log.log(fakePrint, dummyContext);\n expect(logSpy).toHaveBeenCalledTimes(3); // +1 because both info and log internally use console.log\n\n log.warn(fakePrint, dummyContext);\n expect(warnSpy).toHaveBeenCalledTimes(1);\n\n log.trace(fakePrint, dummyContext);\n expect(traceSpy).toHaveBeenCalledTimes(1);\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","_","_interopRequireDefault","describe","logLevel","logSpy","jest","spyOn","console","infoSpy","traceSpy","warnSpy","errorSpy","dummyWebexLogger","log","fn","info","warn","error","debug","trace","beforeEach","LOGGER","ERROR","afterEach","mockClear","fakePrint","dummyContext","file","method","it","expect","not","toHaveBeenCalledTimes","Error","toStrictEqual","setLogger","TRACE","getLogLevel","INFO","webexLoggerInfoSpy","setWebexLogger","toHaveBeenCalled"],"sources":["index.test.ts"],"sourcesContent":["import ExtendedError from '../Errors/catalog/ExtendedError';\nimport {LOGGER} from './types';\nimport log from '.';\n\ndescribe('Coverage tests for logger', () => {\n let logLevel: LOGGER;\n\n const logSpy = jest.spyOn(console, 'log');\n const infoSpy = jest.spyOn(console, 'info');\n const traceSpy = jest.spyOn(console, 'trace');\n const warnSpy = jest.spyOn(console, 'warn');\n const errorSpy = jest.spyOn(console, 'error');\n const dummyWebexLogger = {\n log: jest.fn(),\n info: jest.fn(),\n warn: jest.fn(),\n error: jest.fn(),\n debug: jest.fn(),\n trace: jest.fn(),\n };\n\n beforeEach(() => {\n logLevel = LOGGER.ERROR;\n });\n\n afterEach(() => {\n logSpy.mockClear();\n traceSpy.mockClear();\n warnSpy.mockClear();\n errorSpy.mockClear();\n infoSpy.mockClear();\n });\n\n const fakePrint = 'Example log statement';\n const dummyContext = {\n file: 'logger.test.ts',\n method: 'dummy',\n };\n\n it('Set the log level to error and verify that all levels are not executed except error', () => {\n log.info(fakePrint, dummyContext);\n expect(infoSpy).not.toHaveBeenCalledTimes(1);\n\n log.log(fakePrint, dummyContext);\n expect(logSpy).not.toHaveBeenCalledTimes(1);\n\n log.warn(fakePrint, dummyContext);\n expect(warnSpy).not.toHaveBeenCalledTimes(1);\n\n log.trace(fakePrint, dummyContext);\n expect(traceSpy).not.toHaveBeenCalledTimes(1);\n\n log.error(new Error(fakePrint) as ExtendedError, dummyContext);\n expect(errorSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Set the logger and verify the level', () => {\n expect(logLevel).toStrictEqual(LOGGER.ERROR);\n log.setLogger(LOGGER.TRACE);\n expect(log.getLogLevel()).toStrictEqual(LOGGER.TRACE);\n });\n\n it('Set the log level to Info and verify levels below info are executed or not', () => {\n log.setLogger(LOGGER.INFO);\n\n log.info(fakePrint, dummyContext);\n expect(infoSpy).toHaveBeenCalledTimes(2);\n\n log.log(fakePrint, dummyContext);\n expect(logSpy).toHaveBeenCalledTimes(1);\n\n log.warn(fakePrint, dummyContext);\n expect(warnSpy).toHaveBeenCalledTimes(1);\n\n log.trace(fakePrint, dummyContext);\n expect(traceSpy).not.toHaveBeenCalledTimes(1);\n });\n\n it('Set the log level to Trace and verify that all levels are executed', () => {\n log.setLogger(LOGGER.TRACE);\n\n log.info(fakePrint, dummyContext);\n expect(infoSpy).toHaveBeenCalledTimes(2); // one during initialization and one with the statement\n\n log.log(fakePrint, dummyContext);\n expect(logSpy).toHaveBeenCalledTimes(1); // +1 because both info and log internally use console.log\n\n log.warn(fakePrint, dummyContext);\n expect(warnSpy).toHaveBeenCalledTimes(1);\n\n log.trace(fakePrint, dummyContext);\n expect(traceSpy).toHaveBeenCalledTimes(1);\n });\n\n it('Set webexLogger and check console log is not called', () => {\n const webexLoggerInfoSpy = jest.spyOn(dummyWebexLogger, 'info');\n log.setLogger(LOGGER.INFO);\n logSpy.mockClear();\n log.setWebexLogger(dummyWebexLogger);\n log.info(fakePrint, dummyContext);\n expect(logSpy).not.toHaveBeenCalled();\n expect(webexLoggerInfoSpy).toHaveBeenCalledTimes(1);\n });\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {KmsKey, KmsResourceObject, PeopleListResponse, WebexRequestPayload} from '../common/types';\n/* eslint-disable no-shadow */\n\ntype Listener = (e: string, data?: unknown) => void;\ntype ListenerOff = (e: string) => void;\n\nexport type ServiceHost = {\n host: string;\n ttl: number;\n priority: number;\n id: string;\n homeCluster?: boolean;\n};\n\nexport type Model = {\n _values: {\n key: string;\n };\n};\n\nexport type ServiceCatalog = {\n serviceGroups: {\n // cSpell:disable\n postauth: [\n {\n _values: {\n name: string;\n hosts: ServiceHost[];\n };\n }\n ];\n /* cSpell:enable */\n };\n};\n\nexport type ClientRegionInfo = {\n attribution: string;\n clientAddress: string;\n clientRegion: string;\n countryCode: string;\n disclaimer: string;\n regionCode: string;\n timezone: string;\n};\n\n// TODO: is there a way to import bindings from the Webex JS SDK without having to redefine expected methods and structure?\n// This defines the shape for the webex SDK, if a typing doesn't exist, it should be added here\nexport interface WebexSDK {\n // top level primitives/funcs\n version: string;\n canAuthorize: boolean;\n credentials: {\n getUserToken: () => Promise<string>;\n };\n ready: boolean;\n request: <T>(payload: WebexRequestPayload) => Promise<T>;\n // internal plugins\n internal: {\n mercury: {\n on: Listener;\n off: ListenerOff;\n connected: boolean;\n connecting: boolean;\n };\n calendar: unknown;\n device: {\n url: string;\n userId: string;\n orgId: string;\n version: string;\n callingBehavior: string;\n features: {\n entitlement: {\n models: Model[];\n };\n };\n };\n encryption: {\n decryptText: (encryptionKeyUrl: string, encryptedData?: string) => Promise<string>;\n encryptText: (encryptionKeyUrl: string, text?: string) => Promise<string>;\n kms: {\n createUnboundKeys: (arg0: {count?: number}) => Promise<KmsKey[]>;\n createResource: (arg0: {keyUris: string[]}) => Promise<KmsResourceObject>;\n bindKey: (arg0: {kroUri: string; keyUri: string}) => Promise<KmsKey>;\n };\n };\n presence: unknown;\n support: unknown;\n services: {\n _hostCatalog: Record<string, ServiceHost[]>;\n _serviceUrls: {\n mobius: string;\n identity: string;\n janus: string;\n wdm: string;\n broadworksIdpProxy: string;\n hydra: string;\n mercuryApi: string;\n 'ucmgmt-gateway': string;\n contactsService: string;\n };\n fetchClientRegionInfo: () => Promise<ClientRegionInfo>;\n };\n metrics: {\n submitClientMetrics: (name: string, data: unknown) => void;\n };\n };\n // public plugins\n logger: {\n log: (payload: string) => void;\n error: (payload: string) => void;\n warn: (payload: string) => void;\n info: (payload: string) => void;\n trace: (payload: string) => void;\n debug: (payload: string) => void;\n };\n messages: unknown;\n memberships: unknown;\n people: {\n list: (arg: object) => Promise<PeopleListResponse>;\n };\n rooms: unknown;\n teams: unknown;\n}\n\nexport interface ISDKConnector {\n setWebex: (webexInstance: WebexSDK) => void;\n getWebex: () => WebexSDK;\n get: () => ISDKConnector;\n registerListener: <T>(event: string, cb: (data?: T) => unknown) => void;\n unregisterListener: (event: string) => void;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {KmsKey, KmsResourceObject, PeopleListResponse, WebexRequestPayload} from '../common/types';\n/* eslint-disable no-shadow */\n\ntype Listener = (e: string, data?: unknown) => void;\ntype ListenerOff = (e: string) => void;\n\nexport type ServiceHost = {\n host: string;\n ttl: number;\n priority: number;\n id: string;\n homeCluster?: boolean;\n};\n\nexport type Model = {\n _values: {\n key: string;\n };\n};\n\nexport type ServiceCatalog = {\n serviceGroups: {\n // cSpell:disable\n postauth: [\n {\n _values: {\n name: string;\n hosts: ServiceHost[];\n };\n }\n ];\n /* cSpell:enable */\n };\n};\n\nexport type ClientRegionInfo = {\n attribution: string;\n clientAddress: string;\n clientRegion: string;\n countryCode: string;\n disclaimer: string;\n regionCode: string;\n timezone: string;\n};\n\nexport type Logger = {\n log: (mess: string) => void;\n error: (payload: string) => void;\n warn: (payload: string) => void;\n info: (payload: string) => void;\n trace: (payload: string) => void;\n debug: (payload: string) => void;\n};\n\n// TODO: is there a way to import bindings from the Webex JS SDK without having to redefine expected methods and structure?\n// This defines the shape for the webex SDK, if a typing doesn't exist, it should be added here\nexport interface WebexSDK {\n // top level primitives/funcs\n version: string;\n canAuthorize: boolean;\n credentials: {\n getUserToken: () => Promise<string>;\n };\n ready: boolean;\n request: <T>(payload: WebexRequestPayload) => Promise<T>;\n // internal plugins\n internal: {\n mercury: {\n on: Listener;\n off: ListenerOff;\n connected: boolean;\n connecting: boolean;\n };\n calendar: unknown;\n device: {\n url: string;\n userId: string;\n orgId: string;\n version: string;\n callingBehavior: string;\n features: {\n entitlement: {\n models: Model[];\n };\n };\n };\n encryption: {\n decryptText: (encryptionKeyUrl: string, encryptedData?: string) => Promise<string>;\n encryptText: (encryptionKeyUrl: string, text?: string) => Promise<string>;\n kms: {\n createUnboundKeys: (arg0: {count?: number}) => Promise<KmsKey[]>;\n createResource: (arg0: {keyUris: string[]}) => Promise<KmsResourceObject>;\n bindKey: (arg0: {kroUri: string; keyUri: string}) => Promise<KmsKey>;\n };\n };\n presence: unknown;\n support: {\n submitLogs: (info: object) => Promise<void>;\n };\n services: {\n _hostCatalog: Record<string, ServiceHost[]>;\n _serviceUrls: {\n mobius: string;\n identity: string;\n janus: string;\n wdm: string;\n broadworksIdpProxy: string;\n hydra: string;\n mercuryApi: string;\n 'ucmgmt-gateway': string;\n contactsService: string;\n };\n fetchClientRegionInfo: () => Promise<ClientRegionInfo>;\n };\n metrics: {\n submitClientMetrics: (name: string, data: unknown) => void;\n };\n };\n // public plugins\n logger: Logger;\n messages: unknown;\n memberships: unknown;\n people: {\n list: (arg: object) => Promise<PeopleListResponse>;\n };\n rooms: unknown;\n teams: unknown;\n}\n\nexport interface ISDKConnector {\n setWebex: (webexInstance: WebexSDK) => void;\n getWebex: () => WebexSDK;\n get: () => ISDKConnector;\n registerListener: <T>(event: string, cb: (data?: T) => unknown) => void;\n unregisterListener: (event: string) => void;\n}\n"],"mappings":""}
@@ -23,6 +23,7 @@ exports.handleCallErrors = handleCallErrors;
23
23
  exports.handleCallingClientErrors = handleCallingClientErrors;
24
24
  exports.handleRegistrationErrors = handleRegistrationErrors;
25
25
  exports.inferIdFromUuid = inferIdFromUuid;
26
+ exports.modifySdpForIPv4 = modifySdpForIPv4;
26
27
  exports.parseMediaQualityStatistics = parseMediaQualityStatistics;
27
28
  exports.resolveCallerIdByName = resolveCallerIdByName;
28
29
  exports.resolveCallerIdDisplay = resolveCallerIdDisplay;
@@ -30,6 +31,7 @@ exports.resolveContact = resolveContact;
30
31
  exports.scimQuery = scimQuery;
31
32
  exports.serviceErrorCodeHandler = serviceErrorCodeHandler;
32
33
  exports.storeVoicemailList = storeVoicemailList;
34
+ exports.uploadLogs = uploadLogs;
33
35
  exports.validateServiceData = validateServiceData;
34
36
  exports.waitForMsecs = void 0;
35
37
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
@@ -37,6 +39,7 @@ var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/objec
37
39
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
38
40
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
39
41
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
42
+ var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/parse-int"));
40
43
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
41
44
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
42
45
  var platform = _interopRequireWildcard(require("platform"));
@@ -1261,4 +1264,97 @@ function validateServiceData(serviceData) {
1261
1264
  throw new Error('Invalid service domain.');
1262
1265
  }
1263
1266
  }
1267
+
1268
+ /**
1269
+ * Modifies SDP to replace IPv6 "c=" lines with IPv4.And adds an IPv4 candidate if none exists.
1270
+ *
1271
+ * @param sdp - Session Description Protocol string.
1272
+ * @returns Modified SDP string.
1273
+ */
1274
+ function modifySdpForIPv4(sdp) {
1275
+ try {
1276
+ // Normalize line endings to avoid issues
1277
+ sdp = sdp.replace(/\r\n|\r/g, '\n');
1278
+
1279
+ // Ensure consistent spacing without removing intentional indentation
1280
+ sdp = sdp.replace(/^[ \t]+/gm, '');
1281
+
1282
+ // Check if at least one IPv6 "c=" line is present
1283
+ var ipv6CLineMatches = sdp.match(/c=IN IP6 [\da-f:.]+/gi) || [];
1284
+ var hasIPv6CLine = ipv6CLineMatches.length > 0;
1285
+ if (hasIPv6CLine) {
1286
+ _Logger.default.info('Modifying SDP for IPv4 compatibility', {
1287
+ file: _constants.UTILS_FILE,
1288
+ method: modifySdpForIPv4.name
1289
+ });
1290
+
1291
+ // Extract an existing IPv4 candidate's IP, if available
1292
+ var ipv4CandidateMatch = sdp.match(/a=candidate:\d+ \d+ \w+ \d+ ([\d.]+) \d+ typ \w+/);
1293
+ var ipv4Address = (ipv4CandidateMatch === null || ipv4CandidateMatch === void 0 ? void 0 : ipv4CandidateMatch[1]) || '192.1.1.1'; // Default fallback
1294
+
1295
+ // Replace all IPv6 "c=" lines with IPv4 using the extracted IP (or default)
1296
+ sdp = sdp.replace(/c=IN IP6 [\da-f:.]+/gi, "c=IN IP4 ".concat(ipv4Address));
1297
+
1298
+ // Ensure newline separation between candidate lines
1299
+ if (!ipv4CandidateMatch) {
1300
+ var ipv4CandidateAdded = false;
1301
+ sdp = sdp.replace(/(a=candidate:(\d+) (\d+) (\w+) (\d+) ([\da-f:.]+) (\d+) typ (\w+)[^\n]*)/g, function (match, full, foundation, componentId, transport, priority, connectionAddress, port, candidateType) {
1302
+ if (!ipv4CandidateAdded && connectionAddress.includes(':')) {
1303
+ // Ensure it's IPv6 and only add once
1304
+ ipv4CandidateAdded = true;
1305
+ var newFoundation = ((0, _parseInt2.default)(foundation, 10) + 1).toString();
1306
+ return "".concat(full, "\n") + "a=candidate:".concat(newFoundation, " ").concat(componentId, " ").concat(transport, " ").concat(priority, " ").concat(ipv4Address, " ").concat(port, " typ ").concat(candidateType, " generation 0 network-id 1 network-cost 10");
1307
+ }
1308
+ return match;
1309
+ });
1310
+ }
1311
+ }
1312
+ return sdp;
1313
+ } catch (error) {
1314
+ _Logger.default.warn("Error modifying SDP for IPv4 compatibility: ".concat(error), {
1315
+ file: _constants.UTILS_FILE,
1316
+ method: modifySdpForIPv4.name
1317
+ });
1318
+ return sdp; // Return original SDP in case of an error
1319
+ }
1320
+ }
1321
+
1322
+ /**
1323
+ * Uploads logs to backend.
1324
+ *
1325
+ * @param webex - Webex object to get service urls.
1326
+ * @param data - Data to be uploaded.
1327
+ */
1328
+ function uploadLogs(_x24) {
1329
+ return _uploadLogs.apply(this, arguments);
1330
+ }
1331
+ function _uploadLogs() {
1332
+ _uploadLogs = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(webex) {
1333
+ var data,
1334
+ _args10 = arguments;
1335
+ return _regenerator.default.wrap(function _callee10$(_context10) {
1336
+ while (1) switch (_context10.prev = _context10.next) {
1337
+ case 0:
1338
+ data = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : {};
1339
+ _context10.prev = 1;
1340
+ _context10.next = 4;
1341
+ return webex.internal.support.submitLogs(data);
1342
+ case 4:
1343
+ _context10.next = 9;
1344
+ break;
1345
+ case 6:
1346
+ _context10.prev = 6;
1347
+ _context10.t0 = _context10["catch"](1);
1348
+ _Logger.default.error(_context10.t0, {
1349
+ file: _constants.UTILS_FILE,
1350
+ method: 'uploadLogs'
1351
+ });
1352
+ case 9:
1353
+ case "end":
1354
+ return _context10.stop();
1355
+ }
1356
+ }, _callee10, null, [[1, 6]]);
1357
+ }));
1358
+ return _uploadLogs.apply(this, arguments);
1359
+ }
1264
1360
  //# sourceMappingURL=Utils.js.map