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

backk-frontend-utils

Package Overview
Dependencies
Maintainers
1
Versions
126
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

backk-frontend-utils - npm Package Compare versions

Comparing version 1.0.104 to 1.0.105

lib/decorators/typeproperty/datetime/IsDateBetween.d.ts

12

lib/index.d.ts

@@ -46,5 +46,11 @@ import 'reflect-metadata';

export { default as AcceptFileTypes } from './decorators/typeproperty/AcceptFileTypes';
export { default as IsInPast } from './decorators/typeproperty/IsInPast';
export { default as IsInFuture } from './decorators/typeproperty/IsInFuture';
export { default as IsTimestampBetween } from './decorators/typeproperty/IsTimestampBetween';
export { default as IsInPast } from './decorators/typeproperty/datetime/IsInPast';
export { default as IsInFuture } from './decorators/typeproperty/datetime/IsInFuture';
export { default as IsDateBetween } from './decorators/typeproperty/datetime/IsDateBetween';
export { default as IsDateBetweenRelative } from './decorators/typeproperty/datetime/IsDateBetweenRelative';
export { default as IsTimeBetween } from './decorators/typeproperty/datetime/IsTimeBetween';
export { default as IsTimestampBetween } from './decorators/typeproperty/datetime/IsTimestampBetween';
export { default as IsTimestampBetweenRelative } from './decorators/typeproperty/datetime/IsTimestampBetweenRelative';
export { default as IsYearAndMonthBetween } from './decorators/typeproperty/datetime/IsYearAndMonthBetween';
export { default as IsYearAndMonthBetweenRelative } from './decorators/typeproperty/datetime/IsYearAndMonthBetweenRelative';
export { default as Captcha } from './types/Captcha';

@@ -51,0 +57,0 @@ export { default as Version } from './types/Version';

@@ -41,5 +41,11 @@ import 'reflect-metadata';

export { default as AcceptFileTypes } from './decorators/typeproperty/AcceptFileTypes';
export { default as IsInPast } from './decorators/typeproperty/IsInPast';
export { default as IsInFuture } from './decorators/typeproperty/IsInFuture';
export { default as IsTimestampBetween } from './decorators/typeproperty/IsTimestampBetween';
export { default as IsInPast } from './decorators/typeproperty/datetime/IsInPast';
export { default as IsInFuture } from './decorators/typeproperty/datetime/IsInFuture';
export { default as IsDateBetween } from './decorators/typeproperty/datetime/IsDateBetween';
export { default as IsDateBetweenRelative } from './decorators/typeproperty/datetime/IsDateBetweenRelative';
export { default as IsTimeBetween } from './decorators/typeproperty/datetime/IsTimeBetween';
export { default as IsTimestampBetween } from './decorators/typeproperty/datetime/IsTimestampBetween';
export { default as IsTimestampBetweenRelative } from './decorators/typeproperty/datetime/IsTimestampBetweenRelative';
export { default as IsYearAndMonthBetween } from './decorators/typeproperty/datetime/IsYearAndMonthBetween';
export { default as IsYearAndMonthBetweenRelative } from './decorators/typeproperty/datetime/IsYearAndMonthBetweenRelative';
export { default as Captcha } from './types/Captcha';

@@ -46,0 +52,0 @@ export { default as Version } from './types/Version';

