@wix/sdk-types 1.13.25 → 1.13.26

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.
@@ -321,6 +321,10 @@ type NumberOperators = '$eq' | '$ne' | '$gt' | '$lt' | '$gte' | '$lte' | '$exist
321
321
  * Operators available for boolean fields
322
322
  */
323
323
  type BooleanOperators = '$eq' | '$ne' | '$exists' | '$in' | '$nin';
324
+ /**
325
+ * Operators available for enum fields
326
+ */
327
+ type EnumOperators = '$eq' | '$ne' | '$in' | '$nin' | '$exists';
324
328
  /**
325
329
  * Operators available for date fields
326
330
  */
@@ -533,12 +537,18 @@ type SearchableFields<Spec extends SearchSpec> = Spec extends {
533
537
  searchable: readonly string[];
534
538
  } ? Spec['searchable'][number] : string;
535
539
 
540
+ /**
541
+ * Helper type to detect if a type is an enum-like union of string literals
542
+ * This checks if the type is a union of specific string literals (not a generic string)
543
+ * It handles both simple enums and complex enum + literal unions like EnumWithTypeAlias
544
+ */
545
+ type IsEnumLike<T> = T extends string | null | undefined ? string extends NonNullable<T> ? false : NonNullable<T> extends string ? true : false : false;
536
546
  /**
537
547
  * Determines operators applicable to a field based on its type
538
548
  * @template Entity The entity type
539
549
  * @template Path The field path to check
540
550
  */
541
- type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
551
+ type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? IsEnumLike<Entity[Path]> extends true ? EnumOperators : StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
542
552
  /**
543
553
  * Determines allowed operators for a field based on the search spec
544
554
  * @template Entity The entity type
package/build/index.d.mts CHANGED
@@ -321,6 +321,10 @@ type NumberOperators = '$eq' | '$ne' | '$gt' | '$lt' | '$gte' | '$lte' | '$exist
321
321
  * Operators available for boolean fields
322
322
  */
323
323
  type BooleanOperators = '$eq' | '$ne' | '$exists' | '$in' | '$nin';
324
+ /**
325
+ * Operators available for enum fields
326
+ */
327
+ type EnumOperators = '$eq' | '$ne' | '$in' | '$nin' | '$exists';
324
328
  /**
325
329
  * Operators available for date fields
326
330
  */
@@ -533,12 +537,18 @@ type SearchableFields<Spec extends SearchSpec> = Spec extends {
533
537
  searchable: readonly string[];
534
538
  } ? Spec['searchable'][number] : string;
535
539
 
540
+ /**
541
+ * Helper type to detect if a type is an enum-like union of string literals
542
+ * This checks if the type is a union of specific string literals (not a generic string)
543
+ * It handles both simple enums and complex enum + literal unions like EnumWithTypeAlias
544
+ */
545
+ type IsEnumLike<T> = T extends string | null | undefined ? string extends NonNullable<T> ? false : NonNullable<T> extends string ? true : false : false;
536
546
  /**
537
547
  * Determines operators applicable to a field based on its type
538
548
  * @template Entity The entity type
539
549
  * @template Path The field path to check
540
550
  */
541
- type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
551
+ type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? IsEnumLike<Entity[Path]> extends true ? EnumOperators : StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
542
552
  /**
543
553
  * Determines allowed operators for a field based on the search spec
544
554
  * @template Entity The entity type
package/build/index.d.ts CHANGED
@@ -321,6 +321,10 @@ type NumberOperators = '$eq' | '$ne' | '$gt' | '$lt' | '$gte' | '$lte' | '$exist
321
321
  * Operators available for boolean fields
322
322
  */
323
323
  type BooleanOperators = '$eq' | '$ne' | '$exists' | '$in' | '$nin';
324
+ /**
325
+ * Operators available for enum fields
326
+ */
327
+ type EnumOperators = '$eq' | '$ne' | '$in' | '$nin' | '$exists';
324
328
  /**
325
329
  * Operators available for date fields
326
330
  */
