From 340b78d9684879d87d50de2be6b03fa73f272af2 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Thu, 11 Dec 2025 00:19:55 +0200 Subject: [PATCH] fix: passing number format to reports --- .../interceptors/serialize.interceptor.ts | 71 ++--- packages/server/src/main.ts | 6 +- .../dtos/NumberFormatQuery.dto.ts | 5 +- .../CashFlowStatementQuery.dto.ts | 1 + .../InventoryItemDetailsQuery.dto.ts | 2 +- .../ProfitLossSheetQuery.dto.ts | 8 +- packages/webapp/package.json | 2 +- .../APAgingSummary/common.tsx | 1 + .../ARAgingSummary/common.tsx | 1 + .../BalanceSheet/utils.tsx | 1 + .../CashFlowStatement/utils.tsx | 1 + .../InventoryItemDetails/utils2.tsx | 1 + .../ProfitLossSheet/utils.tsx | 2 +- .../TrialBalanceSheet/utils.tsx | 1 + .../containers/FinancialStatements/common.tsx | 1 - packages/webapp/src/hooks/useQueryString.ts | 86 +++++- pnpm-lock.yaml | 278 +++++++++++------- src/errors/service-error.ts | 1 - src/filters/service-error.filter.ts | 1 - src/main.ts | 1 - 20 files changed, 308 insertions(+), 163 deletions(-) delete mode 100644 src/errors/service-error.ts delete mode 100644 src/filters/service-error.filter.ts delete mode 100644 src/main.ts diff --git a/packages/server/src/common/interceptors/serialize.interceptor.ts b/packages/server/src/common/interceptors/serialize.interceptor.ts index e18c13845..d0eb60d12 100644 --- a/packages/server/src/common/interceptors/serialize.interceptor.ts +++ b/packages/server/src/common/interceptors/serialize.interceptor.ts @@ -7,53 +7,46 @@ import { } from '@nestjs/common'; import { type Observable } from 'rxjs'; import { map } from 'rxjs/operators'; +import { mapKeysDeep } from '@/utils/deepdash'; -export function camelToSnake(value: T) { +export function camelToSnake(value: T): T { if (value === null || value === undefined) { return value; } - if (Array.isArray(value)) { - return value.map(camelToSnake); - } - if (typeof value === 'object' && !(value instanceof Date)) { - return Object.fromEntries( - Object.entries(value).map(([key, value]) => [ - key - .split(/(?=[A-Z])/) - .join('_') - .toLowerCase(), - camelToSnake(value), - ]), - ); - } - return value; + return mapKeysDeep( + value, + (_value: string, key: any, parent: any, context: any) => { + if (Array.isArray(parent)) { + // tell mapKeysDeep to skip mapping inside this branch + context.skipChildren = true; + return key; + } + return key + .split(/(?=[A-Z])/) + .join('_') + .toLowerCase(); + }, + ) as T; } -export function snakeToCamel(value: T) { +export function snakeToCamel(value: T): T { if (value === null || value === undefined) { return value; } - - if (Array.isArray(value)) { - return value.map(snakeToCamel); - } - - const impl = (str: string) => { - const converted = str.replace(/([-_]\w)/g, (group) => - group[1].toUpperCase(), - ); - return converted[0].toLowerCase() + converted.slice(1); - }; - - if (typeof value === 'object' && !(value instanceof Date)) { - return Object.fromEntries( - Object.entries(value).map(([key, value]) => [ - impl(key), - snakeToCamel(value), - ]), - ); - } - return value; + return mapKeysDeep( + value, + (_value: string, key: any, parent: any, context: any) => { + if (Array.isArray(parent)) { + // tell mapKeysDeep to skip mapping inside this branch + context.skipChildren = true; + return key; + } + const converted = key.replace(/([-_]\w)/g, (group) => + group[1].toUpperCase(), + ); + return converted[0].toLowerCase() + converted.slice(1); + }, + ) as T; } export const DEFAULT_STRATEGY = { @@ -63,7 +56,7 @@ export const DEFAULT_STRATEGY = { @Injectable() export class SerializeInterceptor implements NestInterceptor { - constructor(@Optional() readonly strategy = DEFAULT_STRATEGY) {} + constructor(@Optional() readonly strategy = DEFAULT_STRATEGY) { } intercept( context: ExecutionContext, diff --git a/packages/server/src/main.ts b/packages/server/src/main.ts index 41d5863a5..1cd28fd0f 100644 --- a/packages/server/src/main.ts +++ b/packages/server/src/main.ts @@ -8,6 +8,7 @@ import { ServiceErrorFilter } from './common/filters/service-error.filter'; import { ModelHasRelationsFilter } from './common/filters/model-has-relations.filter'; import { ValidationPipe } from './common/pipes/ClassValidation.pipe'; import { ToJsonInterceptor } from './common/interceptors/to-json.interceptor'; +import { NestExpressApplication } from '@nestjs/platform-express'; global.__public_dirname = path.join(__dirname, '..', 'public'); 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'); async function bootstrap() { - const app = await NestFactory.create(AppModule, { rawBody: true }); + const app = await NestFactory.create(AppModule, { + rawBody: true, + }); + app.set('query parser', 'extended'); app.setGlobalPrefix('/api'); // create and mount the middleware manually here diff --git a/packages/server/src/modules/BankingTransactions/dtos/NumberFormatQuery.dto.ts b/packages/server/src/modules/BankingTransactions/dtos/NumberFormatQuery.dto.ts index 97f7d6066..b3ed12702 100644 --- a/packages/server/src/modules/BankingTransactions/dtos/NumberFormatQuery.dto.ts +++ b/packages/server/src/modules/BankingTransactions/dtos/NumberFormatQuery.dto.ts @@ -1,4 +1,4 @@ -import { Type } from 'class-transformer'; +import { Transform, Type } from 'class-transformer'; import { IsBoolean, IsEnum, @@ -7,6 +7,7 @@ import { IsPositive, } from 'class-validator'; import { ApiPropertyOptional } from '@nestjs/swagger'; +import { parseBoolean } from '@/utils/parse-boolean'; export class NumberFormatQueryDto { @ApiPropertyOptional({ @@ -24,6 +25,7 @@ export class NumberFormatQueryDto { example: false, }) @IsBoolean() + @Transform(({ value }) => parseBoolean(value, false)) @IsOptional() readonly divideOn1000: boolean; @@ -32,6 +34,7 @@ export class NumberFormatQueryDto { example: true, }) @IsBoolean() + @Transform(({ value }) => parseBoolean(value, false)) @IsOptional() readonly showZero: boolean; diff --git a/packages/server/src/modules/FinancialStatements/modules/CashFlowStatement/CashFlowStatementQuery.dto.ts b/packages/server/src/modules/FinancialStatements/modules/CashFlowStatement/CashFlowStatementQuery.dto.ts index 4b61c144b..b4f07e670 100644 --- a/packages/server/src/modules/FinancialStatements/modules/CashFlowStatement/CashFlowStatementQuery.dto.ts +++ b/packages/server/src/modules/FinancialStatements/modules/CashFlowStatement/CashFlowStatementQuery.dto.ts @@ -81,6 +81,7 @@ export class CashFlowStatementQueryDto extends FinancialSheetBranchesQueryDto { }) @ValidateNested() @Type(() => NumberFormatQueryDto) + @IsOptional() numberFormat: NumberFormatQueryDto; @ApiProperty({ diff --git a/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsQuery.dto.ts b/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsQuery.dto.ts index 2dae617cc..bd6086410 100644 --- a/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsQuery.dto.ts +++ b/packages/server/src/modules/FinancialStatements/modules/InventoryItemDetails/InventoryItemDetailsQuery.dto.ts @@ -32,7 +32,7 @@ export class InventoryItemDetailsQueryDto { @ApiPropertyOptional({ description: 'Number format for the inventory item details', }) - numberFormat: INumberFormatQuery; + numberFormat: NumberFormatQueryDto; @Transform(({ value }) => parseBoolean(value, false)) @IsBoolean() diff --git a/packages/server/src/modules/FinancialStatements/modules/ProfitLossSheet/ProfitLossSheetQuery.dto.ts b/packages/server/src/modules/FinancialStatements/modules/ProfitLossSheet/ProfitLossSheetQuery.dto.ts index 11c2ed599..e84acea94 100644 --- a/packages/server/src/modules/FinancialStatements/modules/ProfitLossSheet/ProfitLossSheetQuery.dto.ts +++ b/packages/server/src/modules/FinancialStatements/modules/ProfitLossSheet/ProfitLossSheetQuery.dto.ts @@ -7,11 +7,13 @@ import { IsEnum, IsOptional, IsString, + ValidateNested, } from 'class-validator'; import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { Transform, Type } from 'class-transformer'; import { ToNumber } from '@/common/decorators/Validators'; import { parseBoolean } from '@/utils/parse-boolean'; +import { NumberFormatQueryDto } from '@/modules/BankingTransactions/dtos/NumberFormatQuery.dto'; export class ProfitLossSheetQueryDto extends FinancialSheetBranchesQueryDto { @IsString() @@ -30,8 +32,10 @@ export class ProfitLossSheetQueryDto extends FinancialSheetBranchesQueryDto { toDate: moment.MomentInput; @ApiProperty({ description: 'Number format configuration' }) - @Type(() => Object) - numberFormat: INumberFormatQuery; + @ValidateNested() + @Type(() => NumberFormatQueryDto) + @IsOptional() + numberFormat: NumberFormatQueryDto; @IsBoolean() @Transform(({ value }) => parseBoolean(value, false)) diff --git a/packages/webapp/package.json b/packages/webapp/package.json index 4c4884333..edc6bdd90 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -78,7 +78,7 @@ "plaid-threads": "^11.4.3", "polished": "^4.3.1", "prop-types": "15.8.1", - "query-string": "^7.1.1", + "qs": "^6.14.0", "ramda": "^0.27.1", "react": "^18.2.0", "react-body-classname": "^1.3.1", diff --git a/packages/webapp/src/containers/FinancialStatements/APAgingSummary/common.tsx b/packages/webapp/src/containers/FinancialStatements/APAgingSummary/common.tsx index a5619532b..ab9118f02 100644 --- a/packages/webapp/src/containers/FinancialStatements/APAgingSummary/common.tsx +++ b/packages/webapp/src/containers/FinancialStatements/APAgingSummary/common.tsx @@ -22,6 +22,7 @@ export const getDefaultAPAgingSummaryQuery = () => { filterByOption: 'without-zero-balance', vendorsIds: [], branchesIds: [], + numberFormat: {}, }; }; diff --git a/packages/webapp/src/containers/FinancialStatements/ARAgingSummary/common.tsx b/packages/webapp/src/containers/FinancialStatements/ARAgingSummary/common.tsx index 6152b25c2..deae32e27 100644 --- a/packages/webapp/src/containers/FinancialStatements/ARAgingSummary/common.tsx +++ b/packages/webapp/src/containers/FinancialStatements/ARAgingSummary/common.tsx @@ -21,6 +21,7 @@ export const getDefaultARAgingSummaryQuery = () => { filterByOption: 'without-zero-balance', customersIds: [], branchesIds: [], + numberFormat: {}, }; }; diff --git a/packages/webapp/src/containers/FinancialStatements/BalanceSheet/utils.tsx b/packages/webapp/src/containers/FinancialStatements/BalanceSheet/utils.tsx index 2b9a2facd..925dc3da1 100644 --- a/packages/webapp/src/containers/FinancialStatements/BalanceSheet/utils.tsx +++ b/packages/webapp/src/containers/FinancialStatements/BalanceSheet/utils.tsx @@ -33,6 +33,7 @@ export const getDefaultBalanceSheetQuery = () => ({ percentageOfRow: false, branchesIds: [], + numberFormat: {}, }); /** diff --git a/packages/webapp/src/containers/FinancialStatements/CashFlowStatement/utils.tsx b/packages/webapp/src/containers/FinancialStatements/CashFlowStatement/utils.tsx index 6606ce259..6c8a953f2 100644 --- a/packages/webapp/src/containers/FinancialStatements/CashFlowStatement/utils.tsx +++ b/packages/webapp/src/containers/FinancialStatements/CashFlowStatement/utils.tsx @@ -17,6 +17,7 @@ export const getDefaultCashFlowSheetQuery = () => { displayColumnsType: 'total', filterByOption: 'with-transactions', branchesIds: [], + numberFormat: {}, }; }; diff --git a/packages/webapp/src/containers/FinancialStatements/InventoryItemDetails/utils2.tsx b/packages/webapp/src/containers/FinancialStatements/InventoryItemDetails/utils2.tsx index d786403be..989ff8e00 100644 --- a/packages/webapp/src/containers/FinancialStatements/InventoryItemDetails/utils2.tsx +++ b/packages/webapp/src/containers/FinancialStatements/InventoryItemDetails/utils2.tsx @@ -18,6 +18,7 @@ export const getInventoryItemDetailsDefaultQuery = () => ({ itemsIds: [], warehousesIds: [], branchesIds: [], + numberFormat: {}, }); /** diff --git a/packages/webapp/src/containers/FinancialStatements/ProfitLossSheet/utils.tsx b/packages/webapp/src/containers/FinancialStatements/ProfitLossSheet/utils.tsx index 91ee66d4e..4172b5fcb 100644 --- a/packages/webapp/src/containers/FinancialStatements/ProfitLossSheet/utils.tsx +++ b/packages/webapp/src/containers/FinancialStatements/ProfitLossSheet/utils.tsx @@ -35,6 +35,7 @@ export const getDefaultProfitLossQuery = () => ({ percentageExpense: false, branchesIds: [], + numberFormat: {}, }); /** @@ -50,7 +51,6 @@ const parseProfitLossQuery = (locationQuery) => { return { ...transformed, - // Ensures the branches ids is always array. branchesIds: castArray(transformed.branchesIds), }; diff --git a/packages/webapp/src/containers/FinancialStatements/TrialBalanceSheet/utils.tsx b/packages/webapp/src/containers/FinancialStatements/TrialBalanceSheet/utils.tsx index f28dac8bf..87d19296e 100644 --- a/packages/webapp/src/containers/FinancialStatements/TrialBalanceSheet/utils.tsx +++ b/packages/webapp/src/containers/FinancialStatements/TrialBalanceSheet/utils.tsx @@ -17,6 +17,7 @@ export function getDefaultTrialBalanceQuery() { basis: 'accrual', filterByOption: 'with-transactions', branchesIds: [], + numberFormat: {}, }; } diff --git a/packages/webapp/src/containers/FinancialStatements/common.tsx b/packages/webapp/src/containers/FinancialStatements/common.tsx index 77bf4a520..deb96b7bf 100644 --- a/packages/webapp/src/containers/FinancialStatements/common.tsx +++ b/packages/webapp/src/containers/FinancialStatements/common.tsx @@ -42,7 +42,6 @@ export const transformAccountsFilter = (form) => { */ export const transformFilterFormToQuery = (form) => { return R.compose( - R.curry(flatten)({ safe: true }), transfromToSnakeCase, transformAccountsFilter, transformDisplayColumnsType, diff --git a/packages/webapp/src/hooks/useQueryString.ts b/packages/webapp/src/hooks/useQueryString.ts index 412154288..67ee242b4 100644 --- a/packages/webapp/src/hooks/useQueryString.ts +++ b/packages/webapp/src/hooks/useQueryString.ts @@ -1,16 +1,10 @@ // @ts-nocheck import { Dispatch, SetStateAction, useEffect, useRef, useState } from 'react'; -import { - ParseOptions, - ParsedQuery, - StringifyOptions, - parse, - stringify, -} from 'query-string'; +import * as qs from 'qs'; import { useHistory } from 'react-router'; export interface QueryStringResult { - [0]: ParsedQuery; + [0]: Record; [1]: Dispatch>>; } @@ -20,6 +14,61 @@ type NavigateCallback = ( stringifedParams: string, ) => 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. * @param {Location} location @@ -35,14 +84,28 @@ export function useQueryString( stringifyOptions?: StringifyOptions, ): QueryStringResult { 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 => { if (isFirst.current) { isFirst.current = false; } else { const pathname = location.pathname; - const stringifedParams = stringify(state, stringifyOptions); + const stringifedParams = qs.stringify(state, stringifyOptions); const pathnameWithParams = pathname + '?' + stringifedParams; navigate(pathnameWithParams, pathname, stringifedParams); @@ -52,7 +115,7 @@ export function useQueryString( const setQuery: typeof setState = (values): void => { const nextState = typeof values === 'function' ? values(state) : values; setState( - (state): ParsedQuery => ({ + (state): Record => ({ ...state, ...nextState, }), @@ -78,7 +141,6 @@ export const useAppQueryString = ( window.location, (pathnameWithParams, pathname, stringifiedParams) => { history.push({ pathname, search: stringifiedParams }); - navigate && navigate(pathnameWithParams, pathname, stringifiedParams); }, { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9580edde4..17a285db2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -279,6 +279,9 @@ importers: pug: specifier: ^3.0.2 version: 3.0.2 + qs: + specifier: ^6.14.0 + version: 6.14.0 ramda: specifier: ^0.30.1 version: 0.30.1 @@ -343,6 +346,9 @@ importers: '@types/node': specifier: ^20.3.1 version: 20.5.1 + '@types/qs': + specifier: ^6.14.0 + version: 6.14.0 '@types/supertest': specifier: ^6.0.0 version: 6.0.2 @@ -622,6 +628,9 @@ importers: prop-types: specifier: 15.8.1 version: 15.8.1 + qs: + specifier: ^6.14.0 + version: 6.14.0 query-string: specifier: ^7.1.1 version: 7.1.3 @@ -2503,7 +2512,7 @@ packages: dependencies: '@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 /@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.26.0): @@ -3151,7 +3160,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@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-remap-async-to-generator': 7.22.20(@babel/core@7.28.5) transitivePeerDependencies: @@ -10798,7 +10807,7 @@ packages: '@storybook/client-logger': 7.2.2 '@storybook/core-events': 7.2.2 '@storybook/global': 5.0.0 - qs: 6.12.1 + qs: 6.14.0 telejson: 7.2.0 tiny-invariant: 1.3.3 dev: true @@ -10809,7 +10818,7 @@ packages: '@storybook/client-logger': 7.6.17 '@storybook/core-events': 7.6.17 '@storybook/global': 5.0.0 - qs: 6.13.0 + qs: 6.14.0 telejson: 7.2.0 tiny-invariant: 1.3.3 dev: true @@ -10820,7 +10829,7 @@ packages: '@storybook/client-logger': 7.6.20 '@storybook/core-events': 7.6.20 '@storybook/global': 5.0.0 - qs: 6.13.0 + qs: 6.14.0 telejson: 7.2.0 tiny-invariant: 1.3.3 dev: true @@ -11280,7 +11289,7 @@ packages: dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 - qs: 6.12.1 + qs: 6.14.0 synchronous-promise: 2.0.17 ts-dedent: 2.2.0 util-deprecate: 1.0.2 @@ -11299,7 +11308,7 @@ packages: dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 - qs: 6.12.1 + qs: 6.14.0 synchronous-promise: 2.0.17 ts-dedent: 2.2.0 util-deprecate: 1.0.2 @@ -11396,7 +11405,7 @@ packages: dependencies: '@storybook/client-logger': 7.2.2 memoizerific: 1.11.3 - qs: 6.12.1 + qs: 6.14.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: true @@ -11406,7 +11415,7 @@ packages: dependencies: '@storybook/client-logger': 7.6.17 memoizerific: 1.11.3 - qs: 6.13.0 + qs: 6.14.0 dev: true /@storybook/router@7.6.20: @@ -11414,7 +11423,7 @@ packages: dependencies: '@storybook/client-logger': 7.6.20 memoizerific: 1.11.3 - qs: 6.13.0 + qs: 6.14.0 dev: true /@storybook/telemetry@7.2.2: @@ -12200,7 +12209,7 @@ packages: resolution: {integrity: sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==} dependencies: '@types/node': 20.19.25 - '@types/qs': 6.9.15 + '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -12218,7 +12227,7 @@ packages: dependencies: '@types/body-parser': 1.19.5 '@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/find-cache-dir@3.2.1: @@ -12461,8 +12470,12 @@ packages: /@types/prop-types@15.7.12: resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + /@types/qs@6.14.0: + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + /@types/qs@6.9.15: resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + dev: true /@types/ramda@0.28.25: resolution: {integrity: sha512-HrQNqQAGcITpn9HAJFamDxm7iZeeXiP/95pN5OMbNniDjzCCeOHbBKNGmUy8NRi0fhYS+/cXeo91MFC+06gbow==} @@ -13893,8 +13906,8 @@ packages: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 is-string: 1.0.7 dev: true @@ -13915,7 +13928,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.23.3 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 dev: true @@ -13927,7 +13940,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.23.3 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 dev: true @@ -13979,7 +13992,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.23.3 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 dev: true @@ -14862,16 +14875,30 @@ packages: keyv: 5.2.1 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: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 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: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -15972,7 +15999,7 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 is-arguments: 1.1.1 is-array-buffer: 3.0.4 is-date-object: 1.0.5 @@ -15983,7 +16010,7 @@ packages: object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 - side-channel: 1.0.6 + side-channel: 1.1.0 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 @@ -16025,9 +16052,9 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 - gopd: 1.0.1 + gopd: 1.2.0 /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -16302,6 +16329,14 @@ packages: engines: {node: '>=10'} 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: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} dependencies: @@ -16511,19 +16546,19 @@ packages: data-view-buffer: 1.0.1 data-view-byte-length: 1.0.1 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-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 get-symbol-description: 1.0.2 globalthis: 1.0.4 - gopd: 1.0.1 + gopd: 1.2.0 has-property-descriptors: 1.0.2 has-proto: 1.0.3 - has-symbols: 1.0.3 + has-symbols: 1.1.0 hasown: 2.0.2 internal-slot: 1.0.7 is-array-buffer: 3.0.4 @@ -16535,7 +16570,7 @@ packages: is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 - object-inspect: 1.13.1 + object-inspect: 1.13.4 object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 @@ -16552,11 +16587,9 @@ packages: which-typed-array: 1.1.15 dev: true - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + /es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 /es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} @@ -16566,8 +16599,8 @@ packages: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 is-arguments: 1.1.1 is-map: 2.0.3 is-set: 2.0.3 @@ -16586,11 +16619,11 @@ packages: es-errors: 1.3.0 es-set-tostringtag: 2.0.3 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 globalthis: 1.0.4 has-property-descriptors: 1.0.2 has-proto: 1.0.3 - has-symbols: 1.0.3 + has-symbols: 1.1.0 internal-slot: 1.0.7 iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 @@ -16603,18 +16636,17 @@ packages: /es-module-lexer@1.5.3: resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} - /es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + /es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 - dev: true /es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 dev: true @@ -18072,15 +18104,20 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + /get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 es-errors: 1.3.0 + es-object-atoms: 1.1.1 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.1.0 /get-nonce@1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} @@ -18111,6 +18148,13 @@ packages: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} 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: resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} engines: {node: '>=10'} @@ -18131,7 +18175,7 @@ packages: dependencies: call-bind: 1.0.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 dev: true /getopts@2.3.0: @@ -18315,7 +18359,7 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 dev: true /globby@11.1.0: @@ -18330,10 +18374,9 @@ packages: slash: 3.0.0 dev: true - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.4 + /gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -18395,21 +18438,22 @@ packages: /has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 /has-proto@1.0.3: resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} + dev: true - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + /has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} /has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 /has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} @@ -18871,7 +18915,7 @@ packages: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 dev: true /interpret@2.2.0: @@ -18975,7 +19019,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 dev: true /is-arrayish@0.2.1: @@ -19235,7 +19279,7 @@ packages: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 dev: true /is-text-path@1.0.1: @@ -19276,7 +19320,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 dev: true /is-what@3.14.1: @@ -19379,8 +19423,8 @@ packages: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 dev: true @@ -20810,6 +20854,10 @@ packages: remove-accents: 0.5.0 dev: false + /math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + /mathjs@9.5.2: resolution: {integrity: sha512-c0erTq0GP503/Ch2OtDOAn50GIOsuxTMjmE00NI/vKJFSWrDaQHRjx6ai+16xYv70yBSnnpUgHZGNf9FR9IwmA==} engines: {node: '>= 12'} @@ -21834,8 +21882,9 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + /object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} /object-is@1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} @@ -21858,7 +21907,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - has-symbols: 1.0.3 + has-symbols: 1.1.0 object-keys: 1.1.1 dev: true @@ -21868,7 +21917,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 dev: true /object.fromentries@2.0.8: @@ -21878,7 +21927,7 @@ packages: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 dev: true /object.groupby@1.0.3: @@ -21896,7 +21945,7 @@ packages: dependencies: define-properties: 1.2.1 es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 dev: true /object.values@1.2.0: @@ -21905,7 +21954,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 dev: true /objection@3.1.5(knex@3.1.0): @@ -23179,20 +23228,20 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 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: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} 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: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} @@ -24224,7 +24273,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.23.3 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 globalthis: 1.0.4 which-builtin-type: 1.1.3 dev: true @@ -24589,8 +24638,8 @@ packages: engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 isarray: 2.0.5 dev: true @@ -24857,8 +24906,8 @@ packages: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 has-property-descriptors: 1.0.2 /set-function-name@2.0.2: @@ -24898,14 +24947,41 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + /side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + object-inspect: 1.13.4 + + /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: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -25338,14 +25414,14 @@ packages: define-properties: 1.2.1 es-abstract: 1.23.3 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-symbols: 1.0.3 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 internal-slot: 1.0.7 regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 dev: true /string.prototype.trim@1.2.9: @@ -25355,7 +25431,7 @@ packages: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 dev: true /string.prototype.trimend@1.0.8: @@ -25363,7 +25439,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 dev: true /string.prototype.trimstart@1.0.8: @@ -25372,7 +25448,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 dev: true /string_decoder@0.10.31: @@ -25441,7 +25517,7 @@ packages: engines: {node: '>=12.*'} dependencies: '@types/node': 20.5.1 - qs: 6.12.1 + qs: 6.14.0 dev: false /strnum@1.0.5: @@ -25566,7 +25642,7 @@ packages: formidable: 3.5.2 methods: 1.1.2 mime: 2.6.0 - qs: 6.13.0 + qs: 6.14.0 transitivePeerDependencies: - supports-color dev: true @@ -26363,7 +26439,7 @@ packages: dependencies: call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-proto: 1.0.3 is-typed-array: 1.1.13 dev: true @@ -26375,7 +26451,7 @@ packages: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-proto: 1.0.3 is-typed-array: 1.1.13 dev: true @@ -26386,7 +26462,7 @@ packages: dependencies: call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 @@ -26480,7 +26556,7 @@ packages: dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 - has-symbols: 1.0.3 + has-symbols: 1.1.0 which-boxed-primitive: 1.0.2 dev: true @@ -27254,7 +27330,7 @@ packages: available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-tostringtag: 1.0.2 dev: true diff --git a/src/errors/service-error.ts b/src/errors/service-error.ts deleted file mode 100644 index 0519ecba6..000000000 --- a/src/errors/service-error.ts +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/filters/service-error.filter.ts b/src/filters/service-error.filter.ts deleted file mode 100644 index 0519ecba6..000000000 --- a/src/filters/service-error.filter.ts +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main.ts b/src/main.ts deleted file mode 100644 index 0519ecba6..000000000 --- a/src/main.ts +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file