chrono-node 2.7.3 → 2.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/cjs/common/refiners/OverlapRemovalRefiner.js +16 -6
  2. package/dist/cjs/common/refiners/OverlapRemovalRefiner.js.map +1 -1
  3. package/dist/cjs/locales/en/configuration.js +13 -8
  4. package/dist/cjs/locales/en/configuration.js.map +1 -1
  5. package/dist/cjs/locales/en/constants.d.ts +1 -1
  6. package/dist/cjs/locales/en/constants.js +1 -1
  7. package/dist/cjs/locales/en/constants.js.map +1 -1
  8. package/dist/cjs/locales/en/index.d.ts +2 -0
  9. package/dist/cjs/locales/en/index.js +5 -5
  10. package/dist/cjs/locales/en/index.js.map +1 -1
  11. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +2 -0
  12. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js +13 -2
  13. package/dist/cjs/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
  14. package/dist/cjs/locales/en/parsers/ENMonthNameParser.js +1 -0
  15. package/dist/cjs/locales/en/parsers/ENMonthNameParser.js.map +1 -1
  16. package/dist/cjs/locales/en/parsers/ENTimeUnitWithinFormatParser.js +3 -0
  17. package/dist/cjs/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -1
  18. package/dist/cjs/locales/en/refiners/ENMergeRelativeAfterDateRefiner.d.ts +6 -0
  19. package/dist/cjs/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js +30 -0
  20. package/dist/cjs/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js.map +1 -0
  21. package/dist/cjs/locales/en/refiners/{ENMergeRelativeDateRefiner.d.ts → ENMergeRelativeFollowByDateRefiner.d.ts} +1 -1
  22. package/dist/cjs/locales/en/refiners/{ENMergeRelativeDateRefiner.js → ENMergeRelativeFollowByDateRefiner.js} +3 -3
  23. package/dist/cjs/locales/en/refiners/ENMergeRelativeFollowByDateRefiner.js.map +1 -0
  24. package/dist/cjs/locales/nl/parsers/NLRelativeDateFormatParser.js +3 -3
  25. package/dist/cjs/locales/nl/parsers/NLRelativeDateFormatParser.js.map +1 -1
  26. package/dist/cjs/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js +6 -4
  27. package/dist/cjs/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js.map +1 -1
  28. package/dist/esm/common/refiners/OverlapRemovalRefiner.js +16 -6
  29. package/dist/esm/common/refiners/OverlapRemovalRefiner.js.map +1 -1
  30. package/dist/esm/locales/en/configuration.js +13 -8
  31. package/dist/esm/locales/en/configuration.js.map +1 -1
  32. package/dist/esm/locales/en/constants.d.ts +1 -1
  33. package/dist/esm/locales/en/constants.js +1 -1
  34. package/dist/esm/locales/en/constants.js.map +1 -1
  35. package/dist/esm/locales/en/index.d.ts +2 -0
  36. package/dist/esm/locales/en/index.js +4 -4
  37. package/dist/esm/locales/en/index.js.map +1 -1
  38. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.d.ts +2 -0
  39. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js +13 -2
  40. package/dist/esm/locales/en/parsers/ENMonthNameMiddleEndianParser.js.map +1 -1
  41. package/dist/esm/locales/en/parsers/ENMonthNameParser.js +1 -0
  42. package/dist/esm/locales/en/parsers/ENMonthNameParser.js.map +1 -1
  43. package/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js +3 -0
  44. package/dist/esm/locales/en/parsers/ENTimeUnitWithinFormatParser.js.map +1 -1
  45. package/dist/esm/locales/en/refiners/ENMergeRelativeAfterDateRefiner.d.ts +6 -0
  46. package/dist/esm/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js +27 -0
  47. package/dist/esm/locales/en/refiners/ENMergeRelativeAfterDateRefiner.js.map +1 -0
  48. package/dist/esm/locales/en/refiners/{ENMergeRelativeDateRefiner.d.ts → ENMergeRelativeFollowByDateRefiner.d.ts} +1 -1
  49. package/dist/esm/locales/en/refiners/{ENMergeRelativeDateRefiner.js → ENMergeRelativeFollowByDateRefiner.js} +2 -2
  50. package/dist/esm/locales/en/refiners/ENMergeRelativeFollowByDateRefiner.js.map +1 -0
  51. package/dist/esm/locales/nl/parsers/NLRelativeDateFormatParser.js +3 -3
  52. package/dist/esm/locales/nl/parsers/NLRelativeDateFormatParser.js.map +1 -1
  53. package/dist/esm/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js +6 -4
  54. package/dist/esm/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.js.map +1 -1
  55. package/package.json +1 -1
  56. package/src/common/refiners/OverlapRemovalRefiner.ts +16 -7
  57. package/src/locales/en/configuration.ts +15 -8
  58. package/src/locales/en/constants.ts +1 -1
  59. package/src/locales/en/index.ts +4 -4
  60. package/src/locales/en/parsers/ENMonthNameMiddleEndianParser.ts +20 -5
  61. package/src/locales/en/parsers/ENMonthNameParser.ts +1 -0
  62. package/src/locales/en/parsers/ENTimeUnitWithinFormatParser.ts +5 -0
  63. package/src/locales/en/refiners/ENMergeRelativeAfterDateRefiner.ts +46 -0
  64. package/src/locales/en/refiners/{ENMergeRelativeDateRefiner.ts → ENMergeRelativeFollowByDateRefiner.ts} +4 -4
  65. package/src/locales/nl/parsers/NLRelativeDateFormatParser.ts +3 -3
  66. package/src/locales/nl/parsers/NLTimeUnitCasualRelativeFormatParser.ts +10 -4
  67. package/test/en/en_month.test.ts +6 -0
  68. package/test/en/en_month_name_middle_endian.test.ts +23 -0
  69. package/test/en/en_time_units_later.test.ts +22 -0
  70. package/test/en/negative_cases.test.ts +4 -0
  71. package/test/nl/nl_relative.test.ts +16 -2
  72. package/dist/cjs/locales/en/refiners/ENMergeRelativeDateRefiner.js.map +0 -1
  73. package/dist/esm/locales/en/refiners/ENMergeRelativeDateRefiner.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  import * as chrono from "../../src";
