@intellegens/cornerstone-client 0.0.9999-alpha-3 → 0.0.9999-alpha-5

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 (48) hide show
  1. package/adapters/CollectionViewAdapter/index.d.ts +36 -30
  2. package/adapters/CollectionViewAdapter/index.js +63 -42
  3. package/data/api/dto/read/ReadSelectedDefinitionDto.d.ts +2 -2
  4. package/data/api/dto/read/ReadSelectedNestedCollectionCriteriaDto.d.ts +22 -0
  5. package/data/api/dto/read/ReadSelectedNestedCollectionCriteriaDto.js +1 -0
  6. package/data/api/dto/read/ReadSelectedNestedCriteriaDto.d.ts +18 -0
  7. package/data/api/dto/read/ReadSelectedNestedCriteriaDto.js +1 -0
  8. package/data/api/dto/read/ReadSelectedOrderingPropertyDefinitionDto.d.ts +2 -2
  9. package/data/api/dto/read/ReadSelectedSearchDefinitionDto.d.ts +23 -8
  10. package/data/api/dto/read/ReadSelectedSearchPropertyDefinitionDto.d.ts +14 -7
  11. package/data/api/dto/read/index.d.ts +2 -0
  12. package/data/api/dto/read/index.js +2 -0
  13. package/data/api/dto/response/ApiErrorDto.d.ts +12 -3
  14. package/data/api/dto/response/ApiErrorResponseDto.d.ts +11 -0
  15. package/data/api/dto/response/ApiErrorResponseDto.js +1 -0
  16. package/data/api/dto/response/ApiResponseDto.d.ts +3 -15
  17. package/data/api/dto/response/ApiSuccessResponseDto.d.ts +2 -1
  18. package/data/api/dto/response/MetadataDto.d.ts +25 -0
  19. package/data/api/dto/response/MetadataDto.js +1 -0
  20. package/data/api/dto/response/index.d.ts +2 -1
  21. package/data/api/dto/response/index.js +2 -1
  22. package/data/api/enum/read/ReadSelectedCollectionOperator.d.ts +16 -0
  23. package/data/api/enum/read/ReadSelectedCollectionOperator.js +17 -0
  24. package/data/api/enum/read/index.d.ts +1 -0
  25. package/data/api/enum/read/index.js +1 -0
  26. package/data/api/enum/response/ErrorCode.d.ts +13 -0
  27. package/data/api/enum/response/ErrorCode.js +14 -0
  28. package/data/api/enum/response/index.d.ts +1 -1
  29. package/data/api/enum/response/index.js +1 -1
  30. package/package.json +1 -1
  31. package/services/api/ApiCrudControllerClient/index.d.ts +4 -4
  32. package/services/api/ApiCrudControllerClient/index.js +39 -21
  33. package/services/api/ApiInitializationService/index.d.ts +27 -27
  34. package/services/api/ApiInitializationService/index.js +45 -41
  35. package/services/api/ApiReadControllerClient/index.d.ts +4 -4
  36. package/services/api/ApiReadControllerClient/index.js +38 -24
  37. package/services/api/UserManagementControllerClient/index.d.ts +5 -5
  38. package/services/api/UserManagementControllerClient/index.js +51 -29
  39. package/services/auth/client/AuthService/index.d.ts +4 -4
  40. package/services/auth/client/AuthService/index.js +44 -27
  41. package/services/auth/client/AuthorizationManagementControllerClient/index.d.ts +7 -5
  42. package/services/auth/client/AuthorizationManagementControllerClient/index.js +57 -31
  43. package/utils/index.d.ts +2 -37
  44. package/utils/index.js +2 -106
  45. package/utils/result/index.d.ts +21 -0
  46. package/utils/result/index.js +16 -0
  47. package/utils/search/index.d.ts +34 -0
  48. package/utils/search/index.js +106 -0
