@wisemen/datewise 0.1.13 → 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.
- package/dist/common/typeorm/adjacent-to.d.ts +1 -0
- package/dist/common/typeorm/adjacent-to.js.map +1 -1
- package/dist/common/typeorm/contained-in.d.ts +13 -0
- package/dist/common/typeorm/contained-in.js +15 -0
- package/dist/common/typeorm/contained-in.js.map +1 -0
- package/dist/common/typeorm/ends-before.d.ts +3 -0
- package/dist/common/typeorm/ends-before.js.map +1 -1
- package/dist/common/typeorm/index.d.ts +1 -0
- package/dist/common/typeorm/index.js +1 -0
- package/dist/common/typeorm/index.js.map +1 -1
- package/dist/common/typeorm/is-preceded-by.d.ts +4 -0
- package/dist/common/typeorm/is-preceded-by.js.map +1 -1
- package/dist/common/typeorm/is-succeeded-by.d.ts +4 -0
- package/dist/common/typeorm/is-succeeded-by.js.map +1 -1
- package/dist/common/typeorm/overlaps-with.d.ts +3 -0
- package/dist/common/typeorm/overlaps-with.js.map +1 -1
- package/dist/common/typeorm/precedes.d.ts +4 -0
- package/dist/common/typeorm/precedes.js.map +1 -1
- package/dist/common/typeorm/starts-after.d.ts +3 -0
- package/dist/common/typeorm/starts-after.js.map +1 -1
- package/dist/common/typeorm/strictly-left-of.d.ts +3 -0
- package/dist/common/typeorm/strictly-left-of.js.map +1 -1
- package/dist/common/typeorm/strictly-right-of.d.ts +3 -0
- package/dist/common/typeorm/strictly-right-of.js.map +1 -1
- package/dist/common/typeorm/succeeds.d.ts +4 -0
- package/dist/common/typeorm/succeeds.js.map +1 -1
- package/dist/date-range/tests/contained-in-plain-date.integration.test.d.ts +1 -0
- package/dist/date-range/tests/contained-in-plain-date.integration.test.js +84 -0
- package/dist/date-range/tests/contained-in-plain-date.integration.test.js.map +1 -0
- package/dist/date-range/tests/sql/datasource.js +4 -1
- package/dist/date-range/tests/sql/datasource.js.map +1 -1
- package/dist/date-range/tests/sql/plain-date-test.entity.d.ts +5 -0
- package/dist/date-range/tests/sql/plain-date-test.entity.js +28 -0
- package/dist/date-range/tests/sql/plain-date-test.entity.js.map +1 -0
- package/dist/date-range/typeorm/contains-plain-date.d.ts +3 -0
- package/dist/date-range/typeorm/contains-plain-date.js +3 -0
- package/dist/date-range/typeorm/contains-plain-date.js.map +1 -1
- package/dist/date-time-range/tests/contained-in-timestamp.integration.test.d.ts +1 -0
- package/dist/date-time-range/tests/contained-in-timestamp.integration.test.js +112 -0
- package/dist/date-time-range/tests/contained-in-timestamp.integration.test.js.map +1 -0
- package/dist/date-time-range/tests/sql/datasource.js +2 -1
- package/dist/date-time-range/tests/sql/datasource.js.map +1 -1
- package/dist/date-time-range/tests/sql/timestamp-test.entity.d.ts +5 -0
- package/dist/date-time-range/tests/sql/timestamp-test.entity.js +28 -0
- package/dist/date-time-range/tests/sql/timestamp-test.entity.js.map +1 -0
- package/dist/date-time-range/typeorm/contains-timestamp.d.ts +3 -0
- package/dist/date-time-range/typeorm/contains-timestamp.js +3 -0
- package/dist/date-time-range/typeorm/contains-timestamp.js.map +1 -1
- package/package.json +1 -1
|
@@ -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;
|
|
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;
|
|
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 +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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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;
|
|
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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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: [
|
|
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,
|
|
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,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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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;
|
|
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,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"}
|