@mondaydotcomorg/monday-authorization 3.5.1-fix-authorize-profile-picker-7481de0 → 3.5.3-feat-shaime-support-entity-attributes-in-authorization-sdk-e355942

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 (126) hide show
  1. package/dist/authorization-attributes-ms-service.d.ts +95 -0
  2. package/dist/authorization-attributes-ms-service.d.ts.map +1 -0
  3. package/dist/authorization-attributes-ms-service.js +362 -0
  4. package/dist/authorization-attributes-service.d.ts +26 -47
  5. package/dist/authorization-attributes-service.d.ts.map +1 -1
  6. package/dist/authorization-attributes-service.js +33 -171
  7. package/dist/authorization-attributes-sns-service.d.ts +91 -0
  8. package/dist/authorization-attributes-sns-service.d.ts.map +1 -0
  9. package/dist/authorization-attributes-sns-service.js +217 -0
  10. package/dist/authorization-middleware.d.ts +2 -2
  11. package/dist/authorization-middleware.d.ts.map +1 -1
  12. package/dist/authorization-service.d.ts +3 -3
  13. package/dist/authorization-service.d.ts.map +1 -1
  14. package/dist/authorization-service.js +7 -34
  15. package/dist/base-attribute-assignment.d.ts +18 -0
  16. package/dist/base-attribute-assignment.d.ts.map +1 -0
  17. package/dist/base-attribute-assignment.js +43 -0
  18. package/dist/constants/sns.d.ts +12 -2
  19. package/dist/constants/sns.d.ts.map +1 -1
  20. package/dist/constants/sns.js +22 -2
  21. package/dist/entity-attribute-assignment.d.ts +14 -0
  22. package/dist/entity-attribute-assignment.d.ts.map +1 -0
  23. package/dist/entity-attribute-assignment.js +24 -0
  24. package/dist/entity-attributes-constants.d.ts +7 -0
  25. package/dist/entity-attributes-constants.d.ts.map +1 -0
  26. package/dist/entity-attributes-constants.js +9 -0
  27. package/dist/errors/argument-error.d.ts +4 -0
  28. package/dist/errors/argument-error.d.ts.map +1 -0
  29. package/dist/errors/argument-error.js +11 -0
  30. package/dist/esm/authorization-attributes-ms-service.d.ts +95 -0
  31. package/dist/esm/authorization-attributes-ms-service.d.ts.map +1 -0
  32. package/dist/esm/authorization-attributes-ms-service.mjs +360 -0
  33. package/dist/esm/authorization-attributes-service.d.ts +26 -47
  34. package/dist/esm/authorization-attributes-service.d.ts.map +1 -1
  35. package/dist/esm/authorization-attributes-service.mjs +33 -167
  36. package/dist/esm/authorization-attributes-sns-service.d.ts +91 -0
  37. package/dist/esm/authorization-attributes-sns-service.d.ts.map +1 -0
  38. package/dist/esm/authorization-attributes-sns-service.mjs +211 -0
  39. package/dist/esm/authorization-middleware.d.ts +2 -2
  40. package/dist/esm/authorization-middleware.d.ts.map +1 -1
  41. package/dist/esm/authorization-service.d.ts +3 -3
  42. package/dist/esm/authorization-service.d.ts.map +1 -1
  43. package/dist/esm/authorization-service.mjs +7 -34
  44. package/dist/esm/base-attribute-assignment.d.ts +18 -0
  45. package/dist/esm/base-attribute-assignment.d.ts.map +1 -0
  46. package/dist/esm/base-attribute-assignment.mjs +41 -0
  47. package/dist/esm/constants/sns.d.ts +12 -2
  48. package/dist/esm/constants/sns.d.ts.map +1 -1
  49. package/dist/esm/constants/sns.mjs +17 -3
  50. package/dist/esm/entity-attribute-assignment.d.ts +14 -0
  51. package/dist/esm/entity-attribute-assignment.d.ts.map +1 -0
  52. package/dist/esm/entity-attribute-assignment.mjs +22 -0
  53. package/dist/esm/entity-attributes-constants.d.ts +7 -0
  54. package/dist/esm/entity-attributes-constants.d.ts.map +1 -0
  55. package/dist/esm/entity-attributes-constants.mjs +7 -0
  56. package/dist/esm/errors/argument-error.d.ts +4 -0
  57. package/dist/esm/errors/argument-error.d.ts.map +1 -0
  58. package/dist/esm/errors/argument-error.mjs +9 -0
  59. package/dist/esm/index.d.ts +9 -0
  60. package/dist/esm/index.d.ts.map +1 -1
  61. package/dist/esm/index.mjs +7 -0
  62. package/dist/esm/prometheus-service.d.ts +1 -2
  63. package/dist/esm/prometheus-service.d.ts.map +1 -1
  64. package/dist/esm/resource-attribute-assignment.d.ts +24 -0
  65. package/dist/esm/resource-attribute-assignment.d.ts.map +1 -0
  66. package/dist/esm/resource-attribute-assignment.mjs +34 -0
  67. package/dist/esm/resource-attributes-constants.d.ts +15 -0
  68. package/dist/esm/resource-attributes-constants.d.ts.map +1 -0
  69. package/dist/esm/resource-attributes-constants.mjs +25 -0
  70. package/dist/esm/testKit/index.d.ts +4 -4
  71. package/dist/esm/testKit/index.d.ts.map +1 -1
  72. package/dist/esm/types/authorization-attributes-contracts.d.ts +27 -12
  73. package/dist/esm/types/authorization-attributes-contracts.d.ts.map +1 -1
  74. package/dist/esm/types/authorization-attributes-contracts.mjs +6 -6
  75. package/dist/esm/types/authorization-attributes-service.interface.d.ts +57 -0
  76. package/dist/esm/types/authorization-attributes-service.interface.d.ts.map +1 -0
  77. package/dist/esm/types/authorization-attributes-service.interface.mjs +1 -0
  78. package/dist/esm/types/general.d.ts +1 -2
  79. package/dist/esm/types/general.d.ts.map +1 -1
  80. package/dist/esm/utils/validation.d.ts +45 -0
  81. package/dist/esm/utils/validation.d.ts.map +1 -0
  82. package/dist/esm/utils/validation.mjs +117 -0
  83. package/dist/index.d.ts +9 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +15 -0
  86. package/dist/prometheus-service.d.ts +1 -2
  87. package/dist/prometheus-service.d.ts.map +1 -1
  88. package/dist/resource-attribute-assignment.d.ts +24 -0
  89. package/dist/resource-attribute-assignment.d.ts.map +1 -0
  90. package/dist/resource-attribute-assignment.js +36 -0
  91. package/dist/resource-attributes-constants.d.ts +15 -0
  92. package/dist/resource-attributes-constants.d.ts.map +1 -0
  93. package/dist/resource-attributes-constants.js +28 -0
  94. package/dist/testKit/index.d.ts +4 -4
  95. package/dist/testKit/index.d.ts.map +1 -1
  96. package/dist/types/authorization-attributes-contracts.d.ts +27 -12
  97. package/dist/types/authorization-attributes-contracts.d.ts.map +1 -1
  98. package/dist/types/authorization-attributes-contracts.js +5 -5
  99. package/dist/types/authorization-attributes-service.interface.d.ts +57 -0
  100. package/dist/types/authorization-attributes-service.interface.d.ts.map +1 -0
  101. package/dist/types/authorization-attributes-service.interface.js +1 -0
  102. package/dist/types/general.d.ts +1 -2
  103. package/dist/types/general.d.ts.map +1 -1
  104. package/dist/utils/validation.d.ts +45 -0
  105. package/dist/utils/validation.d.ts.map +1 -0
  106. package/dist/utils/validation.js +119 -0
  107. package/package.json +3 -2
  108. package/src/authorization-attributes-ms-service.ts +528 -0
  109. package/src/authorization-attributes-service.ts +35 -222
  110. package/src/authorization-attributes-sns-service.ts +312 -0
  111. package/src/authorization-middleware.ts +2 -2
  112. package/src/authorization-service.ts +15 -75
  113. package/src/base-attribute-assignment.ts +55 -0
  114. package/src/constants/sns.ts +19 -2
  115. package/src/entity-attribute-assignment.ts +21 -0
  116. package/src/entity-attributes-constants.ts +7 -0
  117. package/src/errors/argument-error.ts +7 -0
  118. package/src/index.ts +9 -0
  119. package/src/prometheus-service.ts +1 -2
  120. package/src/resource-attribute-assignment.ts +43 -0
  121. package/src/resource-attributes-constants.ts +35 -0
  122. package/src/testKit/index.ts +5 -5
  123. package/src/types/authorization-attributes-contracts.ts +36 -11
  124. package/src/types/authorization-attributes-service.interface.ts +100 -0
  125. package/src/types/general.ts +3 -2
  126. package/src/utils/validation.ts +114 -0
@@ -0,0 +1,114 @@
1
+ import { z } from 'zod';
2
+ import { ArgumentError } from '../errors/argument-error';
3
+
4
+ /**
5
+ * Utility class for common validation operations using Zod
6
+ */
7
+ export class ValidationUtils {
8
+ /**
9
+ * Validates that a value is an integer
10
+ * @param value The value to validate
11
+ * @param fieldName The name of the field for error messages
12
+ * @throws ArgumentError if value is not an integer
13
+ */
14
+ static validateInteger(value: any, fieldName: string): void {
15
+ const schema = z.number().int();
16
+ try {
17
+ schema.parse(value);
18
+ } catch (error) {
19
+ if (error instanceof z.ZodError) {
20
+ throw new ArgumentError(`${fieldName} must be an integer, got: ${value}`);
21
+ }
22
+ throw error;
23
+ }
24
+ }
25
+
26
+ /**
27
+ * Validates that a value is a non-empty string
28
+ * @param value The value to validate
29
+ * @param fieldName The name of the field for error messages
30
+ * @throws ArgumentError if value is not a string or is empty
31
+ */
32
+ static validateString(value: any, fieldName: string): void {
33
+ const schema = z.string().min(1);
34
+ try {
35
+ schema.parse(value);
36
+ } catch (error) {
37
+ if (error instanceof z.ZodError) {
38
+ if (typeof value !== 'string') {
39
+ throw new ArgumentError(`${fieldName} must be a string, got: ${typeof value}`);
40
+ }
41
+ throw new ArgumentError(`${fieldName} must be a non-empty string`);
42
+ }
43
+ throw error;
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Validates that a value is an array and optionally checks minimum length
49
+ * @param value The value to validate
50
+ * @param fieldName The name of the field for error messages
51
+ * @param minLength Minimum required length (default: 0)
52
+ * @returns The validated array
53
+ * @throws ArgumentError if value is not an array or doesn't meet minimum length
54
+ */
55
+ static validateArray<T>(value: any, fieldName: string, minLength = 0): T[] {
56
+ const schema = z.array(z.any()).min(minLength);
57
+ try {
58
+ return schema.parse(value) as T[];
59
+ } catch (error) {
60
+ if (error instanceof z.ZodError) {
61
+ if (!Array.isArray(value)) {
62
+ throw new ArgumentError(`${fieldName} must be an array`);
63
+ }
64
+ throw new ArgumentError(`${fieldName} must have at least ${minLength} items`);
65
+ }
66
+ throw error;
67
+ }
68
+ }
69
+
70
+ /**
71
+ * Validates that a value is one of the allowed enum values
72
+ * @param value The value to validate
73
+ * @param validValues Array of valid values
74
+ * @param fieldName The name of the field for error messages
75
+ * @returns The validated value as the enum type
76
+ * @throws ArgumentError if value is not in validValues
77
+ */
78
+ static validateEnum<T extends string>(value: string, validValues: readonly T[], fieldName: string): T {
79
+ const schema = z.enum(validValues as [T, ...T[]]);
80
+ try {
81
+ return schema.parse(value) as T;
82
+ } catch (error) {
83
+ if (error instanceof z.ZodError) {
84
+ throw new ArgumentError(`${fieldName} must be one of [${validValues.join(', ')}], got: ${value}`);
85
+ }
86
+ throw error;
87
+ }
88
+ }
89
+
90
+ /**
91
+ * Validates that all items in an array are strings
92
+ * @param value Array to validate
93
+ * @param fieldName The name of the field for error messages
94
+ * @throws ArgumentError if any item is not a string
95
+ */
96
+ static validateStringArray(value: any[], fieldName: string): void {
97
+ const schema = z.array(z.string());
98
+ try {
99
+ schema.parse(value);
100
+ } catch (error) {
101
+ if (error instanceof z.ZodError) {
102
+ const zodError = error as z.ZodError;
103
+ const firstError = zodError.issues[0];
104
+ // Check if it's an array item validation error
105
+ if (firstError.path.length > 0 && typeof firstError.path[0] === 'number') {
106
+ const index = firstError.path[0];
107
+ throw new ArgumentError(`All ${fieldName} must be strings, but item at index ${index} is not`);
108
+ }
109
+ throw new ArgumentError(`${fieldName} must be an array`);
110
+ }
111
+ throw error;
112
+ }
113
+ }
114
+ }