From e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 28 Jun 2025 17:26:46 -0700 Subject: initial commit: scaffolding --- node_modules/date-fns/lightFormat/index.d.ts | 4 + node_modules/date-fns/lightFormat/index.js | 127 ++++++++++++++++++++++++ node_modules/date-fns/lightFormat/index.js.flow | 52 ++++++++++ node_modules/date-fns/lightFormat/package.json | 5 + 4 files changed, 188 insertions(+) create mode 100644 node_modules/date-fns/lightFormat/index.d.ts create mode 100644 node_modules/date-fns/lightFormat/index.js create mode 100644 node_modules/date-fns/lightFormat/index.js.flow create mode 100644 node_modules/date-fns/lightFormat/package.json (limited to 'node_modules/date-fns/lightFormat') diff --git a/node_modules/date-fns/lightFormat/index.d.ts b/node_modules/date-fns/lightFormat/index.d.ts new file mode 100644 index 0000000..4aa361b --- /dev/null +++ b/node_modules/date-fns/lightFormat/index.d.ts @@ -0,0 +1,4 @@ +// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. + +import { lightFormat } from 'date-fns' +export default lightFormat diff --git a/node_modules/date-fns/lightFormat/index.js b/node_modules/date-fns/lightFormat/index.js new file mode 100644 index 0000000..2f8adbd --- /dev/null +++ b/node_modules/date-fns/lightFormat/index.js @@ -0,0 +1,127 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = lightFormat; +var _index = _interopRequireDefault(require("../toDate/index.js")); +var _index2 = _interopRequireDefault(require("../_lib/format/lightFormatters/index.js")); +var _index3 = _interopRequireDefault(require("../_lib/getTimezoneOffsetInMilliseconds/index.js")); +var _index4 = _interopRequireDefault(require("../isValid/index.js")); +var _index5 = _interopRequireDefault(require("../subMilliseconds/index.js")); +var _index6 = _interopRequireDefault(require("../_lib/requiredArgs/index.js")); +// This RegExp consists of three parts separated by `|`: +// - (\w)\1* matches any sequences of the same letter +// - '' matches two quote characters in a row +// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('), +// except a single quote symbol, which ends the sequence. +// Two quote characters do not end the sequence. +// If there is no matching single quote +// then the sequence will continue until the end of the string. +// - . matches any single character unmatched by previous parts of the RegExps +var formattingTokensRegExp = /(\w)\1*|''|'(''|[^'])+('|$)|./g; +var escapedStringRegExp = /^'([^]*?)'?$/; +var doubleQuoteRegExp = /''/g; +var unescapedLatinCharacterRegExp = /[a-zA-Z]/; + +/** + * @name lightFormat + * @category Common Helpers + * @summary Format the date. + * + * @description + * Return the formatted date string in the given format. Unlike `format`, + * `lightFormat` doesn't use locales and outputs date using the most popular tokens. + * + * > ⚠️ Please note that the `lightFormat` tokens differ from Moment.js and other libraries. + * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md + * + * The characters wrapped between two single quotes characters (') are escaped. + * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote. + * + * Format of the string is based on Unicode Technical Standard #35: + * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table + * + * Accepted patterns: + * | Unit | Pattern | Result examples | + * |---------------------------------|---------|-----------------------------------| + * | AM, PM | a..aaa | AM, PM | + * | | aaaa | a.m., p.m. | + * | | aaaaa | a, p | + * | Calendar year | y | 44, 1, 1900, 2017 | + * | | yy | 44, 01, 00, 17 | + * | | yyy | 044, 001, 000, 017 | + * | | yyyy | 0044, 0001, 1900, 2017 | + * | Month (formatting) | M | 1, 2, ..., 12 | + * | | MM | 01, 02, ..., 12 | + * | Day of month | d | 1, 2, ..., 31 | + * | | dd | 01, 02, ..., 31 | + * | Hour [1-12] | h | 1, 2, ..., 11, 12 | + * | | hh | 01, 02, ..., 11, 12 | + * | Hour [0-23] | H | 0, 1, 2, ..., 23 | + * | | HH | 00, 01, 02, ..., 23 | + * | Minute | m | 0, 1, ..., 59 | + * | | mm | 00, 01, ..., 59 | + * | Second | s | 0, 1, ..., 59 | + * | | ss | 00, 01, ..., 59 | + * | Fraction of second | S | 0, 1, ..., 9 | + * | | SS | 00, 01, ..., 99 | + * | | SSS | 000, 001, ..., 999 | + * | | SSSS | ... | + * + * @param {Date|Number} date - the original date + * @param {String} format - the string of tokens + * @returns {String} the formatted date string + * @throws {TypeError} 2 arguments required + * @throws {RangeError} format string contains an unescaped latin alphabet character + * + * @example + * const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd') + * //=> '2014-02-11' + */ + +function lightFormat(dirtyDate, formatStr) { + (0, _index6.default)(2, arguments); + var originalDate = (0, _index.default)(dirtyDate); + if (!(0, _index4.default)(originalDate)) { + throw new RangeError('Invalid time value'); + } + + // Convert the date in system timezone to the same date in UTC+00:00 timezone. + // This ensures that when UTC functions will be implemented, locales will be compatible with them. + // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376 + var timezoneOffset = (0, _index3.default)(originalDate); + var utcDate = (0, _index5.default)(originalDate, timezoneOffset); + var tokens = formatStr.match(formattingTokensRegExp); + + // The only case when formattingTokensRegExp doesn't match the string is when it's empty + if (!tokens) return ''; + var result = tokens.map(function (substring) { + // Replace two single quote characters with one single quote character + if (substring === "''") { + return "'"; + } + var firstCharacter = substring[0]; + if (firstCharacter === "'") { + return cleanEscapedString(substring); + } + var formatter = _index2.default[firstCharacter]; + if (formatter) { + return formatter(utcDate, substring); + } + if (firstCharacter.match(unescapedLatinCharacterRegExp)) { + throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`'); + } + return substring; + }).join(''); + return result; +} +function cleanEscapedString(input) { + var matches = input.match(escapedStringRegExp); + if (!matches) { + return input; + } + return matches[1].replace(doubleQuoteRegExp, "'"); +} +module.exports = exports.default; \ No newline at end of file diff --git a/node_modules/date-fns/lightFormat/index.js.flow b/node_modules/date-fns/lightFormat/index.js.flow new file mode 100644 index 0000000..818d9c4 --- /dev/null +++ b/node_modules/date-fns/lightFormat/index.js.flow @@ -0,0 +1,52 @@ +// @flow +// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it. + +export type Interval = { + start: Date | number, + end: Date | number, +} + +export type Locale = { + code?: string, + formatDistance?: (...args: Array) => any, + formatRelative?: (...args: Array) => any, + localize?: { + ordinalNumber: (...args: Array) => any, + era: (...args: Array) => any, + quarter: (...args: Array) => any, + month: (...args: Array) => any, + day: (...args: Array) => any, + dayPeriod: (...args: Array) => any, + }, + formatLong?: { + date: (...args: Array) => any, + time: (...args: Array) => any, + dateTime: (...args: Array) => any, + }, + match?: { + ordinalNumber: (...args: Array) => any, + era: (...args: Array) => any, + quarter: (...args: Array) => any, + month: (...args: Array) => any, + day: (...args: Array) => any, + dayPeriod: (...args: Array) => any, + }, + options?: { + weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6, + firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7, + }, +} + +export type Duration = { + years?: number, + months?: number, + weeks?: number, + days?: number, + hours?: number, + minutes?: number, + seconds?: number, +} + +export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6 + +declare module.exports: (date: Date | number, format: string) => string diff --git a/node_modules/date-fns/lightFormat/package.json b/node_modules/date-fns/lightFormat/package.json new file mode 100644 index 0000000..612f5d2 --- /dev/null +++ b/node_modules/date-fns/lightFormat/package.json @@ -0,0 +1,5 @@ +{ + "sideEffects": false, + "module": "../esm/lightFormat/index.js", + "typings": "../typings.d.ts" +} \ No newline at end of file -- cgit v1.2.3