@wisemen/datewise 0.1.13 → 0.1.15

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 (49) 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/tests/contained-in-plain-date.integration.test.d.ts +1 -0
  28. package/dist/date-range/tests/contained-in-plain-date.integration.test.js +84 -0
  29. package/dist/date-range/tests/contained-in-plain-date.integration.test.js.map +1 -0
  30. package/dist/date-range/tests/sql/datasource.js +4 -1
  31. package/dist/date-range/tests/sql/datasource.js.map +1 -1
  32. package/dist/date-range/tests/sql/plain-date-test.entity.d.ts +5 -0
  33. package/dist/date-range/tests/sql/plain-date-test.entity.js +28 -0
  34. package/dist/date-range/tests/sql/plain-date-test.entity.js.map +1 -0
  35. package/dist/date-range/typeorm/contains-plain-date.d.ts +3 -0
  36. package/dist/date-range/typeorm/contains-plain-date.js +3 -0
  37. package/dist/date-range/typeorm/contains-plain-date.js.map +1 -1
  38. package/dist/date-time-range/tests/contained-in-timestamp.integration.test.d.ts +1 -0
  39. package/dist/date-time-range/tests/contained-in-timestamp.integration.test.js +112 -0
  40. package/dist/date-time-range/tests/contained-in-timestamp.integration.test.js.map +1 -0
  41. package/dist/date-time-range/tests/sql/datasource.js +2 -1
  42. package/dist/date-time-range/tests/sql/datasource.js.map +1 -1
  43. package/dist/date-time-range/tests/sql/timestamp-test.entity.d.ts +5 -0
  44. package/dist/date-time-range/tests/sql/timestamp-test.entity.js +28 -0
  45. package/dist/date-time-range/tests/sql/timestamp-test.entity.js.map +1 -0
  46. package/dist/date-time-range/typeorm/contains-timestamp.d.ts +3 -0
  47. package/dist/date-time-range/typeorm/contains-timestamp.js +3 -0
  48. package/dist/date-time-range/typeorm/contains-timestamp.js.map +1 -1
  49. package/package.json +3 -3
@@ -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 | Date>;
@@ -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"}
@@ -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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"}
@@ -8,6 +8,9 @@ export const dataSource = new DataSource({
8
8
  logging: false,
9
9
  synchronize: false,
10
10
  migrationsRun: true,
11
- entities: ['dist/**/finite-date-range-test.entity.js']
11
+ entities: [
12
+ 'dist/**/finite-date-range-test.entity.js',
13
+ 'dist/**/plain-date-test.entity.js'
14
+ ]
12
15
  });
13
16
  //# sourceMappingURL=datasource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../../lib/date-range/tests/sql/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;IACvC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;IAC7B,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,CAAC,0CAA0C,CAAC;CACvD,CAAC,CAAA"}
1
+ {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../../lib/date-range/tests/sql/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;IACvC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;IAC7B,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE;QACR,0CAA0C;QAC1C,mCAAmC;KACpC;CACF,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { PlainDate } from '../../../plain-date/index.js';
2
+ export declare class PlainDateTest {
3
+ id: number;
4
+ date: PlainDate;
5
+ }
@@ -0,0 +1,28 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, PrimaryGeneratedColumn } from 'typeorm';
11
+ import { PlainDateColumn } from '../../../plain-date/typeorm/plain-date.column.js';
12
+ let PlainDateTest = class PlainDateTest {
13
+ id;
14
+ date;
15
+ };
16
+ __decorate([
17
+ PrimaryGeneratedColumn(),
18
+ __metadata("design:type", Number)
19
+ ], PlainDateTest.prototype, "id", void 0);
20
+ __decorate([
21
+ PlainDateColumn(),
22
+ __metadata("design:type", Object)
23
+ ], PlainDateTest.prototype, "date", void 0);
24
+ PlainDateTest = __decorate([
25
+ Entity()
26
+ ], PlainDateTest);
27
+ export { PlainDateTest };
28
+ //# sourceMappingURL=plain-date-test.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain-date-test.entity.js","sourceRoot":"","sources":["../../../../lib/date-range/tests/sql/plain-date-test.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAG3E,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,EAAE,CAAQ;IAGV,IAAI,CAAW;CAChB,CAAA;AAJC;IADC,sBAAsB,EAAE;;yCACf;AAGV;IADC,eAAe,EAAE;;2CACH;AALJ,aAAa;IADzB,MAAM,EAAE;GACI,aAAa,CAMzB"}
@@ -1,4 +1,7 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateRange } from '../date-range.js';
3
3
  import { PlainDateInput } from '../../plain-date/plain-date.js';
