@react-querybuilder/datetime 8.11.2 → 8.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/date-fns/package.json +4 -0
  2. package/dayjs/package.json +4 -0
  3. package/dist/cjs/{getDatetimeRuleProcessorSQL-COEhnVIZ.js → getDatetimeRuleProcessorSQL-Dkg4HEtH.js} +2 -31
  4. package/dist/cjs/{getDatetimeRuleProcessorSQL-COEhnVIZ.js.map → getDatetimeRuleProcessorSQL-Dkg4HEtH.js.map} +1 -1
  5. package/dist/cjs/getDatetimeRuleProcessorSQL-xGETy1ec.js +2 -0
  6. package/dist/cjs/{getDatetimeRuleProcessorSQL-CSxxM8ce.js.map → getDatetimeRuleProcessorSQL-xGETy1ec.js.map} +1 -1
  7. package/dist/cjs/react-querybuilder_datetime.cjs.development.d.ts +1 -1
  8. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.d.ts +1 -1
  9. package/dist/cjs/react-querybuilder_datetime.cjs.development.date-fns.js +2 -2
  10. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.d.ts +1 -1
  11. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js +30 -2
  12. package/dist/cjs/react-querybuilder_datetime.cjs.development.dayjs.js.map +1 -1
  13. package/dist/cjs/react-querybuilder_datetime.cjs.development.js +2 -2
  14. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.d.ts +1 -1
  15. package/dist/cjs/react-querybuilder_datetime.cjs.development.jsdate.js +1 -1
  16. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.d.ts +1 -1
  17. package/dist/cjs/react-querybuilder_datetime.cjs.development.luxon.js +2 -2
  18. package/dist/cjs/react-querybuilder_datetime.cjs.production.d.ts +1 -1
  19. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.d.ts +1 -1
  20. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js +1 -1
  21. package/dist/cjs/react-querybuilder_datetime.cjs.production.date-fns.js.map +1 -1
  22. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.d.ts +1 -1
  23. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js +1 -1
  24. package/dist/cjs/react-querybuilder_datetime.cjs.production.dayjs.js.map +1 -1
  25. package/dist/cjs/react-querybuilder_datetime.cjs.production.js +1 -1
  26. package/dist/cjs/react-querybuilder_datetime.cjs.production.js.map +1 -1
  27. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.d.ts +1 -1
  28. package/dist/cjs/react-querybuilder_datetime.cjs.production.jsdate.js +1 -1
  29. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.d.ts +1 -1
  30. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js +1 -1
  31. package/dist/cjs/react-querybuilder_datetime.cjs.production.luxon.js.map +1 -1
  32. package/dist/cjs/{types-A60rB27l.d.ts → types-BWNR3hk5.d.ts} +134 -98
  33. package/dist/{getDatetimeRuleProcessorSQL-B8y0RI7t.js → getDatetimeRuleProcessorSQL-CtUjFtho.js} +6 -6
  34. package/dist/{getDatetimeRuleProcessorSQL-B8y0RI7t.js.map → getDatetimeRuleProcessorSQL-CtUjFtho.js.map} +1 -1
  35. package/dist/{getDatetimeRuleProcessorSQL-CSl2zGza.mjs → getDatetimeRuleProcessorSQL-CugqyF_a.mjs} +1 -1
  36. package/dist/{getDatetimeRuleProcessorSQL-CSl2zGza.mjs.map → getDatetimeRuleProcessorSQL-CugqyF_a.mjs.map} +1 -1
  37. package/dist/getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs +2 -0
  38. package/dist/getDatetimeRuleProcessorSQL-Dcqi5kh5.mjs.map +1 -0
  39. package/dist/react-querybuilder_datetime.d.mts +1 -1
  40. package/dist/react-querybuilder_datetime.date-fns.d.mts +1 -1
  41. package/dist/react-querybuilder_datetime.date-fns.mjs +1 -1
  42. package/dist/react-querybuilder_datetime.dayjs.d.mts +1 -1
  43. package/dist/react-querybuilder_datetime.dayjs.mjs +1 -1
  44. package/dist/react-querybuilder_datetime.jsdate.d.mts +1 -1
  45. package/dist/react-querybuilder_datetime.jsdate.mjs +1 -1
  46. package/dist/react-querybuilder_datetime.legacy-esm.d.ts +1 -1
  47. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.d.ts +1 -1
  48. package/dist/react-querybuilder_datetime.legacy-esm.date-fns.js +1 -1
  49. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.d.ts +1 -1
  50. package/dist/react-querybuilder_datetime.legacy-esm.dayjs.js +1 -1
  51. package/dist/react-querybuilder_datetime.legacy-esm.js +1 -1
  52. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.d.ts +1 -1
  53. package/dist/react-querybuilder_datetime.legacy-esm.jsdate.js +1 -1
  54. package/dist/react-querybuilder_datetime.legacy-esm.luxon.d.ts +1 -1
  55. package/dist/react-querybuilder_datetime.legacy-esm.luxon.js +1 -1
  56. package/dist/react-querybuilder_datetime.luxon.d.mts +1 -1
  57. package/dist/react-querybuilder_datetime.luxon.mjs +1 -1
  58. package/dist/react-querybuilder_datetime.mjs +1 -1
  59. package/dist/react-querybuilder_datetime.production.d.mts +1 -1
  60. package/dist/react-querybuilder_datetime.production.date-fns.d.mts +1 -1
  61. package/dist/react-querybuilder_datetime.production.date-fns.mjs +1 -1
  62. package/dist/react-querybuilder_datetime.production.dayjs.d.mts +1 -1
  63. package/dist/react-querybuilder_datetime.production.dayjs.mjs +1 -1
  64. package/dist/react-querybuilder_datetime.production.jsdate.d.mts +1 -1
  65. package/dist/react-querybuilder_datetime.production.jsdate.mjs +1 -1
  66. package/dist/react-querybuilder_datetime.production.luxon.d.mts +1 -1
  67. package/dist/react-querybuilder_datetime.production.luxon.mjs +1 -1
  68. package/dist/react-querybuilder_datetime.production.mjs +1 -1
  69. package/dist/{types-BjHLhGXX.d.mts → types-BO9Xuapi.d.mts} +155 -118
  70. package/dist/{types-Dq7BlQzI.d.ts → types-h3_NfrpO.d.ts} +155 -118
  71. package/jsdate/package.json +4 -0
  72. package/luxon/package.json +4 -0
  73. package/package.json +16 -12
  74. package/dist/cjs/getDatetimeRuleProcessorSQL-CSxxM8ce.js +0 -2
@@ -1,4 +1,5 @@
1
1
  import { RulesLogic } from "json-logic-js";
2
+ import "react";
2
3
 
3
4
  //#region ../../node_modules/type-fest/source/union-to-intersection.d.ts
4
5
 
@@ -17,34 +18,6 @@ type Intersection = UnionToIntersection<Union>;
17
18
  //=> {the(): void; great(arg: string): void; escape: boolean};
18
19
  ```
19
20
 
20
- A more applicable example which could make its way into your library code follows.
21
-
22
- @example
23
- ```
24
- import type {UnionToIntersection} from 'type-fest';
25
-
26
- class CommandOne {
27
- commands: {
28
- a1: () => undefined,
29
- b1: () => undefined,
30
- }
31
- }
32
-
33
- class CommandTwo {
34
- commands: {
35
- a2: (argA: string) => undefined,
36
- b2: (argB: string) => undefined,
37
- }
38
- }
39
-
40
- const union = [new CommandOne(), new CommandTwo()].map(instance => instance.commands);
41
- type Union = typeof union;
42
- //=> {a1(): void; b1(): void} | {a2(argA: string): void; b2(argB: string): void}
43
-
44
- type Intersection = UnionToIntersection<Union>;
45
- //=> {a1(): void; b1(): void; a2(argA: string): void; b2(argB: string): void}
46
- ```
47
-
48
21
  @category Type
49
22
  */
50
23
  type UnionToIntersection<Union> = (
@@ -120,8 +93,8 @@ import type {IsAny} from 'type-fest';
120
93
  const typedObject = {a: 1, b: 2} as const;
121
94
  const anyObject: any = {a: 1, b: 2};
122
95
 
123
- function get<O extends (IsAny<O> extends true ? {} : Record<string, number>), K extends keyof O = keyof O>(obj: O, key: K) {
124
- return obj[key];
96
+ function get<O extends (IsAny<O> extends true ? {} : Record<string, number>), K extends keyof O = keyof O>(object: O, key: K) {
97
+ return object[key];
125
98
  }
126
99
 
127
100
  const typedA = get(typedObject, 'a');
@@ -134,7 +107,7 @@ const anyA = get(anyObject, 'a');
134
107
  @category Type Guard
135
108
  @category Utilities
136
109
  */
137
- type IsAny<T> = 0 extends 1 & NoInfer<T> ? true : false;
110
+ type IsAny<T$1> = 0 extends 1 & NoInfer<T$1> ? true : false;
138
111
  //#endregion
139
112
  //#region ../../node_modules/type-fest/source/is-optional-key-of.d.ts
140
113
  /**
@@ -146,17 +119,17 @@ This is useful when writing utility types or schema validators that need to diff
146
119
  ```
147
120
  import type {IsOptionalKeyOf} from 'type-fest';
148
121
 
149
- interface User {
122
+ type User = {
150
123
  name: string;
151
124
  surname: string;
152
125
 
153
126
  luckyNumber?: number;
154
- }
127
+ };
155
128
 
156
- interface Admin {
129
+ type Admin = {
157
130
  name: string;
158
131
  surname?: string;
159
- }
132
+ };
160
133
 
161
134
  type T1 = IsOptionalKeyOf<User, 'luckyNumber'>;
162
135
  //=> true
@@ -189,12 +162,12 @@ This is useful when you want to create a new type that contains different type v
189
162
  ```
190
163
  import type {OptionalKeysOf, Except} from 'type-fest';
191
164
 
192
- interface User {
165
+ type User = {
193
166
  name: string;
194
167
  surname: string;
195
168
 
196
169
  luckyNumber?: number;
197
- }
170
+ };
198
171
 
199
172
  const REMOVE_FIELD = Symbol('remove field symbol');
200
173
  type UpdateOperation<Entity extends object> = Except<Partial<Entity>, OptionalKeysOf<Entity>> & {
@@ -202,12 +175,12 @@ type UpdateOperation<Entity extends object> = Except<Partial<Entity>, OptionalKe
202
175
  };
203
176
 
204
177
  const update1: UpdateOperation<User> = {
205
- name: 'Alice'
178
+ name: 'Alice',
206
179
  };
207
180
 
208
181
  const update2: UpdateOperation<User> = {
209
182
  name: 'Bob',
210
- luckyNumber: REMOVE_FIELD
183
+ luckyNumber: REMOVE_FIELD,
211
184
  };
212
185
  ```
