colombian-holidays 4.1.1 → 5.0.0

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 (35) hide show
  1. package/README.md +50 -3
  2. package/{lib → dist}/helpers.d.ts +0 -1
  3. package/{lib → dist}/helpers.js +3 -7
  4. package/{lib → dist}/helpers.js.map +1 -1
  5. package/{lib → dist}/index.d.ts +3 -0
  6. package/{lib → dist}/index.js +7 -1
  7. package/{lib → dist}/index.js.map +1 -1
  8. package/dist/utils/getHoliday.js +24 -0
  9. package/dist/utils/getHoliday.js.map +1 -0
  10. package/dist/utils/getHolidaysByYear.d.ts +7 -0
  11. package/dist/utils/getHolidaysByYear.js +29 -0
  12. package/dist/utils/getHolidaysByYear.js.map +1 -0
  13. package/dist/utils/holidaysWithinInterval.js +23 -0
  14. package/dist/utils/holidaysWithinInterval.js.map +1 -0
  15. package/dist/utils/isHoliday.js +13 -0
  16. package/dist/utils/isHoliday.js.map +1 -0
  17. package/package.json +9 -4
  18. package/lib/utils/getHoliday.js +0 -29
  19. package/lib/utils/getHoliday.js.map +0 -1
  20. package/lib/utils/holidaysWithinInterval.js +0 -23
  21. package/lib/utils/holidaysWithinInterval.js.map +0 -1
  22. package/lib/utils/isHoliday.js +0 -16
  23. package/lib/utils/isHoliday.js.map +0 -1
  24. /package/{lib → dist}/holidays.d.ts +0 -0
  25. /package/{lib → dist}/holidays.js +0 -0
  26. /package/{lib → dist}/holidays.js.map +0 -0
  27. /package/{lib → dist}/types.d.ts +0 -0
  28. /package/{lib → dist}/types.js +0 -0
  29. /package/{lib → dist}/types.js.map +0 -0
  30. /package/{lib → dist}/utils/getHoliday.d.ts +0 -0
  31. /package/{lib → dist}/utils/helpers.d.ts +0 -0
  32. /package/{lib → dist}/utils/helpers.js +0 -0
  33. /package/{lib → dist}/utils/helpers.js.map +0 -0
  34. /package/{lib → dist}/utils/holidaysWithinInterval.d.ts +0 -0
  35. /package/{lib → dist}/utils/isHoliday.d.ts +0 -0
package/README.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # Colombian Holidays 🎆
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/colombian-holidays.svg)](https://badge.fury.io/js/colombian-holidays)
4
- [![build and release](https://github.com/MauricioRobayo/colombian-holidays/actions/workflows/build-and-release.yml/badge.svg)](https://github.com/MauricioRobayo/colombian-holidays/actions/workflows/build-and-release.yml)
4
+ [![Build and release](https://github.com/MauricioRobayo/colombian-holidays/actions/workflows/build-and-release.yml/badge.svg)](https://github.com/MauricioRobayo/colombian-holidays/actions/workflows/build-and-release.yml)
5
5
  [![codecov](https://codecov.io/gh/MauricioRobayo/colombian-holidays/branch/master/graph/badge.svg)](https://codecov.io/gh/MauricioRobayo/colombian-holidays)
6
6
  [![CodeFactor](https://www.codefactor.io/repository/github/mauriciorobayo/colombian-holidays/badge)](https://www.codefactor.io/repository/github/mauriciorobayo/colombian-holidays)
7
+ [![](https://badgen.net/badge/Run%20with%20/VS%20Code/5B3ADF?icon=https://runme.dev/img/logo.svg)](git@github.com:MauricioRobayo/colombian-holidays.git)
7
8
 
8
9
  TypeScript module to calculate colombian holidays for any given year.
9
10
 
@@ -11,7 +12,7 @@ TypeScript module to calculate colombian holidays for any given year.
11
12
 
12
13
  To install as a dependency of your project:
13
14
 
14
- ```shell
15
+ ```sh
15
16
  npm install colombian-holidays
16
17
  ```
17
18
 
@@ -39,6 +40,20 @@ You get a function that you can use to get the complete list of holidays for a g
39
40
  const colombianHolidays2015 = colombianHolidays({ year: 2015 });
40
41
  ```
41
42
 
43
+ # Examples
44
+
45
+ Get current year holidays
46
+
47
+ ```sh
48
+ npm run ts-node examples/currentDate
49
+ ```
50
+
51
+ Get next year holidays
52
+
53
+ ```sh
54
+ npm run ts-node examples/nextYear
55
+ ```
56
+
42
57
  The content of the `colombianHolidays2015` variable will be the following array:
43
58
 
44
59
  ```js
@@ -218,6 +233,12 @@ Returns:
218
233
  ];
219
234
  ```
220
235
 
236
+ Run the previous example
237
+
238
+ ```sh
239
+ npm run ts-node examples/monthHolidays
240
+ ```
241
+
221
242
  You can opt-in to have the function return native JavaScript dates instead of strings for the `date` and `celebrationDate` properties by using the `valueAsDate` option:
222
243
 
223
244
  ```js
@@ -236,7 +257,33 @@ const currentYearHolidaysAsDates = colombianHolidays({ valueAsDate: true });
236
257
 
237
258
  ## Utils
238
259
 
239
- The package provides two helper functions which can be imported from `lib/utils`:
260
+ The package provides four helper functions:
261
+
262
+ ### getHolidaysByYear
263
+
264
+ Returns the list of all Colombian holidays for a given year.
265
+
266
+ ```js
267
+ import { getHolidaysByYear } from "colombian-holidays/lib/utils/getHolidaysByYear";
268
+
269
+ const holidays = getHolidaysByYear(2025);
270
+ ```
271
+
272
+ You can also pass the `valueAsDate` option to return native JavaScript `Date` objects instead of ISO strings:
273
+
274
+ ```js
275
+ const holidaysAsDates = getHolidaysByYear(2025, { valueAsDate: true });
276
+ ```
277
+
278
+ This function is equivalent to calling:
279
+
280
+ ```js
281
+ colombianHolidays({ year: 2025 });
282
+ ```
283
+
284
+ But exposed as a named utility function for convenience.
285
+
286
+ This function uses a shared in-memory cache and is a preferable option to `colombianHolidays` when the same year is requested multiple times, such as in loops or build processes.
240
287
 
241
288
  ### isHoliday
242
289
 
@@ -1,6 +1,5 @@
1
1
  import type { Holiday, ColombianHoliday, ColombianHolidayWithNativeDate } from "./types";
2
2
  export declare const NEW_HOLIDAY_SCHEMA_START_YEAR = 1984;
3
- export declare function generateUtcStringFromDate(date: Date): string;
4
3
  declare function getHoliday(holiday: Holiday, options?: {
5
4
  year?: number;
6
5
  valueAsDate: false | undefined;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateUtcStringFromDate = exports.NEW_HOLIDAY_SCHEMA_START_YEAR = void 0;
6
+ exports.NEW_HOLIDAY_SCHEMA_START_YEAR = void 0;
7
7
  const pascua_1 = __importDefault(require("pascua"));
8
8
  // 1984 is the year when the current holidays scheme is enforced
9
9
  // http://www.alcaldiabogota.gov.co/sisjur/normas/Norma1.jsp?i=4954
@@ -32,20 +32,16 @@ function getHolidayDate(holiday, year) {
32
32
  function generateUtcStringFromDateParts(year, month, day) {
33
33
  return `${year}-${String(month).padStart(2, "0")}-${String(day).padStart(2, "0")}`;
34
34
  }
35
- function generateUtcStringFromDate(date) {
36
- return generateUtcStringFromDateParts(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate());
37
- }
38
- exports.generateUtcStringFromDate = generateUtcStringFromDate;
39
35
  function getHoliday(holiday, { year = new Date().getUTCFullYear(), valueAsDate = false, } = {}) {
40
36
  const holidayDate = getHolidayDate(holiday, year);
41
37
  const celebrationDate = year >= exports.NEW_HOLIDAY_SCHEMA_START_YEAR && holiday.nextMonday
42
38
  ? getNextMonday(holidayDate)
43
39
  : holidayDate;
44
40
  return {
45
- date: valueAsDate ? holidayDate : generateUtcStringFromDate(holidayDate),
41
+ date: valueAsDate ? holidayDate : holidayDate.toISOString().slice(0, 10),
46
42
  celebrationDate: valueAsDate
47
43
  ? celebrationDate
48
- : generateUtcStringFromDate(celebrationDate),
44
+ : celebrationDate.toISOString().slice(0, 10),
49
45
  name: holiday.name,
50
46
  nextMonday: year >= exports.NEW_HOLIDAY_SCHEMA_START_YEAR && holiday.nextMonday,
51
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAQ5B,gEAAgE;AAChE,mEAAmE;AACtD,QAAA,6BAA6B,GAAG,IAAI,CAAC;AAElD,SAAS,gBAAgB,CAAC,IAAU,EAAE,SAAiB;IACrD,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,UAAU,CAAC,UAAU,CACnB,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAC7D,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,IAAU;IAC/B,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,QAAQ,IAAI,OAAO,CAAC;AAC7B,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB,EAAE,IAAY;IACpD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,IAAI,IAAI,CACb,8BAA8B,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,IAAY,EACZ,KAAa,EACb,GAAW;IAEX,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CACtE,CAAC,EACD,GAAG,CACJ,EAAE,CAAC;AACN,CAAC;AAED,SAAgB,yBAAyB,CAAC,IAAU;IAClD,OAAO,8BAA8B,CACnC,IAAI,CAAC,cAAc,EAAE,EACrB,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EACtB,IAAI,CAAC,UAAU,EAAE,CAClB,CAAC;AACJ,CAAC;AAND,8DAMC;AAcD,SAAS,UAAU,CACjB,OAAgB,EAChB,EACE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAClC,WAAW,GAAG,KAAK,MACyB,EAAE;IAEhD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,eAAe,GACnB,IAAI,IAAI,qCAA6B,IAAI,OAAO,CAAC,UAAU;QACzD,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;QAC5B,CAAC,CAAC,WAAW,CAAC;IAElB,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,WAAW,CAAC;QACxE,eAAe,EAAE,WAAW;YAC1B,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,yBAAyB,CAAC,eAAe,CAAC;QAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,IAAI,IAAI,qCAA6B,IAAI,OAAO,CAAC,UAAU;KACxE,CAAC;AACJ,CAAC;AAED,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAQ5B,gEAAgE;AAChE,mEAAmE;AACtD,QAAA,6BAA6B,GAAG,IAAI,CAAC;AAElD,SAAS,gBAAgB,CAAC,IAAU,EAAE,SAAiB;IACrD,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,UAAU,CAAC,UAAU,CACnB,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAC7D,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,IAAU;IAC/B,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,QAAQ,IAAI,OAAO,CAAC;AAC7B,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB,EAAE,IAAY;IACpD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,IAAI,IAAI,CACb,8BAA8B,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,IAAY,EACZ,KAAa,EACb,GAAW;IAEX,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CACtE,CAAC,EACD,GAAG,CACJ,EAAE,CAAC;AACN,CAAC;AAcD,SAAS,UAAU,CACjB,OAAgB,EAChB,EACE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAClC,WAAW,GAAG,KAAK,MACyB,EAAE;IAEhD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,eAAe,GACnB,IAAI,IAAI,qCAA6B,IAAI,OAAO,CAAC,UAAU;QACzD,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;QAC5B,CAAC,CAAC,WAAW,CAAC;IAElB,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACxE,eAAe,EAAE,WAAW;YAC1B,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,IAAI,IAAI,qCAA6B,IAAI,OAAO,CAAC,UAAU;KACxE,CAAC;AACJ,CAAC;AAED,kBAAe,UAAU,CAAC"}
@@ -19,3 +19,6 @@ export declare function colombianHolidays(options?: {
19
19
  valueAsDate?: boolean;
20
20
  }): ColombianHoliday[] | ColombianHolidayWithNativeDate[];
21
21
  export default colombianHolidays;
22
+ export { getHolidaysForYear } from "./utils/getHolidaysByYear";
23
+ export { isHoliday } from "./utils/isHoliday";
24
+ export { holidaysWithinInterval } from "./utils/holidaysWithinInterval";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.colombianHolidays = exports.LAST_HOLIDAY_YEAR = exports.FIRST_HOLIDAY_YEAR = void 0;
6
+ exports.holidaysWithinInterval = exports.isHoliday = exports.getHolidaysForYear = exports.colombianHolidays = exports.LAST_HOLIDAY_YEAR = exports.FIRST_HOLIDAY_YEAR = void 0;
7
7
  const helpers_1 = __importDefault(require("./helpers"));
8
8
  const holidays_1 = __importDefault(require("./holidays"));
9
9
  // pascua package year limits
@@ -38,4 +38,10 @@ function colombianHolidays({ year = new Date().getUTCFullYear(), month, valueAsD
38
38
  }
39
39
  exports.colombianHolidays = colombianHolidays;
40
40
  exports.default = colombianHolidays;
41
+ var getHolidaysByYear_1 = require("./utils/getHolidaysByYear");
42
+ Object.defineProperty(exports, "getHolidaysForYear", { enumerable: true, get: function () { return getHolidaysByYear_1.getHolidaysForYear; } });
43
+ var isHoliday_1 = require("./utils/isHoliday");
44
+ Object.defineProperty(exports, "isHoliday", { enumerable: true, get: function () { return isHoliday_1.isHoliday; } });
45
+ var holidaysWithinInterval_1 = require("./utils/holidaysWithinInterval");
46
+ Object.defineProperty(exports, "holidaysWithinInterval", { enumerable: true, get: function () { return holidaysWithinInterval_1.holidaysWithinInterval; } });
41
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAmC;AACnC,0DAAkC;AAGlC,6BAA6B;AAChB,QAAA,kBAAkB,GAAG,IAAI,CAAC;AAC1B,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAoBtC,SAAgB,iBAAiB,CAAC,EAChC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAClC,KAAK,EACL,WAAW,GAAG,KAAK,MAKjB,EAAE;IACJ,IAAI,IAAI,GAAG,0BAAkB,IAAI,IAAI,GAAG,yBAAiB,EAAE;QACzD,MAAM,IAAI,KAAK,CACb,8BAA8B,0BAAkB,QAAQ,yBAAiB,EAAE,CAC5E,CAAC;KACH;IAED,OAAO,kBAAQ;SACZ,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,iBAAU,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;SAC5D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAClB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,EAAE;YAC/C,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;SAC9D;QAED,OAAO,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC;IAC7D,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,IACE,CAAC,CAAC,eAAe,YAAY,IAAI;YACjC,CAAC,CAAC,eAAe,YAAY,IAAI,EACjC;YACA,OAAO,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SAClE;QAED,IACE,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ;YACrC,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,EACrC;YACA,OAAO,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;SAC3D;QAED,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,CAAC;AA7CD,8CA6CC;AAED,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAmC;AACnC,0DAAkC;AAGlC,6BAA6B;AAChB,QAAA,kBAAkB,GAAG,IAAI,CAAC;AAC1B,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAoBtC,SAAgB,iBAAiB,CAAC,EAChC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,cAAc,EAAE,EAClC,KAAK,EACL,WAAW,GAAG,KAAK,MAKjB,EAAE;IACJ,IAAI,IAAI,GAAG,0BAAkB,IAAI,IAAI,GAAG,yBAAiB,EAAE;QACzD,MAAM,IAAI,KAAK,CACb,8BAA8B,0BAAkB,QAAQ,yBAAiB,EAAE,CAC5E,CAAC;KACH;IAED,OAAO,kBAAQ;SACZ,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,iBAAU,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;SAC5D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAClB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,EAAE;YAC/C,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC;SAC9D;QAED,OAAO,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC;IAC7D,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,IACE,CAAC,CAAC,eAAe,YAAY,IAAI;YACjC,CAAC,CAAC,eAAe,YAAY,IAAI,EACjC;YACA,OAAO,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SAClE;QAED,IACE,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ;YACrC,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,EACrC;YACA,OAAO,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;SAC3D;QAED,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,CAAC;AA7CD,8CA6CC;AAED,kBAAe,iBAAiB,CAAC;AAEjC,+DAA+D;AAAtD,uHAAA,kBAAkB,OAAA;AAC3B,+CAA8C;AAArC,sGAAA,SAAS,OAAA;AAClB,yEAAwE;AAA/D,gIAAA,sBAAsB,OAAA"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHoliday = void 0;
4
+ const getHolidaysByYear_1 = require("./getHolidaysByYear");
5
+ const helpers_1 = require("./helpers");
6
+ function getHoliday(date, options = { valueAsDate: false }) {
7
+ const { valueAsDate } = options;
8
+ const holiday = (0, getHolidaysByYear_1.getHolidaysForYear)(date.getUTCFullYear(), {
9
+ valueAsDate: true,
10
+ }).find(({ celebrationDate }) => (0, helpers_1.isSameDate)(celebrationDate, date));
11
+ if (!holiday) {
12
+ return null;
13
+ }
14
+ if (valueAsDate) {
15
+ return holiday;
16
+ }
17
+ return {
18
+ ...holiday,
19
+ date: holiday.date.toISOString().slice(0, 10),
20
+ celebrationDate: holiday.celebrationDate.toISOString().slice(0, 10),
21
+ };
22
+ }
23
+ exports.getHoliday = getHoliday;
24
+ //# sourceMappingURL=getHoliday.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHoliday.js","sourceRoot":"","sources":["../../src/utils/getHoliday.ts"],"names":[],"mappings":";;;AACA,2DAAyD;AACzD,uCAAuC;AAUvC,SAAgB,UAAU,CACxB,IAAU,EACV,UAAoC,EAAE,WAAW,EAAE,KAAK,EAAE;IAE1D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,IAAA,sCAAkB,EAAC,IAAI,CAAC,cAAc,EAAE,EAAE;QACxD,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IAED,IAAI,WAAW,EAAE;QACf,OAAO,OAAO,CAAC;KAChB;IACD,OAAO;QACL,GAAG,OAAO;QACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7C,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC;AApBD,gCAoBC"}
@@ -0,0 +1,7 @@
1
+ import type { ColombianHolidayWithNativeDate, ColombianHoliday } from "../types";
2
+ export declare function getHolidaysForYear(year: number, options?: {
3
+ valueAsDate: false | undefined;
4
+ }): ColombianHoliday[];
5
+ export declare function getHolidaysForYear(year: number, options?: {
6
+ valueAsDate: true;
7
+ }): ColombianHolidayWithNativeDate[];
@@ -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
+ exports.getHolidaysForYear = void 0;
7
+ const __1 = __importDefault(require(".."));
8
+ const holidaysWithNativeDateCache = new Map();
9
+ const holidaysCache = new Map();
10
+ function getHolidaysForYear(year, { valueAsDate = false } = {}) {
11
+ if (valueAsDate) {
12
+ const cachedHolidays = holidaysWithNativeDateCache.get(year);
13
+ if (cachedHolidays) {
14
+ return cachedHolidays;
15
+ }
16
+ const holidays = (0, __1.default)({ year, valueAsDate });
17
+ holidaysWithNativeDateCache.set(year, holidays);
18
+ return holidays;
19
+ }
20
+ const cachedHolidays = holidaysCache.get(year);
21
+ if (cachedHolidays) {
22
+ return cachedHolidays;
23
+ }
24
+ const holidays = (0, __1.default)({ year, valueAsDate });
25
+ holidaysCache.set(year, holidays);
26
+ return holidays;
27
+ }
28
+ exports.getHolidaysForYear = getHolidaysForYear;
29
+ //# sourceMappingURL=getHolidaysByYear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHolidaysByYear.js","sourceRoot":"","sources":["../../src/utils/getHolidaysByYear.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAmC;AAMnC,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAGxC,CAAC;AACJ,MAAM,aAAa,GAAG,IAAI,GAAG,EAA8B,CAAC;AAU5D,SAAgB,kBAAkB,CAChC,IAAY,EACZ,EAAE,WAAW,GAAG,KAAK,KAAgC,EAAE;IAEvD,IAAI,WAAW,EAAE;QACf,MAAM,cAAc,GAAG,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,cAAc,EAAE;YAClB,OAAO,cAAc,CAAC;SACvB;QAED,MAAM,QAAQ,GAAG,IAAA,WAAiB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1D,2BAA2B,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;KACjB;IAED,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,cAAc,EAAE;QAClB,OAAO,cAAc,CAAC;KACvB;IAED,MAAM,QAAQ,GAAG,IAAA,WAAiB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAvBD,gDAuBC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.holidaysWithinInterval = void 0;
4
+ const getHolidaysByYear_1 = require("./getHolidaysByYear");
5
+ function holidaysWithinInterval({ start, end, valueAsDate = false, }) {
6
+ if (start >= end) {
7
+ throw new Error("end date should be greater than start date");
8
+ }
9
+ const yearEnd = end.getUTCFullYear();
10
+ const yearStart = start.getUTCFullYear();
11
+ const holidays = Array.from({ length: yearEnd - yearStart + 1 }, (_, i) => (0, getHolidaysByYear_1.getHolidaysForYear)(i + yearStart, { valueAsDate: true })).flat();
12
+ const holidaysWithin = holidays.filter(({ celebrationDate }) => celebrationDate >= start && celebrationDate <= end);
13
+ if (valueAsDate) {
14
+ return holidaysWithin;
15
+ }
16
+ return holidaysWithin.map((holiday) => ({
17
+ ...holiday,
18
+ date: holiday.date.toISOString().slice(0, 10),
19
+ celebrationDate: holiday.celebrationDate.toISOString().slice(0, 10),
20
+ }));
21
+ }
22
+ exports.holidaysWithinInterval = holidaysWithinInterval;
23
+ //# sourceMappingURL=holidaysWithinInterval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"holidaysWithinInterval.js","sourceRoot":"","sources":["../../src/utils/holidaysWithinInterval.ts"],"names":[],"mappings":";;;AACA,2DAAyD;AAiBzD,SAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,GAAG,EACH,WAAW,GAAG,KAAK,GAKpB;IACC,IAAI,KAAK,IAAI,GAAG,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACxE,IAAA,sCAAkB,EAAC,CAAC,GAAG,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CACzD,CAAC,IAAI,EAAE,CAAC;IAET,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,eAAe,IAAI,KAAK,IAAI,eAAe,IAAI,GAAG,CAC5E,CAAC;IAEF,IAAI,WAAW,EAAE;QACf,OAAO,cAAc,CAAC;KACvB;IAED,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,GAAG,OAAO;QACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7C,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;KACpE,CAAC,CAAC,CAAC;AACN,CAAC;AAhCD,wDAgCC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isHoliday = void 0;
4
+ const getHolidaysByYear_1 = require("./getHolidaysByYear");
5
+ const helpers_1 = require("./helpers");
6
+ function isHoliday(date) {
7
+ const holidays = (0, getHolidaysByYear_1.getHolidaysForYear)(date.getUTCFullYear(), {
8
+ valueAsDate: true,
9
+ });
10
+ return holidays.some(({ celebrationDate }) => (0, helpers_1.isSameDate)(celebrationDate, date));
11
+ }
12
+ exports.isHoliday = isHoliday;
13
+ //# sourceMappingURL=isHoliday.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isHoliday.js","sourceRoot":"","sources":["../../src/utils/isHoliday.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AACzD,uCAAuC;AAEvC,SAAgB,SAAS,CAAC,IAAU;IAClC,MAAM,QAAQ,GAAG,IAAA,sCAAkB,EAAC,IAAI,CAAC,cAAc,EAAE,EAAE;QACzD,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAC3C,IAAA,oBAAU,EAAC,eAAe,EAAE,IAAI,CAAC,CAClC,CAAC;AACJ,CAAC;AAPD,8BAOC"}
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "colombian-holidays",
3
- "version": "4.1.1",
3
+ "version": "5.0.0",
4
4
  "description": "Colombian holidays",
5
- "main": "lib/index.js",
5
+ "main": "dist/index.js",
6
6
  "scripts": {
7
7
  "format": "prettier --write .",
8
8
  "lint": "eslint . --ext .ts --fix",
9
9
  "test": "jest --coverage",
10
10
  "build": "tsc",
11
- "prepublishOnly": "tsc"
11
+ "prepublishOnly": "tsc",
12
+ "ts-node": "ts-node"
12
13
  },
13
14
  "license": "MIT",
14
15
  "bugs": {
@@ -32,16 +33,20 @@
32
33
  "prettier": "^2.6.2",
33
34
  "timezone-mock": "^1.3.1",
34
35
  "ts-jest": "^27.1.4",
36
+ "ts-node": "^10.9.1",
35
37
  "typescript": "^4.6.4"
36
38
  },
37
39
  "dependencies": {
38
40
  "pascua": "^2.1.5"
39
41
  },
40
42
  "files": [
41
- "lib"
43
+ "dist"
42
44
  ],
43
45
  "repository": {
44
46
  "type": "git",
45
47
  "url": "https://github.com/MauricioRobayo/colombian-holidays.git"
48
+ },
49
+ "release": {
50
+ "branches": "main"
46
51
  }
47
52
  }
@@ -1,29 +0,0 @@
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.getHoliday = void 0;
7
- const __1 = __importDefault(require(".."));
8
- const helpers_1 = require("../helpers");
9
- const helpers_2 = require("./helpers");
10
- function getHoliday(date, options = { valueAsDate: false }) {
11
- const { valueAsDate } = options;
12
- const holiday = (0, __1.default)({
13
- year: date.getUTCFullYear(),
14
- valueAsDate: true,
15
- }).find(({ celebrationDate }) => (0, helpers_2.isSameDate)(celebrationDate, date));
16
- if (!holiday) {
17
- return null;
18
- }
19
- if (valueAsDate) {
20
- return holiday;
21
- }
22
- return {
23
- ...holiday,
24
- date: (0, helpers_1.generateUtcStringFromDate)(holiday.date),
25
- celebrationDate: (0, helpers_1.generateUtcStringFromDate)(holiday.celebrationDate),
26
- };
27
- }
28
- exports.getHoliday = getHoliday;
29
- //# sourceMappingURL=getHoliday.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getHoliday.js","sourceRoot":"","sources":["../../src/utils/getHoliday.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAmC;AACnC,wCAAuD;AAEvD,uCAAuC;AAUvC,SAAgB,UAAU,CACxB,IAAU,EACV,UAAoC,EAAE,WAAW,EAAE,KAAK,EAAE;IAE1D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,OAAO,GAAG,IAAA,WAAiB,EAAC;QAChC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;QAC3B,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAC;KACb;IAED,IAAI,WAAW,EAAE;QACf,OAAO,OAAO,CAAC;KAChB;IACD,OAAO;QACL,GAAG,OAAO;QACV,IAAI,EAAE,IAAA,mCAAyB,EAAC,OAAO,CAAC,IAAI,CAAC;QAC7C,eAAe,EAAE,IAAA,mCAAyB,EAAC,OAAO,CAAC,eAAe,CAAC;KACpE,CAAC;AACJ,CAAC;AArBD,gCAqBC"}
@@ -1,23 +0,0 @@
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.holidaysWithinInterval = void 0;
7
- const __1 = __importDefault(require(".."));
8
- function holidaysWithinInterval({ start, end, valueAsDate = false, }) {
9
- if (start >= end) {
10
- throw new Error("end date should be greater than start date");
11
- }
12
- const yearEnd = end.getUTCFullYear();
13
- const yearStart = start.getUTCFullYear();
14
- const holidays = Array.from({ length: yearEnd - yearStart + 1 }, (_, i) => (0, __1.default)({ year: i + yearStart, valueAsDate })).flat();
15
- return holidays.filter(({ celebrationDate }) => {
16
- const date = typeof celebrationDate === "string"
17
- ? new Date(celebrationDate)
18
- : celebrationDate;
19
- return date >= start && date <= end;
20
- });
21
- }
22
- exports.holidaysWithinInterval = holidaysWithinInterval;
23
- //# sourceMappingURL=holidaysWithinInterval.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"holidaysWithinInterval.js","sourceRoot":"","sources":["../../src/utils/holidaysWithinInterval.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAmC;AAkBnC,SAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,GAAG,EACH,WAAW,GAAG,KAAK,GAKpB;IACC,IAAI,KAAK,IAAI,GAAG,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACxE,IAAA,WAAiB,EAAC,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,WAAW,EAAE,CAAC,CACxD,CAAC,IAAI,EAAE,CAAC;IAET,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;QAC7C,MAAM,IAAI,GACR,OAAO,eAAe,KAAK,QAAQ;YACjC,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC;YAC3B,CAAC,CAAC,eAAe,CAAC;QACtB,OAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC;AA1BD,wDA0BC"}
@@ -1,16 +0,0 @@
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.isHoliday = void 0;
7
- const __1 = __importDefault(require(".."));
8
- const helpers_1 = require("./helpers");
9
- function isHoliday(date) {
10
- return (0, __1.default)({
11
- year: date.getUTCFullYear(),
12
- valueAsDate: true,
13
- }).some(({ celebrationDate }) => (0, helpers_1.isSameDate)(celebrationDate, date));
14
- }
15
- exports.isHoliday = isHoliday;
16
- //# sourceMappingURL=isHoliday.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isHoliday.js","sourceRoot":"","sources":["../../src/utils/isHoliday.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAmC;AACnC,uCAAuC;AAEvC,SAAgB,SAAS,CAAC,IAAU;IAClC,OAAO,IAAA,WAAiB,EAAC;QACvB,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;QAC3B,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AALD,8BAKC"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes