From 51440529685629acf7864214dd297da112aa2932 Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Thu, 26 Sep 2024 00:08:31 -0700 Subject: [PATCH 01/10] check in with function to create debugger --- packages/teams-js/src/internal/globalVars.ts | 1 + packages/teams-js/src/internal/telemetry.ts | 66 +++++++++++++++++++- 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/packages/teams-js/src/internal/globalVars.ts b/packages/teams-js/src/internal/globalVars.ts index da630650e6..034418822a 100644 --- a/packages/teams-js/src/internal/globalVars.ts +++ b/packages/teams-js/src/internal/globalVars.ts @@ -9,4 +9,5 @@ export class GlobalVars { public static hostClientType: string | undefined = undefined; public static clientSupportedSDKVersion: string; public static printCapabilityEnabled = false; + public static turnOnConsoleLog = false; } diff --git a/packages/teams-js/src/internal/telemetry.ts b/packages/teams-js/src/internal/telemetry.ts index 604fbc3ee5..318f74f3b6 100644 --- a/packages/teams-js/src/internal/telemetry.ts +++ b/packages/teams-js/src/internal/telemetry.ts @@ -1,5 +1,6 @@ import { debug as registerLogger, Debugger } from 'debug'; +import { GlobalVars } from './globalVars'; import { UUID } from './uuidObject'; // Each teamsjs instance gets a unique identifier that will be prepended to every log statement @@ -12,7 +13,70 @@ registerLogger.formatArgs = function (args) { originalFormatArgsFunction.call(this, args); }; -const topLevelLogger = registerLogger('teamsJs'); +const createDebuggerFunction = (namespace: string): Debugger => { + let internalDebugger: Debugger = registerLogger(namespace); + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const func = function (formatter: any, ...args: any[]): void { + if (GlobalVars.turnOnConsoleLog) { + console.log(formatter, args); + } + internalDebugger(formatter, args); + } as Debugger; + + Object.assign(func, { + color: { + get() { + return internalDebugger.color; + }, + set(value: string) { + internalDebugger.color = value; + }, + }, + diff: { + get() { + return internalDebugger.diff; + }, + set(value: number) { + internalDebugger.diff = value; + }, + }, + enabled: { + get(): boolean { + return internalDebugger.enabled; + }, + set(enabled: boolean) { + internalDebugger.enabled = enabled; + }, + }, + namespace: { + get(): string { + return internalDebugger.namespace; + }, + set(namespace: string) { + internalDebugger.namespace = namespace; + }, + }, + extend: { + value(namespace: string, delimiter?: string) { + internalDebugger = internalDebugger.extend(namespace, delimiter); + return this; + }, + }, + log: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + value(...args: any[]) { + internalDebugger.log(args); + }, + }, + }); + + return func; +}; + +const topLevelLogger = createDebuggerFunction('teamsJs'); + +// const topLevelLogger = registerLogger('teamsJs'); /** * @internal From cf1eda0dcfd5ea12ce7f7fcee8b141553cd28591 Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Thu, 26 Sep 2024 01:48:25 -0700 Subject: [PATCH 02/10] workable version but has problem in extend function on internalDebugger --- packages/teams-js/src/internal/telemetry.ts | 72 ++++++++++----------- 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/packages/teams-js/src/internal/telemetry.ts b/packages/teams-js/src/internal/telemetry.ts index 318f74f3b6..9f3211d34c 100644 --- a/packages/teams-js/src/internal/telemetry.ts +++ b/packages/teams-js/src/internal/telemetry.ts @@ -13,6 +13,7 @@ registerLogger.formatArgs = function (args) { originalFormatArgsFunction.call(this, args); }; +// eslint-disable-next-line @typescript-eslint/no-unused-vars const createDebuggerFunction = (namespace: string): Debugger => { let internalDebugger: Debugger = registerLogger(namespace); @@ -25,56 +26,49 @@ const createDebuggerFunction = (namespace: string): Debugger => { } as Debugger; Object.assign(func, { - color: { - get() { - return internalDebugger.color; - }, - set(value: string) { - internalDebugger.color = value; - }, + get color() { + return internalDebugger.color; }, - diff: { - get() { - return internalDebugger.diff; - }, - set(value: number) { - internalDebugger.diff = value; - }, + set color(value: string) { + internalDebugger.color = value; }, - enabled: { - get(): boolean { - return internalDebugger.enabled; - }, - set(enabled: boolean) { - internalDebugger.enabled = enabled; - }, + get diff() { + return internalDebugger.diff; }, - namespace: { - get(): string { - return internalDebugger.namespace; - }, - set(namespace: string) { - internalDebugger.namespace = namespace; - }, + set diff(value: number) { + internalDebugger.diff = value; }, - extend: { - value(namespace: string, delimiter?: string) { - internalDebugger = internalDebugger.extend(namespace, delimiter); - return this; - }, + get enabled(): boolean { + return internalDebugger.enabled; }, - log: { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - value(...args: any[]) { - internalDebugger.log(args); - }, + set enabled(enabled: boolean) { + internalDebugger.enabled = enabled; }, + get namespace(): string { + return internalDebugger.namespace; + }, + set namespace(namespace: string) { + internalDebugger.namespace = namespace; + }, + extend(namespace: string, delimiter?: string): Debugger { + internalDebugger = internalDebugger.extend(namespace, delimiter); + return this; + }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + log(...args: any[]) { + internalDebugger.log(args); + }, + // destroy: { + // value(): boolean { + // return true; + // }, + // }, }); return func; }; -const topLevelLogger = createDebuggerFunction('teamsJs'); +const topLevelLogger: Debugger = createDebuggerFunction('teamsJs'); // const topLevelLogger = registerLogger('teamsJs'); From 27bf307c4e7cfe42d4efed40b078462e38039052 Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Thu, 26 Sep 2024 10:35:30 -0700 Subject: [PATCH 03/10] fix extend function --- packages/teams-js/src/internal/telemetry.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/packages/teams-js/src/internal/telemetry.ts b/packages/teams-js/src/internal/telemetry.ts index 9f3211d34c..4500010fdb 100644 --- a/packages/teams-js/src/internal/telemetry.ts +++ b/packages/teams-js/src/internal/telemetry.ts @@ -15,7 +15,7 @@ registerLogger.formatArgs = function (args) { // eslint-disable-next-line @typescript-eslint/no-unused-vars const createDebuggerFunction = (namespace: string): Debugger => { - let internalDebugger: Debugger = registerLogger(namespace); + const internalDebugger: Debugger = registerLogger(namespace); // eslint-disable-next-line @typescript-eslint/no-explicit-any const func = function (formatter: any, ...args: any[]): void { @@ -51,18 +51,12 @@ const createDebuggerFunction = (namespace: string): Debugger => { internalDebugger.namespace = namespace; }, extend(namespace: string, delimiter?: string): Debugger { - internalDebugger = internalDebugger.extend(namespace, delimiter); - return this; + return createDebuggerFunction(internalDebugger.extend(namespace, delimiter).namespace); }, // eslint-disable-next-line @typescript-eslint/no-explicit-any log(...args: any[]) { internalDebugger.log(args); }, - // destroy: { - // value(): boolean { - // return true; - // }, - // }, }); return func; From aeec0d90d2f52f49028c62f9ec7ed3013f1ee550 Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Thu, 26 Sep 2024 13:56:42 -0700 Subject: [PATCH 04/10] update anonymous function for log --- .../src/components/LoggerAPIs.tsx | 33 +++++++++++++++++++ apps/teams-test-app/src/pages/TestApp.tsx | 2 ++ packages/teams-js/src/internal/telemetry.ts | 2 +- packages/teams-js/src/public/index.ts | 1 + packages/teams-js/src/public/logger.ts | 21 ++++++++++++ 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 apps/teams-test-app/src/components/LoggerAPIs.tsx create mode 100644 packages/teams-js/src/public/logger.ts diff --git a/apps/teams-test-app/src/components/LoggerAPIs.tsx b/apps/teams-test-app/src/components/LoggerAPIs.tsx new file mode 100644 index 0000000000..7bfad27250 --- /dev/null +++ b/apps/teams-test-app/src/components/LoggerAPIs.tsx @@ -0,0 +1,33 @@ +import { logger } from '@microsoft/teams-js'; +import React, { ReactElement } from 'react'; + +import { ApiWithoutInput } from './utils'; +import { ModuleWrapper } from './utils/ModuleWrapper'; + +const TurnOnConsoleLog = (): React.ReactElement => + ApiWithoutInput({ + name: 'turnOnConsoleLog', + title: 'Turn On Console Log', + onClick: async () => { + logger.turnOnConsoleLog(); + return 'true'; + }, + }); + +const TurnOffConsoleLog = (): React.ReactElement => + ApiWithoutInput({ + name: 'turnOffConsoleLog', + title: 'Turn Off Console Log', + onClick: async () => { + logger.turnOffConsoleLog(); + return 'true'; + }, + }); +const LoggerAPIs = (): ReactElement => ( + + + + +); + +export default LoggerAPIs; diff --git a/apps/teams-test-app/src/pages/TestApp.tsx b/apps/teams-test-app/src/pages/TestApp.tsx index b7f4355b73..37b41979a4 100644 --- a/apps/teams-test-app/src/pages/TestApp.tsx +++ b/apps/teams-test-app/src/pages/TestApp.tsx @@ -22,6 +22,7 @@ import GeoLocationAPIs from '../components/GeoLocationAPIs'; import HostEntityTabAPIs from '../components/HostEntityTabAPIs'; import Links from '../components/Links'; import LocationAPIs from '../components/LocationAPIs'; +import LoggerAPIs from '../components/LoggerAPIs'; import LogAPIs from '../components/LogsAPIs'; import MailAPIs from '../components/MailAPIs'; import MarketplaceAPIs from '../components/MarketplaceAPIs'; @@ -126,6 +127,7 @@ export const TestApp: React.FC = () => { + diff --git a/packages/teams-js/src/internal/telemetry.ts b/packages/teams-js/src/internal/telemetry.ts index 4500010fdb..51014fdab1 100644 --- a/packages/teams-js/src/internal/telemetry.ts +++ b/packages/teams-js/src/internal/telemetry.ts @@ -20,9 +20,9 @@ const createDebuggerFunction = (namespace: string): Debugger => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const func = function (formatter: any, ...args: any[]): void { if (GlobalVars.turnOnConsoleLog) { + internalDebugger(formatter, args); console.log(formatter, args); } - internalDebugger(formatter, args); } as Debugger; Object.assign(func, { diff --git a/packages/teams-js/src/public/index.ts b/packages/teams-js/src/public/index.ts index b8ee1fcb30..7faa7d8a71 100644 --- a/packages/teams-js/src/public/index.ts +++ b/packages/teams-js/src/public/index.ts @@ -120,3 +120,4 @@ export { settings } from './settings'; export { tasks } from './tasks'; export { liveShare, LiveShareHost } from './liveShareHost'; export { marketplace } from './marketplace'; +export { logger } from './logger'; diff --git a/packages/teams-js/src/public/logger.ts b/packages/teams-js/src/public/logger.ts new file mode 100644 index 0000000000..6086b94680 --- /dev/null +++ b/packages/teams-js/src/public/logger.ts @@ -0,0 +1,21 @@ +import { GlobalVars } from '../internal/globalVars'; + +export namespace logger { + /** + * todo: doc + * @returns bool + */ + export function turnOnConsoleLog(): boolean { + GlobalVars.turnOnConsoleLog = true; + return GlobalVars.turnOnConsoleLog; + } + + /** + * todo: doc + * @returns bool + */ + export function turnOffConsoleLog(): boolean { + GlobalVars.turnOnConsoleLog = false; + return GlobalVars.turnOnConsoleLog; + } +} From 4297d88696804e15f9465047f77b0d1078b9873c Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Thu, 26 Sep 2024 15:44:10 -0700 Subject: [PATCH 05/10] improve anonymous function --- packages/teams-js/src/internal/telemetry.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/teams-js/src/internal/telemetry.ts b/packages/teams-js/src/internal/telemetry.ts index 51014fdab1..b660cb243a 100644 --- a/packages/teams-js/src/internal/telemetry.ts +++ b/packages/teams-js/src/internal/telemetry.ts @@ -19,10 +19,11 @@ const createDebuggerFunction = (namespace: string): Debugger => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const func = function (formatter: any, ...args: any[]): void { - if (GlobalVars.turnOnConsoleLog) { - internalDebugger(formatter, args); - console.log(formatter, args); + if (GlobalVars.turnOnConsoleLog && localStorage.getItem('debug') != 'teamsJs.*') { + args.unshift(`color: ${internalDebugger.color}`); + console.log(`${internalDebugger.namespace}: ${formatter}`, args); } + internalDebugger(formatter, args); } as Debugger; Object.assign(func, { From cf1830615444606e9e329e751cfb19d11fcdcac5 Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Thu, 26 Sep 2024 16:49:47 -0700 Subject: [PATCH 06/10] add changefile --- ...soft-teams-js-65d123d3-bbbc-4e7e-abc8-7396d65b2950.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@microsoft-teams-js-65d123d3-bbbc-4e7e-abc8-7396d65b2950.json diff --git a/change/@microsoft-teams-js-65d123d3-bbbc-4e7e-abc8-7396d65b2950.json b/change/@microsoft-teams-js-65d123d3-bbbc-4e7e-abc8-7396d65b2950.json new file mode 100644 index 0000000000..2b7e799e25 --- /dev/null +++ b/change/@microsoft-teams-js-65d123d3-bbbc-4e7e-abc8-7396d65b2950.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "Added a capability for better logging discoverability", + "packageName": "@microsoft/teams-js", + "email": "kangxuanye@microsoft.com", + "dependentChangeType": "patch" +} From 619f1263ea43babf908d40ffdb57935d3e6448c0 Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Tue, 8 Oct 2024 16:16:24 -0700 Subject: [PATCH 07/10] update --- packages/teams-js/src/internal/telemetry.ts | 9 +- packages/teams-js/src/public/logger.ts | 12 +-- pnpm-lock.yaml | 96 ++++++++++----------- 3 files changed, 59 insertions(+), 58 deletions(-) diff --git a/packages/teams-js/src/internal/telemetry.ts b/packages/teams-js/src/internal/telemetry.ts index b660cb243a..4ecdd20a9b 100644 --- a/packages/teams-js/src/internal/telemetry.ts +++ b/packages/teams-js/src/internal/telemetry.ts @@ -20,8 +20,13 @@ const createDebuggerFunction = (namespace: string): Debugger => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const func = function (formatter: any, ...args: any[]): void { if (GlobalVars.turnOnConsoleLog && localStorage.getItem('debug') != 'teamsJs.*') { - args.unshift(`color: ${internalDebugger.color}`); - console.log(`${internalDebugger.namespace}: ${formatter}`, args); + console.log( + `%c${internalDebugger.namespace}%c: ${formatter}`, + `color: ${internalDebugger.color};`, + '', + [...args], + internalDebugger.color, + ); } internalDebugger(formatter, args); } as Debugger; diff --git a/packages/teams-js/src/public/logger.ts b/packages/teams-js/src/public/logger.ts index 6086b94680..e4b86361d4 100644 --- a/packages/teams-js/src/public/logger.ts +++ b/packages/teams-js/src/public/logger.ts @@ -2,20 +2,16 @@ import { GlobalVars } from '../internal/globalVars'; export namespace logger { /** - * todo: doc - * @returns bool + * Turn on client logging to display all of debug logs on browser console */ - export function turnOnConsoleLog(): boolean { + export function turnOnConsoleLog(): void { GlobalVars.turnOnConsoleLog = true; - return GlobalVars.turnOnConsoleLog; } /** - * todo: doc - * @returns bool + * Turn off client logging so that all of debug logs will not be displayed on browser console */ - export function turnOffConsoleLog(): boolean { + export function turnOffConsoleLog(): void { GlobalVars.turnOnConsoleLog = false; - return GlobalVars.turnOnConsoleLog; } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1fa529682c..e7e9098a71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -123,19 +123,19 @@ importers: version: 7.14.1(eslint@8.57.0)(typescript@4.9.5) babel-loader: specifier: ^9.1.3 - version: 9.1.3(@babel/core@7.24.7)(webpack@5.94.0(webpack-cli@5.1.4)) + version: 9.1.3(@babel/core@7.24.7)(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) beachball: specifier: ^2.43.0 version: 2.43.1(typescript@4.9.5) copy-webpack-plugin: specifier: 9.1.0 - version: 9.1.0(webpack@5.94.0(webpack-cli@5.1.4)) + version: 9.1.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) cross-env: specifier: ^7.0.3 version: 7.0.3 css-loader: specifier: ^6.11.0 - version: 6.11.0(webpack@5.94.0(webpack-cli@5.1.4)) + version: 6.11.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) dts-bundle-webpack: specifier: ^1.0.2 version: 1.0.2 @@ -171,13 +171,13 @@ importers: version: 0.1.2(eslint@8.57.0)(typescript@4.9.5) filemanager-webpack-plugin: specifier: ^8.0.0 - version: 8.0.0(webpack@5.94.0(webpack-cli@5.1.4)) + version: 8.0.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) fs-extra: specifier: ^9.1.0 version: 9.1.0 html-webpack-plugin: specifier: ^5.6.0 - version: 5.6.0(webpack@5.94.0(webpack-cli@5.1.4)) + version: 5.6.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@16.18.101)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@16.18.101)(typescript@4.9.5)) @@ -216,13 +216,13 @@ importers: version: 0.3.4 style-loader: specifier: ^3.3.4 - version: 3.3.4(webpack@5.94.0(webpack-cli@5.1.4)) + version: 3.3.4(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) ts-jest: specifier: ^29.1.2 version: 29.1.5(@babel/core@7.24.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.7))(jest@29.7.0(@types/node@16.18.101)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@16.18.101)(typescript@4.9.5)))(typescript@4.9.5) ts-loader: specifier: ^9.5.1 - version: 9.5.1(typescript@4.9.5)(webpack@5.94.0(webpack-cli@5.1.4)) + version: 9.5.1(typescript@4.9.5)(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@16.18.101)(typescript@4.9.5) @@ -237,10 +237,10 @@ importers: version: 4.9.5 webpack: specifier: ^5.94.0 - version: 5.94.0(webpack-cli@5.1.4) + version: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) webpack-assets-manifest: specifier: ^5.2.1 - version: 5.2.1(webpack@5.94.0(webpack-cli@5.1.4)) + version: 5.2.1(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) webpack-bundle-analyzer: specifier: ^4.10.2 version: 4.10.2 @@ -255,7 +255,7 @@ importers: version: 5.10.0 webpack-subresource-integrity: specifier: ^5.1.0 - version: 5.1.0(html-webpack-plugin@5.6.0(webpack@5.94.0(webpack-cli@5.1.4)))(webpack@5.94.0(webpack-cli@5.1.4)) + version: 5.1.0(html-webpack-plugin@5.6.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))))(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) yargs: specifier: ^17.7.2 version: 17.7.2 @@ -14348,7 +14348,7 @@ snapshots: dependencies: '@types/node': 16.18.101 tapable: 2.2.1 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) transitivePeerDependencies: - '@swc/core' - esbuild @@ -14631,9 +14631,9 @@ snapshots: webpack: 5.93.0(webpack-cli@4.10.0) webpack-cli: 4.10.0(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.93.0) - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4))': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)))': dependencies: - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0) '@webpack-cli/info@1.5.0(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.93.0))': @@ -14641,9 +14641,9 @@ snapshots: envinfo: 7.13.0 webpack-cli: 4.10.0(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.93.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4))': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)))': dependencies: - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0) '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.93.0))(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.94.0))': @@ -14652,9 +14652,9 @@ snapshots: optionalDependencies: webpack-dev-server: 5.1.0(webpack-cli@5.1.4)(webpack@5.94.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4))': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)))': dependencies: - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0) optionalDependencies: webpack-dev-server: 5.1.0(webpack-cli@5.1.4)(webpack@5.94.0) @@ -15061,12 +15061,12 @@ snapshots: schema-utils: 2.7.1 webpack: 5.92.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) - babel-loader@9.1.3(@babel/core@7.24.7)(webpack@5.94.0(webpack-cli@5.1.4)): + babel-loader@9.1.3(@babel/core@7.24.7)(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: '@babel/core': 7.24.7 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) babel-plugin-istanbul@6.1.1: dependencies: @@ -15743,7 +15743,7 @@ snapshots: cookie@0.6.0: {} - copy-webpack-plugin@9.1.0(webpack@5.94.0(webpack-cli@5.1.4)): + copy-webpack-plugin@9.1.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: fast-glob: 3.3.2 glob-parent: 5.1.2 @@ -15751,7 +15751,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 3.3.0 serialize-javascript: 3.1.0 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) core-js-compat@3.37.1: dependencies: @@ -15872,7 +15872,7 @@ snapshots: optionalDependencies: webpack: 5.92.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) - css-loader@6.11.0(webpack@5.94.0(webpack-cli@5.1.4)): + css-loader@6.11.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -15883,7 +15883,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.2 optionalDependencies: - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) css-minimizer-webpack-plugin@3.4.1(webpack@5.92.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: @@ -16948,7 +16948,7 @@ snapshots: dependencies: minimatch: 5.1.6 - filemanager-webpack-plugin@8.0.0(webpack@5.94.0(webpack-cli@5.1.4)): + filemanager-webpack-plugin@8.0.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: '@types/archiver': 5.3.4 archiver: 5.3.2 @@ -16958,7 +16958,7 @@ snapshots: is-glob: 4.0.3 normalize-path: 3.0.0 schema-utils: 4.2.0 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) filename-reserved-regex@2.0.0: {} @@ -17383,7 +17383,7 @@ snapshots: optionalDependencies: webpack: 5.92.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) - html-webpack-plugin@5.6.0(webpack@5.94.0(webpack-cli@5.1.4)): + html-webpack-plugin@5.6.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -17391,7 +17391,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) htmlparser2@6.1.0: dependencies: @@ -21462,9 +21462,9 @@ snapshots: dependencies: webpack: 5.92.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) - style-loader@3.3.4(webpack@5.94.0(webpack-cli@5.1.4)): + style-loader@3.3.4(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) styled-jsx@5.1.1(@babel/core@7.24.7)(babel-plugin-macros@3.1.0)(react@18.3.1): dependencies: @@ -21651,14 +21651,14 @@ snapshots: terser: 5.31.1 webpack: 5.93.0(webpack-cli@4.10.0) - terser-webpack-plugin@5.3.10(webpack@5.94.0(webpack-cli@5.1.4)): + terser-webpack-plugin@5.3.10(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 3.1.0 terser: 5.31.1 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) terser@5.31.1: dependencies: @@ -21798,7 +21798,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.24.7) - ts-loader@9.5.1(typescript@4.9.5)(webpack@5.94.0(webpack-cli@5.1.4)): + ts-loader@9.5.1(typescript@4.9.5)(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: chalk: 4.1.2 enhanced-resolve: 5.17.0 @@ -21806,7 +21806,7 @@ snapshots: semver: 7.6.2 source-map: 0.7.4 typescript: 4.9.5 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) ts-node@10.9.2(@types/node@16.18.101)(typescript@4.9.5): dependencies: @@ -22121,7 +22121,7 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-assets-manifest@5.2.1(webpack@5.94.0(webpack-cli@5.1.4)): + webpack-assets-manifest@5.2.1(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: chalk: 4.1.2 deepmerge: 4.3.1 @@ -22130,7 +22130,7 @@ snapshots: lodash.has: 4.5.2 schema-utils: 3.3.0 tapable: 2.2.1 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) webpack-bundle-analyzer@4.10.2: dependencies: @@ -22172,9 +22172,9 @@ snapshots: webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4)) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4)) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4)) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.94.0))(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -22183,7 +22183,7 @@ snapshots: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) webpack-merge: 5.10.0 optionalDependencies: webpack-bundle-analyzer: 4.10.2 @@ -22198,7 +22198,7 @@ snapshots: schema-utils: 4.2.0 webpack: 5.92.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) - webpack-dev-middleware@7.4.2(webpack@5.94.0(webpack-cli@5.1.4)): + webpack-dev-middleware@7.4.2(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: colorette: 2.0.20 memfs: 4.9.3 @@ -22207,7 +22207,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) webpack-dev-server@4.15.2(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))(webpack@5.92.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: @@ -22278,10 +22278,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.2(webpack@5.94.0(webpack-cli@5.1.4)) + webpack-dev-middleware: 7.4.2(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) ws: 8.18.0 optionalDependencies: - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0) transitivePeerDependencies: - bufferutil @@ -22313,12 +22313,12 @@ snapshots: webpack-sources@3.2.3: {} - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.0(webpack@5.94.0(webpack-cli@5.1.4)))(webpack@5.94.0(webpack-cli@5.1.4)): + webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))))(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))): dependencies: typed-assert: 1.0.9 - webpack: 5.94.0(webpack-cli@5.1.4) + webpack: 5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)) optionalDependencies: - html-webpack-plugin: 5.6.0(webpack@5.94.0(webpack-cli@5.1.4)) + html-webpack-plugin: 5.6.0(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) webpack@5.92.1(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)): dependencies: @@ -22386,7 +22386,7 @@ snapshots: - esbuild - uglify-js - webpack@5.94.0(webpack-cli@5.1.4): + webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0)): dependencies: '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 @@ -22408,7 +22408,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.94.0(webpack-cli@5.1.4)) + terser-webpack-plugin: 5.3.10(webpack@5.94.0(webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.2)(webpack-dev-server@5.1.0)(webpack@5.94.0))) watchpack: 2.4.1 webpack-sources: 3.2.3 optionalDependencies: From e2a9ed41337d830a0c88fa610f231bdd2916dc37 Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Tue, 8 Oct 2024 16:17:20 -0700 Subject: [PATCH 08/10] replace topLevelLogger --- packages/teams-js/src/internal/telemetry.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/teams-js/src/internal/telemetry.ts b/packages/teams-js/src/internal/telemetry.ts index 4ecdd20a9b..e5b0e5f0e2 100644 --- a/packages/teams-js/src/internal/telemetry.ts +++ b/packages/teams-js/src/internal/telemetry.ts @@ -70,8 +70,6 @@ const createDebuggerFunction = (namespace: string): Debugger => { const topLevelLogger: Debugger = createDebuggerFunction('teamsJs'); -// const topLevelLogger = registerLogger('teamsJs'); - /** * @internal * Limited to Microsoft-internal use From dd126636e3ba028fa64f966783f06e852b87e5d8 Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Tue, 8 Oct 2024 16:50:28 -0700 Subject: [PATCH 09/10] update --- packages/teams-js/src/internal/telemetry.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/teams-js/src/internal/telemetry.ts b/packages/teams-js/src/internal/telemetry.ts index e5b0e5f0e2..39c4d80deb 100644 --- a/packages/teams-js/src/internal/telemetry.ts +++ b/packages/teams-js/src/internal/telemetry.ts @@ -20,7 +20,7 @@ const createDebuggerFunction = (namespace: string): Debugger => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const func = function (formatter: any, ...args: any[]): void { if (GlobalVars.turnOnConsoleLog && localStorage.getItem('debug') != 'teamsJs.*') { - console.log( + console.timeLog( `%c${internalDebugger.namespace}%c: ${formatter}`, `color: ${internalDebugger.color};`, '', From d8919229ef7408756484886e9bf4ad32c91040e5 Mon Sep 17 00:00:00 2001 From: Kangxuan Ye Date: Mon, 14 Oct 2024 11:07:08 -0700 Subject: [PATCH 10/10] update comment --- packages/teams-js/src/internal/telemetry.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/teams-js/src/internal/telemetry.ts b/packages/teams-js/src/internal/telemetry.ts index 39c4d80deb..1251d3e1a5 100644 --- a/packages/teams-js/src/internal/telemetry.ts +++ b/packages/teams-js/src/internal/telemetry.ts @@ -13,6 +13,15 @@ registerLogger.formatArgs = function (args) { originalFormatArgsFunction.call(this, args); }; +/** + * This function creates a customized debugger, or debugger wrapper, which wraps the debugger from `debug` npm library. + * The customized debugger inherits `extend` function, which is the most important one for debugging, and provides the + * capability to set all of attributes as `internalDebugger` does for itself. The wrapper also provides an anonymous function + * as `internalDebugger` does but this function will output verbose logs to console directly under certain circumstance. + * In the other scenarios, the debugger wrapper will behave as `internalDebugger`. + * @param namespace namespace of debugger + * @returns a debugger wrapper containning debugger created from `debug` npm library + */ // eslint-disable-next-line @typescript-eslint/no-unused-vars const createDebuggerFunction = (namespace: string): Debugger => { const internalDebugger: Debugger = registerLogger(namespace); @@ -27,8 +36,9 @@ const createDebuggerFunction = (namespace: string): Debugger => { [...args], internalDebugger.color, ); + } else { + internalDebugger(formatter, args); } - internalDebugger(formatter, args); } as Debugger; Object.assign(func, {