@@ -533,12 +537,18 @@ type SearchableFields<Spec extends SearchSpec> = Spec extends {
533
537
  searchable: readonly string[];
534
538
  } ? Spec['searchable'][number] : string;
535
539
 
540
+ /**
541
+ * Helper type to detect if a type is an enum-like union of string literals
542
+ * This checks if the type is a union of specific string literals (not a generic string)
543
+ * It handles both simple enums and complex enum + literal unions like EnumWithTypeAlias
544
+ */
545
+ type IsEnumLike<T> = T extends string | null | undefined ? string extends NonNullable<T> ? false : NonNullable<T> extends string ? true : false : false;
536
546
  /**
537
547
  * Determines operators applicable to a field based on its type
538
548
  * @template Entity The entity type
539
549
  * @template Path The field path to check
540
550
  */
541
- type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
551
+ type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? IsEnumLike<Entity[Path]> extends true ? EnumOperators : StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
542
552
  /**
543
553
  * Determines allowed operators for a field based on the search spec
544
554
  * @template Entity The entity type
@@ -390,6 +390,10 @@ type NumberOperators = '$eq' | '$ne' | '$gt' | '$lt' | '$gte' | '$lte' | '$exist
390
390
  * Operators available for boolean fields
391
391
  */
392
392
  type BooleanOperators = '$eq' | '$ne' | '$exists' | '$in' | '$nin';
393
+ /**
394
+ * Operators available for enum fields
395
+ */
396
+ type EnumOperators = '$eq' | '$ne' | '$in' | '$nin' | '$exists';
393
397
  /**
394
398
  * Operators available for date fields
395
399
  */
@@ -602,12 +606,18 @@ type SearchableFields<Spec extends SearchSpec> = Spec extends {
602
606
  searchable: readonly string[];
603
607
  } ? Spec['searchable'][number] : string;
604
608
 
609
+ /**
610
+ * Helper type to detect if a type is an enum-like union of string literals
611
+ * This checks if the type is a union of specific string literals (not a generic string)
612
+ * It handles both simple enums and complex enum + literal unions like EnumWithTypeAlias
613
+ */
614
+ type IsEnumLike<T> = T extends string | null | undefined ? string extends NonNullable<T> ? false : NonNullable<T> extends string ? true : false : false;
605
615
  /**
606
616
  * Determines operators applicable to a field based on its type
607
617
  * @template Entity The entity type
608
618
  * @template Path The field path to check
609
619
  */
610
- type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
620
+ type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? IsEnumLike<Entity[Path]> extends true ? EnumOperators : StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
611
621
  /**
612
622
  * Determines allowed operators for a field based on the search spec
613
623
  * @template Entity The entity type
@@ -390,6 +390,10 @@ type NumberOperators = '$eq' | '$ne' | '$gt' | '$lt' | '$gte' | '$lte' | '$exist
390
390
  * Operators available for boolean fields
391
391
  */
392
392
  type BooleanOperators = '$eq' | '$ne' | '$exists' | '$in' | '$nin';
393
+ /**
394
+ * Operators available for enum fields
395
+ */
396
+ type EnumOperators = '$eq' | '$ne' | '$in' | '$nin' | '$exists';
393
397
  /**
394
398
  * Operators available for date fields
395
399
  */
@@ -602,12 +606,18 @@ type SearchableFields<Spec extends SearchSpec> = Spec extends {
602
606
  searchable: readonly string[];
603
607
  } ? Spec['searchable'][number] : string;
604
608
 
609
+ /**
610
+ * Helper type to detect if a type is an enum-like union of string literals
611
+ * This checks if the type is a union of specific string literals (not a generic string)
612
+ * It handles both simple enums and complex enum + literal unions like EnumWithTypeAlias
613
+ */
614
+ type IsEnumLike<T> = T extends string | null | undefined ? string extends NonNullable<T> ? false : NonNullable<T> extends string ? true : false : false;
605
615
  /**
606
616
  * Determines operators applicable to a field based on its type
607
617
  * @template Entity The entity type
608
618
  * @template Path The field path to check
609
619
  */