import { getMetadataStorage } from 'cv-pksilen';
import { findValidationMetadata, getValidationMetadataConstraints, hasValidationMetadata, } from '../utils/getInputType';
import dayjs from 'dayjs';
import isLeapYear from 'dayjs/plugin/isLeapYear';
dayjs.extend(isLeapYear);
const minValues = {
year: 1970,
month: 0,
date: 1,
hour: 0,
minute: 0,
};
const maxValues = {
year: 9999,
month: 11,
hour: 23,
minute: 59,
};
function getMaxDate(timestamp) {
switch (timestamp.month()) {
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
return 31;
case 3:
case 5:
case 8:
case 10:
return 30;
case 1:
if (timestamp.isLeapYear()) {
return 29;
}
return 28;
default:
throw new Error('Invalid month');
}
}
export default function getInputValidationProps(ArgumentClass, propertyName) {

@@ -114,48 +75,84 @@ const inputValidationProps = {};

else if (hasValidationMetadata(validationMetadatas, 'isDate')) {
if (hasValidationMetadata(validationMetadatas, 'isTimestampBetween')) {
const uiPropertiesMetadata = findValidationMetadata(validationMetadatas, 'uiProperties');
let uiConstraints;
if (uiPropertiesMetadata) {
uiConstraints = getValidationMetadataConstraints(uiPropertiesMetadata);
const uiPropertiesMetadata = findValidationMetadata(validationMetadatas, 'uiProperties');
let uiConstraints;
if (uiPropertiesMetadata) {
uiConstraints = getValidationMetadataConstraints(uiPropertiesMetadata);
}
const isDateBetweenValidationMetadata = findValidationMetadata(validationMetadatas, 'isDateBetween');
const isDateBetweenRelativeValidationMetadata = findValidationMetadata(validationMetadatas, 'isDateBetweenRelative');
const isTimeValidationMetadata = findValidationMetadata(validationMetadatas, 'isTimeBetween');
const isInFutureValidationMetadata = findValidationMetadata(validationMetadatas, 'isInFuture');
const isInPastValidationMetadata = findValidationMetadata(validationMetadatas, 'isInPast');
const isTimeBetweenValidationMetadata = findValidationMetadata(validationMetadatas, 'isTimeBetween');
const isTimestampBetweenValidationMetadata = findValidationMetadata(validationMetadatas, 'isTimestampBetween');
const isTimestampBetweenRelativeValidationMetadata = findValidationMetadata(validationMetadatas, 'isTimestampBetweenRelative');
const isYearAndMonthBetweenValidationMetadata = findValidationMetadata(validationMetadatas, 'isYearAndMonthBetween');
const isYearAndMonthBetweenRelativeValidationMetadata = findValidationMetadata(validationMetadatas, 'isYearAndMonthBetweenRelative');
if (uiConstraints === null || uiConstraints === void 0 ? void 0 : uiConstraints[0].isMonthAndYearOnly) {
if (isInPastValidationMetadata) {
inputValidationProps.max = dayjs().format('YYYY-MM');
}
let startTimestamp = dayjs();
let endTimestamp = dayjs();
const modifiedUnits = [];
validationMetadatas
.filter((validationMetadata) => validationMetadata.name === 'isTimestampBetween')
.forEach((validationMetadata) => {
const [unit, startValue, endValue] = getValidationMetadataConstraints(validationMetadata);
if (unit === 'isoDayOfWeek') {
return;
}
startTimestamp = startTimestamp.set(unit, startValue);
endTimestamp = endTimestamp.set(unit, endValue);
modifiedUnits.push(unit);
});
['year', 'month', 'date', 'hour', 'minute'].forEach((unit) => {
if (!modifiedUnits.includes(unit)) {
startTimestamp = startTimestamp.set(unit, minValues[unit]);
endTimestamp = endTimestamp.set(unit, unit === 'date' ? getMaxDate(endTimestamp) : maxValues[unit]);
}
});
if (modifiedUnits.length > 0) {
if (uiConstraints === null || uiConstraints === void 0 ? void 0 : uiConstraints[0].isMonthAndYearOnly) {
inputValidationProps.min = startTimestamp.format('YYYY-MM');
inputValidationProps.max = endTimestamp.format('YYYY-MM');
}
else if (uiConstraints === null || uiConstraints === void 0 ? void 0 : uiConstraints[0].isDateOnly) {
inputValidationProps.min = startTimestamp.format('YYYY-MM-DD');
inputValidationProps.max = endTimestamp.format('YYYY-MM-DD');
}
else if (uiConstraints === null || uiConstraints === void 0 ? void 0 : uiConstraints[0].isTimeOnly) {
inputValidationProps.min = startTimestamp.format('HH:mm');
inputValidationProps.max = endTimestamp.format('HH:mm');
}
else {
inputValidationProps.min =
startTimestamp.format('YYYY-MM-DD') + 'T' + startTimestamp.format('HH:mm');
inputValidationProps.max = endTimestamp.format('YYYY-MM-DD') + 'T' + endTimestamp.format('HH:mm');
}
else if (isInFutureValidationMetadata) {
inputValidationProps.min = dayjs().format('YYYY-MM');
}
else if (isYearAndMonthBetweenValidationMetadata) {
inputValidationProps.min = isYearAndMonthBetweenValidationMetadata.constraints[1];
inputValidationProps.max = isYearAndMonthBetweenValidationMetadata.constraints[2];
}
else if (isYearAndMonthBetweenRelativeValidationMetadata) {
const [, startValueSubtractAmount, startValueSubtractUnit, endValueAddAmount, endValueAddUnit] = isYearAndMonthBetweenRelativeValidationMetadata.constraints;
const startDate = dayjs()
.subtract(startValueSubtractAmount, startValueSubtractUnit)
.format('YYYY-MM');
const endDate = dayjs().add(endValueAddAmount, endValueAddUnit).format('YYYY-MM');
inputValidationProps.min = startDate;
inputValidationProps.max = endDate;
}
}
else if (uiConstraints === null || uiConstraints === void 0 ? void 0 : uiConstraints[0].isDateOnly) {
if (isInPastValidationMetadata) {
inputValidationProps.max = dayjs().subtract(1, 'date').format('YYYY-MM-DD');
}
else if (isInFutureValidationMetadata) {
inputValidationProps.min = dayjs().add(1, 'date').format('YYYY-MM');
}
else if (isDateBetweenValidationMetadata) {
inputValidationProps.min = isDateBetweenValidationMetadata.constraints[1];
inputValidationProps.max = isDateBetweenValidationMetadata.constraints[2];
}
else if (isDateBetweenRelativeValidationMetadata) {
const [, startValueSubtractAmount, startValueSubtractUnit, endValueAddAmount, endValueAddUnit] = isDateBetweenRelativeValidationMetadata.constraints;
const startDate = dayjs()
.subtract(startValueSubtractAmount, startValueSubtractUnit)
.format('YYYY-MM-DD');
const endDate = dayjs().add(endValueAddAmount, endValueAddUnit).format('YYYY-MM-DD');
inputValidationProps.min = startDate;
inputValidationProps.max = endDate;
}
}
else if (uiConstraints === null || uiConstraints === void 0 ? void 0 : uiConstraints[0].isTimeOnly) {
if (isTimeValidationMetadata) {
inputValidationProps.min = isTimeValidationMetadata.constraints[1];
inputValidationProps.max = isTimeValidationMetadata.constraints[2];
}
}
else {
if (isInPastValidationMetadata) {
inputValidationProps.max = dayjs();
}
else if (isInFutureValidationMetadata) {
inputValidationProps.min = dayjs();
}
else if (isTimestampBetweenValidationMetadata) {
inputValidationProps.min = isTimestampBetweenValidationMetadata.constraints[1];
inputValidationProps.max = isTimestampBetweenValidationMetadata.constraints[2];
}
else if (isTimestampBetweenRelativeValidationMetadata) {
const [, startValueSubtractAmount, startValueSubtractUnit, endValueAddAmount, endValueAddUnit] = isTimestampBetweenRelativeValidationMetadata.constraints;
const startDate = dayjs().subtract(startValueSubtractAmount, startValueSubtractUnit);
const endDate = dayjs().add(endValueAddAmount, endValueAddUnit);
inputValidationProps.min = startDate;
inputValidationProps.max = endDate;
}
}
}

@@ -162,0 +159,0 @@ return inputValidationProps;

{
"name": "backk-frontend-utils",
"version": "1.0.104",
"version": "1.0.105",
"description": "Web frontend utils for Backk microservices",

@@ -53,2 +53,3 @@ "author": {

"@types/crypto-js": "4.0.2",
"@types/jest": "27.0.3",
"@types/lodash": "4.14.176",

@@ -65,2 +66,3 @@ "@types/react": "17.0.34",

"react": "17.0.2",
"ts-jest": "27.0.7",
"typescript": "4.4.4"

@@ -67,0 +69,0 @@ },

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc