fix: passing number format to reports

This commit is contained in:
Ahmed Bouhuolia
2025-12-11 00:19:55 +02:00
parent d006362be2
commit 340b78d968
20 changed files with 308 additions and 163 deletions

View File

@@ -7,53 +7,46 @@ import {
} from '@nestjs/common'; } from '@nestjs/common';
import { type Observable } from 'rxjs'; import { type Observable } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { mapKeysDeep } from '@/utils/deepdash';
export function camelToSnake<T = any>(value: T) { export function camelToSnake<T = any>(value: T): T {
if (value === null || value === undefined) { if (value === null || value === undefined) {
return value; return value;
} }
if (Array.isArray(value)) { return mapKeysDeep(
return value.map(camelToSnake); value,
} (_value: string, key: any, parent: any, context: any) => {
if (typeof value === 'object' && !(value instanceof Date)) { if (Array.isArray(parent)) {
return Object.fromEntries( // tell mapKeysDeep to skip mapping inside this branch
Object.entries(value).map(([key, value]) => [ context.skipChildren = true;
key return key;
.split(/(?=[A-Z])/) }
.join('_') return key
.toLowerCase(), .split(/(?=[A-Z])/)
camelToSnake(value), .join('_')
]), .toLowerCase();
); },
} ) as T;
return value;
} }
export function snakeToCamel<T = any>(value: T) { export function snakeToCamel<T = any>(value: T): T {
if (value === null || value === undefined) { if (value === null || value === undefined) {
return value; return value;
} }
return mapKeysDeep(
if (Array.isArray(value)) { value,
return value.map(snakeToCamel); (_value: string, key: any, parent: any, context: any) => {
} if (Array.isArray(parent)) {
// tell mapKeysDeep to skip mapping inside this branch
const impl = (str: string) => { context.skipChildren = true;
const converted = str.replace(/([-_]\w)/g, (group) => return key;
group[1].toUpperCase(), }
); const converted = key.replace(/([-_]\w)/g, (group) =>
return converted[0].toLowerCase() + converted.slice(1); group[1].toUpperCase(),
}; );
return converted[0].toLowerCase() + converted.slice(1);
if (typeof value === 'object' && !(value instanceof Date)) { },
return Object.fromEntries( ) as T;
Object.entries(value).map(([key, value]) => [
impl(key),
snakeToCamel(value),
]),
);
}
return value;
} }
export const DEFAULT_STRATEGY = { export const DEFAULT_STRATEGY = {
@@ -63,7 +56,7 @@ export const DEFAULT_STRATEGY = {
@Injectable() @Injectable()
export class SerializeInterceptor implements NestInterceptor<any, any> { export class SerializeInterceptor implements NestInterceptor<any, any> {
constructor(@Optional() readonly strategy = DEFAULT_STRATEGY) {} constructor(@Optional() readonly strategy = DEFAULT_STRATEGY) { }
intercept( intercept(
context: ExecutionContext, context: ExecutionContext,

View File

@@ -8,6 +8,7 @@ import { ServiceErrorFilter } from './common/filters/service-error.filter';
import { ModelHasRelationsFilter } from './common/filters/model-has-relations.filter'; import { ModelHasRelationsFilter } from './common/filters/model-has-relations.filter';
import { ValidationPipe } from './common/pipes/ClassValidation.pipe'; import { ValidationPipe } from './common/pipes/ClassValidation.pipe';
import { ToJsonInterceptor } from './common/interceptors/to-json.interceptor'; import { ToJsonInterceptor } from './common/interceptors/to-json.interceptor';
import { NestExpressApplication } from '@nestjs/platform-express';
global.__public_dirname = path.join(__dirname, '..', 'public'); global.__public_dirname = path.join(__dirname, '..', 'public');
global.__static_dirname = path.join(__dirname, '../static'); global.__static_dirname = path.join(__dirname, '../static');
@@ -15,7 +16,10 @@ global.__views_dirname = path.join(global.__static_dirname, '/views');
global.__images_dirname = path.join(global.__static_dirname, '/images'); global.__images_dirname = path.join(global.__static_dirname, '/images');
async function bootstrap() { async function bootstrap() {
const app = await NestFactory.create(AppModule, { rawBody: true }); const app = await NestFactory.create<NestExpressApplication>(AppModule, {
rawBody: true,
});
app.set('query parser', 'extended');
app.setGlobalPrefix('/api'); app.setGlobalPrefix('/api');
// create and mount the middleware manually here // create and mount the middleware manually here

View File

@@ -1,4 +1,4 @@
import { Type } from 'class-transformer'; import { Transform, Type } from 'class-transformer';
import { import {
IsBoolean, IsBoolean,
IsEnum, IsEnum,
@@ -7,6 +7,7 @@ import {
IsPositive, IsPositive,
} from 'class-validator'; } from 'class-validator';
import { ApiPropertyOptional } from '@nestjs/swagger'; import { ApiPropertyOptional } from '@nestjs/swagger';
import { parseBoolean } from '@/utils/parse-boolean';
export class NumberFormatQueryDto { export class NumberFormatQueryDto {
@ApiPropertyOptional({ @ApiPropertyOptional({
@@ -24,6 +25,7 @@ export class NumberFormatQueryDto {
example: false, example: false,
}) })
@IsBoolean() @IsBoolean()
@Transform(({ value }) => parseBoolean(value, false))
@IsOptional() @IsOptional()
readonly divideOn1000: boolean; readonly divideOn1000: boolean;
@@ -32,6 +34,7 @@ export class NumberFormatQueryDto {
example: true, example: true,
}) })
@IsBoolean() @IsBoolean()
@Transform(({ value }) => parseBoolean(value, false))
@IsOptional() @IsOptional()
readonly showZero: boolean; readonly showZero: boolean;

View File

@@ -81,6 +81,7 @@ export class CashFlowStatementQueryDto extends FinancialSheetBranchesQueryDto {
}) })
@ValidateNested() @ValidateNested()
@Type(() => NumberFormatQueryDto) @Type(() => NumberFormatQueryDto)
@IsOptional()
numberFormat: NumberFormatQueryDto; numberFormat: NumberFormatQueryDto;
@ApiProperty({ @ApiProperty({

View File

@@ -32,7 +32,7 @@ export class InventoryItemDetailsQueryDto {
@ApiPropertyOptional({ @ApiPropertyOptional({
description: 'Number format for the inventory item details', description: 'Number format for the inventory item details',
}) })
numberFormat: INumberFormatQuery; numberFormat: NumberFormatQueryDto;
@Transform(({ value }) => parseBoolean(value, false)) @Transform(({ value }) => parseBoolean(value, false))
@IsBoolean() @IsBoolean()

View File

@@ -7,11 +7,13 @@ import {
IsEnum, IsEnum,
IsOptional, IsOptional,
IsString, IsString,
ValidateNested,
} from 'class-validator'; } from 'class-validator';
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { Transform, Type } from 'class-transformer'; import { Transform, Type } from 'class-transformer';
import { ToNumber } from '@/common/decorators/Validators'; import { ToNumber } from '@/common/decorators/Validators';
import { parseBoolean } from '@/utils/parse-boolean'; import { parseBoolean } from '@/utils/parse-boolean';
import { NumberFormatQueryDto } from '@/modules/BankingTransactions/dtos/NumberFormatQuery.dto';
export class ProfitLossSheetQueryDto extends FinancialSheetBranchesQueryDto { export class ProfitLossSheetQueryDto extends FinancialSheetBranchesQueryDto {
@IsString() @IsString()
@@ -30,8 +32,10 @@ export class ProfitLossSheetQueryDto extends FinancialSheetBranchesQueryDto {
toDate: moment.MomentInput; toDate: moment.MomentInput;
@ApiProperty({ description: 'Number format configuration' }) @ApiProperty({ description: 'Number format configuration' })
@Type(() => Object) @ValidateNested()
numberFormat: INumberFormatQuery; @Type(() => NumberFormatQueryDto)
@IsOptional()
numberFormat: NumberFormatQueryDto;
@IsBoolean() @IsBoolean()
@Transform(({ value }) => parseBoolean(value, false)) @Transform(({ value }) => parseBoolean(value, false))

View File

@@ -78,7 +78,7 @@
"plaid-threads": "^11.4.3", "plaid-threads": "^11.4.3",
"polished": "^4.3.1", "polished": "^4.3.1",
"prop-types": "15.8.1", "prop-types": "15.8.1",
"query-string": "^7.1.1", "qs": "^6.14.0",
"ramda": "^0.27.1", "ramda": "^0.27.1",
"react": "^18.2.0", "react": "^18.2.0",
"react-body-classname": "^1.3.1", "react-body-classname": "^1.3.1",

View File

@@ -22,6 +22,7 @@ export const getDefaultAPAgingSummaryQuery = () => {
filterByOption: 'without-zero-balance', filterByOption: 'without-zero-balance',
vendorsIds: [], vendorsIds: [],
branchesIds: [], branchesIds: [],
numberFormat: {},
}; };
}; };

View File

@@ -21,6 +21,7 @@ export const getDefaultARAgingSummaryQuery = () => {
filterByOption: 'without-zero-balance', filterByOption: 'without-zero-balance',
customersIds: [], customersIds: [],
branchesIds: [], branchesIds: [],
numberFormat: {},
}; };
}; };

View File

@@ -33,6 +33,7 @@ export const getDefaultBalanceSheetQuery = () => ({
percentageOfRow: false, percentageOfRow: false,
branchesIds: [], branchesIds: [],
numberFormat: {},
}); });
/** /**

View File

@@ -17,6 +17,7 @@ export const getDefaultCashFlowSheetQuery = () => {
displayColumnsType: 'total', displayColumnsType: 'total',
filterByOption: 'with-transactions', filterByOption: 'with-transactions',
branchesIds: [], branchesIds: [],
numberFormat: {},
}; };
}; };

View File

@@ -18,6 +18,7 @@ export const getInventoryItemDetailsDefaultQuery = () => ({
itemsIds: [], itemsIds: [],
warehousesIds: [], warehousesIds: [],
branchesIds: [], branchesIds: [],
numberFormat: {},
}); });
/** /**

View File

@@ -35,6 +35,7 @@ export const getDefaultProfitLossQuery = () => ({
percentageExpense: false, percentageExpense: false,
branchesIds: [], branchesIds: [],
numberFormat: {},
}); });
/** /**
@@ -50,7 +51,6 @@ const parseProfitLossQuery = (locationQuery) => {
return { return {
...transformed, ...transformed,
// Ensures the branches ids is always array. // Ensures the branches ids is always array.
branchesIds: castArray(transformed.branchesIds), branchesIds: castArray(transformed.branchesIds),
}; };

View File

@@ -17,6 +17,7 @@ export function getDefaultTrialBalanceQuery() {
basis: 'accrual', basis: 'accrual',
filterByOption: 'with-transactions', filterByOption: 'with-transactions',
branchesIds: [], branchesIds: [],
numberFormat: {},
}; };
} }

View File

@@ -42,7 +42,6 @@ export const transformAccountsFilter = (form) => {
*/ */
export const transformFilterFormToQuery = (form) => { export const transformFilterFormToQuery = (form) => {
return R.compose( return R.compose(
R.curry(flatten)({ safe: true }),
transfromToSnakeCase, transfromToSnakeCase,
transformAccountsFilter, transformAccountsFilter,
transformDisplayColumnsType, transformDisplayColumnsType,

View File

@@ -1,16 +1,10 @@
// @ts-nocheck // @ts-nocheck
import { Dispatch, SetStateAction, useEffect, useRef, useState } from 'react'; import { Dispatch, SetStateAction, useEffect, useRef, useState } from 'react';
import { import * as qs from 'qs';
ParseOptions,
ParsedQuery,
StringifyOptions,
parse,
stringify,
} from 'query-string';
import { useHistory } from 'react-router'; import { useHistory } from 'react-router';
export interface QueryStringResult { export interface QueryStringResult {
[0]: ParsedQuery; [0]: Record<string, any>;
[1]: Dispatch<SetStateAction<Record<string, any>>>; [1]: Dispatch<SetStateAction<Record<string, any>>>;
} }
@@ -20,6 +14,61 @@ type NavigateCallback = (
stringifedParams: string, stringifedParams: string,
) => void; ) => void;
type ParseOptions = {
parseNumbers?: boolean;
parseBooleans?: boolean;
[key: string]: any;
};
type StringifyOptions = qs.IStringifyOptions;
/**
* Checks if a string represents a number (including negatives, decimals, scientific notation)
*/
const isNumber = (val: string): boolean => {
return !isNaN(parseFloat(val)) && isFinite(Number(val)) && val !== '';
};
/**
* Checks if a string represents a boolean
*/
const isBoolean = (val: string): boolean => {
return val === 'false' || val === 'true';
};
/**
* Custom decoder for qs to parse numbers and booleans
* Based on query-types library approach: https://github.com/xpepermint/query-types
*/
const createDecoder = (parseNumbers: boolean, parseBooleans: boolean) => {
return (str: string, defaultDecoder?: any, charset?: string, type?: 'key' | 'value') => {
// Only decode values, not keys
if (type === 'key') {
return defaultDecoder ? defaultDecoder(str, defaultDecoder, charset) : str;
}
// First decode using default decoder
const decoded = defaultDecoder ? defaultDecoder(str, defaultDecoder, charset) : decodeURIComponent(str);
// Handle empty strings and undefined
if (typeof decoded === 'undefined' || decoded === '') {
return null;
}
// Parse booleans first (before numbers, as 'true'/'false' are strings)
if (parseBooleans && isBoolean(decoded)) {
return decoded === 'true';
}
// Parse numbers if enabled (handles integers, decimals, negatives, scientific notation)
if (parseNumbers && isNumber(decoded)) {
return Number(decoded);
}
return decoded;
};
};
/** /**
* Query string. * Query string.
* @param {Location} location * @param {Location} location
@@ -35,14 +84,28 @@ export function useQueryString(
stringifyOptions?: StringifyOptions, stringifyOptions?: StringifyOptions,
): QueryStringResult { ): QueryStringResult {
const isFirst = useRef(true); const isFirst = useRef(true);
const [state, setState] = useState(parse(location.search, parseOptions));
// Extract parseNumbers and parseBooleans from parseOptions
const { parseNumbers = false, parseBooleans = false, ...qsParseOptions } = parseOptions || {};
// Create decoder if needed
const parseConfig = {
...qsParseOptions,
...(parseNumbers || parseBooleans ? {
decoder: createDecoder(parseNumbers, parseBooleans),
} : {}),
};
const [state, setState] = useState(
qs.parse(location.search.substring(1), parseConfig)
);
useEffect((): void => { useEffect((): void => {
if (isFirst.current) { if (isFirst.current) {
isFirst.current = false; isFirst.current = false;
} else { } else {
const pathname = location.pathname; const pathname = location.pathname;
const stringifedParams = stringify(state, stringifyOptions); const stringifedParams = qs.stringify(state, stringifyOptions);
const pathnameWithParams = pathname + '?' + stringifedParams; const pathnameWithParams = pathname + '?' + stringifedParams;
navigate(pathnameWithParams, pathname, stringifedParams); navigate(pathnameWithParams, pathname, stringifedParams);
@@ -52,7 +115,7 @@ export function useQueryString(
const setQuery: typeof setState = (values): void => { const setQuery: typeof setState = (values): void => {
const nextState = typeof values === 'function' ? values(state) : values; const nextState = typeof values === 'function' ? values(state) : values;
setState( setState(
(state): ParsedQuery => ({ (state): Record<string, any> => ({
...state, ...state,
...nextState, ...nextState,
}), }),
@@ -78,7 +141,6 @@ export const useAppQueryString = (
window.location, window.location,
(pathnameWithParams, pathname, stringifiedParams) => { (pathnameWithParams, pathname, stringifiedParams) => {
history.push({ pathname, search: stringifiedParams }); history.push({ pathname, search: stringifiedParams });
navigate && navigate(pathnameWithParams, pathname, stringifiedParams); navigate && navigate(pathnameWithParams, pathname, stringifiedParams);
}, },
{ {

278
pnpm-lock.yaml generated
View File

@@ -279,6 +279,9 @@ importers:
pug: pug:
specifier: ^3.0.2 specifier: ^3.0.2
version: 3.0.2 version: 3.0.2
qs:
specifier: ^6.14.0
version: 6.14.0
ramda: ramda:
specifier: ^0.30.1 specifier: ^0.30.1
version: 0.30.1 version: 0.30.1
@@ -343,6 +346,9 @@ importers:
'@types/node': '@types/node':
specifier: ^20.3.1 specifier: ^20.3.1
version: 20.5.1 version: 20.5.1
'@types/qs':
specifier: ^6.14.0
version: 6.14.0
'@types/supertest': '@types/supertest':
specifier: ^6.0.0 specifier: ^6.0.0
version: 6.0.2 version: 6.0.2
@@ -622,6 +628,9 @@ importers:
prop-types: prop-types:
specifier: 15.8.1 specifier: 15.8.1
version: 15.8.1 version: 15.8.1
qs:
specifier: ^6.14.0
version: 6.14.0
query-string: query-string:
specifier: ^7.1.1 specifier: ^7.1.1
version: 7.1.3 version: 7.1.3
@@ -2503,7 +2512,7 @@ packages:
dependencies: dependencies:
'@babel/core': 7.28.5 '@babel/core': 7.28.5
'@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.28.5) '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1 '@babel/helper-plugin-utils': 7.25.9
dev: true dev: true
/@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.26.0): /@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.26.0):
@@ -3151,7 +3160,7 @@ packages:
'@babel/core': ^7.0.0-0 '@babel/core': ^7.0.0-0
dependencies: dependencies:
'@babel/core': 7.28.5 '@babel/core': 7.28.5
'@babel/helper-module-imports': 7.27.1 '@babel/helper-module-imports': 7.25.9(supports-color@5.5.0)
'@babel/helper-plugin-utils': 7.27.1 '@babel/helper-plugin-utils': 7.27.1
'@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.28.5) '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.28.5)
transitivePeerDependencies: transitivePeerDependencies:
@@ -10798,7 +10807,7 @@ packages:
'@storybook/client-logger': 7.2.2 '@storybook/client-logger': 7.2.2
'@storybook/core-events': 7.2.2 '@storybook/core-events': 7.2.2
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
qs: 6.12.1 qs: 6.14.0
telejson: 7.2.0 telejson: 7.2.0
tiny-invariant: 1.3.3 tiny-invariant: 1.3.3
dev: true dev: true
@@ -10809,7 +10818,7 @@ packages:
'@storybook/client-logger': 7.6.17 '@storybook/client-logger': 7.6.17
'@storybook/core-events': 7.6.17 '@storybook/core-events': 7.6.17
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
qs: 6.13.0 qs: 6.14.0
telejson: 7.2.0 telejson: 7.2.0
tiny-invariant: 1.3.3 tiny-invariant: 1.3.3
dev: true dev: true
@@ -10820,7 +10829,7 @@ packages:
'@storybook/client-logger': 7.6.20 '@storybook/client-logger': 7.6.20
'@storybook/core-events': 7.6.20 '@storybook/core-events': 7.6.20
'@storybook/global': 5.0.0 '@storybook/global': 5.0.0
qs: 6.13.0 qs: 6.14.0
telejson: 7.2.0 telejson: 7.2.0
tiny-invariant: 1.3.3 tiny-invariant: 1.3.3
dev: true dev: true
@@ -11280,7 +11289,7 @@ packages:
dequal: 2.0.3 dequal: 2.0.3
lodash: 4.17.21 lodash: 4.17.21
memoizerific: 1.11.3 memoizerific: 1.11.3
qs: 6.12.1 qs: 6.14.0
synchronous-promise: 2.0.17 synchronous-promise: 2.0.17
ts-dedent: 2.2.0 ts-dedent: 2.2.0
util-deprecate: 1.0.2 util-deprecate: 1.0.2
@@ -11299,7 +11308,7 @@ packages:
dequal: 2.0.3 dequal: 2.0.3
lodash: 4.17.21 lodash: 4.17.21
memoizerific: 1.11.3 memoizerific: 1.11.3
qs: 6.12.1 qs: 6.14.0
synchronous-promise: 2.0.17 synchronous-promise: 2.0.17
ts-dedent: 2.2.0 ts-dedent: 2.2.0
util-deprecate: 1.0.2 util-deprecate: 1.0.2
@@ -11396,7 +11405,7 @@ packages:
dependencies: dependencies:
'@storybook/client-logger': 7.2.2 '@storybook/client-logger': 7.2.2
memoizerific: 1.11.3 memoizerific: 1.11.3
qs: 6.12.1 qs: 6.14.0
react: 18.3.1 react: 18.3.1
react-dom: 18.3.1(react@18.3.1) react-dom: 18.3.1(react@18.3.1)
dev: true dev: true
@@ -11406,7 +11415,7 @@ packages:
dependencies: dependencies:
'@storybook/client-logger': 7.6.17 '@storybook/client-logger': 7.6.17
memoizerific: 1.11.3 memoizerific: 1.11.3
qs: 6.13.0 qs: 6.14.0
dev: true dev: true
/@storybook/router@7.6.20: /@storybook/router@7.6.20:
@@ -11414,7 +11423,7 @@ packages:
dependencies: dependencies:
'@storybook/client-logger': 7.6.20 '@storybook/client-logger': 7.6.20
memoizerific: 1.11.3 memoizerific: 1.11.3
qs: 6.13.0 qs: 6.14.0
dev: true dev: true
/@storybook/telemetry@7.2.2: /@storybook/telemetry@7.2.2:
@@ -12200,7 +12209,7 @@ packages:
resolution: {integrity: sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==} resolution: {integrity: sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==}
dependencies: dependencies:
'@types/node': 20.19.25 '@types/node': 20.19.25
'@types/qs': 6.9.15 '@types/qs': 6.14.0
'@types/range-parser': 1.2.7 '@types/range-parser': 1.2.7
'@types/send': 0.17.4 '@types/send': 0.17.4
@@ -12218,7 +12227,7 @@ packages:
dependencies: dependencies:
'@types/body-parser': 1.19.5 '@types/body-parser': 1.19.5
'@types/express-serve-static-core': 5.0.1 '@types/express-serve-static-core': 5.0.1
'@types/qs': 6.9.15 '@types/qs': 6.14.0
'@types/serve-static': 1.15.7 '@types/serve-static': 1.15.7
/@types/find-cache-dir@3.2.1: /@types/find-cache-dir@3.2.1:
@@ -12461,8 +12470,12 @@ packages:
/@types/prop-types@15.7.12: /@types/prop-types@15.7.12:
resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
/@types/qs@6.14.0:
resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
/@types/qs@6.9.15: /@types/qs@6.9.15:
resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==}
dev: true
/@types/ramda@0.28.25: /@types/ramda@0.28.25:
resolution: {integrity: sha512-HrQNqQAGcITpn9HAJFamDxm7iZeeXiP/95pN5OMbNniDjzCCeOHbBKNGmUy8NRi0fhYS+/cXeo91MFC+06gbow==} resolution: {integrity: sha512-HrQNqQAGcITpn9HAJFamDxm7iZeeXiP/95pN5OMbNniDjzCCeOHbBKNGmUy8NRi0fhYS+/cXeo91MFC+06gbow==}
@@ -13893,8 +13906,8 @@ packages:
call-bind: 1.0.7 call-bind: 1.0.7
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.23.3 es-abstract: 1.23.3
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
is-string: 1.0.7 is-string: 1.0.7
dev: true dev: true
@@ -13915,7 +13928,7 @@ packages:
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.23.3 es-abstract: 1.23.3
es-errors: 1.3.0 es-errors: 1.3.0
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
es-shim-unscopables: 1.0.2 es-shim-unscopables: 1.0.2
dev: true dev: true
@@ -13927,7 +13940,7 @@ packages:
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.23.3 es-abstract: 1.23.3
es-errors: 1.3.0 es-errors: 1.3.0
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
es-shim-unscopables: 1.0.2 es-shim-unscopables: 1.0.2
dev: true dev: true
@@ -13979,7 +13992,7 @@ packages:
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.23.3 es-abstract: 1.23.3
es-errors: 1.3.0 es-errors: 1.3.0
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
is-array-buffer: 3.0.4 is-array-buffer: 3.0.4
is-shared-array-buffer: 1.0.3 is-shared-array-buffer: 1.0.3
dev: true dev: true
@@ -14862,16 +14875,30 @@ packages:
keyv: 5.2.1 keyv: 5.2.1
dev: false dev: false
/call-bind-apply-helpers@1.0.2:
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
function-bind: 1.1.2
/call-bind@1.0.7: /call-bind@1.0.7:
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
es-define-property: 1.0.0 es-define-property: 1.0.1
es-errors: 1.3.0 es-errors: 1.3.0
function-bind: 1.1.2 function-bind: 1.1.2
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
set-function-length: 1.2.2 set-function-length: 1.2.2
/call-bound@1.0.4:
resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
engines: {node: '>= 0.4'}
dependencies:
call-bind-apply-helpers: 1.0.2
get-intrinsic: 1.3.0
/callsites@3.1.0: /callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'} engines: {node: '>=6'}
@@ -15972,7 +15999,7 @@ packages:
array-buffer-byte-length: 1.0.1 array-buffer-byte-length: 1.0.1
call-bind: 1.0.7 call-bind: 1.0.7
es-get-iterator: 1.1.3 es-get-iterator: 1.1.3
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
is-arguments: 1.1.1 is-arguments: 1.1.1
is-array-buffer: 3.0.4 is-array-buffer: 3.0.4
is-date-object: 1.0.5 is-date-object: 1.0.5
@@ -15983,7 +16010,7 @@ packages:
object-keys: 1.1.1 object-keys: 1.1.1
object.assign: 4.1.5 object.assign: 4.1.5
regexp.prototype.flags: 1.5.2 regexp.prototype.flags: 1.5.2
side-channel: 1.0.6 side-channel: 1.1.0
which-boxed-primitive: 1.0.2 which-boxed-primitive: 1.0.2
which-collection: 1.0.2 which-collection: 1.0.2
which-typed-array: 1.1.15 which-typed-array: 1.1.15
@@ -16025,9 +16052,9 @@ packages:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
es-define-property: 1.0.0 es-define-property: 1.0.1
es-errors: 1.3.0 es-errors: 1.3.0
gopd: 1.0.1 gopd: 1.2.0
/define-lazy-prop@2.0.0: /define-lazy-prop@2.0.0:
resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
@@ -16302,6 +16329,14 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
dev: false dev: false
/dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
dependencies:
call-bind-apply-helpers: 1.0.2
es-errors: 1.3.0
gopd: 1.2.0
/duplexer2@0.1.4: /duplexer2@0.1.4:
resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==}
dependencies: dependencies:
@@ -16511,19 +16546,19 @@ packages:
data-view-buffer: 1.0.1 data-view-buffer: 1.0.1
data-view-byte-length: 1.0.1 data-view-byte-length: 1.0.1
data-view-byte-offset: 1.0.0 data-view-byte-offset: 1.0.0
es-define-property: 1.0.0 es-define-property: 1.0.1
es-errors: 1.3.0 es-errors: 1.3.0
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
es-set-tostringtag: 2.0.3 es-set-tostringtag: 2.0.3
es-to-primitive: 1.2.1 es-to-primitive: 1.2.1
function.prototype.name: 1.1.6 function.prototype.name: 1.1.6
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
get-symbol-description: 1.0.2 get-symbol-description: 1.0.2
globalthis: 1.0.4 globalthis: 1.0.4
gopd: 1.0.1 gopd: 1.2.0
has-property-descriptors: 1.0.2 has-property-descriptors: 1.0.2
has-proto: 1.0.3 has-proto: 1.0.3
has-symbols: 1.0.3 has-symbols: 1.1.0
hasown: 2.0.2 hasown: 2.0.2
internal-slot: 1.0.7 internal-slot: 1.0.7
is-array-buffer: 3.0.4 is-array-buffer: 3.0.4
@@ -16535,7 +16570,7 @@ packages:
is-string: 1.0.7 is-string: 1.0.7
is-typed-array: 1.1.13 is-typed-array: 1.1.13
is-weakref: 1.0.2 is-weakref: 1.0.2
object-inspect: 1.13.1 object-inspect: 1.13.4
object-keys: 1.1.1 object-keys: 1.1.1
object.assign: 4.1.5 object.assign: 4.1.5
regexp.prototype.flags: 1.5.2 regexp.prototype.flags: 1.5.2
@@ -16552,11 +16587,9 @@ packages:
which-typed-array: 1.1.15 which-typed-array: 1.1.15
dev: true dev: true
/es-define-property@1.0.0: /es-define-property@1.0.1:
resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies:
get-intrinsic: 1.2.4
/es-errors@1.3.0: /es-errors@1.3.0:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
@@ -16566,8 +16599,8 @@ packages:
resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
has-symbols: 1.0.3 has-symbols: 1.1.0
is-arguments: 1.1.1 is-arguments: 1.1.1
is-map: 2.0.3 is-map: 2.0.3
is-set: 2.0.3 is-set: 2.0.3
@@ -16586,11 +16619,11 @@ packages:
es-errors: 1.3.0 es-errors: 1.3.0
es-set-tostringtag: 2.0.3 es-set-tostringtag: 2.0.3
function-bind: 1.1.2 function-bind: 1.1.2
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
globalthis: 1.0.4 globalthis: 1.0.4
has-property-descriptors: 1.0.2 has-property-descriptors: 1.0.2
has-proto: 1.0.3 has-proto: 1.0.3
has-symbols: 1.0.3 has-symbols: 1.1.0
internal-slot: 1.0.7 internal-slot: 1.0.7
iterator.prototype: 1.1.2 iterator.prototype: 1.1.2
safe-array-concat: 1.1.2 safe-array-concat: 1.1.2
@@ -16603,18 +16636,17 @@ packages:
/es-module-lexer@1.5.3: /es-module-lexer@1.5.3:
resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==}
/es-object-atoms@1.0.0: /es-object-atoms@1.1.1:
resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
es-errors: 1.3.0 es-errors: 1.3.0
dev: true
/es-set-tostringtag@2.0.3: /es-set-tostringtag@2.0.3:
resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
has-tostringtag: 1.0.2 has-tostringtag: 1.0.2
hasown: 2.0.2 hasown: 2.0.2
dev: true dev: true
@@ -18072,15 +18104,20 @@ packages:
engines: {node: 6.* || 8.* || >= 10.*} engines: {node: 6.* || 8.* || >= 10.*}
dev: true dev: true
/get-intrinsic@1.2.4: /get-intrinsic@1.3.0:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
call-bind-apply-helpers: 1.0.2
es-define-property: 1.0.1
es-errors: 1.3.0 es-errors: 1.3.0
es-object-atoms: 1.1.1
function-bind: 1.1.2 function-bind: 1.1.2
has-proto: 1.0.3 get-proto: 1.0.1
has-symbols: 1.0.3 gopd: 1.2.0
has-symbols: 1.1.0
hasown: 2.0.2 hasown: 2.0.2
math-intrinsics: 1.1.0
/get-nonce@1.0.1: /get-nonce@1.0.1:
resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
@@ -18111,6 +18148,13 @@ packages:
resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==}
engines: {node: '>=8'} engines: {node: '>=8'}
/get-proto@1.0.1:
resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
engines: {node: '>= 0.4'}
dependencies:
dunder-proto: 1.0.1
es-object-atoms: 1.1.1
/get-stream@6.0.0: /get-stream@6.0.0:
resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==}
engines: {node: '>=10'} engines: {node: '>=10'}
@@ -18131,7 +18175,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
es-errors: 1.3.0 es-errors: 1.3.0
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
dev: true dev: true
/getopts@2.3.0: /getopts@2.3.0:
@@ -18315,7 +18359,7 @@ packages:
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
define-properties: 1.2.1 define-properties: 1.2.1
gopd: 1.0.1 gopd: 1.2.0
dev: true dev: true
/globby@11.1.0: /globby@11.1.0:
@@ -18330,10 +18374,9 @@ packages:
slash: 3.0.0 slash: 3.0.0
dev: true dev: true
/gopd@1.0.1: /gopd@1.2.0:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
dependencies: engines: {node: '>= 0.4'}
get-intrinsic: 1.2.4
/graceful-fs@4.2.11: /graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
@@ -18395,21 +18438,22 @@ packages:
/has-property-descriptors@1.0.2: /has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies: dependencies:
es-define-property: 1.0.0 es-define-property: 1.0.1
/has-proto@1.0.3: /has-proto@1.0.3:
resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dev: true
/has-symbols@1.0.3: /has-symbols@1.1.0:
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
/has-tostringtag@1.0.2: /has-tostringtag@1.0.2:
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
has-symbols: 1.0.3 has-symbols: 1.1.0
/has-unicode@2.0.1: /has-unicode@2.0.1:
resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
@@ -18871,7 +18915,7 @@ packages:
dependencies: dependencies:
es-errors: 1.3.0 es-errors: 1.3.0
hasown: 2.0.2 hasown: 2.0.2
side-channel: 1.0.6 side-channel: 1.1.0
dev: true dev: true
/interpret@2.2.0: /interpret@2.2.0:
@@ -18975,7 +19019,7 @@ packages:
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
dev: true dev: true
/is-arrayish@0.2.1: /is-arrayish@0.2.1:
@@ -19235,7 +19279,7 @@ packages:
resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
has-symbols: 1.0.3 has-symbols: 1.1.0
dev: true dev: true
/is-text-path@1.0.1: /is-text-path@1.0.1:
@@ -19276,7 +19320,7 @@ packages:
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
dev: true dev: true
/is-what@3.14.1: /is-what@3.14.1:
@@ -19379,8 +19423,8 @@ packages:
resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
dependencies: dependencies:
define-properties: 1.2.1 define-properties: 1.2.1
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
has-symbols: 1.0.3 has-symbols: 1.1.0
reflect.getprototypeof: 1.0.6 reflect.getprototypeof: 1.0.6
set-function-name: 2.0.2 set-function-name: 2.0.2
dev: true dev: true
@@ -20810,6 +20854,10 @@ packages:
remove-accents: 0.5.0 remove-accents: 0.5.0
dev: false dev: false
/math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
/mathjs@9.5.2: /mathjs@9.5.2:
resolution: {integrity: sha512-c0erTq0GP503/Ch2OtDOAn50GIOsuxTMjmE00NI/vKJFSWrDaQHRjx6ai+16xYv70yBSnnpUgHZGNf9FR9IwmA==} resolution: {integrity: sha512-c0erTq0GP503/Ch2OtDOAn50GIOsuxTMjmE00NI/vKJFSWrDaQHRjx6ai+16xYv70yBSnnpUgHZGNf9FR9IwmA==}
engines: {node: '>= 12'} engines: {node: '>= 12'}
@@ -21834,8 +21882,9 @@ packages:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
/object-inspect@1.13.1: /object-inspect@1.13.4:
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
/object-is@1.1.6: /object-is@1.1.6:
resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
@@ -21858,7 +21907,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
define-properties: 1.2.1 define-properties: 1.2.1
has-symbols: 1.0.3 has-symbols: 1.1.0
object-keys: 1.1.1 object-keys: 1.1.1
dev: true dev: true
@@ -21868,7 +21917,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
define-properties: 1.2.1 define-properties: 1.2.1
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
dev: true dev: true
/object.fromentries@2.0.8: /object.fromentries@2.0.8:
@@ -21878,7 +21927,7 @@ packages:
call-bind: 1.0.7 call-bind: 1.0.7
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.23.3 es-abstract: 1.23.3
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
dev: true dev: true
/object.groupby@1.0.3: /object.groupby@1.0.3:
@@ -21896,7 +21945,7 @@ packages:
dependencies: dependencies:
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.23.3 es-abstract: 1.23.3
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
dev: true dev: true
/object.values@1.2.0: /object.values@1.2.0:
@@ -21905,7 +21954,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
define-properties: 1.2.1 define-properties: 1.2.1
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
dev: true dev: true
/objection@3.1.5(knex@3.1.0): /objection@3.1.5(knex@3.1.0):
@@ -23179,20 +23228,20 @@ packages:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
engines: {node: '>=0.6'} engines: {node: '>=0.6'}
dependencies: dependencies:
side-channel: 1.0.6 side-channel: 1.1.0
dev: true dev: true
/qs@6.12.1:
resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==}
engines: {node: '>=0.6'}
dependencies:
side-channel: 1.0.6
/qs@6.13.0: /qs@6.13.0:
resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
engines: {node: '>=0.6'} engines: {node: '>=0.6'}
dependencies: dependencies:
side-channel: 1.0.6 side-channel: 1.1.0
/qs@6.14.0:
resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
engines: {node: '>=0.6'}
dependencies:
side-channel: 1.1.0
/query-string@7.1.3: /query-string@7.1.3:
resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==}
@@ -24224,7 +24273,7 @@ packages:
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.23.3 es-abstract: 1.23.3
es-errors: 1.3.0 es-errors: 1.3.0
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
globalthis: 1.0.4 globalthis: 1.0.4
which-builtin-type: 1.1.3 which-builtin-type: 1.1.3
dev: true dev: true
@@ -24589,8 +24638,8 @@ packages:
engines: {node: '>=0.4'} engines: {node: '>=0.4'}
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
has-symbols: 1.0.3 has-symbols: 1.1.0
isarray: 2.0.5 isarray: 2.0.5
dev: true dev: true
@@ -24857,8 +24906,8 @@ packages:
define-data-property: 1.1.4 define-data-property: 1.1.4
es-errors: 1.3.0 es-errors: 1.3.0
function-bind: 1.1.2 function-bind: 1.1.2
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
gopd: 1.0.1 gopd: 1.2.0
has-property-descriptors: 1.0.2 has-property-descriptors: 1.0.2
/set-function-name@2.0.2: /set-function-name@2.0.2:
@@ -24898,14 +24947,41 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'} engines: {node: '>=8'}
/side-channel@1.0.6: /side-channel-list@1.0.0:
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
dependencies: dependencies:
call-bind: 1.0.7
es-errors: 1.3.0 es-errors: 1.3.0
get-intrinsic: 1.2.4 object-inspect: 1.13.4
object-inspect: 1.13.1
/side-channel-map@1.0.1:
resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
get-intrinsic: 1.3.0
object-inspect: 1.13.4
/side-channel-weakmap@1.0.2:
resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
engines: {node: '>= 0.4'}
dependencies:
call-bound: 1.0.4
es-errors: 1.3.0
get-intrinsic: 1.3.0
object-inspect: 1.13.4
side-channel-map: 1.0.1
/side-channel@1.1.0:
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
engines: {node: '>= 0.4'}
dependencies:
es-errors: 1.3.0
object-inspect: 1.13.4
side-channel-list: 1.0.0
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
/siginfo@2.0.0: /siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
@@ -25338,14 +25414,14 @@ packages:
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.23.3 es-abstract: 1.23.3
es-errors: 1.3.0 es-errors: 1.3.0
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
get-intrinsic: 1.2.4 get-intrinsic: 1.3.0
gopd: 1.0.1 gopd: 1.2.0
has-symbols: 1.0.3 has-symbols: 1.1.0
internal-slot: 1.0.7 internal-slot: 1.0.7
regexp.prototype.flags: 1.5.2 regexp.prototype.flags: 1.5.2
set-function-name: 2.0.2 set-function-name: 2.0.2
side-channel: 1.0.6 side-channel: 1.1.0
dev: true dev: true
/string.prototype.trim@1.2.9: /string.prototype.trim@1.2.9:
@@ -25355,7 +25431,7 @@ packages:
call-bind: 1.0.7 call-bind: 1.0.7
define-properties: 1.2.1 define-properties: 1.2.1
es-abstract: 1.23.3 es-abstract: 1.23.3
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
dev: true dev: true
/string.prototype.trimend@1.0.8: /string.prototype.trimend@1.0.8:
@@ -25363,7 +25439,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
define-properties: 1.2.1 define-properties: 1.2.1
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
dev: true dev: true
/string.prototype.trimstart@1.0.8: /string.prototype.trimstart@1.0.8:
@@ -25372,7 +25448,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
define-properties: 1.2.1 define-properties: 1.2.1
es-object-atoms: 1.0.0 es-object-atoms: 1.1.1
dev: true dev: true
/string_decoder@0.10.31: /string_decoder@0.10.31:
@@ -25441,7 +25517,7 @@ packages:
engines: {node: '>=12.*'} engines: {node: '>=12.*'}
dependencies: dependencies:
'@types/node': 20.5.1 '@types/node': 20.5.1
qs: 6.12.1 qs: 6.14.0
dev: false dev: false
/strnum@1.0.5: /strnum@1.0.5:
@@ -25566,7 +25642,7 @@ packages:
formidable: 3.5.2 formidable: 3.5.2
methods: 1.1.2 methods: 1.1.2
mime: 2.6.0 mime: 2.6.0
qs: 6.13.0 qs: 6.14.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@@ -26363,7 +26439,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
for-each: 0.3.3 for-each: 0.3.3
gopd: 1.0.1 gopd: 1.2.0
has-proto: 1.0.3 has-proto: 1.0.3
is-typed-array: 1.1.13 is-typed-array: 1.1.13
dev: true dev: true
@@ -26375,7 +26451,7 @@ packages:
available-typed-arrays: 1.0.7 available-typed-arrays: 1.0.7
call-bind: 1.0.7 call-bind: 1.0.7
for-each: 0.3.3 for-each: 0.3.3
gopd: 1.0.1 gopd: 1.2.0
has-proto: 1.0.3 has-proto: 1.0.3
is-typed-array: 1.1.13 is-typed-array: 1.1.13
dev: true dev: true
@@ -26386,7 +26462,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
for-each: 0.3.3 for-each: 0.3.3
gopd: 1.0.1 gopd: 1.2.0
has-proto: 1.0.3 has-proto: 1.0.3
is-typed-array: 1.1.13 is-typed-array: 1.1.13
possible-typed-array-names: 1.0.0 possible-typed-array-names: 1.0.0
@@ -26480,7 +26556,7 @@ packages:
dependencies: dependencies:
call-bind: 1.0.7 call-bind: 1.0.7
has-bigints: 1.0.2 has-bigints: 1.0.2
has-symbols: 1.0.3 has-symbols: 1.1.0
which-boxed-primitive: 1.0.2 which-boxed-primitive: 1.0.2
dev: true dev: true
@@ -27254,7 +27330,7 @@ packages:
available-typed-arrays: 1.0.7 available-typed-arrays: 1.0.7
call-bind: 1.0.7 call-bind: 1.0.7
for-each: 0.3.3 for-each: 0.3.3
gopd: 1.0.1 gopd: 1.2.0
has-tostringtag: 1.0.2 has-tostringtag: 1.0.2
dev: true dev: true

View File

@@ -1 +0,0 @@

View File

@@ -1 +0,0 @@

View File

@@ -1 +0,0 @@