610
- type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
620
+ type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? IsEnumLike<Entity[Path]> extends true ? EnumOperators : StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
611
621
  /**
612
622
  * Determines allowed operators for a field based on the search spec
613
623
  * @template Entity The entity type
@@ -390,6 +390,10 @@ type NumberOperators = '$eq' | '$ne' | '$gt' | '$lt' | '$gte' | '$lte' | '$exist
390
390
  * Operators available for boolean fields
391
391
  */
392
392
  type BooleanOperators = '$eq' | '$ne' | '$exists' | '$in' | '$nin';
393
+ /**
394
+ * Operators available for enum fields
395
+ */
396
+ type EnumOperators = '$eq' | '$ne' | '$in' | '$nin' | '$exists';
393
397
  /**
394
398
  * Operators available for date fields
395
399
  */
@@ -602,12 +606,18 @@ type SearchableFields<Spec extends SearchSpec> = Spec extends {
602
606
  searchable: readonly string[];
603
607
  } ? Spec['searchable'][number] : string;
604
608
 
609
+ /**
610
+ * Helper type to detect if a type is an enum-like union of string literals
611
+ * This checks if the type is a union of specific string literals (not a generic string)
612
+ * It handles both simple enums and complex enum + literal unions like EnumWithTypeAlias
613
+ */
614
+ type IsEnumLike<T> = T extends string | null | undefined ? string extends NonNullable<T> ? false : NonNullable<T> extends string ? true : false : false;
605
615
  /**
606
616
  * Determines operators applicable to a field based on its type
607
617
  * @template Entity The entity type
608
618
  * @template Path The field path to check
609
619
  */
610
- type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
620
+ type ApplicableOperators<Entity, Path extends string> = Path extends keyof Entity ? Entity[Path] extends string | null | undefined ? IsEnumLike<Entity[Path]> extends true ? EnumOperators : StringOperators : Entity[Path] extends number | null | undefined ? NumberOperators : Entity[Path] extends boolean | null | undefined ? BooleanOperators : Entity[Path] extends Date | null | undefined ? DateOperators : Entity[Path] extends (infer E)[] | null | undefined ? E extends object ? ArrayOfObjectsOperators : ArrayOfPrimitivesOperators : Entity[Path] extends object | null | undefined ? ObjectOperators : never : Path extends `${infer K}.${infer R}` ? K extends keyof Entity ? Entity[K] extends (infer U)[] | null | undefined ? ApplicableOperators<NonNullable<U>, R> : Entity[K] extends object | null | undefined ? ApplicableOperators<NonNullable<Entity[K]>, R> : never : never : never;
611
621
  /**
612
622
  * Determines allowed operators for a field based on the search spec
613
623
  * @template Entity The entity type
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/sdk-types",
3
- "version": "1.13.25",
3
+ "version": "1.13.26",
4
4
  "license": "MIT",
5
5
  "author": {
6
6
  "name": "Ronny Ringel",
@@ -30,12 +30,12 @@
30
30
  "*.{js,ts}": "yarn lint"
31
31
  },
32
32
  "dependencies": {
33
- "@wix/error-handler-types": "^1.6.0",
33
+ "@wix/error-handler-types": "^1.7.0",
34
34
  "@wix/monitoring-types": "^0.12.0",
35
35
  "type-fest": "^4.41.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@types/node": "^20.17.47",
38
+ "@types/node": "^20.17.50",
39
39
  "eslint": "^8.57.1",
40
40
  "eslint-config-sdk": "0.0.0",
41
41
  "tsup": "^7.3.0",
@@ -62,5 +62,5 @@
62
62
  "wallaby": {
63
63
  "autoDetect": true
64
64
  },
65
- "falconPackageHash": "daf115af3a2d78a3098d8de49edd1587ee8fb49858364957e149e667"
65
+ "falconPackageHash": "5e33f8ab2891ecb1d550b247744b0226f8b30b0dcd39aa8a8b6d64c0"
66
66
  }