@wisemen/datewise 0.1.12 → 0.1.14

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 (92) hide show
  1. package/dist/common/typeorm/adjacent-to.d.ts +1 -0
  2. package/dist/common/typeorm/adjacent-to.js.map +1 -1
  3. package/dist/common/typeorm/contained-in.d.ts +13 -0
  4. package/dist/common/typeorm/contained-in.js +15 -0
  5. package/dist/common/typeorm/contained-in.js.map +1 -0
  6. package/dist/common/typeorm/ends-before.d.ts +3 -0
  7. package/dist/common/typeorm/ends-before.js.map +1 -1
  8. package/dist/common/typeorm/index.d.ts +1 -0
  9. package/dist/common/typeorm/index.js +1 -0
  10. package/dist/common/typeorm/index.js.map +1 -1
  11. package/dist/common/typeorm/is-preceded-by.d.ts +4 -0
  12. package/dist/common/typeorm/is-preceded-by.js.map +1 -1
  13. package/dist/common/typeorm/is-succeeded-by.d.ts +4 -0
  14. package/dist/common/typeorm/is-succeeded-by.js.map +1 -1
  15. package/dist/common/typeorm/overlaps-with.d.ts +3 -0
  16. package/dist/common/typeorm/overlaps-with.js.map +1 -1
  17. package/dist/common/typeorm/precedes.d.ts +4 -0
  18. package/dist/common/typeorm/precedes.js.map +1 -1
  19. package/dist/common/typeorm/starts-after.d.ts +3 -0
  20. package/dist/common/typeorm/starts-after.js.map +1 -1
  21. package/dist/common/typeorm/strictly-left-of.d.ts +3 -0
  22. package/dist/common/typeorm/strictly-left-of.js.map +1 -1
  23. package/dist/common/typeorm/strictly-right-of.d.ts +3 -0
  24. package/dist/common/typeorm/strictly-right-of.js.map +1 -1
  25. package/dist/common/typeorm/succeeds.d.ts +4 -0
  26. package/dist/common/typeorm/succeeds.js.map +1 -1
  27. package/dist/date-range/date-range.d.ts +10 -0
  28. package/dist/date-range/date-range.js +16 -0
  29. package/dist/date-range/date-range.js.map +1 -1
  30. package/dist/date-range/tests/contained-in-plain-date.integration.test.d.ts +1 -0
  31. package/dist/date-range/tests/contained-in-plain-date.integration.test.js +84 -0
  32. package/dist/date-range/tests/contained-in-plain-date.integration.test.js.map +1 -0
  33. package/dist/date-range/tests/date-range.unit.test.js +124 -0
  34. package/dist/date-range/tests/date-range.unit.test.js.map +1 -1
  35. package/dist/date-range/tests/sql/datasource.js +4 -1
  36. package/dist/date-range/tests/sql/datasource.js.map +1 -1
  37. package/dist/date-range/tests/sql/plain-date-test.entity.d.ts +5 -0
  38. package/dist/date-range/tests/sql/plain-date-test.entity.js +28 -0
  39. package/dist/date-range/tests/sql/plain-date-test.entity.js.map +1 -0
  40. package/dist/date-range/typeorm/contains-plain-date.d.ts +3 -0
  41. package/dist/date-range/typeorm/contains-plain-date.js +3 -0
  42. package/dist/date-range/typeorm/contains-plain-date.js.map +1 -1
  43. package/dist/date-time-range/date-time-range.d.ts +12 -0
  44. package/dist/date-time-range/date-time-range.js +18 -0
  45. package/dist/date-time-range/date-time-range.js.map +1 -1
  46. package/dist/date-time-range/tests/contained-in-timestamp.integration.test.d.ts +1 -0
  47. package/dist/date-time-range/tests/contained-in-timestamp.integration.test.js +112 -0
  48. package/dist/date-time-range/tests/contained-in-timestamp.integration.test.js.map +1 -0
  49. package/dist/date-time-range/tests/date-time-range.unit.test.js +97 -0
  50. package/dist/date-time-range/tests/date-time-range.unit.test.js.map +1 -1
  51. package/dist/date-time-range/tests/sql/datasource.js +2 -1
  52. package/dist/date-time-range/tests/sql/datasource.js.map +1 -1
  53. package/dist/date-time-range/tests/sql/timestamp-test.entity.d.ts +5 -0
  54. package/dist/date-time-range/tests/sql/timestamp-test.entity.js +28 -0
  55. package/dist/date-time-range/tests/sql/timestamp-test.entity.js.map +1 -0
  56. package/dist/date-time-range/typeorm/contains-timestamp.d.ts +3 -0
  57. package/dist/date-time-range/typeorm/contains-timestamp.js +3 -0
  58. package/dist/date-time-range/typeorm/contains-timestamp.js.map +1 -1
  59. package/dist/plain-date/dayjs-plain-date.d.ts +1 -0
  60. package/dist/plain-date/dayjs-plain-date.js +12 -0
  61. package/dist/plain-date/dayjs-plain-date.js.map +1 -1
  62. package/dist/plain-date/future-infinity-date.d.ts +1 -0
  63. package/dist/plain-date/future-infinity-date.js +9 -0
  64. package/dist/plain-date/future-infinity-date.js.map +1 -1
  65. package/dist/plain-date/past-infinity-date.d.ts +1 -0
  66. package/dist/plain-date/past-infinity-date.js +9 -0
  67. package/dist/plain-date/past-infinity-date.js.map +1 -1
  68. package/dist/plain-date/plain-date.d.ts +12 -0
  69. package/dist/plain-date/tests/wise-date.ordering.unit.test.js +145 -0
  70. package/dist/plain-date/tests/wise-date.ordering.unit.test.js.map +1 -1
  71. package/dist/plain-time/plain-time.d.ts +9 -0
  72. package/dist/plain-time/plain-time.js +12 -0
  73. package/dist/plain-time/plain-time.js.map +1 -1
  74. package/dist/plain-time/tests/plain-time.unit.test.js +130 -0
  75. package/dist/plain-time/tests/plain-time.unit.test.js.map +1 -1
  76. package/dist/timestamp/dayjs-timestamp.d.ts +1 -0
  77. package/dist/timestamp/dayjs-timestamp.js +10 -2
  78. package/dist/timestamp/dayjs-timestamp.js.map +1 -1
  79. package/dist/timestamp/future-infinity.d.ts +1 -0
  80. package/dist/timestamp/future-infinity.js +9 -0
  81. package/dist/timestamp/future-infinity.js.map +1 -1
  82. package/dist/timestamp/past-infinity.d.ts +1 -0
  83. package/dist/timestamp/past-infinity.js +9 -0
  84. package/dist/timestamp/past-infinity.js.map +1 -1
  85. package/dist/timestamp/tests/dayjs-timestamp.unit.test.js +193 -0
  86. package/dist/timestamp/tests/dayjs-timestamp.unit.test.js.map +1 -1
  87. package/dist/timestamp/tests/timestamp.future-infinity.unit.test.js +36 -0
  88. package/dist/timestamp/tests/timestamp.future-infinity.unit.test.js.map +1 -1
  89. package/dist/timestamp/tests/timestamp.past-infinity.unit.test.js +36 -0
  90. package/dist/timestamp/tests/timestamp.past-infinity.unit.test.js.map +1 -1
  91. package/dist/timestamp/timestamp.d.ts +12 -0
  92. package/package.json +4 -4
@@ -1,5 +1,6 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateRange } from '../../date-range/date-range.js';
3
3
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
4
+ /** Checks whether a Range lies next to another range with the `-|-` operator. */
4
5
  export declare function AdjacentTo(period: DateRange): FindOperator<DateRange>;
5
6
  export declare function AdjacentTo(period: DateTimeRange): FindOperator<DateTimeRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"adjacent-to.js","sourceRoot":"","sources":["../../../lib/common/typeorm/adjacent-to.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAM3C,MAAM,UAAU,UAAU,CACxB,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,SAAS,EAAE,EAC/C,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"adjacent-to.js","sourceRoot":"","sources":["../../../lib/common/typeorm/adjacent-to.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAO3C,MAAM,UAAU,UAAU,CACxB,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,SAAS,EAAE,EAC/C,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { FindOperator } from 'typeorm';
2
+ import { DateRange } from '../../date-range/date-range.js';
3
+ import { DateTimeRange } from '../../date-time-range/date-time-range.js';
4
+ import { PlainDate } from '../../plain-date/index.js';
5
+ import { Timestamp } from '../../timestamp/timestamp.js';
6
+ /**
7
+ * Checks whether a plain date lies in the given date range with the `<@` operator.
8
+ */
9
+ export declare function ContainedIn(period: DateRange): FindOperator<PlainDate>;
10
+ /**
11
+ * Checks whether a timestamp lies in the given date time range with the `<@` operator.
12
+ */
13
+ export declare function ContainedIn(period: DateTimeRange): FindOperator<Timestamp>;
@@ -0,0 +1,15 @@
1
+ import { randomUUID } from 'crypto';
2
+ import { Raw } from 'typeorm';
3
+ import { DateRange } from '../../date-range/date-range.js';
4
+ export function ContainedIn(period) {
5
+ const paramName = randomUUID().replaceAll('-', '');
6
+ let type;
7
+ if (period instanceof DateRange) {
8
+ type = 'daterange';
9
+ }
10
+ else {
11
+ type = 'tstzrange3';
12
+ }
13
+ return Raw((alias) => `${alias} <@ :${paramName}::${type}`, { [paramName]: period.toString() });
14
+ }
15
+ //# sourceMappingURL=contained-in.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contained-in.js","sourceRoot":"","sources":["../../../lib/common/typeorm/contained-in.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAa1D,MAAM,UAAU,WAAW,CACzB,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,IAAI,IAAY,CAAA;IAChB,IAAI,MAAM,YAAY,SAAS,EAAE,CAAC;QAChC,IAAI,GAAG,WAAW,CAAA;IACpB,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,YAAY,CAAA;IACrB,CAAC;IAED,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,KAAK,IAAI,EAAE,EACvD,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACkB,CAAA;AACxD,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
3
3
  import { DateRange } from '../../date-range/date-range.js';
4
+ /**
5
+ * Checks if a range ends before the given range with the `<<` operator.
6
+ */
4
7
  export declare function EndsBefore(range: DateRange): FindOperator<DateRange>;
5
8
  export declare function EndsBefore(range: DateTimeRange): FindOperator<DateTimeRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"ends-before.js","sourceRoot":"","sources":["../../../lib/common/typeorm/ends-before.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAM3C,MAAM,UAAU,UAAU,CACxB,KAAgC;IAEhC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,cAAc,EAC1D,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACuB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"ends-before.js","sourceRoot":"","sources":["../../../lib/common/typeorm/ends-before.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAS3C,MAAM,UAAU,UAAU,CACxB,KAAgC;IAEhC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,cAAc,EAC1D,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACuB,CAAA;AAC5D,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './adjacent-to.js';
2
+ export * from './contained-in.js';
2
3
  export * from './ends-before.js';
3
4
  export * from './is-preceded-by.js';
4
5
  export * from './is-succeeded-by.js';
@@ -1,4 +1,5 @@
1
1
  export * from './adjacent-to.js';
2
+ export * from './contained-in.js';
2
3
  export * from './ends-before.js';
3
4
  export * from './is-preceded-by.js';
4
5
  export * from './is-succeeded-by.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/common/typeorm/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/common/typeorm/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,eAAe,CAAA"}
@@ -1,5 +1,9 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateRange } from '../../date-range/date-range.js';
3
3
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
4
+ /**
5
+ * Checks that a range is immediately preceded by the given range by
6
+ * checking both adjacency `-|-` and order `<`.
7
+ */
4
8
  export declare function IsPrecededBy(period: DateRange): FindOperator<DateRange>;
5
9
  export declare function IsPrecededBy(period: DateTimeRange): FindOperator<DateTimeRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"is-preceded-by.js","sourceRoot":"","sources":["../../../lib/common/typeorm/is-preceded-by.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAO3C,MAAM,UAAU,YAAY,CAC1B,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,SAAS,QAAQ,KAAK,SAAS,SAAS,MAAM,KAAK,EAAE,EAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"is-preceded-by.js","sourceRoot":"","sources":["../../../lib/common/typeorm/is-preceded-by.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAU3C,MAAM,UAAU,YAAY,CAC1B,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,SAAS,QAAQ,KAAK,SAAS,SAAS,MAAM,KAAK,EAAE,EAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
@@ -1,5 +1,9 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateRange } from '../../date-range/date-range.js';
3
3
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
4
+ /**
5
+ * Checks that a range is immediately succeeded by the given range by
6
+ * checking both adjacency `-|-` and order `>`.
7
+ */
4
8
  export declare function IsSucceededBy(period: DateRange): FindOperator<DateRange>;
5
9
  export declare function IsSucceededBy(period: DateTimeRange): FindOperator<DateTimeRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"is-succeeded-by.js","sourceRoot":"","sources":["../../../lib/common/typeorm/is-succeeded-by.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAO3C,MAAM,UAAU,aAAa,CAC3B,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,SAAS,QAAQ,KAAK,SAAS,SAAS,MAAM,KAAK,EAAE,EAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"is-succeeded-by.js","sourceRoot":"","sources":["../../../lib/common/typeorm/is-succeeded-by.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAU3C,MAAM,UAAU,aAAa,CAC3B,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,SAAS,QAAQ,KAAK,SAAS,SAAS,MAAM,KAAK,EAAE,EAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateRange } from '../../date-range/date-range.js';
3
3
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
4
+ /**
5
+ * Checks that a range overlaps with the given range with the `&&` operator.
6
+ */
4
7
  export declare function OverlapsWith(period: DateTimeRange): FindOperator<DateTimeRange>;
5
8
  export declare function OverlapsWith(period: DateRange): FindOperator<DateRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"overlaps-with.js","sourceRoot":"","sources":["../../../lib/common/typeorm/overlaps-with.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAM3C,MAAM,UAAU,YAAY,CAC1B,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,EAAE,EAC9C,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"overlaps-with.js","sourceRoot":"","sources":["../../../lib/common/typeorm/overlaps-with.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAS3C,MAAM,UAAU,YAAY,CAC1B,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,EAAE,EAC9C,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
@@ -1,5 +1,9 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateRange } from '../../date-range/date-range.js';
3
3
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
4
+ /**
5
+ * Checks that a range immediately precedes the given range by
6
+ * checking both adjacency `-|-` and order `<`.
7
+ */
4
8
  export declare function Precedes(period: DateTimeRange): FindOperator<DateTimeRange>;
5
9
  export declare function Precedes(period: DateRange): FindOperator<DateRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"precedes.js","sourceRoot":"","sources":["../../../lib/common/typeorm/precedes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAM3C,MAAM,UAAU,QAAQ,CACtB,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,SAAS,QAAQ,KAAK,OAAO,SAAS,EAAE,EAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"precedes.js","sourceRoot":"","sources":["../../../lib/common/typeorm/precedes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAU3C,MAAM,UAAU,QAAQ,CACtB,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,SAAS,QAAQ,KAAK,OAAO,SAAS,EAAE,EAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
3
3
  import { DateRange } from '../../date-range/date-range.js';
4
+ /**
5
+ * Checks if a range starts after the given range with the `>>` operator.
6
+ */
4
7
  export declare function StartsAfter(range: DateRange): FindOperator<DateRange>;
5
8
  export declare function StartsAfter(range: DateTimeRange): FindOperator<DateTimeRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"starts-after.js","sourceRoot":"","sources":["../../../lib/common/typeorm/starts-after.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAM3C,MAAM,UAAU,WAAW,CACzB,KAAgC;IAEhC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,cAAc,EAC1D,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACuB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"starts-after.js","sourceRoot":"","sources":["../../../lib/common/typeorm/starts-after.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAS3C,MAAM,UAAU,WAAW,CACzB,KAAgC;IAEhC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,cAAc,EAC1D,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACuB,CAAA;AAC5D,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateRange } from '../../date-range/date-range.js';
3
3
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
4
+ /**
5
+ * Checks that a range lies strictly left of the given range with the `<<` operator.
6
+ */
4
7
  export declare function StrictlyLeftOf(range: DateRange): FindOperator<DateRange>;
5
8
  export declare function StrictlyLeftOf(range: DateTimeRange): FindOperator<DateTimeRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"strictly-left-of.js","sourceRoot":"","sources":["../../../lib/common/typeorm/strictly-left-of.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAM3C,MAAM,UAAU,cAAc,CAC5B,KAAgC;IAEhC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,EAAE,EAC9C,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACuB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"strictly-left-of.js","sourceRoot":"","sources":["../../../lib/common/typeorm/strictly-left-of.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAS3C,MAAM,UAAU,cAAc,CAC5B,KAAgC;IAEhC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,EAAE,EAC9C,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACuB,CAAA;AAC5D,CAAC"}
@@ -1,5 +1,8 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateRange } from '../../date-range/date-range.js';
3
3
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
4
+ /**
5
+ * Checks that a range lies strictly right of the given range with the `>>` operator.
6
+ */
4
7
  export declare function StrictlyRightOf(range: DateRange): FindOperator<DateRange>;
5
8
  export declare function StrictlyRightOf(range: DateTimeRange): FindOperator<DateTimeRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"strictly-right-of.js","sourceRoot":"","sources":["../../../lib/common/typeorm/strictly-right-of.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAM3C,MAAM,UAAU,eAAe,CAC7B,KAAgC;IAEhC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,EAAE,EAC9C,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACuB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"strictly-right-of.js","sourceRoot":"","sources":["../../../lib/common/typeorm/strictly-right-of.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAS3C,MAAM,UAAU,eAAe,CAC7B,KAAgC;IAEhC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,SAAS,EAAE,EAC9C,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CACuB,CAAA;AAC5D,CAAC"}
@@ -1,5 +1,9 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateRange } from '../../date-range/date-range.js';
3
3
  import { DateTimeRange } from '../../date-time-range/date-time-range.js';
4
+ /**
5
+ * Checks that a range immediately succeeds the given range by
6
+ * checking both adjacency `-|-` and order `>`.
7
+ */
4
8
  export declare function Succeeds(period: DateTimeRange): FindOperator<DateTimeRange>;
5
9
  export declare function Succeeds(period: DateRange): FindOperator<DateRange>;
@@ -1 +1 @@
1
- {"version":3,"file":"succeeds.js","sourceRoot":"","sources":["../../../lib/common/typeorm/succeeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAM3C,MAAM,UAAU,QAAQ,CACtB,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,SAAS,QAAQ,KAAK,OAAO,SAAS,EAAE,EAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"succeeds.js","sourceRoot":"","sources":["../../../lib/common/typeorm/succeeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAU3C,MAAM,UAAU,QAAQ,CACtB,MAAiC;IAEjC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAElD,OAAO,GAAG,CACR,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,SAAS,QAAQ,KAAK,OAAO,SAAS,EAAE,EAC5E,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CACsB,CAAA;AAC5D,CAAC"}
@@ -49,4 +49,14 @@ export declare class DateRange {
49
49
  isSucceededBy(other: DateRange): boolean;
50
50
  isAdjacentTo(other: DateRange): boolean;
51
51
  merge(withOther: DateRange): DateRange;
52
+ /**
53
+ * Compares the order of the given date range with this date range. \
54
+ * Ranges are compared first by their start date, then by their end date. \
55
+ * returns < 0 if this range starts before the other (or starts at the same time but ends before) \
56
+ * returns 0 if both ranges have the same start and end dates \
57
+ * returns > 0 if this range starts after the other (or starts at the same time but ends after) \
58
+ * \
59
+ * This method is useful for sorting arrays of date ranges.
60
+ */
61
+ compare(withOther: DateRange): number;
52
62
  }
@@ -172,5 +172,21 @@ export class DateRange {
172
172
  throw new Error('cannot merge non adjacent date ranges');
173
173
  }
174
174
  }
175
+ /**
176
+ * Compares the order of the given date range with this date range. \
177
+ * Ranges are compared first by their start date, then by their end date. \
178
+ * returns < 0 if this range starts before the other (or starts at the same time but ends before) \
179
+ * returns 0 if both ranges have the same start and end dates \
180
+ * returns > 0 if this range starts after the other (or starts at the same time but ends after) \
181
+ * \
182
+ * This method is useful for sorting arrays of date ranges.
183
+ */
184
+ compare(withOther) {
185
+ const startComparison = this.startDate.compare(withOther.startDate);
186
+ if (startComparison !== 0) {
187
+ return startComparison;
188
+ }
189
+ return this.endDate.compare(withOther.endDate);
190
+ }
175
191
  }
176
192
  //# sourceMappingURL=date-range.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-range.js","sourceRoot":"","sources":["../../lib/date-range/date-range.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-range.js","sourceRoot":"","sources":["../../lib/date-range/date-range.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { after, before, describe, it } from 'node:test';
2
+ import { expect } from 'expect';
3
+ import { In } from 'typeorm';
4
+ import { DateRange } from '../date-range.js';
5
+ import { plainDate } from '../../plain-date/index.js';
6
+ import { ContainedIn } from '../../common/typeorm/contained-in.js';
7
+ import { IntegrationTestSetup } from './test-setup.js';
8
+ import { dataSource } from './sql/datasource.js';
9
+ import { PlainDateTest } from './sql/plain-date-test.entity.js';
10
+ describe('ContainedIn for PlainDate', () => {
11
+ const integrationTest = new IntegrationTestSetup();
12
+ before(async () => {
13
+ await integrationTest.setup();
14
+ });
15
+ after(async () => {
16
+ await integrationTest.teardown();
17
+ });
18
+ it('finds dates contained in a date range', async () => {
19
+ const date1 = plainDate('2025-01-15');
20
+ const date2 = plainDate('2025-02-15');
21
+ const date3 = plainDate('2025-03-15');
22
+ await seed(dataSource, { id: 1, date: date1 });
23
+ await seed(dataSource, { id: 2, date: date2 });
24
+ await seed(dataSource, { id: 3, date: date3 });
25
+ const range = new DateRange('2025-01-01', '2025-02-28');
26
+ const results = await dataSource.manager.find(PlainDateTest, {
27
+ where: {
28
+ id: In([1, 2, 3]),
29
+ date: ContainedIn(range)
30
+ }
31
+ });
32
+ expect(results.length).toBe(2);
33
+ expect(results.some(r => r.id === 1)).toBe(true);
34
+ expect(results.some(r => r.id === 2)).toBe(true);
35
+ });
36
+ it('finds dates on range boundaries (inclusive)', async () => {
37
+ const startDate = plainDate('2025-01-01');
38
+ const endDate = plainDate('2025-01-31');
39
+ await seed(dataSource, { id: 4, date: startDate });
40
+ await seed(dataSource, { id: 5, date: endDate });
41
+ const range = new DateRange('2025-01-01', '2025-01-31');
42
+ const results = await dataSource.manager.find(PlainDateTest, {
43
+ where: {
44
+ id: In([4, 5]),
45
+ date: ContainedIn(range)
46
+ },
47
+ order: { id: 'ASC' }
48
+ });
49
+ expect(results.length).toBe(2);
50
+ expect(results[0].id).toBe(4);
51
+ expect(results[1].id).toBe(5);
52
+ });
53
+ it('excludes dates outside the range', async () => {
54
+ const beforeDate = plainDate('2024-12-31');
55
+ const afterDate = plainDate('2025-02-01');
56
+ await seed(dataSource, { id: 6, date: beforeDate });
57
+ await seed(dataSource, { id: 7, date: afterDate });
58
+ const range = new DateRange('2025-01-01', '2025-01-31');
59
+ const results = await dataSource.manager.find(PlainDateTest, {
60
+ where: {
61
+ id: In([6, 7]),
62
+ date: ContainedIn(range)
63
+ }
64
+ });
65
+ expect(results.length).toBe(0);
66
+ });
67
+ it('handles infinite date ranges', async () => {
68
+ const date = plainDate('2025-01-15');
69
+ await seed(dataSource, { id: 8, date });
70
+ const infiniteRange = new DateRange('-infinity', 'infinity');
71
+ const results = await dataSource.manager.find(PlainDateTest, {
72
+ where: {
73
+ id: In([8]),
74
+ date: ContainedIn(infiniteRange)
75
+ }
76
+ });
77
+ expect(results.length).toBe(1);
78
+ expect(results[0].id).toBe(8);
79
+ });
80
+ async function seed(dataSource, row) {
81
+ await dataSource.manager.upsert(PlainDateTest, row, { conflictPaths: { id: true } });
82
+ }
83
+ });
84
+ //# sourceMappingURL=contained-in-plain-date.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contained-in-plain-date.integration.test.js","sourceRoot":"","sources":["../../../lib/date-range/tests/contained-in-plain-date.integration.test.ts"],"names":[],"mappings":"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"}
@@ -522,5 +522,129 @@ describe('DateRange unit tests', () => {
522
522
  expect(second.isStrictlyAfter(first)).toBe(false);
523
523
  });
524
524
  });