213
186
 
@@ -227,17 +200,23 @@ This is useful when you want to create a new type that contains different type v
227
200
  ```
228
201
  import type {RequiredKeysOf} from 'type-fest';
229
202
 
230
- declare function createValidation<Entity extends object, Key extends RequiredKeysOf<Entity> = RequiredKeysOf<Entity>>(field: Key, validator: (value: Entity[Key]) => boolean): ValidatorFn;
203
+ declare function createValidation<
204
+ Entity extends object,
205
+ Key extends RequiredKeysOf<Entity> = RequiredKeysOf<Entity>,
206
+ >(field: Key, validator: (value: Entity[Key]) => boolean): (entity: Entity) => boolean;
231
207
 
232
- interface User {
208
+ type User = {
233
209
  name: string;
234
210
  surname: string;
235
-
236
211
  luckyNumber?: number;
237
- }
212
+ };
238
213
 
239
214
  const validator1 = createValidation<User>('name', value => value.length < 25);
240
215
  const validator2 = createValidation<User>('surname', value => value.length < 25);
216
+
217
+ // @ts-expect-error
218
+ const validator3 = createValidation<User>('luckyNumber', value => value > 0);
219
+ // Error: Argument of type '"luckyNumber"' is not assignable to parameter of type '"name" | "surname"'.
241
220
  ```
242
221
 
243
222
  @category Utilities
@@ -259,35 +238,47 @@ Useful in type utilities, such as checking if something does not occur.
259
238
  ```
260
239
  import type {IsNever, And} from 'type-fest';
261
240
 
262
- // https://github.com/andnp/SimplyTyped/blob/master/src/types/strings.ts
263
- type AreStringsEqual<A extends string, B extends string> =
264
- And<
265
- IsNever<Exclude<A, B>> extends true ? true : false,
266
- IsNever<Exclude<B, A>> extends true ? true : false
267
- >;
268
-
269
- type EndIfEqual<I extends string, O extends string> =
270
- AreStringsEqual<I, O> extends true
271
- ? never
272
- : void;
273
-
274
- function endIfEqual<I extends string, O extends string>(input: I, output: O): EndIfEqual<I, O> {
275
- if (input === output) {
276
- process.exit(0);
277
- }
278
- }
241
+ type A = IsNever<never>;
242
+ //=> true
279
243
 
280
- endIfEqual('abc', 'abc');
281
- //=> never
244
+ type B = IsNever<any>;
245
+ //=> false
246
+
247
+ type C = IsNever<unknown>;
248
+ //=> false
249
+
250
+ type D = IsNever<never[]>;
251
+ //=> false
252
+
253
+ type E = IsNever<object>;
254
+ //=> false
255
+
256
+ type F = IsNever<string>;
257
+ //=> false
258
+ ```
282
259
 
283
- endIfEqual('abc', '123');
284
- //=> void
260
+ @example
261
+ ```
262
+ import type {IsNever} from 'type-fest';
263
+
264
+ type IsTrue<T> = T extends true ? true : false;
265
+
266
+ // When a distributive conditional is instantiated with `never`, the entire conditional results in `never`.
267
+ type A = IsTrue<never>;
268
+ // ^? type A = never
269
+
270
+ // If you don't want that behaviour, you can explicitly add an `IsNever` check before the distributive conditional.
271
+ type IsTrueFixed<T> =
272
+ IsNever<T> extends true ? false : T extends true ? true : false;
273
+
274
+ type B = IsTrueFixed<never>;
275
+ // ^? type B = false
285
276
  ```
286
277
 
287
278
  @category Type Guard
288
279
  @category Utilities
289
280
  */
290
- type IsNever<T> = [T] extends [never] ? true : false;
281
+ type IsNever<T$1> = [T$1] extends [never] ? true : false;
291
282
  //#endregion
292
283
  //#region ../../node_modules/type-fest/source/if.d.ts
