@atlassian/clientside-extensions-debug 2.4.1 → 2.5.0-84fa90d-kwd5ix2w
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.
- package/dist/cjs/__mocks__/debug-state.mock.js +14 -0
- package/dist/cjs/__mocks__/debug-state.mock.js.map +1 -0
- package/dist/cjs/__mocks__/debug-subjects.mock.js +8 -0
- package/dist/cjs/__mocks__/debug-subjects.mock.js.map +1 -0
- package/dist/cjs/debug-state.js +23 -12
- package/dist/cjs/debug-state.js.map +1 -1
- package/dist/cjs/debug-subjects.js +4 -2
- package/dist/cjs/debug-subjects.js.map +1 -1
- package/dist/cjs/debug.js +3 -2
- package/dist/cjs/debug.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/logger/console.js +3 -2
- package/dist/cjs/logger/console.js.map +1 -1
- package/dist/cjs/logger/default-logger.js +7 -5
- package/dist/cjs/logger/default-logger.js.map +1 -1
- package/dist/cjs/logger/logger.js +1 -1
- package/dist/cjs/logger/logger.js.map +1 -1
- package/dist/esm/__mocks__/debug-state.mock.js +7 -0
- package/dist/esm/__mocks__/debug-state.mock.js.map +1 -0
- package/dist/esm/__mocks__/debug-subjects.mock.js +4 -0
- package/dist/esm/__mocks__/debug-subjects.mock.js.map +1 -0
- package/dist/esm/debug-state.js.map +1 -1
- package/dist/esm/debug-subjects.js.map +1 -1
- package/dist/esm/logger/console.js.map +1 -1
- package/dist/types/__mocks__/debug-state.mock.d.ts +8 -0
- package/dist/types/__mocks__/debug-state.mock.d.ts.map +1 -0
- package/dist/types/__mocks__/debug-subjects.mock.d.ts +5 -0
- package/dist/types/__mocks__/debug-subjects.mock.d.ts.map +1 -0
- package/dist/types/debug-state.d.ts.map +1 -1
- package/dist/types/logger/console.d.ts.map +1 -1
- package/dist/types/logger/default-logger.d.ts.map +1 -1
- package/lib/debug-state-env.test.ts +2 -2
- package/lib/debug-subjects.ts +2 -2
- package/lib/logger/console.ts +4 -1
- package/package.json +6 -5
- package/dist/cjs/debug-state-env.test.js +0 -63
- package/dist/cjs/debug-state-env.test.js.map +0 -1
- package/dist/cjs/debug-state.test.js +0 -66
- package/dist/cjs/debug-state.test.js.map +0 -1
- package/dist/cjs/debug-subjects.test.js +0 -35
- package/dist/cjs/debug-subjects.test.js.map +0 -1
- package/dist/cjs/debug.test.js +0 -75
- package/dist/cjs/debug.test.js.map +0 -1
- package/dist/cjs/logger/console.test.js +0 -200
- package/dist/cjs/logger/console.test.js.map +0 -1
- package/dist/esm/debug-state-env.test.js +0 -42
- package/dist/esm/debug-state-env.test.js.map +0 -1
- package/dist/esm/debug-state.test.js +0 -63
- package/dist/esm/debug-state.test.js.map +0 -1
- package/dist/esm/debug-subjects.test.js +0 -33
- package/dist/esm/debug-subjects.test.js.map +0 -1
- package/dist/esm/debug.test.js +0 -73
- package/dist/esm/debug.test.js.map +0 -1
- package/dist/esm/logger/console.test.js +0 -198
- package/dist/esm/logger/console.test.js.map +0 -1
- package/dist/types/debug-state-env.test.d.ts +0 -2
- package/dist/types/debug-state-env.test.d.ts.map +0 -1
- package/dist/types/debug-state.test.d.ts +0 -2
- package/dist/types/debug-state.test.d.ts.map +0 -1
- package/dist/types/debug-subjects.test.d.ts +0 -2
- package/dist/types/debug-subjects.test.d.ts.map +0 -1
- package/dist/types/debug.test.d.ts +0 -2
- package/dist/types/debug.test.d.ts.map +0 -1
- package/dist/types/logger/console.test.d.ts +0 -2
- package/dist/types/logger/console.test.d.ts.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isDiscoveryEnabled = exports.isValidationEnabled = exports.isLoggingEnabled = exports.isDebugEnabled = exports.observeStateChange = void 0;
|
|
4
|
+
const observeStateChange = jest.fn();
|
|
5
|
+
exports.observeStateChange = observeStateChange;
|
|
6
|
+
const isDebugEnabled = jest.fn();
|
|
7
|
+
exports.isDebugEnabled = isDebugEnabled;
|
|
8
|
+
const isLoggingEnabled = jest.fn();
|
|
9
|
+
exports.isLoggingEnabled = isLoggingEnabled;
|
|
10
|
+
const isValidationEnabled = jest.fn();
|
|
11
|
+
exports.isValidationEnabled = isValidationEnabled;
|
|
12
|
+
const isDiscoveryEnabled = jest.fn();
|
|
13
|
+
exports.isDiscoveryEnabled = isDiscoveryEnabled;
|
|
14
|
+
//# sourceMappingURL=debug-state.mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-state.mock.js","sourceRoot":"","sources":["../../../lib/__mocks__/debug-state.mock.ts"],"names":[],"mappings":";;;AAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAM5B,gDAAkB;AAL3B,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAKJ,wCAAc;AAJ3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAIU,4CAAgB;AAH7D,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAGyB,kDAAmB;AAFlF,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAE+C,gDAAkB","sourcesContent":["const observeStateChange = jest.fn();\nconst isDebugEnabled = jest.fn();\nconst isLoggingEnabled = jest.fn();\nconst isValidationEnabled = jest.fn();\nconst isDiscoveryEnabled = jest.fn();\n\nexport { observeStateChange, isDebugEnabled, isLoggingEnabled, isValidationEnabled, isDiscoveryEnabled };\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerDebugSubject = exports.observeDebugSubject = void 0;
|
|
4
|
+
const observeDebugSubject = jest.fn();
|
|
5
|
+
exports.observeDebugSubject = observeDebugSubject;
|
|
6
|
+
const registerDebugSubject = jest.fn();
|
|
7
|
+
exports.registerDebugSubject = registerDebugSubject;
|
|
8
|
+
//# sourceMappingURL=debug-subjects.mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-subjects.mock.js","sourceRoot":"","sources":["../../../lib/__mocks__/debug-subjects.mock.ts"],"names":[],"mappings":";;;AAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAG7B,kDAAmB;AAF5B,MAAM,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAET,oDAAoB","sourcesContent":["const observeDebugSubject = jest.fn();\nconst registerDebugSubject = jest.fn();\n\nexport { observeDebugSubject, registerDebugSubject };\n"]}
|
package/dist/cjs/debug-state.js
CHANGED
|
@@ -27,7 +27,7 @@ const defineDebugGlobal = (previousGlobal) => {
|
|
|
27
27
|
// In dev mode we set default loglevel to INFO
|
|
28
28
|
logLevel: process.env.NODE_ENV === 'production' ? logger_1.LogLevel.error : logger_1.LogLevel.info,
|
|
29
29
|
};
|
|
30
|
-
const debugStateSubject = debug_subjects_1.registerDebugSubject("state" /* State */, () => new clientside_extensions_base_1.ReplaySubject(1));
|
|
30
|
+
const debugStateSubject = (0, debug_subjects_1.registerDebugSubject)("state" /* State */, () => new clientside_extensions_base_1.ReplaySubject(1));
|
|
31
31
|
const properties = {
|
|
32
32
|
debug: {
|
|
33
33
|
get() {
|
|
@@ -117,39 +117,50 @@ const defineDebugGlobal = (previousGlobal) => {
|
|
|
117
117
|
if (!('____c_p_d' in window) || !window.____c_p_d.__initialized) {
|
|
118
118
|
defineDebugGlobal((_a = window.____c_p_d) !== null && _a !== void 0 ? _a : process.env.NODE_ENV !== 'production');
|
|
119
119
|
}
|
|
120
|
-
|
|
121
|
-
exports.
|
|
120
|
+
const observeStateChange = (observer) => (0, debug_subjects_1.observeDebugSubject)("state" /* State */, observer);
|
|
121
|
+
exports.observeStateChange = observeStateChange;
|
|
122
|
+
const isDebugEnabled = () => {
|
|
122
123
|
return window.____c_p_d.debug;
|
|
123
124
|
};
|
|
124
|
-
exports.
|
|
125
|
+
exports.isDebugEnabled = isDebugEnabled;
|
|
126
|
+
const isLoggingEnabled = () => {
|
|
125
127
|
return window.____c_p_d.logging;
|
|
126
128
|
};
|
|
127
|
-
exports.
|
|
129
|
+
exports.isLoggingEnabled = isLoggingEnabled;
|
|
130
|
+
const isValidationEnabled = () => {
|
|
128
131
|
return window.____c_p_d.validation;
|
|
129
132
|
};
|
|
130
|
-
exports.
|
|
133
|
+
exports.isValidationEnabled = isValidationEnabled;
|
|
134
|
+
const isDiscoveryEnabled = () => {
|
|
131
135
|
return window.____c_p_d.discovery;
|
|
132
136
|
};
|
|
137
|
+
exports.isDiscoveryEnabled = isDiscoveryEnabled;
|
|
133
138
|
/** @since 2.1.0 */
|
|
134
|
-
|
|
139
|
+
const getLogLevel = () => {
|
|
135
140
|
const logLevel = window.____c_p_d.logLevel;
|
|
136
141
|
return logLevel !== null && logLevel !== void 0 ? logLevel : logger_1.LogLevel.info;
|
|
137
142
|
};
|
|
138
|
-
exports.
|
|
143
|
+
exports.getLogLevel = getLogLevel;
|
|
144
|
+
const setDebugEnabled = (value) => {
|
|
139
145
|
window.____c_p_d.debug = value;
|
|
140
146
|
};
|
|
141
|
-
exports.
|
|
147
|
+
exports.setDebugEnabled = setDebugEnabled;
|
|
148
|
+
const setLoggingEnabled = (value) => {
|
|
142
149
|
window.____c_p_d.logging = value;
|
|
143
150
|
};
|
|
144
|
-
exports.
|
|
151
|
+
exports.setLoggingEnabled = setLoggingEnabled;
|
|
152
|
+
const setValidationEnabled = (value) => {
|
|
145
153
|
window.____c_p_d.validation = value;
|
|
146
154
|
};
|
|
147
|
-
exports.
|
|
155
|
+
exports.setValidationEnabled = setValidationEnabled;
|
|
156
|
+
const setDiscoveryEnabled = (value) => {
|
|
148
157
|
window.____c_p_d.discovery = value;
|
|
149
158
|
};
|
|
159
|
+
exports.setDiscoveryEnabled = setDiscoveryEnabled;
|
|
150
160
|
/** @since 2.1.0 */
|
|
151
|
-
|
|
161
|
+
const setLogLevel = (value) => {
|
|
152
162
|
const level = value.toUpperCase();
|
|
153
163
|
window.____c_p_d.logLevel = level;
|
|
154
164
|
};
|
|
165
|
+
exports.setLogLevel = setLogLevel;
|
|
155
166
|
//# sourceMappingURL=debug-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-state.js","sourceRoot":"","sources":["../../lib/debug-state.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\n\nimport type { Observer } from '@atlassian/clientside-extensions-base';\nimport { ReplaySubject } from '@atlassian/clientside-extensions-base';\nimport { DebugSubjects, observeDebugSubject, registerDebugSubject } from './debug-subjects';\nimport { LogLevel } from './logger/logger';\n\nenum ClientExtensionDebugTypes {\n debug = 'debug',\n logging = 'logging',\n validation = 'validation',\n discovery = 'discovery',\n /** @since 2.1.0 */\n logLevel = 'logLevel',\n}\n\ntype DebugTypeKeys = Exclude<keyof typeof ClientExtensionDebugTypes, 'logLevel'>;\n\nexport type ClientExtensionDebug = {\n [key in DebugTypeKeys]: boolean;\n} & {\n [ClientExtensionDebugTypes.logLevel]: LogLevel;\n};\n\nexport type ExposedClientExtensionDebug = { [key in keyof ClientExtensionDebug]: PropertyDescriptor } & {\n __initialized: PropertyDescriptor;\n};\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface Window {\n // The global ____c_p_d is a primitive boolean value that holds additional properties\n // Due to historical name changes the \"p\" still represents the old \"plugin\" nomenclature\n ____c_p_d: ExposedClientExtensionDebug;\n }\n}\n\nconst defineDebugGlobal = (previousGlobal: unknown) => {\n // initialize as boolean\n const debugGlobal = Object.create(null);\n const debugStates: ClientExtensionDebug = {\n debug: false,\n logging: false,\n validation: false,\n discovery: false,\n /** @since 2.1.0 */\n // In dev mode we set default loglevel to INFO\n logLevel: process.env.NODE_ENV === 'production' ? LogLevel.error : LogLevel.info,\n };\n\n const debugStateSubject = registerDebugSubject(DebugSubjects.State, () => new ReplaySubject(1));\n\n const properties: ExposedClientExtensionDebug = {\n debug: {\n get() {\n return debugStates.debug;\n },\n set(val: unknown) {\n debugStates.debug = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n logging: {\n get() {\n return debugStates.logging;\n },\n set(val: unknown) {\n debugStates.logging = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n validation: {\n get() {\n return debugStates.validation;\n },\n set(val: unknown) {\n debugStates.validation = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n discovery: {\n get() {\n return debugStates.discovery;\n },\n set(val: unknown) {\n debugStates.discovery = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n /** @since 2.1.0 */\n logLevel: {\n get() {\n return debugStates.logLevel;\n },\n set(val: unknown) {\n let level = String(val).toUpperCase() as LogLevel;\n\n // Handle runtime errors\n if (!Object.values(LogLevel).includes(level)) {\n level = LogLevel.info;\n }\n\n debugStates.logLevel = level;\n debugStateSubject.notify(debugStates);\n },\n },\n __initialized: { value: true, writable: false },\n };\n Object.defineProperties(debugGlobal, properties);\n\n Object.defineProperty(window, '____c_p_d', {\n configurable: true, // needed for testing :(\n get() {\n return debugGlobal;\n },\n set(val) {\n // its a boolean\n if (val === true || val === false) {\n debugGlobal.debug = val;\n debugGlobal.logging = val;\n debugGlobal.validation = val;\n debugGlobal.discovery = val;\n return;\n }\n\n // we can handle booleans - like above\n // or objects (except null) and nothing else.\n if (typeof val !== 'object' || val === null) {\n return;\n }\n\n const clientExtensionDebugKeys = Object.keys(ClientExtensionDebugTypes) as (keyof ClientExtensionDebug)[];\n\n clientExtensionDebugKeys.forEach((key) => {\n if (key in val) {\n debugGlobal[key] = val[key];\n }\n });\n },\n });\n\n // Now, we can use the previous value e.g. boolean, to set the value for all flags\n window.____c_p_d = previousGlobal as ExposedClientExtensionDebug;\n};\n\n// Register global value only once\nif (!('____c_p_d' in window) || !window.____c_p_d.__initialized) {\n defineDebugGlobal(window.____c_p_d ?? process.env.NODE_ENV !== 'production');\n}\n\nexport const observeStateChange = (observer: Observer<ClientExtensionDebug>) =>\n observeDebugSubject<ClientExtensionDebug>(DebugSubjects.State, observer);\n\nexport const isDebugEnabled = () => {\n return window.____c_p_d.debug as boolean;\n};\n\nexport const isLoggingEnabled = () => {\n return window.____c_p_d.logging as boolean;\n};\n\nexport const isValidationEnabled = () => {\n return window.____c_p_d.validation as boolean;\n};\n\nexport const isDiscoveryEnabled = () => {\n return window.____c_p_d.discovery as boolean;\n};\n\n/** @since 2.1.0 */\nexport const getLogLevel = (): LogLevel => {\n const logLevel = window.____c_p_d.logLevel as LogLevel;\n\n return logLevel ?? LogLevel.info;\n};\n\nexport const setDebugEnabled = (value: boolean) => {\n (window.____c_p_d.debug as boolean) = value;\n};\n\nexport const setLoggingEnabled = (value: boolean) => {\n (window.____c_p_d.logging as boolean) = value;\n};\n\nexport const setValidationEnabled = (value: boolean) => {\n (window.____c_p_d.validation as boolean) = value;\n};\n\nexport const setDiscoveryEnabled = (value: boolean) => {\n (window.____c_p_d.discovery as boolean) = value;\n};\n\n/** @since 2.1.0 */\nexport const setLogLevel = (value: string) => {\n const level = value.toUpperCase() as LogLevel;\n\n (window.____c_p_d.logLevel as LogLevel) = level;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"debug-state.js","sourceRoot":"","sources":["../../lib/debug-state.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\n\nimport type { Observer } from '@atlassian/clientside-extensions-base';\nimport { ReplaySubject } from '@atlassian/clientside-extensions-base';\nimport { DebugSubjects, observeDebugSubject, registerDebugSubject } from './debug-subjects';\nimport { LogLevel } from './logger/logger';\n\nenum ClientExtensionDebugTypes {\n debug = 'debug',\n logging = 'logging',\n validation = 'validation',\n discovery = 'discovery',\n /** @since 2.1.0 */\n logLevel = 'logLevel',\n}\n\ntype DebugTypeKeys = Exclude<keyof typeof ClientExtensionDebugTypes, 'logLevel'>;\n\nexport type ClientExtensionDebug = {\n [key in DebugTypeKeys]: boolean;\n} & {\n [ClientExtensionDebugTypes.logLevel]: LogLevel;\n};\n\nexport type ExposedClientExtensionDebug = { [key in keyof ClientExtensionDebug]: PropertyDescriptor } & {\n __initialized: PropertyDescriptor;\n};\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface Window {\n // The global ____c_p_d is a primitive boolean value that holds additional properties\n // Due to historical name changes the \"p\" still represents the old \"plugin\" nomenclature\n ____c_p_d: ExposedClientExtensionDebug;\n }\n}\n\nconst defineDebugGlobal = (previousGlobal: unknown) => {\n // initialize as boolean\n const debugGlobal = Object.create(null);\n const debugStates: ClientExtensionDebug = {\n debug: false,\n logging: false,\n validation: false,\n discovery: false,\n /** @since 2.1.0 */\n // In dev mode we set default loglevel to INFO\n logLevel: process.env.NODE_ENV === 'production' ? LogLevel.error : LogLevel.info,\n };\n\n const debugStateSubject = registerDebugSubject(DebugSubjects.State, () => new ReplaySubject(1));\n\n const properties: ExposedClientExtensionDebug = {\n debug: {\n get() {\n return debugStates.debug;\n },\n set(val: unknown) {\n debugStates.debug = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n logging: {\n get() {\n return debugStates.logging;\n },\n set(val: unknown) {\n debugStates.logging = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n validation: {\n get() {\n return debugStates.validation;\n },\n set(val: unknown) {\n debugStates.validation = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n discovery: {\n get() {\n return debugStates.discovery;\n },\n set(val: unknown) {\n debugStates.discovery = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n /** @since 2.1.0 */\n logLevel: {\n get() {\n return debugStates.logLevel;\n },\n set(val: unknown) {\n let level = String(val).toUpperCase() as LogLevel;\n\n // Handle runtime errors\n if (!Object.values(LogLevel).includes(level)) {\n level = LogLevel.info;\n }\n\n debugStates.logLevel = level;\n debugStateSubject.notify(debugStates);\n },\n },\n __initialized: { value: true, writable: false },\n };\n Object.defineProperties(debugGlobal, properties);\n\n Object.defineProperty(window, '____c_p_d', {\n configurable: true, // needed for testing :(\n get() {\n return debugGlobal;\n },\n set(val) {\n // its a boolean\n if (val === true || val === false) {\n debugGlobal.debug = val;\n debugGlobal.logging = val;\n debugGlobal.validation = val;\n debugGlobal.discovery = val;\n return;\n }\n\n // we can handle booleans - like above\n // or objects (except null) and nothing else.\n if (typeof val !== 'object' || val === null) {\n return;\n }\n\n const clientExtensionDebugKeys = Object.keys(ClientExtensionDebugTypes) as (keyof ClientExtensionDebug)[];\n\n clientExtensionDebugKeys.forEach((key) => {\n if (key in val) {\n debugGlobal[key] = val[key];\n }\n });\n },\n });\n\n // Now, we can use the previous value e.g. boolean, to set the value for all flags\n window.____c_p_d = previousGlobal as ExposedClientExtensionDebug;\n};\n\n// Register global value only once\nif (!('____c_p_d' in window) || !window.____c_p_d.__initialized) {\n defineDebugGlobal(window.____c_p_d ?? process.env.NODE_ENV !== 'production');\n}\n\nexport const observeStateChange = (observer: Observer<ClientExtensionDebug>) =>\n observeDebugSubject<ClientExtensionDebug>(DebugSubjects.State, observer);\n\nexport const isDebugEnabled = () => {\n return window.____c_p_d.debug as boolean;\n};\n\nexport const isLoggingEnabled = () => {\n return window.____c_p_d.logging as boolean;\n};\n\nexport const isValidationEnabled = () => {\n return window.____c_p_d.validation as boolean;\n};\n\nexport const isDiscoveryEnabled = () => {\n return window.____c_p_d.discovery as boolean;\n};\n\n/** @since 2.1.0 */\nexport const getLogLevel = (): LogLevel => {\n const logLevel = window.____c_p_d.logLevel as LogLevel;\n\n return logLevel ?? LogLevel.info;\n};\n\nexport const setDebugEnabled = (value: boolean) => {\n (window.____c_p_d.debug as boolean) = value;\n};\n\nexport const setLoggingEnabled = (value: boolean) => {\n (window.____c_p_d.logging as boolean) = value;\n};\n\nexport const setValidationEnabled = (value: boolean) => {\n (window.____c_p_d.validation as boolean) = value;\n};\n\nexport const setDiscoveryEnabled = (value: boolean) => {\n (window.____c_p_d.discovery as boolean) = value;\n};\n\n/** @since 2.1.0 */\nexport const setLogLevel = (value: string) => {\n const level = value.toUpperCase() as LogLevel;\n\n (window.____c_p_d.logLevel as LogLevel) = level;\n};\n"]}
|
|
@@ -23,7 +23,7 @@ if (!('____c_p_s' in window) || !window.____c_p_s.__initialized) {
|
|
|
23
23
|
* @param key
|
|
24
24
|
* @param subjectFactory
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
const registerDebugSubject = (key, subjectFactory) => {
|
|
27
27
|
const debugSubjects = window.____c_p_s.subjects;
|
|
28
28
|
// good old singletons - ensure we do not register the same subject twice.
|
|
29
29
|
// we also can't fail as multiple instances might try to access the same, so instead we return the previously registered one.
|
|
@@ -32,11 +32,13 @@ exports.registerDebugSubject = (key, subjectFactory) => {
|
|
|
32
32
|
}
|
|
33
33
|
return debugSubjects[key];
|
|
34
34
|
};
|
|
35
|
-
exports.
|
|
35
|
+
exports.registerDebugSubject = registerDebugSubject;
|
|
36
|
+
const observeDebugSubject = (key, observer) => {
|
|
36
37
|
const debugSubjects = window.____c_p_s.subjects;
|
|
37
38
|
if (!(key in debugSubjects)) {
|
|
38
39
|
throw new Error(`No subject registered for key: "${key}"`);
|
|
39
40
|
}
|
|
40
41
|
return debugSubjects[key].subscribe(observer);
|
|
41
42
|
};
|
|
43
|
+
exports.observeDebugSubject = observeDebugSubject;
|
|
42
44
|
//# sourceMappingURL=debug-subjects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-subjects.js","sourceRoot":"","sources":["../../lib/debug-subjects.ts"],"names":[],"mappings":";;;AAyBA,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC7B,wBAAwB;IACxB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAmC;QAC/C,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC/C,QAAQ,EAAE;YACN,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,KAAK;SAClB;KACJ,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAEnD,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC;AACrC,CAAC,CAAC;AAEF,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE;IAC7D,mBAAmB,EAAE,CAAC;CACzB;AAID;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"debug-subjects.js","sourceRoot":"","sources":["../../lib/debug-subjects.ts"],"names":[],"mappings":";;;AAyBA,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC7B,wBAAwB;IACxB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAmC;QAC/C,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC/C,QAAQ,EAAE;YACN,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,KAAK;SAClB;KACJ,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAEnD,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC;AACrC,CAAC,CAAC;AAEF,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE;IAC7D,mBAAmB,EAAE,CAAC;CACzB;AAID;;;;;GAKG;AACI,MAAM,oBAAoB,GAAG,CAChC,GAAkB,EAClB,cAAiC,EACtB,EAAE;IACb,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,QAAyC,CAAC;IAEjF,0EAA0E;IAC1E,6HAA6H;IAC7H,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,EAAE;QACzB,aAAa,CAAC,GAAG,CAAC,GAAG,cAAc,EAAE,CAAC;KACzC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAbW,QAAA,oBAAoB,wBAa/B;AAEK,MAAM,mBAAmB,GAAG,CAAc,GAAkB,EAAE,QAA+B,EAAE,EAAE;IACpG,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,QAAkD,CAAC;IAE1F,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,GAAG,CAAC,CAAC;KAC9D;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC;AARW,QAAA,mBAAmB,uBAQ9B","sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport type { Observer, Subject } from '@atlassian/clientside-extensions-base';\n\ntype ExposedClientExtensionSubjects = {\n __initialized: PropertyDescriptor;\n subjects: PropertyDescriptor;\n};\n\nexport const enum DebugSubjects {\n Logger = 'logger',\n State = 'state',\n}\n\ntype DebugSubjectsMap<SubjectT> = {\n [key in DebugSubjects]: SubjectT;\n};\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface Window {\n // Due to historical name changes the \"p\" still represents the old \"plugin\" nomenclature\n ____c_p_s: ExposedClientExtensionSubjects;\n }\n}\n\nconst defineSubjectGlobal = () => {\n // initialize as boolean\n const subjectGlobal = Object.create(null);\n\n const properties: ExposedClientExtensionSubjects = {\n __initialized: { value: true, writable: false },\n subjects: {\n value: subjectGlobal,\n writable: false,\n },\n };\n\n Object.defineProperties(subjectGlobal, properties);\n\n window.____c_p_s = subjectGlobal;\n};\n\nif (!('____c_p_s' in window) || !window.____c_p_s.__initialized) {\n defineSubjectGlobal();\n}\n\ntype UnpackPayloadType<SubjectType> = SubjectType extends Subject<infer U> ? U : never;\n\n/**\n * Registers a debug subject as singleton\n *\n * @param key\n * @param subjectFactory\n */\nexport const registerDebugSubject = <SubjectType extends Subject<PayloadType>, PayloadType = UnpackPayloadType<SubjectType>>(\n key: DebugSubjects,\n subjectFactory: () => SubjectType,\n): SubjectType => {\n const debugSubjects = window.____c_p_s.subjects as DebugSubjectsMap<SubjectType>;\n\n // good old singletons - ensure we do not register the same subject twice.\n // we also can't fail as multiple instances might try to access the same, so instead we return the previously registered one.\n if (!(key in debugSubjects)) {\n debugSubjects[key] = subjectFactory();\n }\n\n return debugSubjects[key];\n};\n\nexport const observeDebugSubject = <PayloadType>(key: DebugSubjects, observer: Observer<PayloadType>) => {\n const debugSubjects = window.____c_p_s.subjects as DebugSubjectsMap<Subject<PayloadType>>;\n\n if (!(key in debugSubjects)) {\n throw new Error(`No subject registered for key: \"${key}\"`);\n }\n\n return debugSubjects[key].subscribe(observer);\n};\n"]}
|
package/dist/cjs/debug.js
CHANGED
|
@@ -4,9 +4,9 @@ exports.onDebug = void 0;
|
|
|
4
4
|
const debug_state_1 = require("./debug-state");
|
|
5
5
|
const logger_1 = require("./logger/logger");
|
|
6
6
|
// eslint-disable-next-line import/prefer-default-export
|
|
7
|
-
|
|
7
|
+
const onDebug = (callback) => {
|
|
8
8
|
// Return early if both debug and logging is disabled
|
|
9
|
-
if (!debug_state_1.isDebugEnabled() || !debug_state_1.isLoggingEnabled()) {
|
|
9
|
+
if (!(0, debug_state_1.isDebugEnabled)() || !(0, debug_state_1.isLoggingEnabled)()) {
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
12
|
let payload;
|
|
@@ -20,4 +20,5 @@ exports.onDebug = (callback) => {
|
|
|
20
20
|
logger_1._loggerSubject.notify(payload);
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
+
exports.onDebug = onDebug;
|
|
23
24
|
//# sourceMappingURL=debug.js.map
|
package/dist/cjs/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../lib/debug.ts"],"names":[],"mappings":";;;AAAA,+CAAiE;AAGjE,4CAA2D;AAE3D,wDAAwD;
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../lib/debug.ts"],"names":[],"mappings":";;;AAAA,+CAAiE;AAGjE,4CAA2D;AAE3D,wDAAwD;AACjD,MAAM,OAAO,GAAG,CAAC,QAAwB,EAAE,EAAE;IAChD,qDAAqD;IACrD,IAAI,CAAC,IAAA,4BAAc,GAAE,IAAI,CAAC,IAAA,8BAAgB,GAAE,EAAE;QAC1C,OAAO;KACV;IAED,IAAI,OAAkC,CAAC;IAEvC,IAAI;QACA,OAAO,GAAG,QAAQ,CAAC,iBAAQ,CAAC,CAAC;KAChC;IAAC,OAAO,CAAC,EAAE;QACR,oCAAoC;KACvC;IAED,IAAI,OAAO,EAAE;QACT,uBAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAClC;AACL,CAAC,CAAC;AAjBW,QAAA,OAAO,WAiBlB","sourcesContent":["import { isDebugEnabled, isLoggingEnabled } from './debug-state';\n\nimport type { LoggerCallback, LoggerPayload } from './logger/logger';\nimport { _loggerSubject, LogLevel } from './logger/logger';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const onDebug = (callback: LoggerCallback) => {\n // Return early if both debug and logging is disabled\n if (!isDebugEnabled() || !isLoggingEnabled()) {\n return;\n }\n\n let payload: LoggerPayload | undefined;\n\n try {\n payload = callback(LogLevel);\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n\n if (payload) {\n _loggerSubject.notify(payload);\n }\n};\n"]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.observeStateChange = exports.setValidationEnabled = exports.setDiscoveryEnabled = exports.setLoggingEnabled = exports.setDebugEnabled = exports.isValidationEnabled = exports.isDiscoveryEnabled = exports.isLoggingEnabled = exports.isDebugEnabled = exports.consoleLogger = exports._deregisterDefaultLogger = exports.setLogger = exports.observeLogger = exports.LogLevel = exports.onDebug = void 0;
|
|
3
4
|
var debug_1 = require("./debug");
|
|
4
5
|
Object.defineProperty(exports, "onDebug", { enumerable: true, get: function () { return debug_1.onDebug; } });
|
|
5
6
|
var logger_1 = require("./logger/logger");
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAAzB,gGAAA,OAAO,OAAA;AAEhB,0CAA2C;AAAlC,kGAAA,QAAQ,OAAA;AAEjB,0DAIiC;AAH7B,2BAA2B,CAAC,+GAAA,aAAa,OAAA;AACzC,sBAAsB,CAAC,2GAAA,SAAS,OAAA;AAChC,0HAAA,wBAAwB,OAAA;AAG5B,4CAAwE;AAAxC,wGAAA,aAAa,OAAA;AAE7C,6CAUuB;AATnB,6GAAA,cAAc,OAAA;AACd,+GAAA,gBAAgB,OAAA;AAChB,iHAAA,kBAAkB,OAAA;AAClB,kHAAA,mBAAmB,OAAA;AACnB,8GAAA,eAAe,OAAA;AACf,gHAAA,iBAAiB,OAAA;AACjB,kHAAA,mBAAmB,OAAA;AACnB,mHAAA,oBAAoB,OAAA;AACpB,iHAAA,kBAAkB,OAAA","sourcesContent":["export { onDebug } from './debug';\nexport type { LoggerPayload } from './logger/logger';\nexport { LogLevel } from './logger/logger';\n\nexport {\n /** @deprecated in 2.1.0 */ observeLogger,\n /** @since in 2.1.0 */ setLogger,\n _deregisterDefaultLogger,\n} from './logger/default-logger';\n\nexport { /** @since in 2.1.0 */ consoleLogger } from './logger/console';\n\nexport {\n isDebugEnabled,\n isLoggingEnabled,\n isDiscoveryEnabled,\n isValidationEnabled,\n setDebugEnabled,\n setLoggingEnabled,\n setDiscoveryEnabled,\n setValidationEnabled,\n observeStateChange,\n} from './debug-state';\n"]}
|
|
@@ -39,9 +39,9 @@ function shouldDisplayLog(logLevel, eventLogLevel) {
|
|
|
39
39
|
return Array.isArray(levels) ? levels.includes(eventLogLevel) : false;
|
|
40
40
|
}
|
|
41
41
|
// eslint-disable-next-line import/prefer-default-export
|
|
42
|
-
|
|
42
|
+
const consoleLogger = (payload) => {
|
|
43
43
|
const eventLogLevel = payload.level;
|
|
44
|
-
const logLevel = debug_state_1.getLogLevel();
|
|
44
|
+
const logLevel = (0, debug_state_1.getLogLevel)();
|
|
45
45
|
if (!shouldDisplayLog(logLevel, eventLogLevel)) {
|
|
46
46
|
return;
|
|
47
47
|
}
|
|
@@ -61,4 +61,5 @@ exports.consoleLogger = (payload) => {
|
|
|
61
61
|
console.groupEnd();
|
|
62
62
|
}
|
|
63
63
|
};
|
|
64
|
+
exports.consoleLogger = consoleLogger;
|
|
64
65
|
//# sourceMappingURL=console.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../lib/logger/console.ts"],"names":[],"mappings":";;;AACA,qCAAoC;AACpC,gDAA6C;
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../lib/logger/console.ts"],"names":[],"mappings":";;;AACA,qCAAoC;AACpC,gDAA6C;AAK7C,MAAM,mBAAmB,GAAG,CAAC,KAAe,EAAoB,EAAE;IAC9D,QAAQ,KAAK,EAAE;QACX,KAAK,iBAAQ,CAAC,KAAK;YACf,OAAO,OAAO,CAAC;QACnB,KAAK,iBAAQ,CAAC,KAAK;YACf,OAAO,OAAO,CAAC;QACnB,KAAK,iBAAQ,CAAC,IAAI;YACd,OAAO,MAAM,CAAC;QAClB,KAAK,iBAAQ,CAAC,IAAI,CAAC;QACnB,KAAK,iBAAQ,CAAC,WAAW;YACrB,OAAO,MAAM,CAAC;QAClB;YACI,OAAO,OAAO,CAAC;KACtB;AACL,CAAC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAQ,CAAC,CAAC;AAC5C,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,iBAAQ,CAAC,KAAK,CAAC,CAAC;AAC5E,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,iBAAQ,CAAC,KAAK,CAAC,CAAC;AAC3E,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,iBAAQ,CAAC,IAAI,CAAC,CAAC;AAChF,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,iBAAQ,CAAC,WAAW,CAAC,CAAC;AAEvF,MAAM,SAAS,GAAgC;IAC3C,CAAC,iBAAQ,CAAC,KAAK,CAAC,EAAE,WAAW;IAC7B,CAAC,iBAAQ,CAAC,KAAK,CAAC,EAAE,WAAW;IAC7B,CAAC,iBAAQ,CAAC,IAAI,CAAC,EAAE,UAAU;IAC3B,CAAC,iBAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB;IACzC,CAAC,iBAAQ,CAAC,IAAI,CAAC,EAAE,UAAU;CAC9B,CAAC;AAEF,SAAS,gBAAgB,CAAC,QAAkB,EAAE,aAAuB;IACjE,IAAI,QAAQ,KAAK,iBAAQ,CAAC,KAAK,EAAE;QAC7B,OAAO,IAAI,CAAC;KACf;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEnC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1E,CAAC;AAED,wDAAwD;AACjD,MAAM,aAAa,GAAG,CAAC,OAAsB,EAAE,EAAE;IACpD,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;IAE/B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;QAC5C,OAAO;KACV;IAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,kBAAkB,GACpB,OAAO,CAAC,KAAK,KAAK,iBAAQ,CAAC,WAAW;QAClC,CAAC,CAAC;CACb;QACW,CAAC,CAAC,EAAE,CAAC;IAEb,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,kBAAkB,uCAAuC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnG,kBAAkB;IAClB,IAAI,QAAQ,KAAK,iBAAQ,CAAC,KAAK,EAAE;QAC7B,OAAO,CAAC,cAAc,CAAC,qDAAqD,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC;YACR,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,CAAC;KACtB;AACL,CAAC,CAAC;AA1BW,QAAA,aAAa,iBA0BxB","sourcesContent":["import type { LoggerPayload } from './logger';\nimport { LogLevel } from './logger';\nimport { getLogLevel } from '../debug-state';\n\n// We need to pick the callable keys from the console object\ntype ConsoleLogsTypes = keyof Pick<typeof console, 'log' | 'warn' | 'error' | 'info' | 'debug'>;\n\nconst getLoggingFromLevel = (level: LogLevel): ConsoleLogsTypes => {\n switch (level) {\n case LogLevel.error:\n return 'error';\n case LogLevel.debug:\n return 'debug';\n case LogLevel.info:\n return 'info';\n case LogLevel.warn:\n case LogLevel.deprecation:\n return 'warn';\n default:\n return 'debug';\n }\n};\n\n// Naive implementation but we can't use bitwise operators :(\nconst debugLevels = Object.values(LogLevel);\nconst errorLevels = debugLevels.filter((level) => level !== LogLevel.debug);\nconst warnLevels = errorLevels.filter((level) => level !== LogLevel.error);\nconst deprecationLevels = warnLevels.filter((level) => level !== LogLevel.warn);\nconst infoLevels = deprecationLevels.filter((level) => level !== LogLevel.deprecation);\n\nconst levelsMap: { [key: string]: string[] } = {\n [LogLevel.debug]: debugLevels,\n [LogLevel.error]: errorLevels,\n [LogLevel.warn]: warnLevels,\n [LogLevel.deprecation]: deprecationLevels,\n [LogLevel.info]: infoLevels,\n};\n\nfunction shouldDisplayLog(logLevel: LogLevel, eventLogLevel: LogLevel) {\n if (logLevel === LogLevel.debug) {\n return true;\n }\n\n const levels = levelsMap[logLevel];\n\n return Array.isArray(levels) ? levels.includes(eventLogLevel) : false;\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport const consoleLogger = (payload: LoggerPayload) => {\n const eventLogLevel = payload.level;\n const logLevel = getLogLevel();\n\n if (!shouldDisplayLog(logLevel, eventLogLevel)) {\n return;\n }\n\n const consoleKey = getLoggingFromLevel(eventLogLevel);\n const deprecationWarning =\n payload.level === LogLevel.deprecation\n ? `⚠️⚠️⚠️ DEPRECATION WARNING ⚠️⚠️⚠️\n`\n : '';\n\n console[consoleKey](`${deprecationWarning}[Atlassian Client-side Extensions]: ${payload.message}`);\n\n // Verbose logging\n if (logLevel === LogLevel.debug) {\n console.groupCollapsed(' <click here for more details about above message>');\n console.log({\n components: payload.components,\n meta: payload.meta,\n });\n console.groupEnd();\n }\n};\n"]}
|
|
@@ -10,16 +10,17 @@ const logger_1 = require("./logger");
|
|
|
10
10
|
*
|
|
11
11
|
* @deprecated
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
return debug_subjects_1.observeDebugSubject("logger" /* Logger */, observer);
|
|
13
|
+
const observeLogger = (observer) => {
|
|
14
|
+
return (0, debug_subjects_1.observeDebugSubject)("logger" /* Logger */, observer);
|
|
15
15
|
};
|
|
16
|
+
exports.observeLogger = observeLogger;
|
|
16
17
|
const registerConsoleLogger = () => {
|
|
17
18
|
// Singleton workaround as this module may be executed more than once.
|
|
18
19
|
// We only ever want one global default logger, however.
|
|
19
20
|
if (window.____c_p_d_l_d !== undefined) {
|
|
20
21
|
return window.____c_p_d_l_d;
|
|
21
22
|
}
|
|
22
|
-
window.____c_p_d_l_d = exports.observeLogger(console_1.consoleLogger);
|
|
23
|
+
window.____c_p_d_l_d = (0, exports.observeLogger)(console_1.consoleLogger);
|
|
23
24
|
return window.____c_p_d_l_d;
|
|
24
25
|
};
|
|
25
26
|
const deregisterLogger = () => {
|
|
@@ -35,14 +36,15 @@ exports.defaultLogger = registerConsoleLogger();
|
|
|
35
36
|
* @param logger
|
|
36
37
|
* @public
|
|
37
38
|
*/
|
|
38
|
-
|
|
39
|
+
const setLogger = (logger) => {
|
|
39
40
|
if (typeof logger !== 'function') {
|
|
40
41
|
throw new Error(`Client-side Extension: The provided logger needs to be a function`);
|
|
41
42
|
}
|
|
42
43
|
deregisterLogger();
|
|
43
44
|
logger_1._loggerSubject.prune();
|
|
44
|
-
debug_subjects_1.observeDebugSubject("logger" /* Logger */, logger);
|
|
45
|
+
(0, debug_subjects_1.observeDebugSubject)("logger" /* Logger */, logger);
|
|
45
46
|
};
|
|
47
|
+
exports.setLogger = setLogger;
|
|
46
48
|
const deregisterDefaultLogger = () => exports.defaultLogger.unsubscribe();
|
|
47
49
|
exports._deregisterDefaultLogger = deregisterDefaultLogger;
|
|
48
50
|
//# sourceMappingURL=default-logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-logger.js","sourceRoot":"","sources":["../../../lib/logger/default-logger.ts"],"names":[],"mappings":";;;AAEA,uCAA0C;AAC1C,sDAAuE;AAEvE,qCAA0C;AAS1C;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"default-logger.js","sourceRoot":"","sources":["../../../lib/logger/default-logger.ts"],"names":[],"mappings":";;;AAEA,uCAA0C;AAC1C,sDAAuE;AAEvE,qCAA0C;AAS1C;;;;;GAKG;AACI,MAAM,aAAa,GAAG,CAAC,QAAiC,EAAgB,EAAE;IAC7E,OAAO,IAAA,oCAAmB,yBAAsC,QAAQ,CAAC,CAAC;AAC9E,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEF,MAAM,qBAAqB,GAAG,GAAiB,EAAE;IAC7C,sEAAsE;IACtE,wDAAwD;IACxD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;QACpC,OAAO,MAAM,CAAC,aAAa,CAAC;KAC/B;IAED,MAAM,CAAC,aAAa,GAAG,IAAA,qBAAa,EAAC,uBAAa,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC,aAAa,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,GAAS,EAAE;IAChC,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;QACpC,OAAO;KACV;IAED,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC,CAAC;AAEW,QAAA,aAAa,GAAG,qBAAqB,EAAE,CAAC;AAErD;;;;;GAKG;AACI,MAAM,SAAS,GAAG,CAAC,MAA+B,EAAQ,EAAE;IAC/D,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;KACxF;IAED,gBAAgB,EAAE,CAAC;IACnB,uBAAc,CAAC,KAAK,EAAE,CAAC;IAEvB,IAAA,oCAAmB,yBAAsC,MAAM,CAAC,CAAC;AACrE,CAAC,CAAC;AATW,QAAA,SAAS,aASpB;AAEF,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,qBAAa,CAAC,WAAW,EAAE,CAAC;AAG9B,2DAAwB","sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport type { Observer, Subscription } from '@atlassian/clientside-extensions-base';\nimport { consoleLogger } from './console';\nimport { DebugSubjects, observeDebugSubject } from '../debug-subjects';\nimport type { LoggerPayload } from './logger';\nimport { _loggerSubject } from './logger';\n\ndeclare global {\n interface Window {\n // clientside extension default logging deregister\n ____c_p_d_l_d?: Subscription;\n }\n}\n\n/**\n * We need to keep and expose the \"observeLogger\" function for a legacy reason.\n * It should be removed in CSEv3\n *\n * @deprecated\n */\nexport const observeLogger = (observer: Observer<LoggerPayload>): Subscription => {\n return observeDebugSubject<LoggerPayload>(DebugSubjects.Logger, observer);\n};\n\nconst registerConsoleLogger = (): Subscription => {\n // Singleton workaround as this module may be executed more than once.\n // We only ever want one global default logger, however.\n if (window.____c_p_d_l_d !== undefined) {\n return window.____c_p_d_l_d;\n }\n\n window.____c_p_d_l_d = observeLogger(consoleLogger);\n\n return window.____c_p_d_l_d;\n};\n\nconst deregisterLogger = (): void => {\n if (window.____c_p_d_l_d === undefined) {\n return;\n }\n\n window.____c_p_d_l_d.unsubscribe();\n};\n\nexport const defaultLogger = registerConsoleLogger();\n\n/**\n * Added in CSE 2.1.0\n *\n * @param logger\n * @public\n */\nexport const setLogger = (logger: Observer<LoggerPayload>): void => {\n if (typeof logger !== 'function') {\n throw new Error(`Client-side Extension: The provided logger needs to be a function`);\n }\n\n deregisterLogger();\n _loggerSubject.prune();\n\n observeDebugSubject<LoggerPayload>(DebugSubjects.Logger, logger);\n};\n\nconst deregisterDefaultLogger = () => defaultLogger.unsubscribe();\n\n// @VisibleForTesting\nexport { deregisterDefaultLogger as _deregisterDefaultLogger };\n"]}
|
|
@@ -11,6 +11,6 @@ var LogLevel;
|
|
|
11
11
|
LogLevel["deprecation"] = "DEPRECATION";
|
|
12
12
|
LogLevel["info"] = "INFO";
|
|
13
13
|
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
14
|
-
const loggerSubject = debug_subjects_1.registerDebugSubject("logger" /* Logger */, () => new clientside_extensions_base_1.ReplaySubject(20));
|
|
14
|
+
const loggerSubject = (0, debug_subjects_1.registerDebugSubject)("logger" /* Logger */, () => new clientside_extensions_base_1.ReplaySubject(20));
|
|
15
15
|
exports._loggerSubject = loggerSubject;
|
|
16
16
|
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../lib/logger/logger.ts"],"names":[],"mappings":";;;AAAA,sFAAsE;AACtE,sDAAwE;AAExE,IAAY,QAMX;AAND,WAAY,QAAQ;IAChB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,uCAA2B,CAAA;IAC3B,yBAAa,CAAA;AACjB,CAAC,EANW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAMnB;AAaD,MAAM,aAAa,GAAG,qCAAoB,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../lib/logger/logger.ts"],"names":[],"mappings":";;;AAAA,sFAAsE;AACtE,sDAAwE;AAExE,IAAY,QAMX;AAND,WAAY,QAAQ;IAChB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,uCAA2B,CAAA;IAC3B,yBAAa,CAAA;AACjB,CAAC,EANW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAMnB;AAaD,MAAM,aAAa,GAAG,IAAA,qCAAoB,yBAAuB,GAAG,EAAE,CAAC,IAAI,0CAAa,CAAgB,EAAE,CAAC,CAAC,CAAC;AAGnF,uCAAc","sourcesContent":["import { ReplaySubject } from '@atlassian/clientside-extensions-base';\nimport { DebugSubjects, registerDebugSubject } from '../debug-subjects';\n\nexport enum LogLevel {\n debug = 'DEBUG', // Logs all the things\n error = 'ERROR',\n warn = 'WARN',\n deprecation = 'DEPRECATION',\n info = 'INFO', // The lowest level\n}\n\nexport type LoggerCallback = (levels: typeof LogLevel) => LoggerPayload;\n\nexport type LoggerPayload = {\n level: LogLevel;\n message: string;\n components?: string | string[];\n meta?: {\n [key: string]: unknown;\n };\n};\n\nconst loggerSubject = registerDebugSubject(DebugSubjects.Logger, () => new ReplaySubject<LoggerPayload>(20));\n\n// Exported for internal use only\nexport { loggerSubject as _loggerSubject };\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const observeStateChange = jest.fn();
|
|
2
|
+
const isDebugEnabled = jest.fn();
|
|
3
|
+
const isLoggingEnabled = jest.fn();
|
|
4
|
+
const isValidationEnabled = jest.fn();
|
|
5
|
+
const isDiscoveryEnabled = jest.fn();
|
|
6
|
+
export { observeStateChange, isDebugEnabled, isLoggingEnabled, isValidationEnabled, isDiscoveryEnabled };
|
|
7
|
+
//# sourceMappingURL=debug-state.mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-state.mock.js","sourceRoot":"","sources":["../../../lib/__mocks__/debug-state.mock.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACrC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACtC,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC","sourcesContent":["const observeStateChange = jest.fn();\nconst isDebugEnabled = jest.fn();\nconst isLoggingEnabled = jest.fn();\nconst isValidationEnabled = jest.fn();\nconst isDiscoveryEnabled = jest.fn();\n\nexport { observeStateChange, isDebugEnabled, isLoggingEnabled, isValidationEnabled, isDiscoveryEnabled };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-subjects.mock.js","sourceRoot":"","sources":["../../../lib/__mocks__/debug-subjects.mock.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACtC,MAAM,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAEvC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC","sourcesContent":["const observeDebugSubject = jest.fn();\nconst registerDebugSubject = jest.fn();\n\nexport { observeDebugSubject, registerDebugSubject };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-state.js","sourceRoot":"","sources":["../../lib/debug-state.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\n\nimport type { Observer } from '@atlassian/clientside-extensions-base';\nimport { ReplaySubject } from '@atlassian/clientside-extensions-base';\nimport { DebugSubjects, observeDebugSubject, registerDebugSubject } from './debug-subjects';\nimport { LogLevel } from './logger/logger';\n\nenum ClientExtensionDebugTypes {\n debug = 'debug',\n logging = 'logging',\n validation = 'validation',\n discovery = 'discovery',\n /** @since 2.1.0 */\n logLevel = 'logLevel',\n}\n\ntype DebugTypeKeys = Exclude<keyof typeof ClientExtensionDebugTypes, 'logLevel'>;\n\nexport type ClientExtensionDebug = {\n [key in DebugTypeKeys]: boolean;\n} & {\n [ClientExtensionDebugTypes.logLevel]: LogLevel;\n};\n\nexport type ExposedClientExtensionDebug = { [key in keyof ClientExtensionDebug]: PropertyDescriptor } & {\n __initialized: PropertyDescriptor;\n};\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface Window {\n // The global ____c_p_d is a primitive boolean value that holds additional properties\n // Due to historical name changes the \"p\" still represents the old \"plugin\" nomenclature\n ____c_p_d: ExposedClientExtensionDebug;\n }\n}\n\nconst defineDebugGlobal = (previousGlobal: unknown) => {\n // initialize as boolean\n const debugGlobal = Object.create(null);\n const debugStates: ClientExtensionDebug = {\n debug: false,\n logging: false,\n validation: false,\n discovery: false,\n /** @since 2.1.0 */\n // In dev mode we set default loglevel to INFO\n logLevel: process.env.NODE_ENV === 'production' ? LogLevel.error : LogLevel.info,\n };\n\n const debugStateSubject = registerDebugSubject(DebugSubjects.State, () => new ReplaySubject(1));\n\n const properties: ExposedClientExtensionDebug = {\n debug: {\n get() {\n return debugStates.debug;\n },\n set(val: unknown) {\n debugStates.debug = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n logging: {\n get() {\n return debugStates.logging;\n },\n set(val: unknown) {\n debugStates.logging = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n validation: {\n get() {\n return debugStates.validation;\n },\n set(val: unknown) {\n debugStates.validation = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n discovery: {\n get() {\n return debugStates.discovery;\n },\n set(val: unknown) {\n debugStates.discovery = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n /** @since 2.1.0 */\n logLevel: {\n get() {\n return debugStates.logLevel;\n },\n set(val: unknown) {\n let level = String(val).toUpperCase() as LogLevel;\n\n // Handle runtime errors\n if (!Object.values(LogLevel).includes(level)) {\n level = LogLevel.info;\n }\n\n debugStates.logLevel = level;\n debugStateSubject.notify(debugStates);\n },\n },\n __initialized: { value: true, writable: false },\n };\n Object.defineProperties(debugGlobal, properties);\n\n Object.defineProperty(window, '____c_p_d', {\n configurable: true, // needed for testing :(\n get() {\n return debugGlobal;\n },\n set(val) {\n // its a boolean\n if (val === true || val === false) {\n debugGlobal.debug = val;\n debugGlobal.logging = val;\n debugGlobal.validation = val;\n debugGlobal.discovery = val;\n return;\n }\n\n // we can handle booleans - like above\n // or objects (except null) and nothing else.\n if (typeof val !== 'object' || val === null) {\n return;\n }\n\n const clientExtensionDebugKeys = Object.keys(ClientExtensionDebugTypes) as (keyof ClientExtensionDebug)[];\n\n clientExtensionDebugKeys.forEach((key) => {\n if (key in val) {\n debugGlobal[key] = val[key];\n }\n });\n },\n });\n\n // Now, we can use the previous value e.g. boolean, to set the value for all flags\n window.____c_p_d = previousGlobal as ExposedClientExtensionDebug;\n};\n\n// Register global value only once\nif (!('____c_p_d' in window) || !window.____c_p_d.__initialized) {\n defineDebugGlobal(window.____c_p_d ?? process.env.NODE_ENV !== 'production');\n}\n\nexport const observeStateChange = (observer: Observer<ClientExtensionDebug>) =>\n observeDebugSubject<ClientExtensionDebug>(DebugSubjects.State, observer);\n\nexport const isDebugEnabled = () => {\n return window.____c_p_d.debug as boolean;\n};\n\nexport const isLoggingEnabled = () => {\n return window.____c_p_d.logging as boolean;\n};\n\nexport const isValidationEnabled = () => {\n return window.____c_p_d.validation as boolean;\n};\n\nexport const isDiscoveryEnabled = () => {\n return window.____c_p_d.discovery as boolean;\n};\n\n/** @since 2.1.0 */\nexport const getLogLevel = (): LogLevel => {\n const logLevel = window.____c_p_d.logLevel as LogLevel;\n\n return logLevel ?? LogLevel.info;\n};\n\nexport const setDebugEnabled = (value: boolean) => {\n (window.____c_p_d.debug as boolean) = value;\n};\n\nexport const setLoggingEnabled = (value: boolean) => {\n (window.____c_p_d.logging as boolean) = value;\n};\n\nexport const setValidationEnabled = (value: boolean) => {\n (window.____c_p_d.validation as boolean) = value;\n};\n\nexport const setDiscoveryEnabled = (value: boolean) => {\n (window.____c_p_d.discovery as boolean) = value;\n};\n\n/** @since 2.1.0 */\nexport const setLogLevel = (value: string) => {\n const level = value.toUpperCase() as LogLevel;\n\n (window.____c_p_d.logLevel as LogLevel) = level;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"debug-state.js","sourceRoot":"","sources":["../../lib/debug-state.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\n\nimport type { Observer } from '@atlassian/clientside-extensions-base';\nimport { ReplaySubject } from '@atlassian/clientside-extensions-base';\nimport { DebugSubjects, observeDebugSubject, registerDebugSubject } from './debug-subjects';\nimport { LogLevel } from './logger/logger';\n\nenum ClientExtensionDebugTypes {\n debug = 'debug',\n logging = 'logging',\n validation = 'validation',\n discovery = 'discovery',\n /** @since 2.1.0 */\n logLevel = 'logLevel',\n}\n\ntype DebugTypeKeys = Exclude<keyof typeof ClientExtensionDebugTypes, 'logLevel'>;\n\nexport type ClientExtensionDebug = {\n [key in DebugTypeKeys]: boolean;\n} & {\n [ClientExtensionDebugTypes.logLevel]: LogLevel;\n};\n\nexport type ExposedClientExtensionDebug = { [key in keyof ClientExtensionDebug]: PropertyDescriptor } & {\n __initialized: PropertyDescriptor;\n};\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface Window {\n // The global ____c_p_d is a primitive boolean value that holds additional properties\n // Due to historical name changes the \"p\" still represents the old \"plugin\" nomenclature\n ____c_p_d: ExposedClientExtensionDebug;\n }\n}\n\nconst defineDebugGlobal = (previousGlobal: unknown) => {\n // initialize as boolean\n const debugGlobal = Object.create(null);\n const debugStates: ClientExtensionDebug = {\n debug: false,\n logging: false,\n validation: false,\n discovery: false,\n /** @since 2.1.0 */\n // In dev mode we set default loglevel to INFO\n logLevel: process.env.NODE_ENV === 'production' ? LogLevel.error : LogLevel.info,\n };\n\n const debugStateSubject = registerDebugSubject(DebugSubjects.State, () => new ReplaySubject(1));\n\n const properties: ExposedClientExtensionDebug = {\n debug: {\n get() {\n return debugStates.debug;\n },\n set(val: unknown) {\n debugStates.debug = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n logging: {\n get() {\n return debugStates.logging;\n },\n set(val: unknown) {\n debugStates.logging = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n validation: {\n get() {\n return debugStates.validation;\n },\n set(val: unknown) {\n debugStates.validation = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n discovery: {\n get() {\n return debugStates.discovery;\n },\n set(val: unknown) {\n debugStates.discovery = Boolean(val);\n debugStateSubject.notify(debugStates);\n },\n },\n /** @since 2.1.0 */\n logLevel: {\n get() {\n return debugStates.logLevel;\n },\n set(val: unknown) {\n let level = String(val).toUpperCase() as LogLevel;\n\n // Handle runtime errors\n if (!Object.values(LogLevel).includes(level)) {\n level = LogLevel.info;\n }\n\n debugStates.logLevel = level;\n debugStateSubject.notify(debugStates);\n },\n },\n __initialized: { value: true, writable: false },\n };\n Object.defineProperties(debugGlobal, properties);\n\n Object.defineProperty(window, '____c_p_d', {\n configurable: true, // needed for testing :(\n get() {\n return debugGlobal;\n },\n set(val) {\n // its a boolean\n if (val === true || val === false) {\n debugGlobal.debug = val;\n debugGlobal.logging = val;\n debugGlobal.validation = val;\n debugGlobal.discovery = val;\n return;\n }\n\n // we can handle booleans - like above\n // or objects (except null) and nothing else.\n if (typeof val !== 'object' || val === null) {\n return;\n }\n\n const clientExtensionDebugKeys = Object.keys(ClientExtensionDebugTypes) as (keyof ClientExtensionDebug)[];\n\n clientExtensionDebugKeys.forEach((key) => {\n if (key in val) {\n debugGlobal[key] = val[key];\n }\n });\n },\n });\n\n // Now, we can use the previous value e.g. boolean, to set the value for all flags\n window.____c_p_d = previousGlobal as ExposedClientExtensionDebug;\n};\n\n// Register global value only once\nif (!('____c_p_d' in window) || !window.____c_p_d.__initialized) {\n defineDebugGlobal(window.____c_p_d ?? process.env.NODE_ENV !== 'production');\n}\n\nexport const observeStateChange = (observer: Observer<ClientExtensionDebug>) =>\n observeDebugSubject<ClientExtensionDebug>(DebugSubjects.State, observer);\n\nexport const isDebugEnabled = () => {\n return window.____c_p_d.debug as boolean;\n};\n\nexport const isLoggingEnabled = () => {\n return window.____c_p_d.logging as boolean;\n};\n\nexport const isValidationEnabled = () => {\n return window.____c_p_d.validation as boolean;\n};\n\nexport const isDiscoveryEnabled = () => {\n return window.____c_p_d.discovery as boolean;\n};\n\n/** @since 2.1.0 */\nexport const getLogLevel = (): LogLevel => {\n const logLevel = window.____c_p_d.logLevel as LogLevel;\n\n return logLevel ?? LogLevel.info;\n};\n\nexport const setDebugEnabled = (value: boolean) => {\n (window.____c_p_d.debug as boolean) = value;\n};\n\nexport const setLoggingEnabled = (value: boolean) => {\n (window.____c_p_d.logging as boolean) = value;\n};\n\nexport const setValidationEnabled = (value: boolean) => {\n (window.____c_p_d.validation as boolean) = value;\n};\n\nexport const setDiscoveryEnabled = (value: boolean) => {\n (window.____c_p_d.discovery as boolean) = value;\n};\n\n/** @since 2.1.0 */\nexport const setLogLevel = (value: string) => {\n const level = value.toUpperCase() as LogLevel;\n\n (window.____c_p_d.logLevel as LogLevel) = level;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-subjects.js","sourceRoot":"","sources":["../../lib/debug-subjects.ts"],"names":[],"mappings":"AAyBA,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC7B,wBAAwB;IACxB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAmC;QAC/C,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC/C,QAAQ,EAAE;YACN,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,KAAK;SAClB;KACJ,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAEnD,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC;AACrC,CAAC,CAAC;AAEF,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE;IAC7D,mBAAmB,EAAE,CAAC;CACzB;AAID;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,GAAkB,EAClB,cAAiC,EACtB,EAAE;IACb,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,QAAyC,CAAC;IAEjF,0EAA0E;IAC1E,6HAA6H;IAC7H,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,EAAE;QACzB,aAAa,CAAC,GAAG,CAAC,GAAG,cAAc,EAAE,CAAC;KACzC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAc,GAAkB,EAAE,QAA+B,EAAE,EAAE;IACpG,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,QAAkD,CAAC;IAE1F,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,GAAG,CAAC,CAAC;KAC9D;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC","sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport type { Observer, Subject } from '@atlassian/clientside-extensions-base';\n\ntype ExposedClientExtensionSubjects = {\n __initialized: PropertyDescriptor;\n subjects: PropertyDescriptor;\n};\n\nexport const enum DebugSubjects {\n Logger = 'logger',\n State = 'state',\n}\n\ntype DebugSubjectsMap<
|
|
1
|
+
{"version":3,"file":"debug-subjects.js","sourceRoot":"","sources":["../../lib/debug-subjects.ts"],"names":[],"mappings":"AAyBA,MAAM,mBAAmB,GAAG,GAAG,EAAE;IAC7B,wBAAwB;IACxB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAmC;QAC/C,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC/C,QAAQ,EAAE;YACN,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,KAAK;SAClB;KACJ,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAEnD,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC;AACrC,CAAC,CAAC;AAEF,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE;IAC7D,mBAAmB,EAAE,CAAC;CACzB;AAID;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,GAAkB,EAClB,cAAiC,EACtB,EAAE;IACb,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,QAAyC,CAAC;IAEjF,0EAA0E;IAC1E,6HAA6H;IAC7H,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,EAAE;QACzB,aAAa,CAAC,GAAG,CAAC,GAAG,cAAc,EAAE,CAAC;KACzC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAc,GAAkB,EAAE,QAA+B,EAAE,EAAE;IACpG,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,QAAkD,CAAC;IAE1F,IAAI,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,GAAG,CAAC,CAAC;KAC9D;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC","sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport type { Observer, Subject } from '@atlassian/clientside-extensions-base';\n\ntype ExposedClientExtensionSubjects = {\n __initialized: PropertyDescriptor;\n subjects: PropertyDescriptor;\n};\n\nexport const enum DebugSubjects {\n Logger = 'logger',\n State = 'state',\n}\n\ntype DebugSubjectsMap<SubjectT> = {\n [key in DebugSubjects]: SubjectT;\n};\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface Window {\n // Due to historical name changes the \"p\" still represents the old \"plugin\" nomenclature\n ____c_p_s: ExposedClientExtensionSubjects;\n }\n}\n\nconst defineSubjectGlobal = () => {\n // initialize as boolean\n const subjectGlobal = Object.create(null);\n\n const properties: ExposedClientExtensionSubjects = {\n __initialized: { value: true, writable: false },\n subjects: {\n value: subjectGlobal,\n writable: false,\n },\n };\n\n Object.defineProperties(subjectGlobal, properties);\n\n window.____c_p_s = subjectGlobal;\n};\n\nif (!('____c_p_s' in window) || !window.____c_p_s.__initialized) {\n defineSubjectGlobal();\n}\n\ntype UnpackPayloadType<SubjectType> = SubjectType extends Subject<infer U> ? U : never;\n\n/**\n * Registers a debug subject as singleton\n *\n * @param key\n * @param subjectFactory\n */\nexport const registerDebugSubject = <SubjectType extends Subject<PayloadType>, PayloadType = UnpackPayloadType<SubjectType>>(\n key: DebugSubjects,\n subjectFactory: () => SubjectType,\n): SubjectType => {\n const debugSubjects = window.____c_p_s.subjects as DebugSubjectsMap<SubjectType>;\n\n // good old singletons - ensure we do not register the same subject twice.\n // we also can't fail as multiple instances might try to access the same, so instead we return the previously registered one.\n if (!(key in debugSubjects)) {\n debugSubjects[key] = subjectFactory();\n }\n\n return debugSubjects[key];\n};\n\nexport const observeDebugSubject = <PayloadType>(key: DebugSubjects, observer: Observer<PayloadType>) => {\n const debugSubjects = window.____c_p_s.subjects as DebugSubjectsMap<Subject<PayloadType>>;\n\n if (!(key in debugSubjects)) {\n throw new Error(`No subject registered for key: \"${key}\"`);\n }\n\n return debugSubjects[key].subscribe(observer);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../lib/logger/console.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../lib/logger/console.ts"],"names":[],"mappings":"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","sourcesContent":["import type { LoggerPayload } from './logger';\nimport { LogLevel } from './logger';\nimport { getLogLevel } from '../debug-state';\n\n// We need to pick the callable keys from the console object\ntype ConsoleLogsTypes = keyof Pick<typeof console, 'log' | 'warn' | 'error' | 'info' | 'debug'>;\n\nconst getLoggingFromLevel = (level: LogLevel): ConsoleLogsTypes => {\n switch (level) {\n case LogLevel.error:\n return 'error';\n case LogLevel.debug:\n return 'debug';\n case LogLevel.info:\n return 'info';\n case LogLevel.warn:\n case LogLevel.deprecation:\n return 'warn';\n default:\n return 'debug';\n }\n};\n\n// Naive implementation but we can't use bitwise operators :(\nconst debugLevels = Object.values(LogLevel);\nconst errorLevels = debugLevels.filter((level) => level !== LogLevel.debug);\nconst warnLevels = errorLevels.filter((level) => level !== LogLevel.error);\nconst deprecationLevels = warnLevels.filter((level) => level !== LogLevel.warn);\nconst infoLevels = deprecationLevels.filter((level) => level !== LogLevel.deprecation);\n\nconst levelsMap: { [key: string]: string[] } = {\n [LogLevel.debug]: debugLevels,\n [LogLevel.error]: errorLevels,\n [LogLevel.warn]: warnLevels,\n [LogLevel.deprecation]: deprecationLevels,\n [LogLevel.info]: infoLevels,\n};\n\nfunction shouldDisplayLog(logLevel: LogLevel, eventLogLevel: LogLevel) {\n if (logLevel === LogLevel.debug) {\n return true;\n }\n\n const levels = levelsMap[logLevel];\n\n return Array.isArray(levels) ? levels.includes(eventLogLevel) : false;\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport const consoleLogger = (payload: LoggerPayload) => {\n const eventLogLevel = payload.level;\n const logLevel = getLogLevel();\n\n if (!shouldDisplayLog(logLevel, eventLogLevel)) {\n return;\n }\n\n const consoleKey = getLoggingFromLevel(eventLogLevel);\n const deprecationWarning =\n payload.level === LogLevel.deprecation\n ? `⚠️⚠️⚠️ DEPRECATION WARNING ⚠️⚠️⚠️\n`\n : '';\n\n console[consoleKey](`${deprecationWarning}[Atlassian Client-side Extensions]: ${payload.message}`);\n\n // Verbose logging\n if (logLevel === LogLevel.debug) {\n console.groupCollapsed(' <click here for more details about above message>');\n console.log({\n components: payload.components,\n meta: payload.meta,\n });\n console.groupEnd();\n }\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
2
|
+
declare const observeStateChange: jest.Mock<any, any>;
|
|
3
|
+
declare const isDebugEnabled: jest.Mock<any, any>;
|
|
4
|
+
declare const isLoggingEnabled: jest.Mock<any, any>;
|
|
5
|
+
declare const isValidationEnabled: jest.Mock<any, any>;
|
|
6
|
+
declare const isDiscoveryEnabled: jest.Mock<any, any>;
|
|
7
|
+
export { observeStateChange, isDebugEnabled, isLoggingEnabled, isValidationEnabled, isDiscoveryEnabled };
|
|
8
|
+
//# sourceMappingURL=debug-state.mock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-state.mock.d.ts","sourceRoot":"","sources":["../../../lib/__mocks__/debug-state.mock.ts"],"names":[],"mappings":";AAAA,QAAA,MAAM,kBAAkB,qBAAY,CAAC;AACrC,QAAA,MAAM,cAAc,qBAAY,CAAC;AACjC,QAAA,MAAM,gBAAgB,qBAAY,CAAC;AACnC,QAAA,MAAM,mBAAmB,qBAAY,CAAC;AACtC,QAAA,MAAM,kBAAkB,qBAAY,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-subjects.mock.d.ts","sourceRoot":"","sources":["../../../lib/__mocks__/debug-subjects.mock.ts"],"names":[],"mappings":";AAAA,QAAA,MAAM,mBAAmB,qBAAY,CAAC;AACtC,QAAA,MAAM,oBAAoB,qBAAY,CAAC;AAEvC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-state.d.ts","sourceRoot":"","sources":["../../lib/debug-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAGtE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,aAAK,yBAAyB;IAC1B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,mBAAmB;IACnB,QAAQ,aAAa;CACxB;AAED,aAAK,aAAa,GAAG,OAAO,CAAC,MAAM,OAAO,yBAAyB,EAAE,UAAU,CAAC,CAAC;AAEjF,oBAAY,oBAAoB,GAAG;KAC9B,GAAG,IAAI,aAAa,GAAG,OAAO;CAClC,GAAG;IACA,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAClD,CAAC;AAEF,oBAAY,2BAA2B,GAAG;KAAG,GAAG,IAAI,MAAM,oBAAoB,GAAG,kBAAkB;CAAE,GAAG;IACpG,aAAa,EAAE,kBAAkB,CAAC;CACrC,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IAEX,UAAU,MAAM;QAGZ,SAAS,EAAE,2BAA2B,CAAC;KAC1C;CACJ;AAmHD,eAAO,MAAM,kBAAkB,aAAc,
|
|
1
|
+
{"version":3,"file":"debug-state.d.ts","sourceRoot":"","sources":["../../lib/debug-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAGtE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,aAAK,yBAAyB;IAC1B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,mBAAmB;IACnB,QAAQ,aAAa;CACxB;AAED,aAAK,aAAa,GAAG,OAAO,CAAC,MAAM,OAAO,yBAAyB,EAAE,UAAU,CAAC,CAAC;AAEjF,oBAAY,oBAAoB,GAAG;KAC9B,GAAG,IAAI,aAAa,GAAG,OAAO;CAClC,GAAG;IACA,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAClD,CAAC;AAEF,oBAAY,2BAA2B,GAAG;KAAG,GAAG,IAAI,MAAM,oBAAoB,GAAG,kBAAkB;CAAE,GAAG;IACpG,aAAa,EAAE,kBAAkB,CAAC;CACrC,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IAEX,UAAU,MAAM;QAGZ,SAAS,EAAE,2BAA2B,CAAC;KAC1C;CACJ;AAmHD,eAAO,MAAM,kBAAkB,aAAc,SAAS,oBAAoB,CAAC,iEACC,CAAC;AAE7E,eAAO,MAAM,cAAc,eAE1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,eAE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAE/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,eAE9B,CAAC;AAEF,mBAAmB;AACnB,eAAO,MAAM,WAAW,QAAO,QAI9B,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,OAAO,SAE7C,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,OAAO,SAE/C,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAAW,OAAO,SAElD,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAAW,OAAO,SAEjD,CAAC;AAEF,mBAAmB;AACnB,eAAO,MAAM,WAAW,UAAW,MAAM,SAIxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../lib/logger/console.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../lib/logger/console.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiD9C,eAAO,MAAM,aAAa,YAAa,aAAa,SA0BnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-logger.d.ts","sourceRoot":"","sources":["../../../lib/logger/default-logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAGpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QAEZ,aAAa,CAAC,EAAE,YAAY,CAAC;KAChC;CACJ;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,aAAc,
|
|
1
|
+
{"version":3,"file":"default-logger.d.ts","sourceRoot":"","sources":["../../../lib/logger/default-logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAGpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QAEZ,aAAa,CAAC,EAAE,YAAY,CAAC;KAChC;CACJ;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,aAAc,SAAS,aAAa,CAAC,KAAG,YAEjE,CAAC;AAsBF,eAAO,MAAM,aAAa,cAA0B,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,WAAY,SAAS,aAAa,CAAC,KAAG,IAS3D,CAAC;AAEF,QAAA,MAAM,uBAAuB,YAAoC,CAAC;AAGlE,OAAO,EAAE,uBAAuB,IAAI,wBAAwB,EAAE,CAAC"}
|
|
@@ -13,6 +13,7 @@ describe('debug-state initialization', () => {
|
|
|
13
13
|
process.env.NODE_ENV = ORIGINAL_NODE_ENV;
|
|
14
14
|
// reset cache of loaded modules. This will ensure that the module is re-initialized
|
|
15
15
|
// with the new NODE_ENV value
|
|
16
|
+
// @ts-expect-error We don't care about the TS2790 issue here
|
|
16
17
|
delete window.____c_p_d;
|
|
17
18
|
jest.resetModules();
|
|
18
19
|
});
|
|
@@ -20,8 +21,7 @@ describe('debug-state initialization', () => {
|
|
|
20
21
|
it('should be set to FALSE if process.env.NODE_ENV is "production"', async () => {
|
|
21
22
|
process.env.NODE_ENV = 'production';
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
const debugStateModule = await import('./debug-state');
|
|
24
|
+
await import('./debug-state');
|
|
25
25
|
|
|
26
26
|
expect(window.____c_p_d.__initialized).toBe(true);
|
|
27
27
|
|
package/lib/debug-subjects.ts
CHANGED
package/lib/logger/console.ts
CHANGED
|
@@ -2,7 +2,10 @@ import type { LoggerPayload } from './logger';
|
|
|
2
2
|
import { LogLevel } from './logger';
|
|
3
3
|
import { getLogLevel } from '../debug-state';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// We need to pick the callable keys from the console object
|
|
6
|
+
type ConsoleLogsTypes = keyof Pick<typeof console, 'log' | 'warn' | 'error' | 'info' | 'debug'>;
|
|
7
|
+
|
|
8
|
+
const getLoggingFromLevel = (level: LogLevel): ConsoleLogsTypes => {
|
|
6
9
|
switch (level) {
|
|
7
10
|
case LogLevel.error:
|
|
8
11
|
return 'error';
|