525
+ describe('compare', () => {
526
+ it('returns 0 when comparing a range to itself', () => {
527
+ const range = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
528
+ const result = range.compare(range);
529
+ expect(result).toBe(0);
530
+ });
531
+ it('returns 0 when comparing identical ranges', () => {
532
+ const range1 = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
533
+ const range2 = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
534
+ const result = range1.compare(range2);
535
+ expect(result).toBe(0);
536
+ });
537
+ it('returns negative value when this range starts before the other', () => {
538
+ const earlier = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
539
+ const later = new DateRange(plainDate('2025-02-01'), plainDate('2025-02-28'));
540
+ const result = earlier.compare(later);
541
+ expect(result).toBeLessThan(0);
542
+ });
543
+ it('returns positive value when this range starts after the other', () => {
544
+ const later = new DateRange(plainDate('2025-02-01'), plainDate('2025-02-28'));
545
+ const earlier = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
546
+ const result = later.compare(earlier);
547
+ expect(result).toBeGreaterThan(0);
548
+ });
549
+ it('when start dates are equal, compares by end date', () => {
550
+ const shorter = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-15'));
551
+ const longer = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
552
+ const result = shorter.compare(longer);
553
+ expect(result).toBeLessThan(0);
554
+ });
555
+ it('when start dates are equal, longer range is greater', () => {
556
+ const longer = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
557
+ const shorter = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-15'));
558
+ const result = longer.compare(shorter);
559
+ expect(result).toBeGreaterThan(0);
560
+ });
561
+ it('can be used to sort ranges in ascending order', () => {
562
+ const ranges = [
563
+ new DateRange(plainDate('2025-03-01'), plainDate('2025-03-31')),
564
+ new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31')),
565
+ new DateRange(plainDate('2025-02-01'), plainDate('2025-02-28'))
566
+ ];
567
+ ranges.sort((a, b) => a.compare(b));
568
+ expect(ranges[0].startDate.toString()).toBe('2025-01-01');
569
+ expect(ranges[1].startDate.toString()).toBe('2025-02-01');
570
+ expect(ranges[2].startDate.toString()).toBe('2025-03-01');
571
+ });
572
+ it('can be used to sort ranges in descending order', () => {
573
+ const ranges = [
574
+ new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31')),
575
+ new DateRange(plainDate('2025-03-01'), plainDate('2025-03-31')),
576
+ new DateRange(plainDate('2025-02-01'), plainDate('2025-02-28'))
577
+ ];
578
+ ranges.sort((a, b) => b.compare(a));
579
+ expect(ranges[0].startDate.toString()).toBe('2025-03-01');
580
+ expect(ranges[1].startDate.toString()).toBe('2025-02-01');
581
+ expect(ranges[2].startDate.toString()).toBe('2025-01-01');
582
+ });
583
+ it('sorts ranges with same start date by end date', () => {
584
+ const ranges = [
585
+ new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31')),
586
+ new DateRange(plainDate('2025-01-01'), plainDate('2025-01-15')),
587
+ new DateRange(plainDate('2025-01-01'), plainDate('2025-01-20'))
588
+ ];
589
+ ranges.sort((a, b) => a.compare(b));
590
+ expect(ranges[0].endDate.toString()).toBe('2025-01-15');
591
+ expect(ranges[1].endDate.toString()).toBe('2025-01-20');
592
+ expect(ranges[2].endDate.toString()).toBe('2025-01-31');
593
+ });
594
+ it('handles ranges with past infinity start date', () => {
595
+ const infiniteStart = new DateRange(new PastInfinityDate(), plainDate('2025-01-31'));
596
+ const regularRange = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
597
+ const result = infiniteStart.compare(regularRange);
598
+ expect(result).toBe(-Infinity);
599
+ });
600
+ it('handles ranges with future infinity end date', () => {
601
+ const infiniteEnd = new DateRange(plainDate('2025-01-01'), new FutureInfinityDate());
602
+ const regularEnd = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
603
+ const result = infiniteEnd.compare(regularEnd);
604
+ expect(result).toBe(Infinity);
605
+ });
606
+ it('handles ranges with both infinities', () => {
607
+ const fullInfinite = new DateRange(new PastInfinityDate(), new FutureInfinityDate());
608
+ const regularRange = new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'));
609
+ const result = fullInfinite.compare(regularRange);
610
+ expect(result).toBe(-Infinity);
611
+ });
612
+ it('sorts ranges with infinities correctly', () => {
613
+ const ranges = [
614
+ new DateRange(plainDate('2025-02-01'), plainDate('2025-02-28')),
615
+ new DateRange(new PastInfinityDate(), plainDate('2025-01-31')),
616
+ new DateRange(plainDate('2025-01-01'), new FutureInfinityDate()),
617
+ new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31'))
618
+ ];
619
+ ranges.sort((a, b) => a.compare(b));
620
+ expect(ranges[0].startDate.isPastInfinity()).toBe(true);
621
+ expect(ranges[1].startDate.toString()).toBe('2025-01-01');
622
+ expect(ranges[1].endDate.toString()).toBe('2025-01-31');
623
+ expect(ranges[2].startDate.toString()).toBe('2025-01-01');
624
+ expect(ranges[2].endDate.isFutureInfinity()).toBe(true);
625
+ expect(ranges[3].startDate.toString()).toBe('2025-02-01');
626
+ });
627
+ it('handles complex sorting with overlapping ranges', () => {
628
+ const ranges = [
629
+ new DateRange(plainDate('2025-01-15'), plainDate('2025-02-15')),
630
+ new DateRange(plainDate('2025-01-01'), plainDate('2025-01-31')),
631
+ new DateRange(plainDate('2025-01-15'), plainDate('2025-01-20')),
632
+ new DateRange(plainDate('2025-02-01'), plainDate('2025-02-28'))
633
+ ];
634
+ ranges.sort((a, b) => a.compare(b));
635
+ expect(ranges[0].startDate.toString()).toBe('2025-01-01');
636
+ expect(ranges[1].startDate.toString()).toBe('2025-01-15');
637
+ expect(ranges[1].endDate.toString()).toBe('2025-01-20');
638
+ expect(ranges[2].startDate.toString()).toBe('2025-01-15');
639
+ expect(ranges[2].endDate.toString()).toBe('2025-02-15');
640
+ expect(ranges[3].startDate.toString()).toBe('2025-02-01');
641
+ });
642
+ it('infinite range compares equal to itself', () => {
643
+ const range1 = new DateRange(new PastInfinityDate(), new FutureInfinityDate());
644
+ const range2 = new DateRange(new PastInfinityDate(), new FutureInfinityDate());
645
+ const result = range1.compare(range2);
646
+ expect(result).toBe(0);
647
+ });
648
+ });
525
649
  });
526
650
  //# sourceMappingURL=date-range.unit.test.js.map