@louis.jln/extract-date 4.0.1 → 4.0.3

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 (58) hide show
  1. package/{src/calculateSpecificity.js → calculateSpecificity.js} +4 -1
  2. package/calculateSpecificity.js.map +1 -0
  3. package/{src/createFormats.js → createFormats.js} +19 -13
  4. package/createFormats.js.map +1 -0
  5. package/{src/createMovingChunks.js → createMovingChunks.js} +4 -1
  6. package/createMovingChunks.js.map +1 -0
  7. package/{src/extractDate.js → extractDate.js} +41 -35
  8. package/extractDate.js.map +1 -0
  9. package/extractRelativeDate.js +29 -0
  10. package/extractRelativeDate.js.map +1 -0
  11. package/index.js +8 -0
  12. package/index.js.map +1 -0
  13. package/{src/normalizeInput.js → normalizeInput.js} +4 -1
  14. package/normalizeInput.js.map +1 -0
  15. package/package.json +2 -3
  16. package/{src/resolveLocalizedNames.js → resolveLocalizedNames.js} +17 -8
  17. package/resolveLocalizedNames.js.map +1 -0
  18. package/types.js +3 -0
  19. package/types.js.map +1 -0
  20. package/src/extractRelativeDate.js +0 -23
  21. package/src/index.js +0 -2
  22. package/src/types.js +0 -1
  23. package/test/extract-date/calculateSpecificity.test.d.ts +0 -1
  24. package/test/extract-date/calculateSpecificity.test.js +0 -39
  25. package/test/extract-date/createMovingChunks.test.d.ts +0 -1
  26. package/test/extract-date/createMovingChunks.test.js +0 -28
  27. package/test/extract-date/extractDate/configuration.test.d.ts +0 -1
  28. package/test/extract-date/extractDate/configuration.test.js +0 -36
  29. package/test/extract-date/extractDate/edge-cases.test.d.ts +0 -1
  30. package/test/extract-date/extractDate/edge-cases.test.js +0 -23
  31. package/test/extract-date/extractDate/fixtures.test.d.ts +0 -1
  32. package/test/extract-date/extractDate/fixtures.test.js +0 -42
  33. package/test/extract-date/extractDate/general-formats.test.d.ts +0 -1
  34. package/test/extract-date/extractDate/general-formats.test.js +0 -45
  35. package/test/extract-date/extractDate/implied-year.test.d.ts +0 -1
  36. package/test/extract-date/extractDate/implied-year.test.js +0 -105
  37. package/test/extract-date/extractDate/localised.test.d.ts +0 -1
  38. package/test/extract-date/extractDate/localised.test.js +0 -75
  39. package/test/extract-date/extractDate/multiple-dates.test.d.ts +0 -1
  40. package/test/extract-date/extractDate/multiple-dates.test.js +0 -24
  41. package/test/extract-date/extractDate/relative-dates.test.d.ts +0 -1
  42. package/test/extract-date/extractDate/relative-dates.test.js +0 -47
  43. package/test/extract-date/extractRelativeDate.test.d.ts +0 -1
  44. package/test/extract-date/extractRelativeDate.test.js +0 -29
  45. package/test/extract-date/normalizeInput.test.d.ts +0 -1
  46. package/test/extract-date/normalizeInput.test.js +0 -14
  47. package/test/fixtures/dates.json +0 -22574
  48. /package/{src/calculateSpecificity.d.ts → calculateSpecificity.d.ts} +0 -0
  49. /package/{src/createFormats.d.ts → createFormats.d.ts} +0 -0
  50. /package/{src/createMovingChunks.d.ts → createMovingChunks.d.ts} +0 -0
  51. /package/{src/days.json → days.json} +0 -0
  52. /package/{src/extractDate.d.ts → extractDate.d.ts} +0 -0
  53. /package/{src/extractRelativeDate.d.ts → extractRelativeDate.d.ts} +0 -0
  54. /package/{src/index.d.ts → index.d.ts} +0 -0
  55. /package/{src/months.json → months.json} +0 -0
  56. /package/{src/normalizeInput.d.ts → normalizeInput.d.ts} +0 -0
  57. /package/{src/resolveLocalizedNames.d.ts → resolveLocalizedNames.d.ts} +0 -0
  58. /package/{src/types.d.ts → types.d.ts} +0 -0