4
+ /**
5
+ * Checks that the range contains the given date with the `@>` operator.
6
+ */
4
7
  export declare function ContainsPlainDate(date: PlainDateInput): FindOperator<DateRange>;
@@ -1,6 +1,9 @@
1
1
  import { randomUUID } from 'crypto';
2
2
  import { Raw } from 'typeorm';
3
3
  import { plainDate } from '../../plain-date/index.js';
4
+ /**
5
+ * Checks that the range contains the given date with the `@>` operator.
6
+ */
4
7
  export function ContainsPlainDate(date) {
5
8
  const paramName = randomUUID().replaceAll('-', '');
6
9
  return Raw((alias) => `${alias} @> :${paramName}::date`, { [paramName]: plainDate(date).toString() });
@@ -1 +1 @@
1
- {"version":3,"file":"contains-plain-date.js","sourceRoot":"","sources":["../../../lib/date-range/typeorm/contains-plain-date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,MAAM,UAAU,iBAAiB,CAAE,IAAoB;IACrD,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,QAAQ,EACpD,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjB,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"contains-plain-date.js","sourceRoot":"","sources":["../../../lib/date-range/typeorm/contains-plain-date.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAE,IAAoB;IACrD,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,QAAQ,EACpD,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjB,CAAA;AAC9B,CAAC"}
@@ -0,0 +1,112 @@
1
+ import { after, before, describe, it } from 'node:test';
2
+ import { expect } from 'expect';
3
+ import { In } from 'typeorm';
4
+ import { DateTimeRange } from '../date-time-range.js';
5
+ import { timestamp } from '../../timestamp/index.js';
6
+ import { ContainedIn } from '../../common/typeorm/contained-in.js';
7
+ import { PastInfinity } from '../../timestamp/past-infinity.js';
8
+ import { FutureInfinity } from '../../timestamp/future-infinity.js';
9
+ import { IntegrationTestSetup } from './test-setup.js';
10
+ import { dataSource } from './sql/datasource.js';
11
+ import { TimestampTest } from './sql/timestamp-test.entity.js';
12
+ describe('ContainedIn for Timestamp', () => {
13
+ const integrationTest = new IntegrationTestSetup();
14
+ before(async () => {
15
+ await integrationTest.setup();
16
+ });
17
+ after(async () => {
18
+ await integrationTest.teardown();
19
+ });
20
+ it('finds timestamps contained in a date time range', async () => {
21
+ const ts1 = timestamp('2025-01-15T10:00:00Z');
22
+ const ts2 = timestamp('2025-02-15T14:30:00Z');
23
+ const ts3 = timestamp('2025-03-15T18:45:00Z');
24
+ await seed(dataSource, { id: 1, timestamp: ts1 });
25
+ await seed(dataSource, { id: 2, timestamp: ts2 });
26
+ await seed(dataSource, { id: 3, timestamp: ts3 });
27
+ const range = new DateTimeRange(timestamp('2025-01-01T00:00:00Z'), timestamp('2025-02-28T23:59:59Z'));
28
+ const results = await dataSource.manager.find(TimestampTest, {
29
+ where: {
30
+ id: In([1, 2, 3]),
31
+ timestamp: ContainedIn(range)
32
+ }
33
+ });
34
+ expect(results.length).toBe(2);
35
+ expect(results.some(r => r.id === 1)).toBe(true);
36
+ expect(results.some(r => r.id === 2)).toBe(true);
37
+ });
38
+ it('finds timestamps on range boundaries (inclusive start, exclusive end)', async () => {
39
+ const startTime = timestamp('2025-01-01T00:00:00Z');
40
+ const endTime = timestamp('2025-01-31T23:59:59Z');
41
+ await seed(dataSource, { id: 4, timestamp: startTime });
42
+ await seed(dataSource, { id: 5, timestamp: endTime });
43
+ const range = new DateTimeRange(timestamp('2025-01-01T00:00:00Z'), timestamp('2025-02-01T00:00:00Z'));
44
+ const results = await dataSource.manager.find(TimestampTest, {
45
+ where: {
46
+ id: In([4, 5]),
47
+ timestamp: ContainedIn(range)
48
+ },
49
+ order: { id: 'ASC' }
50
+ });
51
+ expect(results.length).toBe(2);
52
+ expect(results[0].id).toBe(4);
53
+ expect(results[1].id).toBe(5);
54
+ });
55
+ it('excludes timestamps outside the range', async () => {
56
+ const beforeTime = timestamp('2024-12-31T23:59:59Z');
57
+ const afterTime = timestamp('2025-02-01T00:00:01Z');
58
+ await seed(dataSource, { id: 6, timestamp: beforeTime });
59
+ await seed(dataSource, { id: 7, timestamp: afterTime });
60
+ const range = new DateTimeRange(timestamp('2025-01-01T00:00:00Z'), timestamp('2025-02-01T00:00:00Z'));
61
+ const results = await dataSource.manager.find(TimestampTest, {
62
+ where: {
63
+ id: In([6, 7]),
64
+ timestamp: ContainedIn(range)
65
+ }
66
+ });
67
+ expect(results.length).toBe(0);
68
+ });
69
+ it('handles half-infinite ranges (-infinity, date]', async () => {
70
+ const ts = timestamp('2025-01-15T12:00:00Z');
71
+ await seed(dataSource, { id: 8, timestamp: ts });
72
+ const halfInfiniteRange = new DateTimeRange(new PastInfinity(), timestamp('2025-12-31T23:59:59Z'));
73
+ const results = await dataSource.manager.find(TimestampTest, {
74
+ where: {
75
+ id: In([8]),
76
+ timestamp: ContainedIn(halfInfiniteRange)
77
+ }
78
+ });
79
+ expect(results.length).toBe(1);
80
+ expect(results[0].id).toBe(8);
81
+ });
82
+ it('handles half-infinite ranges [date, infinity)', async () => {
83
+ const ts = timestamp('2025-06-15T12:00:00Z');
84
+ await seed(dataSource, { id: 9, timestamp: ts });
85
+ const halfInfiniteRange = new DateTimeRange(timestamp('2025-01-01T00:00:00Z'), new FutureInfinity());
86
+ const results = await dataSource.manager.find(TimestampTest, {
87
+ where: {
88
+ id: In([9]),
89
+ timestamp: ContainedIn(halfInfiniteRange)
90
+ }
91
+ });
92
+ expect(results.length).toBe(1);
93
+ expect(results[0].id).toBe(9);
94
+ });
95
+ it('handles fully infinite ranges (-infinity, infinity)', async () => {
96
+ const ts = timestamp('2025-01-15T12:00:00Z');
97
+ await seed(dataSource, { id: 10, timestamp: ts });
98
+ const fullyInfiniteRange = new DateTimeRange(new PastInfinity(), new FutureInfinity());
99
+ const results = await dataSource.manager.find(TimestampTest, {
100
+ where: {
101
+ id: In([10]),
102
+ timestamp: ContainedIn(fullyInfiniteRange)
103
+ }
104
+ });
105
+ expect(results.length).toBe(1);
106
+ expect(results[0].id).toBe(10);
107
+ });
108
+ async function seed(dataSource, row) {
109
+ await dataSource.manager.upsert(TimestampTest, row, { conflictPaths: { id: true } });
110
+ }
111
+ });
112
+ //# sourceMappingURL=contained-in-timestamp.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contained-in-timestamp.integration.test.js","sourceRoot":"","sources":["../../../lib/date-time-range/tests/contained-in-timestamp.integration.test.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,8 @@ export const dataSource = new DataSource({
11
11
  entities: [
12
12
  'dist/**/date-time-range-test.entity.js',
13
13
  'dist/**/multi-date-time-range-test.entity.js',
14
- 'dist/**/finite-date-time-range-test.entity.js'
14
+ 'dist/**/finite-date-time-range-test.entity.js',
15
+ 'dist/**/timestamp-test.entity.js'
15
16
  ]
16
17
  });
17
18
  //# sourceMappingURL=datasource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../../lib/date-time-range/tests/sql/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;IACvC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;IAC7B,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE;QACR,wCAAwC;QACxC,8CAA8C;QAC9C,+CAA+C;KAChD;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../../lib/date-time-range/tests/sql/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;IACvC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;IAC7B,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE;QACR,wCAAwC;QACxC,8CAA8C;QAC9C,+CAA+C;QAC/C,kCAAkC;KACnC;CACF,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { Timestamp } from '../../../timestamp/timestamp.js';
2
+ export declare class TimestampTest {
3
+ id: number;
4
+ timestamp: Timestamp;
5
+ }
@@ -0,0 +1,28 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Entity, PrimaryGeneratedColumn } from 'typeorm';
11
+ import { TimestampColumn } from '../../../timestamp/typeorm/timestamp.column.js';
12
+ let TimestampTest = class TimestampTest {
13
+ id;
14
+ timestamp;
15
+ };
16
+ __decorate([
17
+ PrimaryGeneratedColumn(),
18
+ __metadata("design:type", Number)
19
+ ], TimestampTest.prototype, "id", void 0);
20
+ __decorate([
21
+ TimestampColumn(),
22
+ __metadata("design:type", Object)
23
+ ], TimestampTest.prototype, "timestamp", void 0);
24
+ TimestampTest = __decorate([
25
+ Entity()
26
+ ], TimestampTest);
27
+ export { TimestampTest };
28
+ //# sourceMappingURL=timestamp-test.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamp-test.entity.js","sourceRoot":"","sources":["../../../../lib/date-time-range/tests/sql/timestamp-test.entity.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAGzE,IAAM,aAAa,GAAnB,MAAM,aAAa;IAExB,EAAE,CAAQ;IAGV,SAAS,CAAW;CACrB,CAAA;AAJC;IADC,sBAAsB,EAAE;;yCACf;AAGV;IADC,eAAe,EAAE;;gDACE;AALT,aAAa;IADzB,MAAM,EAAE;GACI,aAAa,CAMzB"}
@@ -1,4 +1,7 @@
1
1
  import { FindOperator } from 'typeorm';
2
2
  import { DateTimeRange } from '../date-time-range.js';
3
3
  import { TimestampInput } from '../../timestamp/timestamp.js';
4
+ /**
5
+ * Checks that the range contains the given timestamp with the `@>` operator.
6
+ */
4
7
  export declare function ContainsTimestamp(date: TimestampInput): FindOperator<DateTimeRange>;
@@ -1,6 +1,9 @@
1
1
  import { randomUUID } from 'crypto';
2
2
  import { Raw } from 'typeorm';
3
3
  import { timestamp } from '../../timestamp/index.js';
4
+ /**
5
+ * Checks that the range contains the given timestamp with the `@>` operator.
6
+ */
4
7
  export function ContainsTimestamp(date) {
5
8
  const paramName = randomUUID().replaceAll('-', '');
6
9
  return Raw((alias) => `${alias} @> :${paramName}::timestamptz(3)`, { [paramName]: timestamp(date).toISOString() });
@@ -1 +1 @@
1
- {"version":3,"file":"contains-timestamp.js","sourceRoot":"","sources":["../../../lib/date-time-range/typeorm/contains-timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,MAAM,UAAU,iBAAiB,CAAE,IAAoB;IACrD,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,kBAAkB,EAC9D,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAChB,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"contains-timestamp.js","sourceRoot":"","sources":["../../../lib/date-time-range/typeorm/contains-timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAgB,GAAG,EAAE,MAAM,SAAS,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAE,IAAoB;IACrD,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,kBAAkB,EAC9D,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAChB,CAAA;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wisemen/datewise",
3
- "version": "0.1.13",
3
+ "version": "0.1.15",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -34,8 +34,8 @@
34
34
  "directory": "packages/datewise"
35
35
  },
36
36
  "dependencies": {
37
- "@wisemen/pagination": "0.1.1",
38
- "@wisemen/quantity": "0.6.1"
37
+ "@wisemen/quantity": "0.6.1",
38
+ "@wisemen/pagination": "0.1.1"
39
39
  },
40
40
  "scripts": {
41
41
  "prebuild": "rm -rf ./dist",