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

rejoinder

Package Overview
Dependencies
Maintainers
0
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rejoinder - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

dist/src/internal.d.ts

148

dist/src/index.d.ts

@@ -1,94 +0,5 @@

import { debugFactory, type DebuggerExtension, type ExtendedDebugger, type InternalDebugger, type UnextendableInternalDebugger } from '@-xun/debug';
import { LoggerType, type ExtendedLogger } from "./internal.js";
import { type ExtendedDebugger } from '@-xun/debug';
export { LoggerType, type ExtendedDebugger, type ExtendedLogger };
/**
* These color codes correspond to a reddish color on the console.
* https://gist.github.com/JBlond/2fea43a3049b38287e5e9cefc87b2124?permalink_comment_id=4481079#gistcomment-4481079
*/
export declare const ansiRedColorCodes: number[];
export declare const ansiOrangeColorCodes: number[];
export { debugFactory as extendedDebugFactory, type ExtendedDebugger };
/**
* An enum representing the types of loggers classified by output target.
*/
export declare enum LoggerType {
All = "all",
GenericOutput = "logger",
DebugOnly = "debugger",
}
/**
* @internal
*/
export type WithExtendedParameters<T extends (...args: any[]) => any, Optional = true> = Optional extends true ? [tags?: string[], ...Parameters<T>] : [tags: string[], ...Parameters<T>];
/**
* @internal
*/
export type WithTagSupport<T extends (...args: any[]) => any, Optional = true> = ((...args: WithExtendedParameters<T, Optional>) => ReturnType<T> | undefined) & { [P in keyof T]: T[P] };
/**
* @internal
*/
export type ExtendedLoggerParameters = WithExtendedParameters<ExtendedDebugger, false>;
/**
* An instance of {@link UnextendableInternalDebugger} that that belongs to an
* {@link ExtendedLogger}.
*/
export interface UnextendableInternalLogger extends UnextendableInternalDebugger {
/**
* Send an optionally-formatted message to output.
*/
(...args: Parameters<ExtendedDebugger>): ReturnType<ExtendedDebugger>;
/**
* Send a tagged optionally-formatted message to output.
*/
(...args: ExtendedLoggerParameters): ReturnType<ExtendedDebugger>;
}
/**
* A wrapper around {@link ExtendedDebugger } representing the extension from
* mere "debug" logger to general purpose "logger".
*/
export interface ExtendedLogger extends _ExtendedLogger<ExtendedLogger> {
/**
* Send an optionally-formatted message to output.
*/
(...args: Parameters<ExtendedDebugger>): ReturnType<ExtendedDebugger>;
/**
* Send a tagged optionally-formatted message to output.
*/
(...args: ExtendedLoggerParameters): ReturnType<ExtendedDebugger>;
/**
* Send a blank newline to output.
*
* `outputMethod` determines if the newline will be output via the default
* output method or the alternate output method. This parameter only has an
* effect when using certain logger backends and typically corresponds to
* stdout (`"default"`) and stderr (`"alternate"`).
*/
newline(...args: [...WithExtendedParameters<ExtendedDebugger['newline'], false>, outputMethod?: 'default' | 'alternate']): ReturnType<ExtendedDebugger['newline']>;
/**
* Send a blank newline to output.
*
* `outputMethod` determines if the newline will be output via the default
* output method or the alternate output method. This parameter only has an
* effect when using certain logger backends and typically corresponds to
* stdout (`"default"`) and stderr (`"alternate"`).
*/
newline(...args: [outputMethod?: 'default' | 'alternate']): ReturnType<ExtendedDebugger['newline']>;
/**
* Creates a new instance by appending `namespace` to the current logger's
* namespace.
*/
extend(...args: Parameters<ExtendedDebugger['extend']>): ExtendedLogger;
}
type _ExtendedLogger<T> = Omit<ExtendedDebugger, keyof DebuggerExtension | 'newline' | 'extend'> & DebuggerExtension<UnextendableInternalLogger, T>;
/**
* Keeps track of our various "logger" (i.e. debug) instances and their
* associated metadata. Also keeps track of those tags for which we disable
* output.
*
* @internal
*/
export declare const metadata: {
logger: (ExtendedLogger | UnextendableInternalLogger)[];
debugger: (ExtendedDebugger | UnextendableInternalDebugger)[];
denylist: Set<string>;
};
/**
* A string representing a single space (one space-ish character). Note that

@@ -162,3 +73,3 @@ * space-ish characters will not be `trim()`'d.

includeInternal?: boolean;
}): (ExtendedLogger | UnextendableInternalDebugger | ExtendedDebugger)[];
}): (ExtendedLogger | import("@-xun/debug").UnextendableInternalDebugger | ExtendedDebugger)[];
/**

@@ -241,51 +152,2 @@ * Disable all logger instances (coarse-grain).

*/
export declare function getDisabledTags(): Set<string>;
/**
* A function that resets the internal logger cache. Essentially, calling this
* function causes rejoinder to forget any disabled tags or loggers created
* prior.
*
* @internal
*/
export declare function resetInternalState(): void;
/**
* Transforms an {@link ExtendedDebugger} into an {@link ExtendedLogger}.
*
* @internal
*/
export declare function makeExtendedLogger(extendedDebugger: ExtendedDebugger, type: Exclude<LoggerType, LoggerType.All>,
/**
* This function will be called with various arguments of unknown type when
* default (e.g. stdout) output should be sent to the user, such as when
* `::newline(...)` is called.
*/
underlyingDefaultLogFn: NonNullable<InternalDebugger['log']>,
/**
* This function will be called with various arguments of unknown type when
* alternate (e.g. stderr) output should be sent to the user, such as when
* `::newline(..., 'alternate')` and `::error(...)`, `::warn(...)`,
* `::message(...)`, etc are called.
*/
underlyingAlternateLogFn?: NonNullable<InternalDebugger['log']>): ExtendedLogger;
/**
* Allows logging to be disabled via tags at the fine-grain message level. Set
* `trapdoorArgLength` to the number of params necessary to trigger denylisting.
*
* @internal
*/
export declare function decorateWithTagSupport<T extends (...args: any[]) => any>(fn: T, trapdoorArgsMinLength: number): WithTagSupport<T>;
/**
* Make rejoinder's internals aware of a new logger instance.
*
* @internal
*/
export declare function withMetadataTracking(type: LoggerType.GenericOutput, logger: ExtendedLogger): ExtendedLogger;
export declare function withMetadataTracking(type: LoggerType.DebugOnly, logger: ExtendedDebugger): ExtendedDebugger;
export declare function withMetadataTracking(type: Exclude<LoggerType, LoggerType.All>, logger: ExtendedDebugger | ExtendedLogger): ExtendedDebugger | ExtendedLogger;
/**
* Recursively patches {@link ExtendedDebugger.extend} so that all debugger
* instances are properly tracked.
*
* @internal
*/
export declare function withPatchedExtend(instance: ExtendedDebugger): ExtendedDebugger;
export declare function getDisabledTags(): Set<string>;

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

});
exports.ansiRedColorCodes = exports.ansiOrangeColorCodes = exports.TAB = exports.SINGLE_SPACE = exports.SHORT_TAB = exports.LoggerType = void 0;
exports.TAB = exports.SINGLE_SPACE = exports.SHORT_TAB = void 0;
exports.createDebugLogger = createDebugLogger;
exports.createGenericLogger = createGenericLogger;
exports.decorateWithTagSupport = decorateWithTagSupport;
exports.disableLoggers = disableLoggers;

@@ -17,7 +16,2 @@ exports.disableLoggingByTag = disableLoggingByTag;

exports.getLoggersByType = getLoggersByType;
exports.makeExtendedLogger = makeExtendedLogger;
exports.metadata = void 0;
exports.resetInternalState = resetInternalState;
exports.withMetadataTracking = withMetadataTracking;
exports.withPatchedExtend = withPatchedExtend;
require("core-js/modules/es.array.push.js");

@@ -34,26 +28,5 @@ require("core-js/modules/es.set.difference.v2.js");

require("core-js/modules/esnext.iterator.for-each.js");
require("core-js/modules/esnext.iterator.map.js");
require("core-js/modules/esnext.iterator.some.js");
var _nodeAssert = _interopRequireDefault(require("node:assert"));
var _types = require("node:util/types");
var _internal = require("./internal.js");
exports.LoggerType = _internal.LoggerType;
var _debug = require("@-xun/debug");
exports.extendedDebugFactory = _debug.debugFactory;
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const extendedLoggerFnPropsWeakMap = new WeakMap();
const ansiRedColorCodes = exports.ansiRedColorCodes = [1, 9, 52, 88, 124, 160, 196];
const ansiOrangeColorCodes = exports.ansiOrangeColorCodes = [3, 11, 94, 136, 178, 214, 220];
let LoggerType = exports.LoggerType = function (LoggerType) {
LoggerType["All"] = "all";
LoggerType["GenericOutput"] = "logger";
LoggerType["DebugOnly"] = "debugger";
return LoggerType;
}({});
const metadata = exports.metadata = {
logger: [],
debugger: [],
denylist: new Set()
};
const SINGLE_SPACE = exports.SINGLE_SPACE = '⠀';
const SHORT_TAB = exports.SHORT_TAB = SINGLE_SPACE.repeat(2);
const TAB = exports.TAB = SINGLE_SPACE.repeat(4);
const consoleLog = (...args) => {

@@ -65,6 +38,9 @@ console.log(...args);

};
const SINGLE_SPACE = exports.SINGLE_SPACE = '⠀';
const SHORT_TAB = exports.SHORT_TAB = SINGLE_SPACE.repeat(2);
const TAB = exports.TAB = SINGLE_SPACE.repeat(4);
function createGenericLogger({
namespace
}) {
return withMetadataTracking(LoggerType.GenericOutput, makeExtendedLogger((0, _debug.debugFactory)(namespace), LoggerType.GenericOutput, consoleLog, consoleError));
return (0, _internal.withMetadataTracking)(_internal.LoggerType.GenericOutput, (0, _internal.makeExtendedLogger)((0, _debug.debugFactory)(namespace), _internal.LoggerType.GenericOutput, consoleLog, consoleError));
}

@@ -74,3 +50,3 @@ function createDebugLogger({

}) {
const debug = withMetadataTracking(LoggerType.DebugOnly, withPatchedExtend((0, _debug.debugFactory)(namespace)));
const debug = (0, _internal.withMetadataTracking)(_internal.LoggerType.DebugOnly, (0, _internal.withPatchedExtend)((0, _debug.debugFactory)(namespace)));
debug.log = consoleError;

@@ -84,7 +60,7 @@ return debug;

const instances = [];
if (type === LoggerType.All || type === LoggerType.GenericOutput) {
instances.push(...metadata.logger);
if (type === _internal.LoggerType.All || type === _internal.LoggerType.GenericOutput) {
instances.push(..._internal.metadata.logger);
}
if (type === LoggerType.All || type === LoggerType.DebugOnly) {
instances.push(...metadata.debugger);
if (type === _internal.LoggerType.All || type === _internal.LoggerType.DebugOnly) {
instances.push(..._internal.metadata.debugger);
}

@@ -120,3 +96,3 @@ return includeInternal ? instances : instances.filter(instance => 'newline' in instance);

}) {
tags.forEach(tag => metadata.denylist.add(tag));
tags.forEach(tag => _internal.metadata.denylist.add(tag));
}

@@ -126,108 +102,6 @@ function enableLoggingByTag({

}) {
tags.forEach(tag => metadata.denylist.delete(tag));
tags.forEach(tag => _internal.metadata.denylist.delete(tag));
}
function getDisabledTags() {
return new Set(metadata.denylist);
}
function resetInternalState() {
metadata.debugger.length = 0;
metadata.logger.length = 0;
metadata.denylist.clear();
}
function makeExtendedLogger(extendedDebugger, type, underlyingDefaultLogFn, underlyingAlternateLogFn = underlyingDefaultLogFn) {
const baseLoggerFn = decorateWithTagSupport(extendedDebugger, 2);
const baseNewlineFn = decorateWithTagSupport(outputMethod => {
if (extendedLogger.enabled) {
(outputMethod === 'alternate' ? underlyingAlternateLogFn : underlyingDefaultLogFn)('');
}
}, 1);
const extendedLogger = new Proxy(extendedDebugger, {
apply(_target, _this, args) {
return baseLoggerFn(...args);
},
get(target, property, proxy) {
if (property === 'extend') {
return function (...args) {
return withMetadataTracking(type, makeExtendedLogger(extendedDebugger.extend(...args), type, underlyingDefaultLogFn, underlyingAlternateLogFn));
};
}
if (property === 'newline') {
return function (...args) {
baseNewlineFn(...args);
};
}
const value = target[property];
if (typeof value === 'function') {
if (!extendedLoggerFnPropsWeakMap.has(value)) {
extendedLoggerFnPropsWeakMap.set(value, new Proxy(value, {
apply(_target, _this, args) {
const returnValue = value.apply(target, args);
return (0, _types.isPromise)(returnValue) ? returnValue.then(realReturnValue => maybeReturnProxy(realReturnValue)) : maybeReturnProxy(returnValue);
}
}));
}
return extendedLoggerFnPropsWeakMap.get(value);
}
return value;
function maybeReturnProxy(returnValue) {
return returnValue === target ? proxy : returnValue;
}
}
});
for (const [key, instance] of Object.entries(extendedDebugger[_debug.$instances]).filter(o => o[0] !== '$log')) {
if (key === 'error') {
instance.color = 1;
} else if (key === 'warn') {
instance.color = 3;
} else {
ensureInstanceHasNonReservedColor(instance);
}
instance.log = underlyingAlternateLogFn;
instance.enabled = true;
extendedLogger[_debug.$instances][key] = decorateWithTagSupport(instance, 2);
}
extendedLogger[_debug.$instances].$log = extendedLogger;
extendedLogger.log = underlyingDefaultLogFn;
extendedLogger.enabled = true;
ensureInstanceHasNonReservedColor(extendedLogger);
return extendedLogger;
function ensureInstanceHasNonReservedColor(instance) {
if (ansiRedColorCodes.includes(instance.color)) {
const hiddenInternals = _debug.debugFactory;
(0, _nodeAssert.default)(Array.isArray(hiddenInternals.colors));
const oldAvailableColors = hiddenInternals.colors;
hiddenInternals.colors = oldAvailableColors.filter(c => !ansiRedColorCodes.includes(c) && !ansiOrangeColorCodes.includes(c));
try {
const selectedColor = hiddenInternals.selectColor(extendedDebugger.namespace);
(0, _nodeAssert.default)(typeof selectedColor === 'number' || typeof selectedColor === 'string');
instance.color = selectedColor;
} finally {
hiddenInternals.colors = oldAvailableColors;
}
}
}
}
function decorateWithTagSupport(fn, trapdoorArgsMinLength) {
return new Proxy(fn, {
apply(_target, _this, args) {
if (args.length >= trapdoorArgsMinLength && Array.isArray(args[0])) {
if (args[0].some(tag => metadata.denylist.has(tag))) {
return undefined;
}
return fn(...args.slice(1));
}
return fn(...args);
}
});
}
function withMetadataTracking(type, logger) {
metadata[type].push(logger, ..._debug.extendedDebuggerSubInstanceProperties.map(property => logger[property]));
return logger;
}
function withPatchedExtend(instance) {
const oldExtend = instance.extend.bind(instance);
instance.extend = function (...args) {
return withMetadataTracking(LoggerType.DebugOnly, withPatchedExtend(oldExtend(...args)));
};
return instance;
return new Set(_internal.metadata.denylist);
}
{
"name": "rejoinder",
"version": "1.0.0",
"version": "1.1.0",
"description": "A tiny library for creating gorgeous terminal output",

@@ -33,2 +33,6 @@ "keywords": [

},
"./internal": {
"types": "./dist/src/internal.d.ts",
"default": "./dist/src/internal.js"
},
"./package": "./package.json",

@@ -42,2 +46,5 @@ "./package.json": "./package.json"

],
"internal": [
"dist/src/internal.d.ts"
],
"package": [

@@ -44,0 +51,0 @@ "package.json"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc