New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@mongodb-js/compass-logging

Package Overview
Dependencies
Maintainers
33
Versions
516
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mongodb-js/compass-logging - npm Package Compare versions

Comparing version

to
0.0.0-next-d82bfb543d377c0ddab79defb4a01ced9c39d565

4

dist/index.d.ts

@@ -1,3 +0,3 @@

export { createLoggerAndTelemetry } from './ipc-logger';
export type { LoggerAndTelemetry } from './logger';
export { createLogger } from './ipc-logger';
export type { Logger } from './logger';
export { mongoLogId } from 'mongodb-log-writer';

@@ -4,0 +4,0 @@ import createDebug from 'debug';

@@ -6,5 +6,5 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.debug = exports.mongoLogId = exports.createLoggerAndTelemetry = void 0;
exports.debug = exports.mongoLogId = exports.createLogger = void 0;
var ipc_logger_1 = require("./ipc-logger");
Object.defineProperty(exports, "createLoggerAndTelemetry", { enumerable: true, get: function () { return ipc_logger_1.createLoggerAndTelemetry; } });
Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return ipc_logger_1.createLogger; } });
var mongodb_log_writer_1 = require("mongodb-log-writer");

@@ -11,0 +11,0 @@ Object.defineProperty(exports, "mongoLogId", { enumerable: true, get: function () { return mongodb_log_writer_1.mongoLogId; } });

@@ -1,2 +0,2 @@

export declare function createLoggerAndTelemetry(component: string): import("./logger").LoggerAndTelemetry;
export declare function createLogger(component: string): import("./logger").Logger;
//# sourceMappingURL=ipc-logger.d.ts.map

@@ -6,6 +6,8 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.createLoggerAndTelemetry = void 0;
exports.createLogger = void 0;
const is_electron_renderer_1 = __importDefault(require("is-electron-renderer"));
const logger_1 = require("./logger");
function emit(ipc, event, data) {
// We use ipc.callQuiet instead of ipc.call because we already
// print debugging messages below
void ipc?.callQuiet?.(event, data);

@@ -16,10 +18,11 @@ if (typeof process !== 'undefined' && typeof process.emit === 'function') {

}
function createLoggerAndTelemetry(component) {
function createLogger(component) {
// This application may not be running in an Node.js/Electron context.
const ipc = is_electron_renderer_1.default
?
? // eslint-disable-next-line @typescript-eslint/no-var-requires
require('hadron-ipc').ipcRenderer
: null;
return (0, logger_1.createGenericLoggerAndTelemetry)(component, emit.bind(null, ipc));
return (0, logger_1.createGenericLogger)(component, emit.bind(null, ipc));
}
exports.createLoggerAndTelemetry = createLoggerAndTelemetry;
exports.createLogger = createLogger;
//# sourceMappingURL=ipc-logger.js.map
import { MongoLogWriter, mongoLogId } from 'mongodb-log-writer';
import createDebug from 'debug';
type TrackProps = Record<string, any> | (() => Record<string, any>);
type TrackFunction = (event: string, properties?: TrackProps) => void;
export type LoggerAndTelemetry = {
export type Logger = {
log: ReturnType<MongoLogWriter['bindComponent']>;
mongoLogId: typeof mongoLogId;
debug: ReturnType<typeof createDebug>;
track: TrackFunction;
};
export declare function createGenericLoggerAndTelemetry(component: string, emit: (event: string, arg: any) => void): LoggerAndTelemetry;
export {};
export declare function createGenericLogger(component: string, emit: (event: string, arg: any) => void): Logger;
//# sourceMappingURL=logger.d.ts.map
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -29,7 +6,10 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
exports.createGenericLoggerAndTelemetry = void 0;
exports.createGenericLogger = void 0;
const mongodb_log_writer_1 = require("mongodb-log-writer");
const debug_1 = __importDefault(require("debug"));
let preferences;
function createGenericLoggerAndTelemetry(component, emit) {
function createGenericLogger(component, emit) {
// Do not create an actual Writable stream here, since the callback
// logic in Node.js streams would mean that two writes from the
// same event loop tick would not be written synchronously,
// allowing another logger's write to be written out-of-order.
const target = {

@@ -46,47 +26,2 @@ write(line, callback) {

const log = writer.bindComponent(component);
const track = (...args) => {
void Promise.resolve()
.then(() => trackAsync(...args))
.catch((error) => debug('track failed', error));
};
const trackAsync = async (event, properties = {}) => {
try {
preferences ??= (await Promise.resolve().then(() => __importStar(require('compass-preferences-model'))))
.preferencesAccess;
}
catch {
preferences ??= {
getPreferences() {
return { trackUsageStatistics: true };
},
};
}
const { trackUsageStatistics = true } = preferences?.getPreferences();
if (!trackUsageStatistics) {
return;
}
const data = {
event,
properties,
};
if (typeof properties === 'function') {
try {
data.properties = await properties();
}
catch (error) {
emit('compass:track', {
event: 'Error Fetching Attributes',
properties: {
event_name: event,
},
});
log.error((0, mongodb_log_writer_1.mongoLogId)(1001000190), 'Telemetry', 'Error computing event properties for telemetry', {
event,
error: error.stack,
});
return;
}
}
emit('compass:track', data);
};
const debug = (0, debug_1.default)(`mongodb-compass:${component.toLowerCase()}`);

@@ -105,6 +40,5 @@ writer.on('log', ({ s, ctx, msg, attr }) => {

debug,
track,
};
}
exports.createGenericLoggerAndTelemetry = createGenericLoggerAndTelemetry;
exports.createGenericLogger = createGenericLogger;
//# sourceMappingURL=logger.js.map
import React from 'react';
import type { LoggerAndTelemetry } from './logger';
export type { LoggerAndTelemetry } from './logger';
export declare const LoggerAndTelemetryProvider: React.Provider<(component: string) => LoggerAndTelemetry>;
export declare function createLoggerAndTelemetryLocator(component: string): () => LoggerAndTelemetry;
export declare function useLoggerAndTelemetry(component: string): LoggerAndTelemetry;
export declare function useTrackOnChange(component: string, onChange: (track: LoggerAndTelemetry['track']) => void, dependencies: unknown[], options?: {
skipOnMount: boolean;
}): void;
import type { Logger } from './logger';
import type { MongoLogId } from 'mongodb-log-writer';
export type { Logger } from './logger';
export declare function createNoopLogger(component?: string): Logger;
export declare const LoggerProvider: React.Provider<{
createLogger(component: string): Logger;
}>;
export declare function createLoggerLocator(component: string): () => Logger;
export declare function useLogger(component: string): Logger;
type FirstArgument<F> = F extends (...args: [infer A, ...any]) => any ? A : F extends {
new (...args: [infer A, ...any]): any;
} ? A : never;
export declare function withLoggerAndTelemetry<T extends ((...args: any[]) => any) | {
export declare function withLogger<T extends ((...args: any[]) => any) | {
new (...args: any[]): any;
}>(ReactComponent: T, component: string): React.FunctionComponent<Omit<FirstArgument<T>, 'logger'>>;
export declare function mongoLogId(id: number): MongoLogId;
export type { MongoLogWriter } from 'mongodb-log-writer';
//# sourceMappingURL=provider.d.ts.map
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.withLoggerAndTelemetry = exports.useTrackOnChange = exports.useLoggerAndTelemetry = exports.createLoggerAndTelemetryLocator = exports.LoggerAndTelemetryProvider = void 0;
const react_1 = __importDefault(require("react"));
function defaultCreateLoggerAndTelemetry(component) {
return require('./logger').createGenericLoggerAndTelemetry(component, () => {
});
exports.mongoLogId = exports.withLogger = exports.useLogger = exports.createLoggerLocator = exports.LoggerProvider = exports.createNoopLogger = void 0;
const react_1 = __importStar(require("react"));
const hadron_app_registry_1 = require("hadron-app-registry");
const noop = () => {
// noop
};
function createNoopLogger(component = 'NOOP-LOGGER') {
return {
log: {
component,
get unbound() {
return this;
},
write: () => true,
info: noop,
warn: noop,
error: noop,
fatal: noop,
debug: noop,
},
debug: noop,
mongoLogId,
};
}
const LoggerAndTelemetryContext = react_1.default.createContext(defaultCreateLoggerAndTelemetry);
exports.LoggerAndTelemetryProvider = LoggerAndTelemetryContext.Provider;
function createLoggerAndTelemetryLocator(component) {
return useLoggerAndTelemetry.bind(null, component);
exports.createNoopLogger = createNoopLogger;
const LoggerContext = react_1.default.createContext({ createLogger: createNoopLogger });
exports.LoggerProvider = LoggerContext.Provider;
function createLoggerLocator(component) {
return (0, hadron_app_registry_1.createServiceLocator)(useLogger.bind(null, component), 'createLoggerLocator');
}
exports.createLoggerAndTelemetryLocator = createLoggerAndTelemetryLocator;
function useLoggerAndTelemetry(component) {
const createLoggerAndTelemetry = react_1.default.useContext(LoggerAndTelemetryContext);
if (!createLoggerAndTelemetry) {
throw new Error('LoggerAndTelemetry service is missing from React context');
exports.createLoggerLocator = createLoggerLocator;
function useLogger(component) {
const context = react_1.default.useContext(LoggerContext);
if (!context) {
throw new Error('Logger service is missing from React context');
}
const loggerRef = react_1.default.createRef();
const loggerRef = (0, react_1.useRef)();
if (!loggerRef.current) {
loggerRef.current = createLoggerAndTelemetry(component);
loggerRef.current = context.createLogger(component);
}
return loggerRef.current;
}
exports.useLoggerAndTelemetry = useLoggerAndTelemetry;
function useTrackOnChange(component, onChange, dependencies, options = { skipOnMount: false }) {
const onChangeRef = react_1.default.useRef(onChange);
onChangeRef.current = onChange;
const { track } = useLoggerAndTelemetry(component);
let initial = true;
react_1.default.useEffect(() => {
if (options.skipOnMount && initial) {
initial = false;
return;
}
onChangeRef.current(track);
}, [...dependencies, track]);
}
exports.useTrackOnChange = useTrackOnChange;
function withLoggerAndTelemetry(ReactComponent, component) {
const WithLoggerAndTelemetry = (props) => {
const logger = useLoggerAndTelemetry(component);
exports.useLogger = useLogger;
function withLogger(ReactComponent, component) {
const WithLogger = (props) => {
const logger = useLogger(component);
return react_1.default.createElement(ReactComponent, { ...props, logger });
};
return WithLoggerAndTelemetry;
return WithLogger;
}
exports.withLoggerAndTelemetry = withLoggerAndTelemetry;
exports.withLogger = withLogger;
// To avoid dependency on mongodb-log-writer that will pull in a lot of Node.js
// specific code we re-implement mongoLogId in the provider to re-export
//
// Disable prettier so that dupedLogId stays on the same line to be ignored by
// the check-logids script
// prettier-ignore
function mongoLogId(id) {
return { __value: id };
}
exports.mongoLogId = mongoLogId;
//# sourceMappingURL=provider.js.map

@@ -16,3 +16,3 @@ {

"homepage": "https://github.com/mongodb-js/compass",
"version": "0.0.0-next-d6f3df0b6003bde4b59866fd4aceaa6e80fa6592",
"version": "0.0.0-next-d82bfb543d377c0ddab79defb4a01ced9c39d565",
"repository": {

@@ -24,8 +24,5 @@ "type": "git",

"dist",
"provier.js"
"provider.js"
],
"license": "SSPL",
"peerDependencies": {
"hadron-ipc": "0.0.0-next-d6f3df0b6003bde4b59866fd4aceaa6e80fa6592"
},
"main": "dist/index.js",

@@ -49,3 +46,3 @@ "exports": {

"lint": "npm run eslint . && npm run prettier -- --check .",
"depcheck": "depcheck",
"depcheck": "compass-scripts check-peer-deps && depcheck",
"check": "npm run lint && npm run depcheck",

@@ -61,11 +58,13 @@ "check-ci": "npm run check",

"debug": "^4.3.4",
"hadron-app-registry": "0.0.0-next-d82bfb543d377c0ddab79defb4a01ced9c39d565",
"hadron-ipc": "0.0.0-next-d82bfb543d377c0ddab79defb4a01ced9c39d565",
"is-electron-renderer": "^2.0.1",
"mongodb-log-writer": "^1.3.0",
"mongodb-log-writer": "^1.4.2",
"react": "^17.0.2"
},
"devDependencies": {
"@mongodb-js/eslint-config-compass": "0.0.0-next-d6f3df0b6003bde4b59866fd4aceaa6e80fa6592",
"@mongodb-js/mocha-config-compass": "0.0.0-next-d6f3df0b6003bde4b59866fd4aceaa6e80fa6592",
"@mongodb-js/prettier-config-compass": "0.0.0-next-d6f3df0b6003bde4b59866fd4aceaa6e80fa6592",
"@mongodb-js/tsconfig-compass": "0.0.0-next-d6f3df0b6003bde4b59866fd4aceaa6e80fa6592",
"@mongodb-js/eslint-config-compass": "0.0.0-next-d82bfb543d377c0ddab79defb4a01ced9c39d565",
"@mongodb-js/mocha-config-compass": "0.0.0-next-d82bfb543d377c0ddab79defb4a01ced9c39d565",
"@mongodb-js/prettier-config-compass": "0.0.0-next-d82bfb543d377c0ddab79defb4a01ced9c39d565",
"@mongodb-js/tsconfig-compass": "0.0.0-next-d82bfb543d377c0ddab79defb4a01ced9c39d565",
"@types/chai": "^4.2.21",

@@ -78,3 +77,2 @@ "@types/debug": "^4.1.9",

"eslint": "^7.25.0",
"hadron-ipc": "0.0.0-next-d6f3df0b6003bde4b59866fd4aceaa6e80fa6592",
"mocha": "^10.2.0",

@@ -89,3 +87,3 @@ "nyc": "^15.1.0",

},
"gitHead": "d6f3df0b6003bde4b59866fd4aceaa6e80fa6592"
"gitHead": "d82bfb543d377c0ddab79defb4a01ced9c39d565"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet