New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@umatch/language

Package Overview
Dependencies
Maintainers
1
Versions
38
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@umatch/language - npm Package Compare versions

Comparing version
4.3.4
to
4.3.5
+1
-1
lib/index.d.ts.map

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

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}

@@ -37,3 +37,16 @@ "use strict";

}
getNotification(locale, path, replacements = {}, allowedLeftovers = []) {
/**
* Gets notification content from the translations file.
*
* Accesses properties in the order they are given in the path
* parameter, prefixing them with 'notifications'. Then, chooses one
* title and one body at random from each array, replaces variables in
* the resulting strings and returns them.
*
* @param locale
* @param path Properties to access joined by periods.
* @param [replacements] Values to replace.
* @param [allowedLeftovers] Values which can be left unreplaced.
*/
getNotification(locale, path, replacements, allowedLeftovers) {
const { titles, bodies } = this.get(locale,

@@ -40,0 +53,0 @@ // @ts-expect-error

@@ -1,6 +0,6 @@

import { type DeepArray, type DeepObject, type Dictionary, type Payload, type Primitive, type ValueOf } from '@umatch/utils';
import { type DeepNode, type DeepObject, type Dictionary, type Payload, type Primitive, type ValueOf } from '@umatch/utils';
import { type ApplyTemplateFunction, type TemplateFunctions } from './templateFunctions';
import type { Pluralizer, Trim } from '@umatch/utils/string';
type SkipAllowedKeyOrThrow<S extends string, Rep extends Payload | undefined, Allowed extends 'all' | readonly string[], Pluralize extends Pluralizer | undefined, Acc extends string, Key extends string> = Allowed extends 'all' ? SimpleReplace<S, Rep, Allowed, Pluralize, Acc> : Key extends Allowed[number] ? SimpleReplace<S, Rep, Allowed, Pluralize, Acc> : never;
type SimpleReplace<S extends string, Rep extends Payload | undefined, Allowed extends 'all' | readonly string[], Pluralize extends Pluralizer | undefined, Acc extends string = ''> = S extends `${infer A}{{${infer B}}}${infer C}` ? Trim<B> extends infer Key extends string ? Rep extends Payload ? Key extends keyof Rep ? Rep[Key] extends undefined ? SkipAllowedKeyOrThrow<C, Rep, Allowed, Pluralize, `${Acc}${A}{{${B}}}`, Key> : SimpleReplace<C, Rep, Allowed, Pluralize, `${Acc}${A}${Rep[Key]}`> : Key extends `${infer TemplateFunction extends keyof TemplateFunctions}(${infer Args})` ? SimpleReplace<C, Rep, Allowed, Pluralize, `${Acc}${A}${ApplyTemplateFunction<TemplateFunction, Args, Rep, Pluralize>}`> : SkipAllowedKeyOrThrow<C, Rep, Allowed, Pluralize, `${Acc}${A}{{${B}}}`, Key> : SkipAllowedKeyOrThrow<C, Rep, Allowed, Pluralize, `${Acc}${A}{{${B}}}`, Key> : never : `${Acc}${S}`;
type SkipAllowedKeyOrThrow<S extends string, Rep extends Payload | undefined, Allowed extends 'all' | ReadonlyArray<string>, Pluralize extends Pluralizer | undefined, Acc extends string, Key extends string> = Allowed extends 'all' ? SimpleReplace<S, Rep, Allowed, Pluralize, Acc> : Key extends Allowed[number] ? SimpleReplace<S, Rep, Allowed, Pluralize, Acc> : never;
type SimpleReplace<S extends string, Rep extends Payload | undefined, Allowed extends 'all' | ReadonlyArray<string>, Pluralize extends Pluralizer | undefined, Acc extends string = ''> = S extends `${infer A}{{${infer B}}}${infer C}` ? Trim<B> extends infer Key extends string ? Rep extends Payload ? Key extends keyof Rep ? Rep[Key] extends undefined ? SkipAllowedKeyOrThrow<C, Rep, Allowed, Pluralize, `${Acc}${A}{{${B}}}`, Key> : SimpleReplace<C, Rep, Allowed, Pluralize, `${Acc}${A}${Rep[Key]}`> : Key extends `${infer TemplateFunction extends keyof TemplateFunctions}(${infer Args})` ? SimpleReplace<C, Rep, Allowed, Pluralize, `${Acc}${A}${ApplyTemplateFunction<TemplateFunction, Args, Rep, Pluralize>}`> : SkipAllowedKeyOrThrow<C, Rep, Allowed, Pluralize, `${Acc}${A}{{${B}}}`, Key> : SkipAllowedKeyOrThrow<C, Rep, Allowed, Pluralize, `${Acc}${A}{{${B}}}`, Key> : never : `${Acc}${S}`;
declare const COUNTS_TRANSLATION_KEYS_PATHS: {

@@ -29,3 +29,3 @@ readonly 0: "zero";

type NumberToCountsTranslationKey<Count extends number> = Count extends keyof CountsTranslationKeysPaths ? CountsTranslationKeysPaths[Count] : `${Count}` extends `-${infer _}` ? never : 'many';
export type DeepReplace<T, Replacements extends Payload | undefined, AllowedLeftovers extends 'all' | readonly string[], Pluralize extends Pluralizer | undefined> = T extends string ? SimpleReplace<T, Replacements, AllowedLeftovers, Pluralize> : T extends Dictionary ? Replacements extends {
export type DeepReplace<T, Replacements extends Payload | undefined, AllowedLeftovers extends 'all' | ReadonlyArray<string>, Pluralize extends Pluralizer | undefined> = T extends string ? SimpleReplace<T, Replacements, AllowedLeftovers, Pluralize> : T extends Dictionary ? Replacements extends {
count: infer Count extends number;

@@ -45,4 +45,4 @@ } ? IsCountsTranslation<T> extends true ? NumberToCountsTranslationKey<Count> extends infer Key ? Key extends keyof T ? SimpleReplace<T[Key] & string, Replacements, AllowedLeftovers, Pluralize> : 'many' extends keyof T ? SimpleReplace<T['many'] & string, Replacements, AllowedLeftovers, Pluralize> : never : never : {

*/
declare function deepReplace<const T extends string | DeepArray<Primitive> | DeepObject<Primitive>, const Replacements extends Payload | undefined = undefined, const AllowedLeftovers extends 'all' | readonly string[] = readonly [], Pluralize extends Pluralizer | undefined = undefined>(target: T, replacements?: Replacements, allowedLeftovers?: AllowedLeftovers, pluralize?: Pluralize): DeepReplace<T, Replacements, AllowedLeftovers, Pluralize>;
declare function deepReplace<const T extends string | Array<DeepNode<Primitive>> | DeepObject<Primitive>, const Replacements extends Payload | undefined = undefined, const AllowedLeftovers extends 'all' | ReadonlyArray<string> = readonly [], Pluralize extends Pluralizer | undefined = undefined>(target: T, replacements?: Replacements, allowedLeftovers?: AllowedLeftovers, pluralize?: Pluralize): DeepReplace<T, Replacements, AllowedLeftovers, Pluralize>;
export default deepReplace;
//# sourceMappingURL=replace.d.ts.map

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

{"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../src/replace.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../src/replace.ts"],"names":[],"mappings":"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"}

@@ -28,9 +28,14 @@ "use strict";

*/
function deepReplace(target, replacements = {}, allowedLeftovers = [], pluralize) {
function deepReplace(target, replacements, allowedLeftovers, pluralize) {
const reps = replacements ?? {};
const lefs = allowedLeftovers ?? [];
if ((0, utils_1.isString)(target)) {
return _simpleReplace(target, replacements, allowedLeftovers, pluralize);
return _simpleReplace(target, reps, lefs, pluralize);
}
const clone = structuredClone(target);
return _deepReplace(clone, replacements, allowedLeftovers, pluralize);
return _deepReplace(clone, reps, lefs, pluralize);
}
/**
* Replaces in a string.
*/
function _simpleReplace(value, replacements, allowedLeftovers, pluralize) {

@@ -37,0 +42,0 @@ return value.replace(/{{([^}]+)}}/g, (match, key) => {

{
"name": "@umatch/language",
"version": "4.3.4",
"version": "4.3.5",
"main": "lib/index.js",

@@ -5,0 +5,0 @@ "types": "lib/index.d.ts",

@@ -118,9 +118,3 @@ import {

: never
: never;
public getNotification(
locale: Locales,
path: string,
replacements: Payload = {},
allowedLeftovers: 'all' | string[] = [],
): { title: string; body: string } {
: never {
const { titles, bodies } = this.get(

@@ -134,3 +128,26 @@ locale,

const [title, body] = [titles, bodies].map(pickRandom);
return { title, body };
return { title, body } as Translation extends {
titles: readonly (infer Title)[];
bodies: readonly (infer Body)[];
}
? DeepReplace<
Title,
Replacements,
AllowedLeftovers,
Pluralize
> extends infer FinalTitle extends string
? DeepReplace<
Body,
Replacements,
AllowedLeftovers,
Pluralize
> extends infer FinalBody extends string
? FinalTitle extends never
? never
: FinalBody extends never
? never
: { title: FinalTitle; body: FinalBody }
: never
: never
: never;
}

@@ -137,0 +154,0 @@

@@ -6,3 +6,2 @@ import {

isString,
type DeepArray,
type DeepNode,

@@ -27,3 +26,3 @@ type DeepObject,

Rep extends Payload | undefined,
Allowed extends 'all' | readonly string[],
Allowed extends 'all' | ReadonlyArray<string>,
Pluralize extends Pluralizer | undefined,

@@ -41,3 +40,3 @@ Acc extends string,

Rep extends Payload | undefined,
Allowed extends 'all' | readonly string[],
Allowed extends 'all' | ReadonlyArray<string>,
Pluralize extends Pluralizer | undefined,

@@ -113,3 +112,3 @@ Acc extends string = '',

Replacements extends Payload | undefined,
AllowedLeftovers extends 'all' | readonly string[],
AllowedLeftovers extends 'all' | ReadonlyArray<string>,
Pluralize extends Pluralizer | undefined,

@@ -141,5 +140,5 @@ > = T extends string

function deepReplace<
const T extends string | DeepArray<Primitive> | DeepObject<Primitive>,
const T extends string | Array<DeepNode<Primitive>> | DeepObject<Primitive>,
const Replacements extends Payload | undefined = undefined,
const AllowedLeftovers extends 'all' | readonly string[] = readonly [],
const AllowedLeftovers extends 'all' | ReadonlyArray<string> = readonly [],
Pluralize extends Pluralizer | undefined = undefined,

@@ -151,23 +150,24 @@ >(

pluralize?: Pluralize,
): DeepReplace<T, Replacements, AllowedLeftovers, Pluralize>;
/**
* Replaces all occurrences of {{ value }} in all strings inside target with the
* corresponding value in the replacements object. Also evaluates [template functions]{@link import('./templateFunctions').TemplateFunctions}.
*
* @throws if, for any of the values that need replacing:
* - it isn't whitelisted via the allowedLeftovers param.
* - it is not present in the replacements object or has the value of undefined.
*/
function deepReplace(
target: string | Array<DeepNode<Primitive>> | DeepObject<Primitive>,
replacements: Payload = {},
allowedLeftovers: 'all' | string[] = [],
pluralize?: Pluralizer,
): string | Array<DeepNode<Primitive>> | DeepObject<Primitive> {
): DeepReplace<T, Replacements, AllowedLeftovers, Pluralize> {
const reps = replacements ?? {};
const lefs = allowedLeftovers ?? [];
if (isString(target)) {
return _simpleReplace(target, replacements, allowedLeftovers, pluralize);
return _simpleReplace(target, reps, lefs, pluralize) as string as DeepReplace<
T,
Replacements,
AllowedLeftovers,
Pluralize
>;
}
const clone = structuredClone(target);
return _deepReplace(clone, replacements, allowedLeftovers, pluralize);
const clone = structuredClone(target) as
| Array<DeepNode<Primitive>>
| DeepObject<Primitive>;
return _deepReplace(clone, reps, lefs, pluralize) as DeepReplace<
T,
Replacements,
AllowedLeftovers,
Pluralize
>;
}

@@ -180,4 +180,4 @@

S extends string,
const Replacements extends Payload | undefined = undefined,
const AllowedLeftovers extends 'all' | string[] = [],
const Replacements extends Payload,
const AllowedLeftovers extends 'all' | ReadonlyArray<string> = [],
Pluralize extends Pluralizer | undefined = undefined,

@@ -189,9 +189,3 @@ >(

pluralize?: Pluralizer,
): SimpleReplace<S, Replacements, AllowedLeftovers, Pluralize>;
function _simpleReplace(
value: string,
replacements: Payload,
allowedLeftovers: 'all' | string[],
pluralize?: Pluralizer,
): string {
): SimpleReplace<S, Replacements, AllowedLeftovers, Pluralize> {
return value.replace(/{{([^}]+)}}/g, (match, key) => {

@@ -214,3 +208,3 @@ key = key.trim();

return String(val);
});
}) as SimpleReplace<S, Replacements, AllowedLeftovers, Pluralize>;
}

@@ -236,3 +230,3 @@

replacements: Payload,
allowedLeftovers: 'all' | string[],
allowedLeftovers: 'all' | ReadonlyArray<string>,
pluralize?: Pluralizer,

@@ -239,0 +233,0 @@ ): T | string {