293
284
  /**
@@ -302,7 +293,7 @@ Note:
302
293
 
303
294
  @example
304
295
  ```
305
- import {If} from 'type-fest';
296
+ import type {If} from 'type-fest';
306
297
 
307
298
  type A = If<true, 'yes', 'no'>;
308
299
  //=> 'yes'
@@ -322,7 +313,7 @@ type E = If<never, 'yes', 'no'>;
322
313
 
323
314
  @example
324
315
  ```
325
- import {If, IsAny, IsNever} from 'type-fest';
316
+ import type {If, IsAny, IsNever} from 'type-fest';
326
317
 
327
318
  type A = If<IsAny<unknown>, 'is any', 'not any'>;
328
319
  //=> 'not any'
@@ -333,7 +324,7 @@ type B = If<IsNever<never>, 'is never', 'not never'>;
333
324
 
334
325
  @example
335
326
  ```
336
- import {If, IsEqual} from 'type-fest';
327
+ import type {If, IsEqual} from 'type-fest';
337
328
 
338
329
  type IfEqual<T, U, IfBranch, ElseBranch> = If<IsEqual<T, U>, IfBranch, ElseBranch>;
339
330
 
@@ -344,6 +335,41 @@ type B = IfEqual<string, number, 'equal', 'not equal'>;
344
335
  //=> 'not equal'
345
336
  ```
346
337
 
338
+ Note: Sometimes using the `If` type can make an implementation non–tail-recursive, which can impact performance. In such cases, it’s better to use a conditional directly. Refer to the following example:
339
+
340
+ @example
341
+ ```
342
+ import type {If, IsEqual, StringRepeat} from 'type-fest';
343
+
344
+ type HundredZeroes = StringRepeat<'0', 100>;
345
+
346
+ // The following implementation is not tail recursive
347
+ type Includes<S extends string, Char extends string> =
348
+ S extends `${infer First}${infer Rest}`
349
+ ? If<IsEqual<First, Char>,
350
+ 'found',
351
+ Includes<Rest, Char>>
352
+ : 'not found';
353
+
354
+ // Hence, instantiations with long strings will fail
355
+ // @ts-expect-error
356
+ type Fails = Includes<HundredZeroes, '1'>;
357
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
358
+ // Error: Type instantiation is excessively deep and possibly infinite.
359
+
360
+ // However, if we use a simple conditional instead of `If`, the implementation becomes tail-recursive
361
+ type IncludesWithoutIf<S extends string, Char extends string> =
362
+ S extends `${infer First}${infer Rest}`
363
+ ? IsEqual<First, Char> extends true
364
+ ? 'found'
365
+ : IncludesWithoutIf<Rest, Char>
366
+ : 'not found';
367
+
368
+ // Now, instantiations with long strings will work
369
+ type Works = IncludesWithoutIf<HundredZeroes, '1'>;
370
+ //=> 'not found'
371
+ ```
372
+
347
373
  @category Type Guard
348
374
  @category Utilities
349
375
  */
@@ -381,7 +407,7 @@ type UnknownArray = readonly unknown[];
381
407
  /**
382
408
  Returns whether the given array `T` is readonly.
383
409
  */
384
- type IsArrayReadonly<T extends UnknownArray> = If<IsNever<T>, false, T extends unknown[] ? false : true>;
410
+ type IsArrayReadonly<T$1 extends UnknownArray> = If<IsNever<T$1>, false, T$1 extends unknown[] ? false : true>;
385
411
  //#endregion
386
412
  //#region ../../node_modules/type-fest/source/simplify.d.ts
387
413
  /**
@@ -429,19 +455,20 @@ const literal = {foo: 123, bar: 'hello', baz: 456};
429
455
  const someType: SomeType = literal;
430
456
  const someInterface: SomeInterface = literal;
431
457
 
432
- function fn(object: Record<string, unknown>): void {}
458
+ declare function fn(object: Record<string, unknown>): void;
433
459
 
434
460
  fn(literal); // Good: literal object type is sealed
435
461
  fn(someType); // Good: type is sealed
462
+ // @ts-expect-error
436
463
  fn(someInterface); // Error: Index signature for type 'string' is missing in type 'someInterface'. Because `interface` can be re-opened
437
464
  fn(someInterface as Simplify<SomeInterface>); // Good: transform an `interface` into a `type`
438
465
  ```
439
466
 
440
467
  @link https://github.com/microsoft/TypeScript/issues/15300
441
- @see SimplifyDeep
468
+ @see {@link SimplifyDeep}
442
469
  @category Object
443
470
  */
444
- type Simplify<T> = { [KeyType in keyof T]: T[KeyType] } & {};
471
+ type Simplify<T$1> = { [KeyType in keyof T$1]: T$1[KeyType] } & {};
445
472
  //#endregion
446
473
  //#region ../../node_modules/type-fest/source/is-equal.d.ts
447
474
  /**
@@ -470,7 +497,7 @@ type Includes<Value extends readonly any[], Item> =
470
497
  @category Type Guard
471
498
  @category Utilities
472
499
  */
473
- type IsEqual<A, B> = [A, B] extends [infer AA, infer BB] ? [AA] extends [never] ? [BB] extends [never] ? true : false : [BB] extends [never] ? false : _IsEqual<AA, BB> : false;
500
+ type IsEqual<A, B> = [A] extends [B] ? [B] extends [A] ? _IsEqual<A, B> : false : false;
474
501
  // This version fails the `equalWrappedTupleIntersectionToBeNeverAndNeverExpanded` test in `test-d/is-equal.ts`.
475
502
  type _IsEqual<A, B> = (<G>() => G extends A & G | G ? 1 : 2) extends (<G>() => G extends B & G | G ? 1 : 2) ? true : false;
476
503
  //#endregion
@@ -492,6 +519,7 @@ It relies on the fact that an empty object (`{}`) is assignable to an object wit
492
519
  ```
493
520
  const indexed: Record<string, unknown> = {}; // Allowed
494
521
 
522
+ // @ts-expect-error
495
523
  const keyed: Record<'foo', unknown> = {}; // Error
496
524
  // => TS2739: Type '{}' is missing the following properties from type 'Record<"foo" | "bar", unknown>': foo, bar
497
525
  ```
@@ -505,16 +533,14 @@ type Indexed = {} extends Record<string, unknown>
505
533
  // => '✅ `{}` is assignable to `Record<string, unknown>`'
506
534
 
507
535
  type Keyed = {} extends Record<'foo' | 'bar', unknown>
508
- ? "✅ `{}` is assignable to `Record<'foo' | 'bar', unknown>`"
509
- : "❌ `{}` is NOT assignable to `Record<'foo' | 'bar', unknown>`";
536
+ ? '✅ `{}` is assignable to `Record<\'foo\' | \'bar\', unknown>`'
537
+ : '❌ `{}` is NOT assignable to `Record<\'foo\' | \'bar\', unknown>`';
510
538
  // => "❌ `{}` is NOT assignable to `Record<'foo' | 'bar', unknown>`"
511
539
  ```
512
540
 
513
541
  Using a [mapped type](https://www.typescriptlang.org/docs/handbook/2/mapped-types.html#further-exploration), you can then check for each `KeyType` of `ObjectType`...
514
542
 
515
543
  ```
516
- import type {OmitIndexSignature} from 'type-fest';
517
-
518
544
  type OmitIndexSignature<ObjectType> = {
519
545
  [KeyType in keyof ObjectType // Map each key of `ObjectType`...
520
546
  ]: ObjectType[KeyType]; // ...to its original value, i.e. `OmitIndexSignature<Foo> == Foo`.
@@ -524,14 +550,12 @@ type OmitIndexSignature<ObjectType> = {
524
550
  ...whether an empty object (`{}`) would be assignable to an object with that `KeyType` (`Record<KeyType, unknown>`)...
525
551
 
526
552
  ```
527
- import type {OmitIndexSignature} from 'type-fest';
528
-
529
553
  type OmitIndexSignature<ObjectType> = {
530
554
  [KeyType in keyof ObjectType
531
- // Is `{}` assignable to `Record<KeyType, unknown>`?
532
- as {} extends Record<KeyType, unknown>
533
- ? ... // ✅ `{}` is assignable to `Record<KeyType, unknown>`
534
- : ... // ❌ `{}` is NOT assignable to `Record<KeyType, unknown>`
555
+ // Is `{}` assignable to `Record<KeyType, unknown>`?
556
+ as {} extends Record<KeyType, unknown>
557
+ ? never // ✅ `{}` is assignable to `Record<KeyType, unknown>`
558
+ : KeyType // ❌ `{}` is NOT assignable to `Record<KeyType, unknown>`
535
559
  ]: ObjectType[KeyType];
536
560
  };
537
561
  ```
@@ -542,27 +566,27 @@ If `{}` is assignable, it means that `KeyType` is an index signature and we want
542
566
  ```
543
567
  import type {OmitIndexSignature} from 'type-fest';
544
568
 
545
- interface Example {
569
+ type Example = {
546
570
  // These index signatures will be removed.
547
- [x: string]: any
548
- [x: number]: any
549
- [x: symbol]: any
550
- [x: `head-${string}`]: string
551
- [x: `${string}-tail`]: string
552
- [x: `head-${string}-tail`]: string
553
- [x: `${bigint}`]: string
554
- [x: `embedded-${number}`]: string
571
+ [x: string]: any;
572
+ [x: number]: any;
573
+ [x: symbol]: any;
574
+ [x: `head-${string}`]: string;
575
+ [x: `${string}-tail`]: string;
576
+ [x: `head-${string}-tail`]: string;
577
+ [x: `${bigint}`]: string;
578
+ [x: `embedded-${number}`]: string;
555
579
 
556
580
  // These explicitly defined keys will remain.
557
581
  foo: 'bar';
558
582
  qux?: 'baz';
559
- }
583
+ };
560
584
 
561
585
  type ExampleWithoutIndexSignatures = OmitIndexSignature<Example>;
562
586
  // => { foo: 'bar'; qux?: 'baz' | undefined; }
563
587
  ```
564
588
 
565
- @see PickIndexSignature
589
+ @see {@link PickIndexSignature}
566
590
  @category Object
567
591
  */
568
592
  type OmitIndexSignature<ObjectType> = { [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType] };
@@ -610,7 +634,7 @@ type ExampleIndexSignature = PickIndexSignature<Example>;
610
634
  // }
611
635
  ```
612
636
 
613
- @see OmitIndexSignature
637
+ @see {@link OmitIndexSignature}
614
638
  @category Object
615
639
  */
616
640
  type PickIndexSignature<ObjectType> = { [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? KeyType : never]: ObjectType[KeyType] };
@@ -626,12 +650,12 @@ Merge two types into a new type. Keys of the second type overrides keys of the f
626
650
  ```
627
651
  import type {Merge} from 'type-fest';
628
652
 
629
- interface Foo {
653
+ type Foo = {
630
654
  [x: string]: unknown;
631
655
  [x: number]: unknown;
632
656
  foo: string;
633
657
  bar: symbol;
634
- }
658
+ };
635
659
 
636
660
  type Bar = {
637
661
  [x: number]: number;
@@ -693,7 +717,7 @@ type Any = HomomorphicPick<{a: 1; b: 2} | {c: 3}, any>;
693
717
  type IndexSignature = HomomorphicPick<{[k: string]: unknown}, number>;
694
718
  //=> {}
695
719
  */
696
- type HomomorphicPick<T, Keys extends KeysOfUnion<T>> = { [P in keyof T as Extract<P, Keys>]: T[P] };
720
+ type HomomorphicPick<T$1, Keys extends KeysOfUnion<T$1>> = { [P in keyof T$1 as Extract<P, Keys>]: T$1[P] };
697
721
  /**
698
722
  Merges user specified options with default options.
699
723
 
@@ -810,12 +834,14 @@ type Foo = {
810
834
  type FooWithoutA = Except<Foo, 'a'>;
811
835
  //=> {b: string}
812
836
 
837
+ // @ts-expect-error
813
838
  const fooWithoutA: FooWithoutA = {a: 1, b: '2'};
814
839
  //=> errors: 'a' does not exist in type '{ b: string; }'
815
840
 
816
841
  type FooWithoutB = Except<Foo, 'b', {requireExactProps: true}>;
817
842
  //=> {a: number} & Partial<Record<"b", never>>
818
843
 
844
+ // @ts-expect-error
819
845
  const fooWithoutB: FooWithoutB = {a: 1, b: '2'};
820
846
  //=> errors at 'b': Type 'string' is not assignable to type 'undefined'.
821
847
 
@@ -832,12 +858,12 @@ type UserData = {
832
858
 
833
859
  // `Omit` clearly doesn't behave as expected in this case:
834
860
  type PostPayload = Omit<UserData, 'email'>;
835
- //=> type PostPayload = { [x: string]: string; [x: number]: string; }
861
+ //=> { [x: string]: string; [x: number]: string; }
836
862
 
837
863
  // In situations like this, `Except` works better.
838
864
  // It simply removes the `email` key while preserving all the other keys.
839
- type PostPayload = Except<UserData, 'email'>;
840
- //=> type PostPayload = { [x: string]: string; name: string; role: 'admin' | 'user'; }
865
+ type PostPayloadFixed = Except<UserData, 'email'>;
866
+ //=> { [x: string]: string; name: string; role: 'admin' | 'user'; }
841
867
  ```
842
868
 
843
869
  @category Object
@@ -859,7 +885,7 @@ type Foo = {
859
885
  a?: number;
860
886
  b: string;
861
887
  c?: boolean;
862
- }
888
+ };
863
889
 
864
890
  type SomeRequired = SetRequired<Foo, 'b' | 'c'>;
865
891
  // type SomeRequired = {
@@ -902,7 +928,7 @@ type RequireAtLeastOne<ObjectType, KeysType extends keyof ObjectType> = { [Key i
902
928
  /**
903
929
  * Adds an `unknown` index property to an interface.
904
930
  */
905
- type WithUnknownIndex<T> = T & {
931
+ type WithUnknownIndex<T$1> = T$1 & {
906
932
  [key: string]: unknown;
907
933
  };
908
934
  /**
@@ -1031,15 +1057,15 @@ interface RuleType<F extends string = string, O extends string = string, V$1 = a
1031
1057
  * The main rule group type. This type is used for query definitions as well as
1032
1058
  * all sub-groups of queries.
1033
1059
  */
1034
- interface RuleGroupType<R extends RuleType = RuleType, C extends string = string> extends CommonRuleAndGroupProperties {
1060
+ interface RuleGroupType<R$1 extends RuleType = RuleType, C extends string = string> extends CommonRuleAndGroupProperties {
1035
1061
  combinator: C;
1036
- rules: RuleGroupArray<RuleGroupType<R, C>, R>;
1062
+ rules: RuleGroupArray<RuleGroupType<R$1, C>, R$1>;
1037
1063
  not?: boolean;
1038
1064
  }
1039
1065
  /**
1040
1066
  * The type of the `rules` array in a {@link RuleGroupType}.
1041
1067
  */
1042
- type RuleGroupArray<RG extends RuleGroupType = RuleGroupType, R extends RuleType = RuleType> = (R | RG)[];
1068
+ type RuleGroupArray<RG extends RuleGroupType = RuleGroupType, R$1 extends RuleType = RuleType> = (R$1 | RG)[];
1043
1069
  /**
1044
1070
  * Default values for the `operator` property.
1045
1071
  *
@@ -1056,9 +1082,9 @@ type MappedTuple<Tuple extends Array<unknown>, Result extends Array<unknown> = [
1056
1082
  * The main rule group interface when using independent combinators. This type is used
1057
1083
  * for query definitions as well as all sub-groups of queries.
1058
1084
  */
1059
- interface RuleGroupTypeIC<R extends RuleType = RuleType, C extends string = string> extends Except<RuleGroupType<R, C>, "combinator" | "rules"> {
1085
+ interface RuleGroupTypeIC<R$1 extends RuleType = RuleType, C extends string = string> extends Except<RuleGroupType<R$1, C>, "combinator" | "rules"> {
1060
1086
  combinator?: undefined;
1061
- rules: RuleGroupICArray<RuleGroupTypeIC<R, C>, R, C>;
1087
+ rules: RuleGroupICArray<RuleGroupTypeIC<R$1, C>, R$1, C>;
1062
1088
  /**
1063
1089
  * Only used when adding a rule to a query that uses independent combinators
1064
1090
  */
@@ -1067,11 +1093,11 @@ interface RuleGroupTypeIC<R extends RuleType = RuleType, C extends string = stri
1067
1093
  /**
1068
1094
  * Shorthand for "either {@link RuleGroupType} or {@link RuleGroupTypeIC}".
1069
1095
  */
1070
- type RuleGroupTypeAny<R extends RuleType = RuleType, C extends string = string> = RuleGroupType<R, C> | RuleGroupTypeIC<R, C>;
1096
+ type RuleGroupTypeAny<R$1 extends RuleType = RuleType, C extends string = string> = RuleGroupType<R$1, C> | RuleGroupTypeIC<R$1, C>;
1071
1097
  /**
1072
1098
  * The type of the `rules` array in a {@link RuleGroupTypeIC}.
1073
1099
  */
1074
- type RuleGroupICArray<RG extends RuleGroupTypeIC = RuleGroupTypeIC, R extends RuleType = RuleType, C extends string = string> = [R | RG] | [R | RG, ...MappedTuple<[C, R | RG]>] | ((R | RG)[] & {
1100
+ type RuleGroupICArray<RG extends RuleGroupTypeIC = RuleGroupTypeIC, R$1 extends RuleType = RuleType, C extends string = string> = [R$1 | RG] | [R$1 | RG, ...MappedTuple<[C, R$1 | RG]>] | ((R$1 | RG)[] & {
1075
1101
  length: 0;
1076
1102
  });
1077
1103
  //#endregion
@@ -1123,7 +1149,7 @@ type ValueEditorType = "text" | "select" | "checkbox" | "radio" | "textarea" | "
1123
1149
  type ValueSources = ["value"] | ["value", "field"] | ["field", "value"] | ["field"];
1124
1150
  type ValueSourceFlexibleOptions = ToFlexibleOptionArrays<ValueSources>;
1125
1151
  type ToFlexibleOptionArrays<Sources extends readonly string[]> = Sources extends unknown ? { [K in keyof Sources]: FlexibleOption<Sources[K]> } : never;
1126
- type WithOptionalClassName<T> = T & {
1152
+ type WithOptionalClassName<T$1> = T$1 & {
1127
1153
  className?: Classname;
1128
1154
  };
1129
1155
  /**
@@ -1146,17 +1172,17 @@ type MatchMode = "all" | "some" | "none" | "atLeast" | "atMost" | "exactly";
1146
1172
  /**
1147
1173
  * Base for all Field types/interfaces.
1148
1174
  */
1149
- interface BaseFullField<FieldName extends string = string, OperatorName extends string = string, ValueName extends string = string, OperatorObj extends FullOption = FullOption<OperatorName>, ValueObj extends FullOption = FullOption<ValueName>> extends WithOptionalClassName<BaseFullOption<FieldName>> {
1175
+ interface BaseFullField<FieldName extends string = string, OperatorName$1 extends string = string, ValueName extends string = string, OperatorObj extends FullOption = FullOption<OperatorName$1>, ValueObj extends FullOption = FullOption<ValueName>> extends WithOptionalClassName<BaseFullOption<FieldName>> {
1150
1176
  id?: string;
1151
- operators?: FlexibleOptionList<OperatorObj> | OperatorName[] | FlexibleOption<OperatorName>[] | (OperatorName | FlexibleOption<OperatorName>)[];
1152
- valueEditorType?: ValueEditorType | ((operator: OperatorName) => ValueEditorType);
1153
- valueSources?: ValueSources | ValueSourceFlexibleOptions | ((operator: OperatorName) => ValueSources | ValueSourceFlexibleOptions);
1177
+ operators?: FlexibleOptionList<OperatorObj> | OperatorName$1[] | FlexibleOption<OperatorName$1>[] | (OperatorName$1 | FlexibleOption<OperatorName$1>)[];
1178
+ valueEditorType?: ValueEditorType | ((operator: OperatorName$1) => ValueEditorType);
1179
+ valueSources?: ValueSources | ValueSourceFlexibleOptions | ((operator: OperatorName$1) => ValueSources | ValueSourceFlexibleOptions);
1154
1180
  inputType?: InputType | null;
1155
1181
  values?: FlexibleOptionList<ValueObj>;
1156
1182
  matchModes?: boolean | MatchMode[] | FlexibleOption<MatchMode>[];
1157
1183
  /** Properties of items in the value. */
1158
1184
  subproperties?: FlexibleOptionList<FullField>;
1159
- defaultOperator?: OperatorName;
1185
+ defaultOperator?: OperatorName$1;
1160
1186
  defaultValue?: any;
1161
1187
  placeholder?: string;
1162
1188
  validator?: RuleValidator;
@@ -1174,7 +1200,7 @@ interface BaseFullField<FieldName extends string = string, OperatorName extends
1174
1200
  *
1175
1201
  * @group Option Lists
1176
1202
  */
1177
- type FullField<FieldName extends string = string, OperatorName extends string = string, ValueName extends string = string, OperatorObj extends FullOption = FullOption<OperatorName>, ValueObj extends FullOption = FullOption<ValueName>> = Simplify<FullOption<FieldName> & BaseFullField<FieldName, OperatorName, ValueName, OperatorObj, ValueObj>>;
1203
+ type FullField<FieldName extends string = string, OperatorName$1 extends string = string, ValueName extends string = string, OperatorObj extends FullOption = FullOption<OperatorName$1>, ValueObj extends FullOption = FullOption<ValueName>> = Simplify<FullOption<FieldName> & BaseFullField<FieldName, OperatorName$1, ValueName, OperatorObj, ValueObj>>;
1178
1204
  /**
1179
1205
  * Allowed values of the {@link FullOperator} property `arity`. A value of `"unary"` or
1180
1206
  * a number less than two will cause the default {@link react-querybuilder!ValueEditor ValueEditor} to render `null`.
@@ -1602,6 +1628,17 @@ type ZeroOrMoreGroupVariants = RepeatStrings<["xor", "not"]>;
1602
1628
  */
1603
1629
  type NLTranslationKey = "and" | "or" | "true" | "false" | `groupPrefix${ZeroOrMoreGroupVariants}` | `groupSuffix${ZeroOrMoreGroupVariants}`;
1604
1630
  //#endregion
1631
+ //#region ../react-querybuilder/src/redux/getRqbStore.d.ts
1632
+ declare global {
1633
+ var __RQB_DEVTOOLS__: boolean | undefined;
1634
+ }
1635
+ /**
1636
+ * Gets the singleton React Query Builder store instance.
1637
+ * DevTools are enabled if either:
1638
+ * - globalThis.__RQB_DEVTOOLS__ is truthy
1639
+ * - window.__RQB_DEVTOOLS__ is truthy
1640
+ */
1641
+ //#endregion
1605
1642
  //#region src/types.d.ts
1606
1643
  interface RQBJsonLogicDateBetween {
1607
1644
  dateBetween: [RQBJsonLogic, RQBJsonLogic, RQBJsonLogic];
@@ -1713,4 +1750,4 @@ type IsDateFieldFunction = (...[rule, opts]: Parameters<RuleProcessor>) => boole
1713
1750
  type IsDateField = IsDateFieldFunction | Record<string, unknown> | Record<string, unknown>[] | boolean | undefined;
1714
1751
  //#endregion
1715
1752
  export { RuleProcessor as _, RQBJsonLogicDateAfter as a, RQBJsonLogicDateIn as c, RQBJsonLogicDateNotOn as d, RQBJsonLogicDateOn as f, ExportOperatorMap as g, RQBJsonLogicDateTimeOperations as h, RQBDateTimeLibraryAPI as i, RQBJsonLogicDateNotBetween as l, RQBJsonLogicDateOnOrBefore as m, IsDateFieldFunction as n, RQBJsonLogicDateBefore as o, RQBJsonLogicDateOnOrAfter as p, RQBDateTimeJsonLogic as r, RQBJsonLogicDateBetween as s, IsDateField as t, RQBJsonLogicDateNotIn as u, ValueProcessorByRule as v };
1716
- //# sourceMappingURL=types-Dq7BlQzI.d.ts.map
1753
+ //# sourceMappingURL=types-h3_NfrpO.d.ts.map
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "../dist/cjs/jsdate.js",
3
+ "types": "../dist/cjs/jsdate.d.ts"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "../dist/cjs/luxon.js",
3
+ "types": "../dist/cjs/luxon.d.ts"
4
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-querybuilder/datetime",
3
3
  "description": "Date/time features for react-querybuilder",
4
- "version": "8.11.2",
4
+ "version": "8.13.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -62,7 +62,11 @@
62
62
  },
63
63
  "types": "./dist/react-querybuilder_datetime.legacy-esm.d.ts",
64
64
  "files": [
65
- "dist"
65
+ "dist",
66
+ "dayjs",
67
+ "date-fns",
68
+ "jsdate",
69
+ "luxon"
66
70
  ],
67
71
  "license": "MIT",
68
72
  "sideEffects": false,
@@ -87,33 +91,33 @@
87
91
  },
88
92
  "devDependencies": {
89
93
  "@date-fns/tz": "^1.4.1",
90
- "@electric-sql/pglite": "^0.3.11",
94
+ "@electric-sql/pglite": "^0.3.14",
91
95
  "@testing-library/dom": "^10.4.1",
92
96
  "@testing-library/react": "^16.3.0",
93
97
  "@testing-library/user-event": "14.5.2",
94
98
  "@types/luxon": "^3.7.1",
95
- "@types/react": "^19.2.2",
96
- "@vitejs/plugin-react": "^5.0.4",
99
+ "@types/react": "^19.2.7",
100
+ "@vitejs/plugin-react": "^5.1.1",
97
101
  "date-fns": "^4.1.0",
98
- "dayjs": "^1.11.18",
102
+ "dayjs": "^1.11.19",
99
103
  "json-logic-js": "^2.0.5",
100
104
  "jsonata": "^2.1.0",
101
105
  "luxon": "^3.7.2",
102
- "mongodb-memory-server-core": "^10.2.3",
103
- "mongoose": "^8.19.2",
106
+ "mongodb-memory-server-core": "^10.3.0",
107
+ "mongoose": "^9.0.0",
104
108
  "react": "^19.2.0",
105
109
  "react-dom": "^19.2.0",
106
- "react-querybuilder": "8.11.2",
110
+ "react-querybuilder": "8.13.0",
107
111
  "rollup-plugin-visualizer": "^6.0.5",
108
112
  "typescript": "^5.9.3",
109
- "vite": "^7.1.12"
113
+ "vite": "^7.2.6"
110
114
  },
111
115
  "peerDependencies": {
112
116
  "date-fns": "^4.1.0",
113
117
  "dayjs": "^1.11.13",
114
118
  "luxon": "^3.5.0",
115
119
  "react": ">=18",
116
- "react-querybuilder": "8.11.2"
120
+ "react-querybuilder": "8.13.0"
117
121
  },
118
122
  "peerDependenciesMeta": {
119
123
  "date-fns": {
@@ -126,5 +130,5 @@
126
130
  "optional": true
127
131
  }
128
132
  },
129
- "gitHead": "a65b14f90e23c35c22ebb4e08328ab9a74ec3353"
133
+ "gitHead": "96a494f99af53de9de8c647d1895e9d05f3f74a9"
130
134
  }