chrono-node
Advanced tools
Comparing version 2.7.4 to 2.7.5
@@ -20,2 +20,2 @@ import * as en from "./locales/en"; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date | null; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -179,4 +179,5 @@ "use strict"; | ||
const SINGLE_TIME_UNIT_NO_ABBR_PATTERN = `(${exports.NUMBER_PATTERN})\\s{0,3}(${pattern_1.matchAnyPattern(exports.TIME_UNIT_DICTIONARY_NO_ABBR)})`; | ||
exports.TIME_UNITS_PATTERN = pattern_1.repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_PATTERN); | ||
exports.TIME_UNITS_NO_ABBR_PATTERN = pattern_1.repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_NO_ABBR_PATTERN); | ||
const TIME_UNIT_CONNECTOR_PATTERN = `\\s{0,5},?(?:\\s*and)?\\s{0,5}`; | ||
exports.TIME_UNITS_PATTERN = pattern_1.repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_PATTERN, TIME_UNIT_CONNECTOR_PATTERN); | ||
exports.TIME_UNITS_NO_ABBR_PATTERN = pattern_1.repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_NO_ABBR_PATTERN, TIME_UNIT_CONNECTOR_PATTERN); | ||
function parseTimeUnits(timeunitText) { | ||
@@ -183,0 +184,0 @@ const fragments = {}; |
@@ -11,3 +11,3 @@ import { Chrono, Parser, Refiner } from "../../chrono"; | ||
export declare const GB: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; |
@@ -17,3 +17,3 @@ "use strict"; | ||
"(?:" + | ||
"(?:-|/|\\s*,?\\s*)" + | ||
`(?:-|/|\\s*,\\s*|\\s+)` + | ||
`(${constants_3.YEAR_PATTERN})` + | ||
@@ -20,0 +20,0 @@ ")?" + |
@@ -7,3 +7,3 @@ "use strict"; | ||
const PATTERN = new RegExp(`(${constants_1.TIME_UNITS_PATTERN})\\s{0,5}(?:later|after|from now|henceforth|forward|out)` + "(?=(?:\\W|$))", "i"); | ||
const STRICT_PATTERN = new RegExp("" + "(" + constants_1.TIME_UNITS_NO_ABBR_PATTERN + ")" + "(later|from now)" + "(?=(?:\\W|$))", "i"); | ||
const STRICT_PATTERN = new RegExp(`(${constants_1.TIME_UNITS_NO_ABBR_PATTERN})\\s{0,5}(later|after|from now)(?=\\W|$)`, "i"); | ||
const GROUP_NUM_TIMEUNITS = 1; | ||
@@ -10,0 +10,0 @@ class ENTimeUnitLaterFormatParser extends AbstractParserWithWordBoundary_1.AbstractParserWithWordBoundaryChecking { |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(): Configuration; | ||
export declare function createConfiguration(): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean): Configuration; |
@@ -10,3 +10,3 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono"; | ||
export declare function createConfiguration(strictMode: boolean): Configuration; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; |
@@ -9,5 +9,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../../chrono"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(): Configuration; | ||
export declare function createConfiguration(): Configuration; |
@@ -9,5 +9,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../../chrono"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(): Configuration; | ||
export declare function createConfiguration(): Configuration; |
declare type DictionaryLike = string[] | { | ||
[word: string]: unknown; | ||
} | Map<string, unknown>; | ||
export declare function repeatedTimeunitPattern(prefix: string, singleTimeunitPattern: string): string; | ||
export declare function repeatedTimeunitPattern(prefix: string, singleTimeunitPattern: string, connectorPattern?: string): string; | ||
export declare function extractTerms(dictionary: DictionaryLike): string[]; | ||
export declare function matchAnyPattern(dictionary: DictionaryLike): string; | ||
export {}; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.matchAnyPattern = exports.extractTerms = exports.repeatedTimeunitPattern = void 0; | ||
function repeatedTimeunitPattern(prefix, singleTimeunitPattern) { | ||
function repeatedTimeunitPattern(prefix, singleTimeunitPattern, connectorPattern = "\\s{0,5},?\\s{0,5}") { | ||
const singleTimeunitPatternNoCapture = singleTimeunitPattern.replace(/\((?!\?)/g, "(?:"); | ||
return `${prefix}${singleTimeunitPatternNoCapture}\\s{0,5}(?:,?\\s{0,5}${singleTimeunitPatternNoCapture}){0,10}`; | ||
return `${prefix}${singleTimeunitPatternNoCapture}(?:${connectorPattern}${singleTimeunitPatternNoCapture}){0,10}`; | ||
} | ||
@@ -8,0 +8,0 @@ exports.repeatedTimeunitPattern = repeatedTimeunitPattern; |
@@ -20,2 +20,2 @@ import * as en from "./locales/en/index.js"; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date | null; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono.js"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -233,4 +233,5 @@ import { matchAnyPattern, repeatedTimeunitPattern } from "../../utils/pattern.js"; | ||
const SINGLE_TIME_UNIT_NO_ABBR_PATTERN = `(${NUMBER_PATTERN})\\s{0,3}(${matchAnyPattern(TIME_UNIT_DICTIONARY_NO_ABBR)})`; | ||
export const TIME_UNITS_PATTERN = repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_PATTERN); | ||
export const TIME_UNITS_NO_ABBR_PATTERN = repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_NO_ABBR_PATTERN); | ||
const TIME_UNIT_CONNECTOR_PATTERN = `\\s{0,5},?(?:\\s*and)?\\s{0,5}`; | ||
export const TIME_UNITS_PATTERN = repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_PATTERN, TIME_UNIT_CONNECTOR_PATTERN); | ||
export const TIME_UNITS_NO_ABBR_PATTERN = repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_NO_ABBR_PATTERN, TIME_UNIT_CONNECTOR_PATTERN); | ||
export function parseTimeUnits(timeunitText) { | ||
@@ -237,0 +238,0 @@ const fragments = {}; |
@@ -11,3 +11,3 @@ import { Chrono, Parser, Refiner } from "../../chrono.js"; | ||
export declare const GB: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; |
@@ -15,3 +15,3 @@ import { findYearClosestToRef } from "../../../calculation/years.js"; | ||
"(?:" + | ||
"(?:-|/|\\s*,?\\s*)" + | ||
`(?:-|/|\\s*,\\s*|\\s+)` + | ||
`(${YEAR_PATTERN})` + | ||
@@ -18,0 +18,0 @@ ")?" + |
@@ -5,3 +5,3 @@ import { parseTimeUnits, TIME_UNITS_NO_ABBR_PATTERN, TIME_UNITS_PATTERN } from "../constants.js"; | ||
const PATTERN = new RegExp(`(${TIME_UNITS_PATTERN})\\s{0,5}(?:later|after|from now|henceforth|forward|out)` + "(?=(?:\\W|$))", "i"); | ||
const STRICT_PATTERN = new RegExp("" + "(" + TIME_UNITS_NO_ABBR_PATTERN + ")" + "(later|from now)" + "(?=(?:\\W|$))", "i"); | ||
const STRICT_PATTERN = new RegExp(`(${TIME_UNITS_NO_ABBR_PATTERN})\\s{0,5}(later|after|from now)(?=\\W|$)`, "i"); | ||
const GROUP_NUM_TIMEUNITS = 1; | ||
@@ -8,0 +8,0 @@ export default class ENTimeUnitLaterFormatParser extends AbstractParserWithWordBoundaryChecking { |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono.js"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono.js"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono.js"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(): Configuration; | ||
export declare function createConfiguration(): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono.js"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono.js"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(littleEndian?: boolean): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean, littleEndian?: boolean): Configuration; |
@@ -8,5 +8,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono.js"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(): Configuration; | ||
export declare function createConfiguration(strictMode?: boolean): Configuration; |
@@ -10,3 +10,3 @@ import { Chrono, Configuration, Parser, Refiner } from "../../chrono.js"; | ||
export declare function createConfiguration(strictMode: boolean): Configuration; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; |
@@ -9,5 +9,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../../chrono.js"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(): Configuration; | ||
export declare function createConfiguration(): Configuration; |
@@ -9,5 +9,5 @@ import { Chrono, Configuration, Parser, Refiner } from "../../../chrono.js"; | ||
export declare const strict: Chrono; | ||
export declare function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: Date, option?: ParsingOption): Date; | ||
export declare function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[]; | ||
export declare function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date; | ||
export declare function createCasualConfiguration(): Configuration; | ||
export declare function createConfiguration(): Configuration; |
declare type DictionaryLike = string[] | { | ||
[word: string]: unknown; | ||
} | Map<string, unknown>; | ||
export declare function repeatedTimeunitPattern(prefix: string, singleTimeunitPattern: string): string; | ||
export declare function repeatedTimeunitPattern(prefix: string, singleTimeunitPattern: string, connectorPattern?: string): string; | ||
export declare function extractTerms(dictionary: DictionaryLike): string[]; | ||
export declare function matchAnyPattern(dictionary: DictionaryLike): string; | ||
export {}; |
@@ -1,4 +0,4 @@ | ||
export function repeatedTimeunitPattern(prefix, singleTimeunitPattern) { | ||
export function repeatedTimeunitPattern(prefix, singleTimeunitPattern, connectorPattern = "\\s{0,5},?\\s{0,5}") { | ||
const singleTimeunitPatternNoCapture = singleTimeunitPattern.replace(/\((?!\?)/g, "(?:"); | ||
return `${prefix}${singleTimeunitPatternNoCapture}\\s{0,5}(?:,?\\s{0,5}${singleTimeunitPatternNoCapture}){0,10}`; | ||
return `${prefix}${singleTimeunitPatternNoCapture}(?:${connectorPattern}${singleTimeunitPatternNoCapture}){0,10}`; | ||
} | ||
@@ -5,0 +5,0 @@ export function extractTerms(dictionary) { |
@@ -18,3 +18,3 @@ { | ||
"license": "MIT", | ||
"version": "2.7.4", | ||
"version": "2.7.5", | ||
"directories": { | ||
@@ -21,0 +21,0 @@ "source": "./src", |
@@ -42,4 +42,4 @@ import * as en from "./locales/en"; | ||
*/ | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date | null { | ||
return casual.parseDate(text, ref, option); | ||
} |
@@ -25,7 +25,7 @@ import { includeCommonConfiguration } from "../../configurations"; | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
} | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
@@ -32,0 +32,0 @@ } |
@@ -267,6 +267,13 @@ import { OpUnitType, QUnitType } from "dayjs"; | ||
export const TIME_UNITS_PATTERN = repeatedTimeunitPattern(`(?:(?:about|around)\\s{0,3})?`, SINGLE_TIME_UNIT_PATTERN); | ||
const TIME_UNIT_CONNECTOR_PATTERN = `\\s{0,5},?(?:\\s*and)?\\s{0,5}`; | ||
export const TIME_UNITS_PATTERN = repeatedTimeunitPattern( | ||
`(?:(?:about|around)\\s{0,3})?`, | ||
SINGLE_TIME_UNIT_PATTERN, | ||
TIME_UNIT_CONNECTOR_PATTERN | ||
); | ||
export const TIME_UNITS_NO_ABBR_PATTERN = repeatedTimeunitPattern( | ||
`(?:(?:about|around)\\s{0,3})?`, | ||
SINGLE_TIME_UNIT_NO_ABBR_PATTERN | ||
SINGLE_TIME_UNIT_NO_ABBR_PATTERN, | ||
TIME_UNIT_CONNECTOR_PATTERN | ||
); | ||
@@ -273,0 +280,0 @@ |
@@ -36,3 +36,3 @@ /** | ||
*/ | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
@@ -44,4 +44,4 @@ } | ||
*/ | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
} |
@@ -9,2 +9,3 @@ import { ParsingContext } from "../../../chrono"; | ||
// prettier-ignore | ||
const PATTERN = new RegExp( | ||
@@ -15,8 +16,8 @@ `(${matchAnyPattern(MONTH_DICTIONARY)})` + | ||
"(?:" + | ||
"(?:to|\\-)\\s*" + | ||
`(${ORDINAL_NUMBER_PATTERN})\\s*` + | ||
"(?:to|\\-)\\s*" + | ||
`(${ORDINAL_NUMBER_PATTERN})\\s*` + | ||
")?" + | ||
"(?:" + | ||
"(?:-|/|\\s*,?\\s*)" + | ||
`(${YEAR_PATTERN})` + | ||
`(?:-|/|\\s*,\\s*|\\s+)` + | ||
`(${YEAR_PATTERN})` + | ||
")?" + | ||
@@ -23,0 +24,0 @@ "(?=\\W|$)(?!\\:\\d)", |
@@ -11,6 +11,3 @@ import { ParsingContext } from "../../../chrono"; | ||
const STRICT_PATTERN = new RegExp( | ||
"" + "(" + TIME_UNITS_NO_ABBR_PATTERN + ")" + "(later|from now)" + "(?=(?:\\W|$))", | ||
"i" | ||
); | ||
const STRICT_PATTERN = new RegExp(`(${TIME_UNITS_NO_ABBR_PATTERN})\\s{0,5}(later|after|from now)(?=\\W|$)`, "i"); | ||
const GROUP_NUM_TIMEUNITS = 1; | ||
@@ -17,0 +14,0 @@ |
@@ -28,7 +28,7 @@ /** | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
} | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
@@ -35,0 +35,0 @@ } |
@@ -31,7 +31,7 @@ /** | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
} | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
@@ -38,0 +38,0 @@ } |
@@ -22,7 +22,7 @@ /** | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
} | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
@@ -29,0 +29,0 @@ } |
@@ -36,7 +36,7 @@ /** | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
} | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
@@ -43,0 +43,0 @@ } |
@@ -27,7 +27,7 @@ /** | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
} | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
@@ -34,0 +34,0 @@ } |
@@ -43,3 +43,3 @@ /** | ||
*/ | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
@@ -51,3 +51,3 @@ } | ||
*/ | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
@@ -54,0 +54,0 @@ } |
@@ -81,3 +81,3 @@ /** | ||
*/ | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
@@ -89,4 +89,4 @@ } | ||
*/ | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
} |
@@ -28,7 +28,7 @@ /** | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
} | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
@@ -35,0 +35,0 @@ } |
@@ -29,7 +29,7 @@ /** | ||
export function parse(text: string, ref?: Date, option?: ParsingOption): ParsedResult[] { | ||
export function parse(text: string, ref?: ParsingReference | Date, option?: ParsingOption): ParsedResult[] { | ||
return casual.parse(text, ref, option); | ||
} | ||
export function parseDate(text: string, ref?: Date, option?: ParsingOption): Date { | ||
export function parseDate(text: string, ref?: ParsingReference | Date, option?: ParsingOption): Date { | ||
return casual.parseDate(text, ref, option); | ||
@@ -36,0 +36,0 @@ } |
type DictionaryLike = string[] | { [word: string]: unknown } | Map<string, unknown>; | ||
export function repeatedTimeunitPattern(prefix: string, singleTimeunitPattern: string): string { | ||
export function repeatedTimeunitPattern( | ||
prefix: string, | ||
singleTimeunitPattern: string, | ||
connectorPattern = "\\s{0,5},?\\s{0,5}" | ||
): string { | ||
const singleTimeunitPatternNoCapture = singleTimeunitPattern.replace(/\((?!\?)/g, "(?:"); | ||
return `${prefix}${singleTimeunitPatternNoCapture}\\s{0,5}(?:,?\\s{0,5}${singleTimeunitPatternNoCapture}){0,10}`; | ||
return `${prefix}${singleTimeunitPatternNoCapture}(?:${connectorPattern}${singleTimeunitPatternNoCapture}){0,10}`; | ||
} | ||
@@ -7,0 +11,0 @@ |
@@ -384,2 +384,4 @@ import * as chrono from "../../src"; | ||
testUnexpectedResult(chrono.strict, "February 29", new Date(2014, 7, 10)); | ||
testUnexpectedResult(chrono.strict, "February 151998", new Date(2014, 7, 10)); | ||
}); |
@@ -73,5 +73,10 @@ import * as chrono from "../../src"; | ||
testSingleCase(chrono, "Statement of comprehensive income for the year ended Dec. 2021", (result) => { | ||
expect(result.text).toBe("Dec. 2021"); | ||
expect(result.start.get("year")).toBe(2021); | ||
expect(result.start.get("month")).toBe(12); | ||
expect(result.text).toBe("Dec. 2021"); | ||
expect(result.start.isCertain("year")).toBe(true); | ||
expect(result.start.isCertain("month")).toBe(true); | ||
expect(result.start.isCertain("day")).toBe(false); | ||
}); | ||
@@ -78,0 +83,0 @@ }); |
@@ -252,3 +252,5 @@ import * as chrono from "../../src/"; | ||
}); | ||
}); | ||
test("Test - The later expression with multiple time units", function () { | ||
testSingleCase(chrono, "in 1d 2hr 5min", new Date(2012, 7, 10, 12, 40), (result) => { | ||
@@ -263,2 +265,12 @@ expect(result.index).toBe(0); | ||
}); | ||
testSingleCase(chrono, "in 1d, 2hr, and 5min", new Date(2012, 7, 10, 12, 40), (result) => { | ||
expect(result.index).toBe(0); | ||
expect(result.text).toBe("in 1d, 2hr, and 5min"); | ||
expect(result.start.get("day")).toBe(11); | ||
expect(result.start.get("hour")).toBe(14); | ||
expect(result.start.get("minute")).toBe(45); | ||
expect(result.start).toBeDate(new Date(2012, 7, 11, 14, 45)); | ||
}); | ||
}); | ||
@@ -265,0 +277,0 @@ |
@@ -177,2 +177,44 @@ import * as chrono from "../../src"; | ||
test("Test - The within expression with multiple time units", function () { | ||
testSingleCase(chrono, "set a timer for 5 minutes 30 seconds", new Date(2012, 7, 10, 12, 14), (result) => { | ||
expect(result.index).toBe(12); | ||
expect(result.text).toBe("for 5 minutes 30 seconds"); | ||
expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19, 30)); | ||
}); | ||
testSingleCase(chrono, "set a timer for 5 minutes, 30 seconds", new Date(2012, 7, 10, 12, 14), (result) => { | ||
expect(result.index).toBe(12); | ||
expect(result.text).toBe("for 5 minutes, 30 seconds"); | ||
expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19, 30)); | ||
}); | ||
testSingleCase(chrono, "set a timer for 1 hour, 5 minutes, 30 seconds", new Date(2012, 7, 10, 12, 14), (result) => { | ||
expect(result.index).toBe(12); | ||
expect(result.text).toBe("for 1 hour, 5 minutes, 30 seconds"); | ||
expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 19, 30)); | ||
}); | ||
testSingleCase(chrono, "set a timer for 5 minutes and 30 seconds", new Date(2012, 7, 10, 12, 14), (result) => { | ||
expect(result.index).toBe(12); | ||
expect(result.text).toBe("for 5 minutes and 30 seconds"); | ||
expect(result.start).toBeDate(new Date(2012, 7, 10, 12, 19, 30)); | ||
}); | ||
testSingleCase( | ||
chrono, | ||
"set a timer for 1 hour, 5 minutes, and 30 seconds", | ||
new Date(2012, 7, 10, 12, 14), | ||
(result) => { | ||
expect(result.index).toBe(12); | ||
expect(result.text).toBe("for 1 hour, 5 minutes, and 30 seconds"); | ||
expect(result.start).toBeDate(new Date(2012, 7, 10, 13, 19, 30)); | ||
} | ||
); | ||
}); | ||
test("Test - The within expression with certain keywords", () => { | ||
@@ -179,0 +221,0 @@ testSingleCase(chrono, "In about 5 hours", new Date(2012, 8 - 1, 10, 12, 49), (result, text) => { |
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
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
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
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
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
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
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
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
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
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2624884
45044