
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
iso-datestring-validator
Advanced tools
The goal of the package is to provide lightweight tools for validating strings denotings dates and time. It includes ISO 8601 datestring validation, simple YYYY-MM-DD date validation and time validation in hh:mm:ss.fff format. See details in readme.
A simple package for validating strings denoting dates and time, including ISO 8601 format. The package provides the following functions:
Date validation. YYYY-MM-DD format from 0001-01-01 to 9999-12-31, leap year friendly. Custom digit separators and null separators supported: YYYY/MM/DD or YYYYMMDD is no problem.
Time validation. HH:mm:ss.fff±hh:mm format, seconds, fractions of seconds and timezone offset being optional. Custom digit separators supported for HHmmss as well (no custom separator for fractions, it is dot).
Caveat: do not use '-' and '+' as separators when validating time with timezone. I am reluctant to fix this unless it is an issue.
isValidTime('14-45-15.000+00-00', '-', true);
// will yield wrong result
Year-month validation.
ISO 8601 datestring validation with timezones, with and without separators:
npm i --save iso-datestring-validator
or
yarn add iso-datestring-validator
import * as isoDatestringValidator from 'iso-datestring-validator';
alternatively you can import the function that you need separately:
import {
isValidDate,
isValidISODateString,
isValidTime,
isValidYearMonth,
} from 'iso-datestring-validator';
Pass a YYYY-MM-DD date string to the isValidDate function to check it. To validate dates that use a custom digit separator, pass it as the second argument.
import { isValidDate } from 'iso-datestring-validator';
isValidDate('2019-01-31');
// true
isValidDate('20190131');
// false, no custom digit separator provided, hyphen separator not found in the string
isValidDate('20190131', '');
// true
isValidDate('2019/01/31', '/');
// true
Time string in HH:mm:ss.fff±hh:mm format can be validated with the isValidTime function. Seconds and fractions are optional. However, if using fractions min number of numbers is 1 and max is 9. Zone offset is optional as well, its check is switched off by default.
import { isValidTime } from 'iso-datestring-validator';
isValidTime('13:00');
// true
isValidTime('13:00:00');
// true
isValidTime('13:00:00.000000000');
// true
// pass time, separator and boolean flag to enable zone offset check
isValidTime('14:45:15.000+00:00', ':', true);
// true
// you can take advantage of default separator if you pass undefined as second param
isValidTime('14:45:15.000+00:00', undefined, true);
// true
isValidTime('144515.000Z', '', true);
// true
These are validated by the isValidYearMonth function. Rules same as in the previous case: a string YYYY-MM and a custom digit separator if required.
import { isValidYearMonth } from 'iso-datestring-validator';
isValidYearMonth('2019/01', '/');
// true
isValidYearMonth('2019-01');
// true
Pass a string to isValidISODateString to see if it is valid.
import { isValidISODateString } from 'iso-datestring-validator';
isValidISODateString('2019-07-09T15:03:36.000+00:00');
// true
isValidISODateString('20190709T150336Z');
// true
That's all about this package. Have fun, feel free to contribute with some test :]
FAQs
The goal of the package is to provide lightweight tools for validating strings denotings dates and time. It includes ISO 8601 datestring validation, simple YYYY-MM-DD date validation and time validation in hh:mm:ss.fff format. See details in readme.
The npm package iso-datestring-validator receives a total of 0 weekly downloads. As such, iso-datestring-validator popularity was classified as not popular.
We found that iso-datestring-validator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.