2
2
  import { testSingleCase, testWithExpectedDate, testUnexpectedResult } from "../test_util";
3
+ import { configuration } from "../../src/locales/en";
3
4
 
4
5
  test("Test - Single Expression", () => {
5
6
  testSingleCase(chrono, "She is getting married soon (July 2017).", (result) => {
@@ -153,6 +154,13 @@ test("Test - Single Expression", () => {
153
154
  expect(result.start.get("month")).toBe(1);
154
155
  expect(result.start.get("day")).toBe(20);
155
156
  });
157
+
158
+ testSingleCase(chrono, "Dec. 21", new Date(2012, 7, 10), (result) => {
159
+ expect(result.text).toBe("Dec. 21");
160
+ expect(result.start.get("year")).toBe(2012);
161
+ expect(result.start.get("month")).toBe(12);
162
+ expect(result.start.get("day")).toBe(21);
163
+ });
156
164
  });
157
165
 
158
166
  test("Test - Single expression with separators", () => {
@@ -350,6 +358,21 @@ test("Test - year 90's parsing", () => {
350
358
  });
351
359
  });
352
360
 
361
+ test("Test - Skip year-like on little-endian configuration", () => {
362
+ const chronoMiddleEndian = new chrono.Chrono(chrono.en.configuration.createCasualConfiguration(false));
363
+ testSingleCase(chronoMiddleEndian, "Dec. 21", new Date(2023, 12, 10), (result) => {
364
+ expect(result.start.get("year")).toBe(2023);
365
+ expect(result.start.get("month")).toBe(12);
366
+ expect(result.start.get("day")).toBe(21);
367
+ });
368
+
369
+ const chronoLittleEndian = new chrono.Chrono(chrono.en.configuration.createCasualConfiguration(true));
370
+ testSingleCase(chronoLittleEndian, "Dec. 21", new Date(2023, 12, 10), (result) => {
371
+ expect(result.start.get("year")).toBe(2021);
372
+ expect(result.start.get("month")).toBe(12);
373
+ });
374
+ });
375
+
353
376
  test("Test - Impossible Dates (Strict Mode)", () => {
354
377
  testUnexpectedResult(chrono.strict, "August 32, 2014");
355
378
 
@@ -320,3 +320,25 @@ test("Test - After with reference", () => {
320
320
  expect(result.start.get("day")).toBe(18);
321
321
  });
322
322
  });
323
+
324
+ test("Test - Plus after reference", () => {
325
+ testSingleCase(chrono, "next tuesday +10 days", new Date(2023, 12 - 1, 29), (result) => {
326
+ expect(result.start.get("year")).toBe(2024);
327
+ expect(result.start.get("month")).toBe(1);
328
+ expect(result.start.get("day")).toBe(12);
329
+ });
330
+
331
+ testSingleCase(chrono, "2023-12-29 -10days", new Date(2023, 12 - 1, 29), (result) => {
332
+ expect(result.start.get("year")).toBe(2023);
333
+ expect(result.start.get("month")).toBe(12);
334
+ expect(result.start.get("day")).toBe(19);
335
+ });
336
+
337
+ testSingleCase(chrono, "now + 40minutes", new Date(2023, 12 - 1, 29, 8, 30), (result) => {
338
+ expect(result.start.get("year")).toBe(2023);
339
+ expect(result.start.get("month")).toBe(12);
340
+ expect(result.start.get("day")).toBe(29);
341
+ expect(result.start.get("hour")).toBe(9);
342
+ expect(result.start.get("minute")).toBe(10);
343
+ });
344
+ });
@@ -75,6 +75,10 @@ test("Test - Skip version number pattern", () => {
75
75
  testUnexpectedResult(chrono, "Version: 1.10.30");
76
76
  });
77
77
 
78
+ test("Test - Skip incorrect reference", () => {
79
+ testUnexpectedResult(chrono, "for the year");
80
+ });
81
+
78
82
  test("Test - Date with version number pattern", () => {
79
83
  testSingleCase(chrono.en, "1.5.3 - 2015-09-24", (result) => {
80
84
  expect(result.text).toBe("2015-09-24");
@@ -71,7 +71,7 @@ test("Test - Past relative expressions", () => {
71
71
 
72
72
  test("Test - Future relative expressions", () => {
73
73
  // next hour
74
- testSingleCase(chrono.nl, "komende uur", new Date(2016, 10 - 1, 1, 12), (result, text) => {
74
+ testSingleCase(chrono.nl, "komend uur", new Date(2016, 10 - 1, 1, 12), (result, text) => {
75
75
  expect(result.text).toBe(text);
76
76
  expect(result.start.get("year")).toBe(2016);
77
77
  expect(result.start.get("month")).toBe(10);
@@ -111,6 +111,20 @@ test("Test - Future relative expressions", () => {
111
111
  expect(result.start.isCertain("hour")).toBe(false);
112
112
  });
113
113
 
114
+ // next month
115
+ testSingleCase(chrono.nl, "aankomende maand", new Date(2016, 10 - 1, 1, 12), (result, text) => {
116
+ expect(result.text).toBe(text);
117
+ expect(result.start.get("year")).toBe(2016);
118
+ expect(result.start.get("month")).toBe(11);
119
+ expect(result.start.get("day")).toBe(1);
120
+ expect(result.start.get("hour")).toBe(12);
121
+
122
+ expect(result.start.isCertain("year")).toBe(true);
123
+ expect(result.start.isCertain("month")).toBe(true);
124
+ expect(result.start.isCertain("day")).toBe(false);
125
+ expect(result.start.isCertain("hour")).toBe(false);
126
+ });
127
+
114
128
  // next year
115
129
  testSingleCase(chrono.nl, "volgend jaar", new Date(2020, 11 - 1, 22, 12, 11, 32, 6), (result, text) => {
116
130
  expect(result.text).toBe(text);
@@ -137,7 +151,7 @@ test("Test - Relative date components' certainty", () => {
137
151
  const refDate = new Date(2016, 10 - 1, 7, 12);
138
152
 
139
153
  // next hour
140
- testSingleCase(chrono.nl, "komende uur", refDate, (result, text) => {
154
+ testSingleCase(chrono.nl, "komend uur", refDate, (result, text) => {
141
155
  expect(result.text).toBe(text);
142
156
  expect(result.start.get("year")).toBe(2016);
143
157
  expect(result.start.get("month")).toBe(10);
@@ -1 +0,0 @@
1
- {"version":3,"file":"ENMergeRelativeDateRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/en/refiners/ENMergeRelativeDateRefiner.ts"],"names":[],"mappings":";;AAAA,uEAAkE;AAClE,8CAA2F;AAC3F,4CAA8C;AAC9C,wDAA4D;AAE5D,SAAS,8BAA8B,CAAC,MAAqB;IACzD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAOD,MAAqB,0BAA2B,SAAQ,iCAAc;IAClE,cAAc;QACV,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,kBAAkB,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QAE3F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAC;SAChB;QAID,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,EAAE;YAChG,OAAO,KAAK,CAAC;SAChB;QAGD,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9G,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QACrF,IAAI,SAAS,GAAG,0BAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,8BAA8B,CAAC,aAAa,CAAC,EAAE;YAC/C,SAAS,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;SAC3C;QAED,MAAM,UAAU,GAAG,2BAAiB,CAAC,2BAA2B,CAC5D,IAAI,+BAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAClD,SAAS,CACZ,CAAC;QAEF,OAAO,IAAI,uBAAa,CACpB,UAAU,CAAC,SAAS,EACpB,aAAa,CAAC,KAAK,EACnB,GAAG,aAAa,CAAC,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,EACvD,UAAU,CACb,CAAC;IACN,CAAC;CACJ;AAvCD,6CAuCC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ENMergeRelativeDateRefiner.js","sourceRoot":"","sources":["../../../../../src/locales/en/refiners/ENMergeRelativeDateRefiner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,SAAS,8BAA8B,CAAC,MAAqB;IACzD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAqB;IACvD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAOD,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,cAAc;IAClE,cAAc;QACV,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,kBAAkB,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QAE3F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAC;SAChB;QAID,IAAI,CAAC,8BAA8B,CAAC,aAAa,CAAC,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,EAAE;YAChG,OAAO,KAAK,CAAC;SAChB;QAGD,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9G,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,aAA4B,EAAE,UAAyB;QACrF,IAAI,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,8BAA8B,CAAC,aAAa,CAAC,EAAE;YAC/C,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;SAC3C;QAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,2BAA2B,CAC5D,IAAI,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAClD,SAAS,CACZ,CAAC;QAEF,OAAO,IAAI,aAAa,CACpB,UAAU,CAAC,SAAS,EACpB,aAAa,CAAC,KAAK,EACnB,GAAG,aAAa,CAAC,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,EACvD,UAAU,CACb,CAAC;IACN,CAAC;CACJ"}