@@ -0,0 +1,34 @@
1
+ import { ReadSelectedComparisonOperator, ReadSelectedLogicalOperator, ReadSelectedPropertyType, ReadSelectedSearchDefinitionDto } from '../../data';
2
+ /**
3
+ * Creates a ReadSelectedSearchDefinitionDto ready to be used with the CollectionViewAdapter
4
+ *
5
+ * @param logicalOperator - specify `ReadSelectedLogicalOperator` that will apply to all ReadSelectedSearchPropertyDefinitionDto property definitions included in this search definition
6
+ * @param conditions - Variable number of condition objects containing:
7
+ * - propertyName: The property name from the DTO to search on
8
+ * - operator: The `ReadSelectedComparisonOperator` enum
9
+ * - value: The value to compare against
10
+ * - valueType: The `ReadSelectedPropertyType` being compared
11
+ */
12
+ export declare function condition<T>(logicalOperator: ReadSelectedLogicalOperator, ...conditions: Array<{
13
+ propertyName: keyof T;
14
+ operator: ReadSelectedComparisonOperator;
15
+ value: unknown;
16
+ valueType: ReadSelectedPropertyType;
17
+ }>): ReadSelectedSearchDefinitionDto<T>;
18
+ /**
19
+ * Combines multiple ReadSelectedSearchDefinitionDto with AND logic
20
+ */
21
+ export declare function and<T>(...definitions: ReadSelectedSearchDefinitionDto<T>[]): ReadSelectedSearchDefinitionDto<T>;
22
+ /**
23
+ * Combines multiple ReadSelectedSearchDefinitionDto with OR logic
24
+ */
25
+ export declare function or<T>(...definitions: ReadSelectedSearchDefinitionDto<T>[]): ReadSelectedSearchDefinitionDto<T>;
26
+ /**
27
+ * Preset implementation for filtering by searchTerm. String types will search by provided `textSearchableProperties` with `ReadSelectedComparisonOperator.Contains`. Numeric types will search by provided `numericSearchableProperties`, `parseInt` the search term and use `ReadSelectedComparisonOperator.Equal`.
28
+ */
29
+ export declare function searchTerm<T>(searchTerm: string, textSearchableProperties: (keyof T)[], numericSearchableProperties: (keyof T)[]): void | ReadSelectedSearchDefinitionDto<T>;
30
+ /**
31
+ * Preset implementation for filtering a date range. User may select desired `ReadSelectedComparisonOperator` and `ReadSelectedPropertyType` for the from and to dates. Valid object property must be provided for `searchableProperty`.
32
+ */
33
+ export declare function dateInterval<T>(fromDate: Date, toDate: Date, fromDateComparisonOperator: ReadSelectedComparisonOperator, toDateComparisonOperator: ReadSelectedComparisonOperator, valueType: ReadSelectedPropertyType, searchableProperty: keyof T): void | ReadSelectedSearchDefinitionDto<T>;
34
+ export declare function toPascalCase<T>(str: keyof T): keyof T;
@@ -0,0 +1,106 @@
1
+ import { ReadSelectedComparisonOperator, ReadSelectedLogicalOperator, ReadSelectedPropertyType, } from '../../data';
2
+ /**
3
+ * Creates a ReadSelectedSearchDefinitionDto ready to be used with the CollectionViewAdapter
4
+ *
5
+ * @param logicalOperator - specify `ReadSelectedLogicalOperator` that will apply to all ReadSelectedSearchPropertyDefinitionDto property definitions included in this search definition
6
+ * @param conditions - Variable number of condition objects containing:
7
+ * - propertyName: The property name from the DTO to search on
8
+ * - operator: The `ReadSelectedComparisonOperator` enum
9
+ * - value: The value to compare against
10
+ * - valueType: The `ReadSelectedPropertyType` being compared
11
+ */
12
+ export function condition(logicalOperator, ...conditions) {
13
+ return {
14
+ logicalOperator: logicalOperator,
15
+ propertyCriteria: conditions.map(condition => ({
16
+ propertyName: toPascalCase(condition.propertyName),
17
+ comparisonOperator: condition.operator,
18
+ valueType: condition.valueType,
19
+ value: condition.value,
20
+ })),
21
+ };
22
+ }
23
+ /**
24
+ * Combines multiple ReadSelectedSearchDefinitionDto with AND logic
25
+ */
26
+ export function and(...definitions) {
27
+ return {
28
+ logicalOperator: ReadSelectedLogicalOperator.And,
29
+ searches: definitions,
30
+ };
31
+ }
32
+ /**
33
+ * Combines multiple ReadSelectedSearchDefinitionDto with OR logic
34
+ */
35
+ export function or(...definitions) {
36
+ return {
37
+ logicalOperator: ReadSelectedLogicalOperator.Or,
38
+ searches: definitions,
39
+ };
40
+ }
41
+ /**
42
+ * Preset implementation for filtering by searchTerm. String types will search by provided `textSearchableProperties` with `ReadSelectedComparisonOperator.Contains`. Numeric types will search by provided `numericSearchableProperties`, `parseInt` the search term and use `ReadSelectedComparisonOperator.Equal`.
43
+ */
44
+ export function searchTerm(searchTerm, textSearchableProperties, numericSearchableProperties) {
45
+ let comparisonOperator;
46
+ let valueType;
47
+ let searchableProperties;
48
+ let searchValue;
49
+ try {
50
+ const numericValue = parseInt(searchTerm);
51
+ if (!Number.isNaN(numericValue) && String(numericValue) === searchTerm.trim()) {
52
+ comparisonOperator = ReadSelectedComparisonOperator.Equal;
53
+ valueType = ReadSelectedPropertyType.Int;
54
+ searchableProperties = numericSearchableProperties;
55
+ searchValue = numericValue;
56
+ }
57
+ else {
58
+ comparisonOperator = ReadSelectedComparisonOperator.Contains;
59
+ valueType = ReadSelectedPropertyType.String;
60
+ searchableProperties = textSearchableProperties;
61
+ searchValue = searchTerm;
62
+ }
63
+ const searchConditions = searchableProperties.map(propertyName => ({
64
+ propertyName: toPascalCase(propertyName),
65
+ operator: comparisonOperator,
66
+ value: searchValue,
67
+ valueType: valueType,
68
+ }));
69
+ return condition(ReadSelectedLogicalOperator.Or, ...searchConditions);
70
+ }
71
+ catch {
72
+ return;
73
+ }
74
+ }
75
+ /**
76
+ * Preset implementation for filtering a date range. User may select desired `ReadSelectedComparisonOperator` and `ReadSelectedPropertyType` for the from and to dates. Valid object property must be provided for `searchableProperty`.
77
+ */
78
+ export function dateInterval(fromDate, toDate, fromDateComparisonOperator, toDateComparisonOperator, valueType, searchableProperty) {
79
+ try {
80
+ if (!(valueType === ReadSelectedPropertyType.DateOnly ||
81
+ valueType === ReadSelectedPropertyType.DateTime ||
82
+ valueType === ReadSelectedPropertyType.DateTimeOffset)) {
83
+ return;
84
+ }
85
+ return condition(ReadSelectedLogicalOperator.And, {
86
+ propertyName: toPascalCase(searchableProperty),
87
+ operator: fromDateComparisonOperator,
88
+ value: fromDate,
89
+ valueType: valueType,
90
+ }, {
91
+ propertyName: toPascalCase(searchableProperty),
92
+ operator: toDateComparisonOperator,
93
+ value: toDate,
94
+ valueType: valueType,
95
+ });
96
+ }
97
+ catch {
98
+ return;
99
+ }
100
+ }
101
+ export function toPascalCase(str) {
102
+ if (typeof str !== 'string') {
103
+ return str;
104
+ }
105
+ return (str.charAt(0).toUpperCase() + str.slice(1));
106
+ }