@@ -1,4 +1,6 @@
1
- export default (dateFnsFormat) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = (dateFnsFormat) => {
2
4
  let specificity = 0;
3
5
  if (dateFnsFormat.includes('yyyy')) {
4
6
  specificity += 40;
@@ -14,3 +16,4 @@ export default (dateFnsFormat) => {
14
16
  }
15
17
  return specificity + dateFnsFormat.length;
16
18
  };
19
+ //# sourceMappingURL=calculateSpecificity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateSpecificity.js","sourceRoot":"","sources":["../src/calculateSpecificity.ts"],"names":[],"mappings":";;AAAA,kBAAe,CAAC,aAAqB,EAAU,EAAE;IAC/C,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,WAAW,IAAI,EAAE,CAAC;IACpB,CAAC;SAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,WAAW,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,WAAW,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5B,WAAW,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;AAC5C,CAAC,CAAC"}
@@ -1,7 +1,12 @@
1
- import cartesian from 'cartesian';
2
- import calculateSpecificity from '@/calculateSpecificity';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cartesian_1 = __importDefault(require("cartesian"));
7
+ const calculateSpecificity_1 = __importDefault(require("@/calculateSpecificity"));
3
8
  const formatCombinaison = (combination) => combination.join(' ').replace(' ,', ',').replace(/ +/, ' ').replace(/ $/, '');
4
- export default () => {
9
+ exports.default = () => {
5
10
  const yearFirstDashSeparator = [
6
11
  { dateFnsFormat: 'yyyy-MM-dd' },
7
12
  { dateFnsFormat: 'yyyy-M-d' },
@@ -41,19 +46,19 @@ export default () => {
41
46
  { dateFnsFormat: 'M/d/yy', direction: 'MDY' },
42
47
  ];
43
48
  const localised = [
44
- ...cartesian([
49
+ ...(0, cartesian_1.default)([
45
50
  ['MMMM'],
46
51
  ['d', 'do'],
47
52
  [',', ''],
48
53
  ['yyyy'],
49
54
  [',', ''],
50
55
  ]).map((combination) => ({ dateFnsFormat: formatCombinaison(combination) })),
51
- ...cartesian([
56
+ ...(0, cartesian_1.default)([
52
57
  ['do', 'd'],
53
58
  ['MMMM', 'MMM'],
54
59
  ['yyyy'],
55
60
  ]).map((combination) => ({ dateFnsFormat: formatCombinaison(combination) })),
56
- ...cartesian([
61
+ ...(0, cartesian_1.default)([
57
62
  ['MMMM', 'MMM'],
58
63
  ['yyyy'],
59
64
  ['do', 'd'],
@@ -62,31 +67,31 @@ export default () => {
62
67
  { dateFnsFormat: 'MMMM yyyy EEE d' },
63
68
  ];
64
69
  const impliedYearLocalised = [
65
- ...cartesian([
70
+ ...(0, cartesian_1.default)([
66
71
  ['EEEE', 'EEE'],
67
72
  ['', ','],
68
73
  ['MMMM', 'MMM'],
69
74
  ['dd', 'do', 'd'],
70
75
  ]).map((combination) => ({ dateFnsFormat: formatCombinaison(combination) })),
71
- ...cartesian([
76
+ ...(0, cartesian_1.default)([
72
77
  ['EEEE', 'EEE'],
73
78
  ['', ','],
74
79
  ['dd', 'do', 'd'],
75
80
  ['MMMM', 'MMM'],
76
81
  ]).map((combination) => ({ dateFnsFormat: formatCombinaison(combination) })),
77
- ...cartesian([
82
+ ...(0, cartesian_1.default)([
78
83
  ['MMMM', 'MMM'],
79
84
  ['dd', 'do', 'd'],
80
85
  [',', ''],
81
86
  ]).map((combination) => ({ dateFnsFormat: formatCombinaison(combination) })),
82
- ...cartesian([
87
+ ...(0, cartesian_1.default)([
83
88
  ['dd', 'do', 'd'],
84
89
  ['MMMM', 'MMM'],
85
90
  [',', ''],
86
91
  ]).map((combination) => ({ dateFnsFormat: formatCombinaison(combination) })),
87
92
  ];
88
93
  const impliedYear = [
89
- ...cartesian([
94
+ ...(0, cartesian_1.default)([
90
95
  ['dd', 'd'],
91
96
  ['/', '-', '.'],
92
97
  ['MM', 'M'],
@@ -95,7 +100,7 @@ export default () => {
95
100
  dateFnsFormat: combination.join('').replace(' ,', ',').replace(/ +/, ' '),
96
101
  direction: 'DM',
97
102
  })),
98
- ...cartesian([
103
+ ...(0, cartesian_1.default)([
99
104
  ['MM', 'M'],
100
105
  ['/', '-', '.'],
101
106
  ['dd', 'd'],
@@ -123,7 +128,7 @@ export default () => {
123
128
  ]
124
129
  .map((format) => ({
125
130
  localised: /eee|mmm/i.test(format.dateFnsFormat),
126
- specificity: calculateSpecificity(format.dateFnsFormat),
131
+ specificity: (0, calculateSpecificity_1.default)(format.dateFnsFormat),
127
132
  wordCount: format.dateFnsFormat.replace(/[^ ]/g, '').length + 1,
128
133
  yearIsExplicit: format.dateFnsFormat.includes('yyyy'),
129
134
  ...format,
@@ -138,3 +143,4 @@ export default () => {
138
143
  return b.specificity - a.specificity;
139
144
  });
140
145
  };
146
+ //# sourceMappingURL=createFormats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFormats.js","sourceRoot":"","sources":["../src/createFormats.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- export default (haystack, sliceLength) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = (haystack, sliceLength) => {
2
4
  const slices = [];
3
5
  let index = 0;
4
6
  while (index < haystack.length) {
@@ -10,3 +12,4 @@ export default (haystack, sliceLength) => {
10
12
  }
11
13
  return slices;
12
14
  };
15
+ //# sourceMappingURL=createMovingChunks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMovingChunks.js","sourceRoot":"","sources":["../src/createMovingChunks.ts"],"names":[],"mappings":";;AAAA,kBAAe,CAAC,QAA2B,EAAE,WAAmB,EAAkC,EAAE;IAClG,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,CAAC;QAE1D,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QAED,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -1,19 +1,24 @@
1
- import { format as formatDate, parse as parseDate, isValid as isValidDate, } from 'date-fns';
2
- import { enUS as dateFnsLocale } from 'date-fns/locale';
3
- import moment from 'moment-timezone';
4
- import dictionary from 'relative-date-names';
5
- import createMovingChunks from '@/createMovingChunks';
6
- import extractRelativeDate from '@/extractRelativeDate';
7
- import createFormats from '@/createFormats';
8
- import normalizeInput from '@/normalizeInput';
9
- import { replaceMonthName, replaceDayName } from '@/resolveLocalizedNames';
10
- import monthsData from '@/months.json';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const date_fns_1 = require("date-fns");
7
+ const locale_1 = require("date-fns/locale");
8
+ const moment_timezone_1 = __importDefault(require("moment-timezone"));
9
+ const relative_date_names_1 = __importDefault(require("relative-date-names"));
10
+ const createMovingChunks_1 = __importDefault(require("@/createMovingChunks"));
11
+ const extractRelativeDate_1 = __importDefault(require("@/extractRelativeDate"));
12
+ const createFormats_1 = __importDefault(require("@/createFormats"));
13
+ const normalizeInput_1 = __importDefault(require("@/normalizeInput"));
14
+ const resolveLocalizedNames_1 = require("@/resolveLocalizedNames");
15
+ const months_json_1 = __importDefault(require("@/months.json"));
11
16
  const defaultConfiguration = {
12
17
  maximumAge: Infinity,
13
18
  minimumAge: Infinity,
14
19
  };
15
20
  const stripDiacritics = (text) => text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
16
- const formats = createFormats();
21
+ const formats = (0, createFormats_1.default)();
17
22
  const translateChunk = (subject, locale, translateAccentless) => {
18
23
  if (locale === 'en') {
19
24
  return subject;
@@ -23,30 +28,30 @@ const translateChunk = (subject, locale, translateAccentless) => {
23
28
  const punctuationMatch = word.match(/^(.+?)([,]+)$/);
24
29
  const cleanWord = punctuationMatch ? punctuationMatch[1] : word;
25
30
  const punctuation = punctuationMatch ? punctuationMatch[2] : '';
26
- const monthReplacement = replaceMonthName(cleanWord, locale, translateAccentless);
31
+ const monthReplacement = (0, resolveLocalizedNames_1.replaceMonthName)(cleanWord, locale, translateAccentless);
27
32
  if (monthReplacement) {
28
33
  return monthReplacement + punctuation;
29
34
  }
30
- const dayReplacement = replaceDayName(cleanWord, locale, translateAccentless);
35
+ const dayReplacement = (0, resolveLocalizedNames_1.replaceDayName)(cleanWord, locale, translateAccentless);
31
36
  if (dayReplacement) {
32
37
  return dayReplacement + punctuation;
33
38
  }
34
39
  return word;
35
40
  }).join(' ');
36
41
  };
37
- export default (input, userConfiguration = defaultConfiguration) => {
38
- const normalizedInput = normalizeInput(input);
42
+ exports.default = (input, userConfiguration = defaultConfiguration) => {
43
+ const normalizedInput = (0, normalizeInput_1.default)(input);
39
44
  const configuration = {
40
45
  ...defaultConfiguration,
41
46
  ...userConfiguration,
42
47
  };
43
48
  const locale = configuration.locale || 'en';
44
49
  const translateAccentless = Boolean(configuration.translateAccentless);
45
- if (!monthsData[locale]) {
50
+ if (!months_json_1.default[locale]) {
46
51
  throw new Error('No translation available for the target locale.');
47
52
  }
48
- const hasRelativeDateSupport = Boolean(dictionary[locale]);
49
- if (configuration.timezone && !moment.tz.zone(configuration.timezone)) {
53
+ const hasRelativeDateSupport = Boolean(relative_date_names_1.default[locale]);
54
+ if (configuration.timezone && !moment_timezone_1.default.tz.zone(configuration.timezone)) {
50
55
  throw new Error('Unrecognized timezone.');
51
56
  }
52
57
  if (configuration.maximumAge && configuration.maximumAge < 0) {
@@ -57,9 +62,9 @@ export default (input, userConfiguration = defaultConfiguration) => {
57
62
  }
58
63
  let words = normalizedInput.split(' ');
59
64
  const matches = [];
60
- const baseDate = parseDate('12:00', 'HH:mm', new Date());
65
+ const baseDate = (0, date_fns_1.parse)('12:00', 'HH:mm', new Date());
61
66
  for (const format of formats) {
62
- const movingChunks = createMovingChunks(words, format.wordCount);
67
+ const movingChunks = (0, createMovingChunks_1.default)(words, format.wordCount);
63
68
  let chunkIndex = 0;
64
69
  for (const movingChunk of movingChunks) {
65
70
  const wordOffset = ++chunkIndex * format.wordCount;
@@ -70,7 +75,7 @@ export default (input, userConfiguration = defaultConfiguration) => {
70
75
  else if (!hasRelativeDateSupport) {
71
76
  }
72
77
  else {
73
- const maybeDate = extractRelativeDate(subject, configuration.locale, configuration.timezone ?? '');
78
+ const maybeDate = (0, extractRelativeDate_1.default)(subject, configuration.locale, configuration.timezone ?? '');
74
79
  if (maybeDate) {
75
80
  words = words.slice(wordOffset);
76
81
  matches.push({
@@ -82,11 +87,11 @@ export default (input, userConfiguration = defaultConfiguration) => {
82
87
  }
83
88
  else if (format.dateFnsFormat === 'EEE' || format.dateFnsFormat === 'EEEE') {
84
89
  const translatedSubject = translateChunk(subject, locale, translateAccentless);
85
- const date = parseDate(translatedSubject, format.dateFnsFormat, baseDate, { locale: dateFnsLocale });
86
- if (isValidDate(date)) {
90
+ const date = (0, date_fns_1.parse)(translatedSubject, format.dateFnsFormat, baseDate, { locale: locale_1.enUS });
91
+ if ((0, date_fns_1.isValid)(date)) {
87
92
  words = words.slice(wordOffset);
88
93
  matches.push({
89
- date: formatDate(date, 'yyyy-MM-dd'),
94
+ date: (0, date_fns_1.format)(date, 'yyyy-MM-dd'),
90
95
  originalText: stripDiacritics(subject),
91
96
  });
92
97
  }
@@ -95,8 +100,8 @@ export default (input, userConfiguration = defaultConfiguration) => {
95
100
  const yearIsExplicit = typeof format.yearIsExplicit === 'boolean' ? format.yearIsExplicit : true;
96
101
  const translatedSubject = format.localised ? translateChunk(subject, locale, translateAccentless) : subject;
97
102
  if (yearIsExplicit) {
98
- const date = parseDate(translatedSubject, format.dateFnsFormat, baseDate, { locale: dateFnsLocale });
99
- if (!isValidDate(date)) {
103
+ const date = (0, date_fns_1.parse)(translatedSubject, format.dateFnsFormat, baseDate, { locale: locale_1.enUS });
104
+ if (!(0, date_fns_1.isValid)(date)) {
100
105
  continue;
101
106
  }
102
107
  const formatDirection = format.direction;
@@ -111,18 +116,18 @@ export default (input, userConfiguration = defaultConfiguration) => {
111
116
  }
112
117
  words = words.slice(wordOffset);
113
118
  matches.push({
114
- date: formatDate(date, 'yyyy-MM-dd'),
119
+ date: (0, date_fns_1.format)(date, 'yyyy-MM-dd'),
115
120
  originalText: stripDiacritics(subject),
116
121
  });
117
122
  }
118
123
  else {
119
- const date = parseDate(translatedSubject, format.dateFnsFormat, baseDate, { locale: dateFnsLocale });
120
- if (!isValidDate(date)) {
124
+ const date = (0, date_fns_1.parse)(translatedSubject, format.dateFnsFormat, baseDate, { locale: locale_1.enUS });
125
+ if (!(0, date_fns_1.isValid)(date)) {
121
126
  continue;
122
127
  }
123
- const currentYear = parseInt(formatDate(baseDate, 'yyyy'), 10);
124
- const currentMonth = parseInt(formatDate(baseDate, 'M'), 10) + currentYear * 12;
125
- const parsedMonth = parseInt(formatDate(date, 'M'), 10) + parseInt(formatDate(date, 'yyyy'), 10) * 12;
128
+ const currentYear = parseInt((0, date_fns_1.format)(baseDate, 'yyyy'), 10);
129
+ const currentMonth = parseInt((0, date_fns_1.format)(baseDate, 'M'), 10) + currentYear * 12;
130
+ const parsedMonth = parseInt((0, date_fns_1.format)(date, 'M'), 10) + parseInt((0, date_fns_1.format)(date, 'yyyy'), 10) * 12;
126
131
  const difference = parsedMonth - currentMonth;
127
132
  let useYear;
128
133
  if (difference >= configuration.maximumAge) {
@@ -134,8 +139,8 @@ export default (input, userConfiguration = defaultConfiguration) => {
134
139
  else {
135
140
  useYear = currentYear;
136
141
  }
137
- const maybeDate = parseDate(useYear + '-' + formatDate(date, 'MM-dd'), 'yyyy-MM-dd', baseDate, { locale: dateFnsLocale });
138
- if (!isValidDate(maybeDate)) {
142
+ const maybeDate = (0, date_fns_1.parse)(useYear + '-' + (0, date_fns_1.format)(date, 'MM-dd'), 'yyyy-MM-dd', baseDate, { locale: locale_1.enUS });
143
+ if (!(0, date_fns_1.isValid)(maybeDate)) {
139
144
  continue;
140
145
  }
141
146
  if (format.direction && format.direction !== configuration.direction) {
@@ -146,7 +151,7 @@ export default (input, userConfiguration = defaultConfiguration) => {
146
151
  }
147
152
  words = words.slice(wordOffset);
148
153
  matches.push({
149
- date: formatDate(maybeDate, 'yyyy-MM-dd'),
154
+ date: (0, date_fns_1.format)(maybeDate, 'yyyy-MM-dd'),
150
155
  originalText: stripDiacritics(subject),
151
156
  });
152
157
  }
@@ -155,3 +160,4 @@ export default (input, userConfiguration = defaultConfiguration) => {
155
160
  }
156
161
  return matches;
157
162
  };
163
+ //# sourceMappingURL=extractDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractDate.js","sourceRoot":"","sources":["../src/extractDate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const moment_timezone_1 = __importDefault(require("moment-timezone"));
7
+ const relative_date_names_1 = __importDefault(require("relative-date-names"));
8
+ exports.default = (subject, locale, timezone) => {
9
+ const translation = relative_date_names_1.default[locale];
10
+ if (!translation) {
11
+ throw new Error('No translation available for the target locale.');
12
+ }
13
+ if (timezone && !moment_timezone_1.default.tz.zone(timezone)) {
14
+ throw new Error('Unrecognized timezone.');
15
+ }
16
+ const normalizedSubject = subject.toLowerCase();
17
+ const now = (0, moment_timezone_1.default)();
18
+ if (normalizedSubject === translation.day.relative.yesterday) {
19
+ return now.subtract(1, 'day').format('YYYY-MM-DD');
20
+ }
21
+ if (normalizedSubject === translation.day.relative.today) {
22
+ return now.format('YYYY-MM-DD');
23
+ }
24
+ if (normalizedSubject === translation.day.relative.tomorrow) {
25
+ return now.add(1, 'day').format('YYYY-MM-DD');
26
+ }
27
+ return null;
28
+ };
29
+ //# sourceMappingURL=extractRelativeDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractRelativeDate.js","sourceRoot":"","sources":["../src/extractRelativeDate.ts"],"names":[],"mappings":";;;;;AAAA,sEAAqC;AACrC,8EAA6C;AAE7C,kBAAe,CAAC,OAAe,EAAE,MAAc,EAAE,QAAgB,EAAiB,EAAE;IAClF,MAAM,WAAW,GAAI,6BAA4G,CAAC,MAAM,CAAC,CAAC;IAE1I,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,QAAQ,IAAI,CAAC,yBAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEhD,MAAM,GAAG,GAAG,IAAA,yBAAM,GAAE,CAAC;IAErB,IAAI,iBAAiB,KAAK,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC7D,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,iBAAiB,KAAK,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACzD,OAAO,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,iBAAiB,KAAK,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC5D,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
package/index.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const extractDate_1 = __importDefault(require("@/extractDate"));
7
+ exports.default = extractDate_1.default;
8
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,gEAAwC;AAExC,kBAAe,qBAAW,CAAC"}
@@ -1,4 +1,6 @@
1
- export default (input) => {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = (input) => {
2
4
  let lastInput = input;
3
5
  while (true) {
4
6
  const result = lastInput
@@ -15,3 +17,4 @@ export default (input) => {
15
17
  lastInput = result;
16
18
  }
17
19
  };
20
+ //# sourceMappingURL=normalizeInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeInput.js","sourceRoot":"","sources":["../src/normalizeInput.ts"],"names":[],"mappings":";;AAAA,kBAAe,CAAC,KAAa,EAAU,EAAE;IACvC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,SAAS;YAEtB,sBAAsB;aACrB,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC;aAE/B,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC;aAEpC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,IAAI,EAAE;aACN,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE1B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;AACH,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "author": "Gajus Kuizinas <gajus@gajus.com> (http://gajus.com)",
3
3
  "dependencies": {
4
- "@louis.jln/extract-date": "^4.0.0",
5
4
  "cartesian": "^1.0.1",
6
5
  "date-fns": "^2.9.0",
7
6
  "moment": "^2.24.0",
@@ -35,14 +34,14 @@
35
34
  "url": "git+https://github.com/LouisJULIEN/extract-date.git"
36
35
  },
37
36
  "scripts": {
38
- "build": "rm -fr ./dist && tsc --project tsconfig.json",
37
+ "build": "rm -fr ./dist && tsc --project tsconfig.build.json",
39
38
  "lint": "eslint ./src ./test",
40
39
  "test": "vitest run",
41
40
  "typecheck": "tsc --noEmit",
42
41
  "npm-publish": "rm -rf build; npm run build; cp package.json dist/package.json; cd dist; npm publish --access public",
43
42
  "prepare": "husky"
44
43
  },
45
- "version": "4.0.1",
44
+ "version": "4.0.3",
46
45
  "directories": {
47
46
  "test": "test"
48
47
  },
@@ -1,8 +1,14 @@
1
- import monthsData from '@/months.json';
2
- import daysData from '@/days.json';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.replaceDayName = exports.replaceMonthName = void 0;
7
+ const months_json_1 = __importDefault(require("@/months.json"));
8
+ const days_json_1 = __importDefault(require("@/days.json"));
3
9
  const stripDiacritics = (text) => text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
4
- const enMonths = monthsData.en;
5
- const enDays = daysData.en;
10
+ const enMonths = months_json_1.default.en;
11
+ const enDays = days_json_1.default.en;
6
12
  // Cache: locale -> Map<lowercaseName, englishName>
7
13
  const monthLookupCache = {};
8
14
  const dayLookupCache = {};
@@ -10,7 +16,7 @@ const buildMonthLookup = (locale) => {
10
16
  if (monthLookupCache[locale]) {
11
17
  return monthLookupCache[locale];
12
18
  }
13
- const localeData = monthsData[locale];
19
+ const localeData = months_json_1.default[locale];
14
20
  if (!localeData) {
15
21
  monthLookupCache[locale] = {};
16
22
  return monthLookupCache[locale];
@@ -31,7 +37,7 @@ const buildDayLookup = (locale) => {
31
37
  if (dayLookupCache[locale]) {
32
38
  return dayLookupCache[locale];
33
39
  }
34
- const localeData = daysData[locale];
40
+ const localeData = days_json_1.default[locale];
35
41
  if (!localeData) {
36
42
  dayLookupCache[locale] = {};
37
43
  return dayLookupCache[locale];
@@ -48,7 +54,7 @@ const buildDayLookup = (locale) => {
48
54
  dayLookupCache[locale] = lookup;
49
55
  return lookup;
50
56
  };
51
- export const replaceMonthName = (word, locale, accentless) => {
57
+ const replaceMonthName = (word, locale, accentless) => {
52
58
  const lookup = buildMonthLookup(locale);
53
59
  const lower = word.toLowerCase();
54
60
  if (lookup[lower]) {
@@ -64,7 +70,8 @@ export const replaceMonthName = (word, locale, accentless) => {
64
70
  }
65
71
  return null;
66
72
  };
67
- export const replaceDayName = (word, locale, accentless) => {
73
+ exports.replaceMonthName = replaceMonthName;
74
+ const replaceDayName = (word, locale, accentless) => {
68
75
  const lookup = buildDayLookup(locale);
69
76
  const lower = word.toLowerCase();
70
77
  if (lookup[lower]) {
@@ -80,3 +87,5 @@ export const replaceDayName = (word, locale, accentless) => {
80
87
  }
81
88
  return null;
82
89
  };
90
+ exports.replaceDayName = replaceDayName;
91
+ //# sourceMappingURL=resolveLocalizedNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveLocalizedNames.js","sourceRoot":"","sources":["../src/resolveLocalizedNames.ts"],"names":[],"mappings":"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"}
package/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
package/types.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,23 +0,0 @@
1
- import moment from 'moment-timezone';
2
- import dictionary from 'relative-date-names';
3
- export default (subject, locale, timezone) => {
4
- const translation = dictionary[locale];
5
- if (!translation) {
6
- throw new Error('No translation available for the target locale.');
7
- }
8
- if (timezone && !moment.tz.zone(timezone)) {
9
- throw new Error('Unrecognized timezone.');
10
- }
11
- const normalizedSubject = subject.toLowerCase();
12
- const now = moment();
13
- if (normalizedSubject === translation.day.relative.yesterday) {
14
- return now.subtract(1, 'day').format('YYYY-MM-DD');
15
- }
16
- if (normalizedSubject === translation.day.relative.today) {
17
- return now.format('YYYY-MM-DD');
18
- }
19
- if (normalizedSubject === translation.day.relative.tomorrow) {
20
- return now.add(1, 'day').format('YYYY-MM-DD');
21
- }
22
- return null;
23
- };
package/src/index.js DELETED
@@ -1,2 +0,0 @@
1
- import extractDate from '@/extractDate';
2
- export default extractDate;
package/src/types.js DELETED
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,39 +0,0 @@
1
- import { it, expect } from 'vitest';
2
- import cartesian from 'cartesian';
3
- import calculateSpecificity from '@/calculateSpecificity';
4
- it('tokens including yyyy, (MMMM, MM, MM, M), (dd, d, do) have the highest specificity', () => {
5
- const formats = cartesian([
6
- [
7
- 'yyyy',
8
- ],
9
- [
10
- 'MMMM',
11
- 'MMM',
12
- 'MM',
13
- 'M',
14
- ],
15
- [
16
- 'dd',
17
- 'd',
18
- 'do',
19
- ],
20
- ]);
21
- for (const tokens of formats) {
22
- const format = tokens.join(' ');
23
- expect(calculateSpecificity(format)).toBe(80 + format.length);
24
- }
25
- });
26
- it('tokens without year, month or month date have the lowest specificity', () => {
27
- const formats = [
28
- 'EEEE',
29
- 'EEE',
30
- 'R',
31
- ];
32
- for (const format of formats) {
33
- expect(calculateSpecificity(format)).toBe(format.length);
34
- }
35
- });
36
- it('adds format length to the specificity', () => {
37
- expect(calculateSpecificity('xxxx')).toBe(4);
38
- expect(calculateSpecificity('xx')).toBe(2);
39
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,28 +0,0 @@
1
- import { it, expect } from 'vitest';
2
- import createMovingChunks from '@/createMovingChunks';
3
- it('creates an array of fixed length text slices, each offset by 1 character', () => {
4
- expect(createMovingChunks(['a', 'b', 'c', 'd'], 2)).toEqual([
5
- [
6
- 'a',
7
- 'b',
8
- ],
9
- [
10
- 'b',
11
- 'c',
12
- ],
13
- [
14
- 'c',
15
- 'd',
16
- ],
17
- ]);
18
- expect(createMovingChunks(['a', 'b', 'c'], 2)).toEqual([
19
- [
20
- 'a',
21
- 'b',
22
- ],
23
- [
24
- 'b',
25
- 'c',
26
- ],
27
- ]);
28
- });
@@ -1 +0,0 @@
1
- export {};