@molopos/shared 2.0.53 → 2.0.55

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.
package/date/index.d.ts CHANGED
@@ -63,6 +63,33 @@ export declare const formateToUnixIntegerddLLLyyyy: (date: Numberlike, locale: s
63
63
  * formateTDate("2026-01-01", "en-US"); // "1 Jan 2026"
64
64
  */
65
65
  export declare const formateTDate: (date: Date, lang: string) => string;
66
+ /**
67
+ *
68
+ * @returns The current date in Unix integer format
69
+ * @example 1719168000
70
+ */
71
+ export declare const dateTimeNowUtcUnixInteger: () => number;
72
+ /**
73
+ * Format a date to a Unix integer
74
+ * @param date - The date to format (e.g. "2026-01-01", "2026-01-01T00:00:00.000Z", etc.)
75
+ * @returns The formatted date in Unix integer format
76
+ * @example 1719168000
77
+ */
78
+ export declare const formateDateUnixInteger: (date: Date) => number;
79
+ /**
80
+ * Subtract days from the current date
81
+ * @param value - The number of days to subtract
82
+ * @returns The date minus the number of days
83
+ * @example 2026-01-01
84
+ */
85
+ export declare const subtractDaysToDateTimeNowUtc: (value: number) => Date;
86
+ /**
87
+ * Subtract days from the current date
88
+ * @param value - The number of days to subtract
89
+ * @returns The date minus the number of days
90
+ * @example 2026-01-01
91
+ */
92
+ export declare const subtractDaysToDateTime: (date: Date, value: number) => Date;
66
93
  /**
67
94
  * @example
68
95
  * recurrenceDate({ date: new Date(), recurrence: RecurrenceEnum.Monthly }) // 23/06/2026
package/date/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.recurrenceDate = exports.formateTDate = exports.formateToUnixIntegerddLLLyyyy = exports.formateDDDateISO = exports.formateddLLDate = exports.formateDDDate = exports.formateMMLongDate = exports.addDaysToTimeNowUtcDate = exports.viewYyformateToYyyy = exports.formateToyyyy = exports.formateToRFC2822 = exports.formateToLLLL = exports.formateTodd = exports.formateToCccc = exports.dateTimeNowUtc = exports.formateToT = exports.formatDateDDMMYYToUtc = exports.formatDateToUtc = exports.formateHHmm = exports.formateYYDDMM = exports.formateddLLLyyyy = exports.formateDate = void 0;
3
+ exports.recurrenceDate = exports.subtractDaysToDateTime = exports.subtractDaysToDateTimeNowUtc = exports.formateDateUnixInteger = exports.dateTimeNowUtcUnixInteger = exports.formateTDate = exports.formateToUnixIntegerddLLLyyyy = exports.formateDDDateISO = exports.formateddLLDate = exports.formateDDDate = exports.formateMMLongDate = exports.addDaysToTimeNowUtcDate = exports.viewYyformateToYyyy = exports.formateToyyyy = exports.formateToRFC2822 = exports.formateToLLLL = exports.formateTodd = exports.formateToCccc = exports.dateTimeNowUtc = exports.formateToT = exports.formatDateDDMMYYToUtc = exports.formatDateToUtc = exports.formateHHmm = exports.formateYYDDMM = exports.formateddLLLyyyy = exports.formateDate = void 0;
4
4
  const date_fns_1 = require("date-fns");
5
5
  const luxon_1 = require("luxon");
6
6
  const enum_1 = require("../enum");
@@ -128,21 +128,57 @@ const formateTDate = (date, lang) => {
128
128
  return luxon_1.DateTime.fromJSDate(date).setLocale(lang).toFormat("t");
129
129
  };
130
130
  exports.formateTDate = formateTDate;
131
+ /**
132
+ *
133
+ * @returns The current date in Unix integer format
134
+ * @example 1719168000
135
+ */
136
+ const dateTimeNowUtcUnixInteger = () => luxon_1.DateTime.fromJSDate((0, exports.dateTimeNowUtc)()).toUnixInteger();
137
+ exports.dateTimeNowUtcUnixInteger = dateTimeNowUtcUnixInteger;
138
+ /**
139
+ * Format a date to a Unix integer
140
+ * @param date - The date to format (e.g. "2026-01-01", "2026-01-01T00:00:00.000Z", etc.)
141
+ * @returns The formatted date in Unix integer format
142
+ * @example 1719168000
143
+ */
144
+ const formateDateUnixInteger = (date) => luxon_1.DateTime.fromJSDate(date).toUnixInteger();
145
+ exports.formateDateUnixInteger = formateDateUnixInteger;
146
+ /**
147
+ * Subtract days from the current date
148
+ * @param value - The number of days to subtract
149
+ * @returns The date minus the number of days
150
+ * @example 2026-01-01
151
+ */
152
+ const subtractDaysToDateTimeNowUtc = (value) => luxon_1.DateTime.utc().minus({ days: value }).toJSDate();
153
+ exports.subtractDaysToDateTimeNowUtc = subtractDaysToDateTimeNowUtc;
154
+ /**
155
+ * Subtract days from the current date
156
+ * @param value - The number of days to subtract
157
+ * @returns The date minus the number of days
158
+ * @example 2026-01-01
159
+ */
160
+ const subtractDaysToDateTime = (date, value) => luxon_1.DateTime.fromJSDate(date).minus({ days: value }).toJSDate();
161
+ exports.subtractDaysToDateTime = subtractDaysToDateTime;
131
162
  /**
132
163
  * @example
133
164
  * recurrenceDate({ date: new Date(), recurrence: RecurrenceEnum.Monthly }) // 23/06/2026
134
165
  */
135
166
  const recurrenceDate = ({ date, recurrence, duration = 1, isRecurrence = true, }) => {
136
167
  if (isRecurrence) {
168
+ const dateNow = (0, exports.dateTimeNowUtcUnixInteger)();
169
+ const dateInit = (0, exports.formateDateUnixInteger)(date);
170
+ const dateNowInit = dateInit > dateNow
171
+ ? luxon_1.DateTime.fromJSDate(date)
172
+ : luxon_1.DateTime.fromJSDate((0, exports.dateTimeNowUtc)());
137
173
  switch (recurrence) {
138
174
  case enum_1.RecurrenceEnum.Daily:
139
- return luxon_1.DateTime.fromJSDate(date).plus({ days: duration }).toJSDate();
175
+ return dateNowInit.plus({ days: duration }).toJSDate();
140
176
  case enum_1.RecurrenceEnum.Weekly:
141
- return luxon_1.DateTime.fromJSDate(date).plus({ weeks: duration }).toJSDate();
177
+ return dateNowInit.plus({ weeks: duration }).toJSDate();
142
178
  case enum_1.RecurrenceEnum.Monthly:
143
- return luxon_1.DateTime.fromJSDate(date).plus({ months: duration }).toJSDate();
179
+ return dateNowInit.plus({ months: duration }).toJSDate();
144
180
  case enum_1.RecurrenceEnum.Yearly:
145
- return luxon_1.DateTime.fromJSDate(date).plus({ years: duration }).toJSDate();
181
+ return dateNowInit.plus({ years: duration }).toJSDate();
146
182
  }
147
183
  }
148
184
  else {
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _1 = require(".");
4
+ const enum_1 = require("../enum");
5
+ describe("Date", () => {
6
+ test("dateTimeNowUtc", () => {
7
+ const dateNow = (0, _1.dateTimeNowUtc)();
8
+ expect(dateNow).not.toBeNull();
9
+ expect(dateNow).toBeDefined();
10
+ });
11
+ test("dateTimeNowUtcUnixInteger", () => {
12
+ const dateNow = (0, _1.dateTimeNowUtcUnixInteger)();
13
+ expect(dateNow).not.toBeNull();
14
+ expect(dateNow).toBeDefined();
15
+ });
16
+ test("formateDateUnixInteger", () => {
17
+ const dateNow = (0, _1.formateDateUnixInteger)(new Date());
18
+ expect(dateNow).not.toBeNull();
19
+ expect(dateNow).toBeDefined();
20
+ });
21
+ test("subtractDaysToDateTimeNowUtc", () => {
22
+ const dateNow = (0, _1.subtractDaysToDateTimeNowUtc)(1);
23
+ expect(dateNow).not.toBeNull();
24
+ expect(dateNow).toBeDefined();
25
+ });
26
+ test("recurrenceDate", () => {
27
+ const dateNow = (0, _1.dateTimeNowUtc)();
28
+ const dateNextMonth = (0, _1.recurrenceDate)({
29
+ date: dateNow,
30
+ recurrence: enum_1.RecurrenceEnum.Monthly,
31
+ });
32
+ const dateNextYear = (0, _1.recurrenceDate)({
33
+ date: dateNow,
34
+ recurrence: enum_1.RecurrenceEnum.Yearly,
35
+ });
36
+ const dateNextWeek = (0, _1.recurrenceDate)({
37
+ date: dateNow,
38
+ recurrence: enum_1.RecurrenceEnum.Weekly,
39
+ });
40
+ const dateNextDay = (0, _1.recurrenceDate)({
41
+ date: dateNow,
42
+ recurrence: enum_1.RecurrenceEnum.Daily,
43
+ });
44
+ expect(dateNextDay).not.toBeNull();
45
+ expect(dateNextYear).not.toBeNull();
46
+ expect(dateNextMonth).not.toBeNull();
47
+ expect(dateNextWeek).not.toBeNull();
48
+ expect(dateNextDay).toBeDefined();
49
+ expect(dateNextYear).toBeDefined();
50
+ expect(dateNextMonth).toBeDefined();
51
+ expect(dateNextWeek).toBeDefined();
52
+ });
53
+ });
@@ -30,7 +30,7 @@ exports.calculDiscount = calculDiscount;
30
30
  * @example
31
31
  * formatePrice({ value: 2300, currency: 'EUR', locale: 'fr' }) // 23.00 €
32
32
  */
33
- const formatePrice = ({ value, currency, locale = "en", isDivide = false, maximumFractionDigits = 3, }) => {
33
+ const formatePrice = ({ value, currency, locale = "en", isDivide = false, maximumFractionDigits = 2, }) => {
34
34
  const newValue = isNaNumber(value);
35
35
  const numberCal = isDivide ? (0, exports.fromCents)(newValue) : newValue;
36
36
  const lang = ["fr", "it"].includes(locale.toLowerCase()) ? "de" : locale;
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const __1 = require("../..");
4
- const date_1 = require("../../date");
5
3
  const index_1 = require("./index");
6
4
  describe("Utils", () => {
7
5
  test("fromCents", () => {
@@ -42,31 +40,4 @@ describe("Utils", () => {
42
40
  expect(result).toBeDefined();
43
41
  expect(result).toEqual("John Doe");
44
42
  });
45
- test("recurrenceDate", () => {
46
- const dateNow = (0, __1.dateTimeNowUtc)();
47
- const dateNextMonth = (0, date_1.recurrenceDate)({
48
- date: dateNow,
49
- recurrence: __1.RecurrenceEnum.Monthly,
50
- });
51
- const dateNextYear = (0, date_1.recurrenceDate)({
52
- date: dateNow,
53
- recurrence: __1.RecurrenceEnum.Yearly,
54
- });
55
- const dateNextWeek = (0, date_1.recurrenceDate)({
56
- date: dateNow,
57
- recurrence: __1.RecurrenceEnum.Weekly,
58
- });
59
- const dateNextDay = (0, date_1.recurrenceDate)({
60
- date: dateNow,
61
- recurrence: __1.RecurrenceEnum.Daily,
62
- });
63
- expect(dateNextDay).not.toBeNull();
64
- expect(dateNextYear).not.toBeNull();
65
- expect(dateNextMonth).not.toBeNull();
66
- expect(dateNextWeek).not.toBeNull();
67
- expect(dateNextDay).toBeDefined();
68
- expect(dateNextYear).toBeDefined();
69
- expect(dateNextMonth).toBeDefined();
70
- expect(dateNextWeek).toBeDefined();
71
- });
72
43
  });
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@molopos/shared","publishConfig":{"access":"public"},"version":"2.0.53","description":"Shared between backend and frontend repos","license":"ISC","repository":{"type":"git","url":"https://github.com/unicubate/molopos-shared.git"},"dependencies":{"class-transformer":"^0.5.1","date-fns":"^4.4.0","luxon":"^3.7.2"}}
1
+ {"name":"@molopos/shared","publishConfig":{"access":"public"},"version":"2.0.55","description":"Shared between backend and frontend repos","license":"ISC","repository":{"type":"git","url":"https://github.com/unicubate/molopos-shared.git"},"dependencies":{"class-transformer":"^0.5.1","date-fns":"^4.4.0","luxon":"^3.7.2"}}