@envive-ai/react-hooks 0.3.18 → 0.3.19

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 (196) hide show
  1. package/dist/application/commerce-api.cjs +14 -13
  2. package/dist/application/commerce-api.js +14 -13
  3. package/dist/application/logging/logger.cjs +16 -10
  4. package/dist/application/logging/logger.js +16 -10
  5. package/dist/application/models/guards/api/isApiFormResponse.cjs +9 -8
  6. package/dist/application/models/guards/api/isApiFormResponse.js +9 -8
  7. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +6 -5
  8. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +6 -5
  9. package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +19 -18
  10. package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +19 -18
  11. package/dist/application/models/guards/api/isApiOrgConfigResults.cjs +27 -26
  12. package/dist/application/models/guards/api/isApiOrgConfigResults.js +27 -26
  13. package/dist/application/models/guards/api/isApiOrganizationConfig.cjs +23 -22
  14. package/dist/application/models/guards/api/isApiOrganizationConfig.js +23 -22
  15. package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +12 -11
  16. package/dist/application/models/guards/api/isApiProductResponseAttributes.js +12 -11
  17. package/dist/application/models/guards/api/isApiResponse.cjs +7 -6
  18. package/dist/application/models/guards/api/isApiResponse.js +7 -6
  19. package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.cjs +5 -4
  20. package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.js +5 -4
  21. package/dist/application/models/validators/validateGraphQLFrontendConfig.cjs +15 -14
  22. package/dist/application/models/validators/validateGraphQLFrontendConfig.js +15 -14
  23. package/dist/application/utils/analyticsUtils.cjs +4 -3
  24. package/dist/application/utils/analyticsUtils.js +4 -3
  25. package/dist/application/utils/nextMessageRequestToApiRequest.cjs +3 -1
  26. package/dist/application/utils/nextMessageRequestToApiRequest.js +3 -1
  27. package/dist/atoms/app/index.d.cts +7 -7
  28. package/dist/atoms/app/index.d.ts +7 -7
  29. package/dist/atoms/app/variant.cjs +3 -2
  30. package/dist/atoms/app/variant.js +3 -2
  31. package/dist/atoms/chat/chatState.d.cts +17 -17
  32. package/dist/atoms/chat/chatState.d.ts +17 -17
  33. package/dist/atoms/chat/form.d.cts +2 -2
  34. package/dist/atoms/chat/form.d.ts +2 -2
  35. package/dist/atoms/chat/index.d.cts +2 -2
  36. package/dist/atoms/chat/index.d.ts +2 -2
  37. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  38. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  39. package/dist/atoms/chat/messageQueue.d.cts +6 -6
  40. package/dist/atoms/chat/messageQueue.d.ts +6 -6
  41. package/dist/atoms/chat/performanceMetrics.cjs +3 -2
  42. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  43. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  44. package/dist/atoms/chat/performanceMetrics.js +3 -2
  45. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  46. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  47. package/dist/atoms/chat/replies.d.cts +2 -2
  48. package/dist/atoms/chat/replies.d.ts +3 -3
  49. package/dist/atoms/chat/suggestions.d.cts +2 -2
  50. package/dist/atoms/chat/suggestions.d.ts +2 -2
  51. package/dist/atoms/envive/enviveConfig.cjs +5 -4
  52. package/dist/atoms/envive/enviveConfig.d.cts +13 -13
  53. package/dist/atoms/envive/enviveConfig.d.ts +13 -13
  54. package/dist/atoms/envive/enviveConfig.js +5 -4
  55. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  56. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  57. package/dist/atoms/org/customerService.d.cts +6 -6
  58. package/dist/atoms/org/customerService.d.ts +6 -6
  59. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  60. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  61. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  62. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  63. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  64. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  65. package/dist/atoms/search/chatSearch.d.cts +17 -17
  66. package/dist/atoms/search/chatSearch.d.ts +17 -17
  67. package/dist/atoms/search/searchAPI.d.cts +13 -13
  68. package/dist/atoms/search/searchAPI.d.ts +13 -13
  69. package/dist/atoms/search/types.d.cts +1 -1
  70. package/dist/atoms/search/types.d.ts +1 -1
  71. package/dist/atoms/search/utils.d.ts +1 -1
  72. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  73. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  74. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +4 -3
  75. package/dist/contexts/amplitudeContext/amplitudeContext.js +3 -2
  76. package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +26 -15
  77. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -4
  78. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -4
  79. package/dist/contexts/enviveConfigContext/enviveConfigContext.js +29 -16
  80. package/dist/contexts/enviveConfigContext/index.cjs +2 -1
  81. package/dist/contexts/enviveConfigContext/index.d.cts +2 -1
  82. package/dist/contexts/enviveConfigContext/index.d.ts +2 -1
  83. package/dist/contexts/enviveConfigContext/index.js +2 -1
  84. package/dist/contexts/enviveConfigContext/useEnviveConfig.cjs +12 -0
  85. package/dist/contexts/enviveConfigContext/useEnviveConfig.d.cts +7 -0
  86. package/dist/contexts/enviveConfigContext/useEnviveConfig.d.ts +7 -0
  87. package/dist/contexts/enviveConfigContext/useEnviveConfig.js +11 -0
  88. package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +7 -5
  89. package/dist/contexts/enviveContext/WindowChatToggleBinder.js +6 -4
  90. package/dist/contexts/enviveContext/enviveContext.cjs +34 -39
  91. package/dist/contexts/enviveContext/enviveContext.js +35 -40
  92. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +7 -6
  93. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +7 -6
  94. package/dist/contexts/graphqlContext/graphqlContext.cjs +8 -7
  95. package/dist/contexts/graphqlContext/graphqlContext.js +8 -7
  96. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +9 -8
  97. package/dist/contexts/hardcopyContext/hardcopyContext.js +9 -8
  98. package/dist/contexts/localStorageContext/localStorageContext.cjs +4 -3
  99. package/dist/contexts/localStorageContext/localStorageContext.js +4 -3
  100. package/dist/contexts/pageContext/pageContext.cjs +3 -2
  101. package/dist/contexts/pageContext/pageContext.js +3 -2
  102. package/dist/contexts/salesAgentContext/chatAPI.cjs +3 -2
  103. package/dist/contexts/salesAgentContext/chatAPI.js +3 -2
  104. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +4 -3
  105. package/dist/contexts/salesAgentContext/salesAgentContext.js +4 -3
  106. package/dist/contexts/salesAgentContext/salesAgentService.cjs +3 -2
  107. package/dist/contexts/salesAgentContext/salesAgentService.js +3 -2
  108. package/dist/contexts/searchContext/searchContext.cjs +8 -6
  109. package/dist/contexts/searchContext/searchContext.js +7 -5
  110. package/dist/contexts/sessionStorageContext/sessionStorageContext.cjs +3 -2
  111. package/dist/contexts/sessionStorageContext/sessionStorageContext.js +3 -2
  112. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  113. package/dist/contexts/types.d.cts +1 -1
  114. package/dist/contexts/types.d.ts +1 -1
  115. package/dist/contexts/typesV3.d.cts +1 -1
  116. package/dist/contexts/typesV3.d.ts +1 -1
  117. package/dist/contexts/uiConfigContext/index.cjs +0 -1
  118. package/dist/contexts/uiConfigContext/index.d.cts +2 -2
  119. package/dist/contexts/uiConfigContext/index.d.ts +2 -2
  120. package/dist/contexts/uiConfigContext/index.js +2 -2
  121. package/dist/contexts/uiConfigContext/uiConfigContext.cjs +13 -30
  122. package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +5 -9
  123. package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +5 -9
  124. package/dist/contexts/uiConfigContext/uiConfigContext.js +14 -29
  125. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +7 -7
  126. package/dist/contexts/userIdentityContext/userIdentityContext.js +7 -7
  127. package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +4 -3
  128. package/dist/contexts/widgetConfigContext/widgetConfigContext.js +4 -3
  129. package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.cjs +4 -3
  130. package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +4 -3
  131. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  132. package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.cts +2 -2
  133. package/dist/hooks/WidgetInteraction/useWidgetInteraction.cjs +2 -2
  134. package/dist/hooks/WidgetInteraction/useWidgetInteraction.js +2 -2
  135. package/dist/hooks/WidgetInteraction/utils.cjs +2 -1
  136. package/dist/hooks/WidgetInteraction/utils.js +2 -1
  137. package/dist/hooks/utils.d.cts +1 -1
  138. package/dist/hooks/utils.d.ts +1 -1
  139. package/dist/services/amplitudeService/amplitudeService.cjs +8 -7
  140. package/dist/services/amplitudeService/amplitudeService.js +8 -7
  141. package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +3 -2
  142. package/dist/services/ga4ProjectionService/ga4ProjectionService.js +3 -2
  143. package/dist/services/userIdentityService/userIdentityService.cjs +8 -7
  144. package/dist/services/userIdentityService/userIdentityService.js +8 -7
  145. package/package.json +1 -1
  146. package/src/application/commerce-api.ts +14 -12
  147. package/src/application/logging/logger.ts +33 -8
  148. package/src/application/models/guards/api/isApiFormResponse.ts +9 -7
  149. package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +6 -4
  150. package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +19 -17
  151. package/src/application/models/guards/api/isApiOrgConfigResults.ts +40 -48
  152. package/src/application/models/guards/api/isApiOrganizationConfig.ts +25 -38
  153. package/src/application/models/guards/api/isApiProductResponseAttributes.ts +12 -10
  154. package/src/application/models/guards/api/isApiResponse.ts +7 -5
  155. package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +5 -3
  156. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +15 -13
  157. package/src/application/utils/analyticsUtils.ts +4 -4
  158. package/src/application/utils/nextMessageRequestToApiRequest.ts +2 -0
  159. package/src/atoms/app/variant.ts +3 -1
  160. package/src/atoms/chat/performanceMetrics.ts +3 -1
  161. package/src/atoms/envive/enviveConfig.ts +5 -3
  162. package/src/contexts/amplitudeContext/amplitudeContext.tsx +1 -1
  163. package/src/contexts/enviveConfigContext/__tests__/enviveConfigContext.test.tsx +4 -3
  164. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +50 -35
  165. package/src/contexts/enviveConfigContext/index.ts +1 -0
  166. package/src/contexts/enviveConfigContext/useEnviveConfig.ts +9 -0
  167. package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +6 -4
  168. package/src/contexts/enviveContext/enviveContext.tsx +40 -45
  169. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -12
  170. package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +4 -4
  171. package/src/contexts/graphqlContext/graphqlContext.tsx +8 -6
  172. package/src/contexts/hardcopyContext/hardcopyContext.tsx +9 -7
  173. package/src/contexts/localStorageContext/__tests__/localStorageContext.test.tsx +6 -6
  174. package/src/contexts/localStorageContext/localStorageContext.tsx +4 -2
  175. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +5 -5
  176. package/src/contexts/pageContext/pageContext.tsx +3 -1
  177. package/src/contexts/salesAgentContext/chatAPI.ts +5 -5
  178. package/src/contexts/salesAgentContext/salesAgentContext.tsx +4 -2
  179. package/src/contexts/salesAgentContext/salesAgentService.ts +4 -2
  180. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +15 -12
  181. package/src/contexts/searchContext/searchContext.tsx +6 -4
  182. package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +3 -1
  183. package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +7 -32
  184. package/src/contexts/uiConfigContext/uiConfigContext.tsx +17 -29
  185. package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +5 -5
  186. package/src/contexts/userIdentityContext/userIdentityContext.tsx +7 -6
  187. package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +7 -7
  188. package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -2
  189. package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +4 -2
  190. package/src/hooks/Search/__tests__/useSearch.test.tsx +14 -8
  191. package/src/hooks/WidgetInteraction/useWidgetInteraction.ts +3 -2
  192. package/src/hooks/WidgetInteraction/utils.ts +3 -1
  193. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +3 -3
  194. package/src/services/amplitudeService/amplitudeService.ts +8 -6
  195. package/src/services/ga4ProjectionService/ga4ProjectionService.ts +3 -1
  196. package/src/services/userIdentityService/userIdentityService.ts +8 -8
@@ -1,43 +1,44 @@
1
1
  const require_logger = require('../../../logging/logger.cjs');
2
2
 
3
3
  //#region src/application/models/guards/api/isApiOrganizationConfig.ts
4
+ const logger = new require_logger.default("isApiOrganizationConfig");
4
5
  const isApiOrgAnalyticsConfigAmplitude = (data) => {
5
6
  if (data == null || typeof data !== "object") {
6
- require_logger.default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigAmplitude: data is not an object", data);
7
+ logger.logDebug("isApiOrgAnalyticsConfigAmplitude: data is not an object", data);
7
8
  return false;
8
9
  }
9
10
  if (!("session_replay_enabled" in data) || typeof data.session_replay_enabled !== "boolean") {
10
- require_logger.default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigAmplitude: session_replay_enabled is not a boolean", data);
11
+ logger.logDebug("isApiOrgAnalyticsConfigAmplitude: session_replay_enabled is not a boolean", data);
11
12
  return false;
12
13
  }
13
14
  if (!("session_replay_sample_rate" in data) || typeof data.session_replay_sample_rate !== "number") {
14
- require_logger.default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigAmplitude: session_replay_sample_rate is not a number", data);
15
+ logger.logDebug("isApiOrgAnalyticsConfigAmplitude: session_replay_sample_rate is not a number", data);
15
16
  return false;
16
17
  }
17
18
  if (!("tracking_enabled" in data) || typeof data.tracking_enabled !== "boolean") {
18
- require_logger.default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigAmplitude: tracking_enabled is not a boolean", data);
19
+ logger.logDebug("isApiOrgAnalyticsConfigAmplitude: tracking_enabled is not a boolean", data);
19
20
  return false;
20
21
  }
21
22
  return true;
22
23
  };
23
24
  const isApiOrgAnalyticsConfigCustomerService = (data) => {
24
25
  if (data == null || typeof data !== "object") {
25
- require_logger.default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigCustomerService: data is not an object", data);
26
+ logger.logDebug("isApiOrgAnalyticsConfigCustomerService: data is not an object", data);
26
27
  return false;
27
28
  }
28
29
  if (!("provider" in data) || typeof data.provider !== "string") {
29
- require_logger.default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigCustomerService: provider is not a string", data);
30
+ logger.logDebug("isApiOrgAnalyticsConfigCustomerService: provider is not a string", data);
30
31
  return false;
31
32
  }
32
33
  return true;
33
34
  };
34
35
  const isApiOrgAnalyticsConfigGoogleAnalytics = (data) => {
35
36
  if (data == null || typeof data !== "object") {
36
- require_logger.default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigGoogleAnalytics: data is not an object", data);
37
+ logger.logDebug("isApiOrgAnalyticsConfigGoogleAnalytics: data is not an object", data);
37
38
  return false;
38
39
  }
39
40
  if (!("measurement_id" in data) || typeof data.measurement_id !== "string") {
40
- require_logger.default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigGoogleAnalytics: measurement_id is not a string", data);
41
+ logger.logDebug("isApiOrgAnalyticsConfigGoogleAnalytics: measurement_id is not a string", data);
41
42
  return false;
42
43
  }
43
44
  return true;
@@ -49,19 +50,19 @@ const isApiOrgAnalyticsConfigGoogleAnalytics = (data) => {
49
50
  */
50
51
  const isApiOrgAnalyticsConfig = (data) => {
51
52
  if (data == null || typeof data !== "object") {
52
- require_logger.default.logDebug("[spiffy-ai] isOrgAnalyticsConfig: data is not an object", data);
53
+ logger.logDebug("isOrgAnalyticsConfig: data is not an object", data);
53
54
  return false;
54
55
  }
55
56
  if ("amplitude" in data && !isApiOrgAnalyticsConfigAmplitude(data.amplitude)) {
56
- require_logger.default.logDebug("[spiffy-ai] isOrgAnalyticsConfig: amplitude is not an object", data);
57
+ logger.logDebug("isOrgAnalyticsConfig: amplitude is not an object", data);
57
58
  return false;
58
59
  }
59
60
  if ("customer_service" in data && !isApiOrgAnalyticsConfigCustomerService(data.customer_service)) {
60
- require_logger.default.logDebug("[spiffy-ai] isOrgAnalyticsConfig: customer_service is not an object", data);
61
+ logger.logDebug("isOrgAnalyticsConfig: customer_service is not an object", data);
61
62
  return false;
62
63
  }
63
64
  if ("google_analytics" in data && !isApiOrgAnalyticsConfigGoogleAnalytics(data.google_analytics)) {
64
- require_logger.default.logDebug("[spiffy-ai] isOrgAnalyticsConfig: google_analytics is not an object", data);
65
+ logger.logDebug("isOrgAnalyticsConfig: google_analytics is not an object", data);
65
66
  return false;
66
67
  }
67
68
  return true;
@@ -73,39 +74,39 @@ const isApiOrgAnalyticsConfig = (data) => {
73
74
  */
74
75
  const isApiOrganizationConfig = (data) => {
75
76
  if (data == null || typeof data !== "object") {
76
- require_logger.default.logDebug("[spiffy-ai] isOrgConfig: data is not an object", data);
77
+ logger.logDebug("isOrgConfig: data is not an object", data);
77
78
  return false;
78
79
  }
79
80
  if (!("created_at" in data)) {
80
- require_logger.default.logDebug("[spiffy-ai] isOrgConfig: created_at is not defined", data);
81
+ logger.logDebug("isOrgConfig: created_at is not defined", data);
81
82
  return false;
82
83
  }
83
84
  if (!("namespace" in data) || typeof data.namespace !== "string") {
84
- require_logger.default.logDebug("[spiffy-ai] isOrgConfig: namespace is not a string", data);
85
+ logger.logDebug("isOrgConfig: namespace is not a string", data);
85
86
  return false;
86
87
  }
87
88
  if (!("is_latest" in data) || typeof data.is_latest !== "boolean") {
88
- require_logger.default.logDebug("[spiffy-ai] isOrgConfig: is_latest is not a boolean", data);
89
+ logger.logDebug("isOrgConfig: is_latest is not a boolean", data);
89
90
  return false;
90
91
  }
91
92
  if (!("version" in data) || typeof data.version !== "string") {
92
- require_logger.default.logDebug("[spiffy-ai] isOrgConfig: version is not a string", data);
93
+ logger.logDebug("isOrgConfig: version is not a string", data);
93
94
  return false;
94
95
  }
95
96
  if (!("updated_at" in data)) {
96
- require_logger.default.logDebug("[spiffy-ai] isOrgConfig: updated_at is not defined", data);
97
+ logger.logDebug("isOrgConfig: updated_at is not defined", data);
97
98
  return false;
98
99
  }
99
100
  if (!("config" in data) || typeof data.config !== "object" || !isApiOrgAnalyticsConfig(data.config)) {
100
- require_logger.default.logDebug("[spiffy-ai] isOrgConfig: config is not an object", data);
101
+ logger.logDebug("isOrgConfig: config is not an object", data);
101
102
  return false;
102
103
  }
103
104
  if ("organization_id" in data && typeof data.organization_id !== "string") {
104
- require_logger.default.logDebug("[spiffy-ai] isOrgConfig: organization_id is not a string", data);
105
+ logger.logDebug("isOrgConfig: organization_id is not a string", data);
105
106
  return false;
106
107
  }
107
108
  if ("id" in data && typeof data.id !== "string") {
108
- require_logger.default.logDebug("[spiffy-ai] isOrgConfig: id is not a string", data);
109
+ logger.logDebug("isOrgConfig: id is not a string", data);
109
110
  return false;
110
111
  }
111
112
  return true;
@@ -113,4 +114,4 @@ const isApiOrganizationConfig = (data) => {
113
114
 
114
115
  //#endregion
115
116
  exports.isApiOrganizationConfig = isApiOrganizationConfig;
116
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlPcmdhbml6YXRpb25Db25maWcuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaU9yZ2FuaXphdGlvbkNvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBPcmdhbml6YXRpb25Db25maWcgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG4vLyB0aGUgXCJjb25maWdcIiBwcm9wZXJ0eSBpcyBhIGdlbmVyaWMgb2JqZWN0IGluIHRoZSBjb21tZXJjZSBhcGkgc3BlYywgdGhlc2UgaW50ZXJmYWNlc1xuLy8gYXJlIHVzZWQgdG8gdmFsaWRhdGUgdGhlIHN0cnVjdHVyZSBvZiB0aGF0IG9iamVjdCBhbmQgdG8gdHJhbnNmb3JtIHRoZSBhcGkgcmVzcG9uc2Vcbi8vIGludG8gYSB0eXBlZCBvYmplY3QgZm9yIHRoZSBmcm9udGVuZC4gRG8gbm90IHVzZSB0aGVzZSBpbnRlcmZhY2VzIGZvciBhbnl0aGluZyBlbHNlLlxuaW50ZXJmYWNlIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZSB7XG4gIHNlc3Npb25fcmVwbGF5X2VuYWJsZWQ6IGJvb2xlYW47XG4gIHNlc3Npb25fcmVwbGF5X3NhbXBsZV9yYXRlOiBudW1iZXI7XG4gIHRyYWNraW5nX2VuYWJsZWQ6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2Uge1xuICBwcm92aWRlcjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzIHtcbiAgbWVhc3VyZW1lbnRfaWQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFwaU9yZ0FuYWx5dGljc0NvbmZpZyB7XG4gIGFtcGxpdHVkZT86IEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZTtcbiAgY3VzdG9tZXJfc2VydmljZT86IEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZTtcbiAgZ29vZ2xlX2FuYWx5dGljcz86IEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0dvb2dsZUFuYWx5dGljcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlPcmdhbml6YXRpb25Db25maWcgZXh0ZW5kcyBPcmdhbml6YXRpb25Db25maWcge1xuICBjb25maWc6IEFwaU9yZ0FuYWx5dGljc0NvbmZpZztcbn1cblxuY29uc3QgaXNBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGUgPSAoXG4gIGRhdGE6IHVua25vd24sXG4pOiBkYXRhIGlzIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZSA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZTogZGF0YSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3Nlc3Npb25fcmVwbGF5X2VuYWJsZWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLnNlc3Npb25fcmVwbGF5X2VuYWJsZWQgIT09ICdib29sZWFuJykge1xuICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICdbc3BpZmZ5LWFpXSBpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZTogc2Vzc2lvbl9yZXBsYXlfZW5hYmxlZCBpcyBub3QgYSBib29sZWFuJyxcbiAgICAgIGRhdGEsXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgISgnc2Vzc2lvbl9yZXBsYXlfc2FtcGxlX3JhdGUnIGluIGRhdGEpIHx8XG4gICAgdHlwZW9mIGRhdGEuc2Vzc2lvbl9yZXBsYXlfc2FtcGxlX3JhdGUgIT09ICdudW1iZXInXG4gICkge1xuICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICdbc3BpZmZ5LWFpXSBpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZTogc2Vzc2lvbl9yZXBsYXlfc2FtcGxlX3JhdGUgaXMgbm90IGEgbnVtYmVyJyxcbiAgICAgIGRhdGEsXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgndHJhY2tpbmdfZW5hYmxlZCcgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEudHJhY2tpbmdfZW5hYmxlZCAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgJ1tzcGlmZnktYWldIGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlOiB0cmFja2luZ19lbmFibGVkIGlzIG5vdCBhIGJvb2xlYW4nLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgaXNBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2UgPSAoXG4gIGRhdGE6IHVua25vd24sXG4pOiBkYXRhIGlzIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZSA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgJ1tzcGlmZnktYWldIGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlOiBkYXRhIGlzIG5vdCBhbiBvYmplY3QnLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdwcm92aWRlcicgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEucHJvdmlkZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgJ1tzcGlmZnktYWldIGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlOiBwcm92aWRlciBpcyBub3QgYSBzdHJpbmcnLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgaXNBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3MgPSAoXG4gIGRhdGE6IHVua25vd24sXG4pOiBkYXRhIGlzIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0dvb2dsZUFuYWx5dGljcyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgJ1tzcGlmZnktYWldIGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzOiBkYXRhIGlzIG5vdCBhbiBvYmplY3QnLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdtZWFzdXJlbWVudF9pZCcgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEubWVhc3VyZW1lbnRfaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgJ1tzcGlmZnktYWldIGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzOiBtZWFzdXJlbWVudF9pZCBpcyBub3QgYSBzdHJpbmcnLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIGRhdGFcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIEFwaU9yZ0FuYWx5dGljc0NvbmZpZyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0FuYWx5dGljc0NvbmZpZzogZGF0YSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdhbXBsaXR1ZGUnIGluIGRhdGEgJiYgIWlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlKGRhdGEuYW1wbGl0dWRlKSkge1xuICAgIExvZ2dlci5sb2dEZWJ1ZygnW3NwaWZmeS1haV0gaXNPcmdBbmFseXRpY3NDb25maWc6IGFtcGxpdHVkZSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdjdXN0b21lcl9zZXJ2aWNlJyBpbiBkYXRhICYmXG4gICAgIWlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlKGRhdGEuY3VzdG9tZXJfc2VydmljZSlcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0FuYWx5dGljc0NvbmZpZzogY3VzdG9tZXJfc2VydmljZSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdnb29nbGVfYW5hbHl0aWNzJyBpbiBkYXRhICYmXG4gICAgIWlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzKGRhdGEuZ29vZ2xlX2FuYWx5dGljcylcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0FuYWx5dGljc0NvbmZpZzogZ29vZ2xlX2FuYWx5dGljcyBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gZGF0YVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQXBpT3JnYW5pemF0aW9uQ29uZmlnID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIEFwaU9yZ2FuaXphdGlvbkNvbmZpZyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0NvbmZpZzogZGF0YSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NyZWF0ZWRfYXQnIGluIGRhdGEpKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0NvbmZpZzogY3JlYXRlZF9hdCBpcyBub3QgZGVmaW5lZCcsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCduYW1lc3BhY2UnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLm5hbWVzcGFjZSAhPT0gJ3N0cmluZycpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQ29uZmlnOiBuYW1lc3BhY2UgaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2lzX2xhdGVzdCcgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEuaXNfbGF0ZXN0ICE9PSAnYm9vbGVhbicpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQ29uZmlnOiBpc19sYXRlc3QgaXMgbm90IGEgYm9vbGVhbicsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCd2ZXJzaW9uJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS52ZXJzaW9uICE9PSAnc3RyaW5nJykge1xuICAgIExvZ2dlci5sb2dEZWJ1ZygnW3NwaWZmeS1haV0gaXNPcmdDb25maWc6IHZlcnNpb24gaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3VwZGF0ZWRfYXQnIGluIGRhdGEpKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0NvbmZpZzogdXBkYXRlZF9hdCBpcyBub3QgZGVmaW5lZCcsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhKCdjb25maWcnIGluIGRhdGEpIHx8XG4gICAgdHlwZW9mIGRhdGEuY29uZmlnICE9PSAnb2JqZWN0JyB8fFxuICAgICFpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZyhkYXRhLmNvbmZpZylcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0NvbmZpZzogY29uZmlnIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ29yZ2FuaXphdGlvbl9pZCcgaW4gZGF0YSAmJiB0eXBlb2YgZGF0YS5vcmdhbml6YXRpb25faWQgIT09ICdzdHJpbmcnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0NvbmZpZzogb3JnYW5pemF0aW9uX2lkIGlzIG5vdCBhIHN0cmluZycsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgnaWQnIGluIGRhdGEgJiYgdHlwZW9mIGRhdGEuaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0NvbmZpZzogaWQgaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUE4QkEsTUFBTSxvQ0FDSixTQUMyQztBQUMzQyxLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUM1Qyx5QkFBTyxTQUFTLHVFQUF1RSxLQUFLO0FBQzVGLFNBQU87O0FBR1QsS0FBSSxFQUFF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
117
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlPcmdhbml6YXRpb25Db25maWcuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpT3JnYW5pemF0aW9uQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbkNvbmZpZyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbi8vIHRoZSBcImNvbmZpZ1wiIHByb3BlcnR5IGlzIGEgZ2VuZXJpYyBvYmplY3QgaW4gdGhlIGNvbW1lcmNlIGFwaSBzcGVjLCB0aGVzZSBpbnRlcmZhY2VzXG4vLyBhcmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUgc3RydWN0dXJlIG9mIHRoYXQgb2JqZWN0IGFuZCB0byB0cmFuc2Zvcm0gdGhlIGFwaSByZXNwb25zZVxuLy8gaW50byBhIHR5cGVkIG9iamVjdCBmb3IgdGhlIGZyb250ZW5kLiBEbyBub3QgdXNlIHRoZXNlIGludGVyZmFjZXMgZm9yIGFueXRoaW5nIGVsc2UuXG5pbnRlcmZhY2UgQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlIHtcbiAgc2Vzc2lvbl9yZXBsYXlfZW5hYmxlZDogYm9vbGVhbjtcbiAgc2Vzc2lvbl9yZXBsYXlfc2FtcGxlX3JhdGU6IG51bWJlcjtcbiAgdHJhY2tpbmdfZW5hYmxlZDogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZSB7XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3Mge1xuICBtZWFzdXJlbWVudF9pZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXBpT3JnQW5hbHl0aWNzQ29uZmlnIHtcbiAgYW1wbGl0dWRlPzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlO1xuICBjdXN0b21lcl9zZXJ2aWNlPzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlO1xuICBnb29nbGVfYW5hbHl0aWNzPzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9yZ2FuaXphdGlvbkNvbmZpZyBleHRlbmRzIE9yZ2FuaXphdGlvbkNvbmZpZyB7XG4gIGNvbmZpZzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnO1xufVxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdpc0FwaU9yZ2FuaXphdGlvbkNvbmZpZycpO1xuXG5jb25zdCBpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZSA9IChcbiAgZGF0YTogdW5rbm93bixcbik6IGRhdGEgaXMgQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlOiBkYXRhIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnc2Vzc2lvbl9yZXBsYXlfZW5hYmxlZCcgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEuc2Vzc2lvbl9yZXBsYXlfZW5hYmxlZCAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgJ2lzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlOiBzZXNzaW9uX3JlcGxheV9lbmFibGVkIGlzIG5vdCBhIGJvb2xlYW4nLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhKCdzZXNzaW9uX3JlcGxheV9zYW1wbGVfcmF0ZScgaW4gZGF0YSkgfHxcbiAgICB0eXBlb2YgZGF0YS5zZXNzaW9uX3JlcGxheV9zYW1wbGVfcmF0ZSAhPT0gJ251bWJlcidcbiAgKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgJ2lzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlOiBzZXNzaW9uX3JlcGxheV9zYW1wbGVfcmF0ZSBpcyBub3QgYSBudW1iZXInLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCd0cmFja2luZ19lbmFibGVkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS50cmFja2luZ19lbmFibGVkICE9PSAnYm9vbGVhbicpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlOiB0cmFja2luZ19lbmFibGVkIGlzIG5vdCBhIGJvb2xlYW4nLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlID0gKFxuICBkYXRhOiB1bmtub3duLFxuKTogZGF0YSBpcyBBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2UgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnaXNBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2U6IGRhdGEgaXMgbm90IGFuIG9iamVjdCcsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdwcm92aWRlcicgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEucHJvdmlkZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZTogcHJvdmlkZXIgaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5jb25zdCBpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0dvb2dsZUFuYWx5dGljcyA9IChcbiAgZGF0YTogdW5rbm93bixcbik6IGRhdGEgaXMgQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzOiBkYXRhIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnbWVhc3VyZW1lbnRfaWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLm1lYXN1cmVtZW50X2lkICE9PSAnc3RyaW5nJykge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnaXNBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3M6IG1lYXN1cmVtZW50X2lkIGlzIG5vdCBhIHN0cmluZycsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuLyoqXG4gKlxuICogQHBhcmFtIGRhdGFcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIEFwaU9yZ0FuYWx5dGljc0NvbmZpZyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0FuYWx5dGljc0NvbmZpZzogZGF0YSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdhbXBsaXR1ZGUnIGluIGRhdGEgJiYgIWlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlKGRhdGEuYW1wbGl0dWRlKSkge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnaXNPcmdBbmFseXRpY3NDb25maWc6IGFtcGxpdHVkZSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdjdXN0b21lcl9zZXJ2aWNlJyBpbiBkYXRhICYmXG4gICAgIWlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlKGRhdGEuY3VzdG9tZXJfc2VydmljZSlcbiAgKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0FuYWx5dGljc0NvbmZpZzogY3VzdG9tZXJfc2VydmljZSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICdnb29nbGVfYW5hbHl0aWNzJyBpbiBkYXRhICYmXG4gICAgIWlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzKGRhdGEuZ29vZ2xlX2FuYWx5dGljcylcbiAgKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0FuYWx5dGljc0NvbmZpZzogZ29vZ2xlX2FuYWx5dGljcyBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gZGF0YVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQXBpT3JnYW5pemF0aW9uQ29uZmlnID0gKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIEFwaU9yZ2FuaXphdGlvbkNvbmZpZyA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0NvbmZpZzogZGF0YSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2NyZWF0ZWRfYXQnIGluIGRhdGEpKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0NvbmZpZzogY3JlYXRlZF9hdCBpcyBub3QgZGVmaW5lZCcsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCduYW1lc3BhY2UnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLm5hbWVzcGFjZSAhPT0gJ3N0cmluZycpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQ29uZmlnOiBuYW1lc3BhY2UgaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ2lzX2xhdGVzdCcgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEuaXNfbGF0ZXN0ICE9PSAnYm9vbGVhbicpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQ29uZmlnOiBpc19sYXRlc3QgaXMgbm90IGEgYm9vbGVhbicsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCd2ZXJzaW9uJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS52ZXJzaW9uICE9PSAnc3RyaW5nJykge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnaXNPcmdDb25maWc6IHZlcnNpb24gaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3VwZGF0ZWRfYXQnIGluIGRhdGEpKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0NvbmZpZzogdXBkYXRlZF9hdCBpcyBub3QgZGVmaW5lZCcsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhKCdjb25maWcnIGluIGRhdGEpIHx8XG4gICAgdHlwZW9mIGRhdGEuY29uZmlnICE9PSAnb2JqZWN0JyB8fFxuICAgICFpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZyhkYXRhLmNvbmZpZylcbiAgKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0NvbmZpZzogY29uZmlnIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ29yZ2FuaXphdGlvbl9pZCcgaW4gZGF0YSAmJiB0eXBlb2YgZGF0YS5vcmdhbml6YXRpb25faWQgIT09ICdzdHJpbmcnKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0NvbmZpZzogb3JnYW5pemF0aW9uX2lkIGlzIG5vdCBhIHN0cmluZycsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgnaWQnIGluIGRhdGEgJiYgdHlwZW9mIGRhdGEuaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0NvbmZpZzogaWQgaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUE4QkEsTUFBTSxTQUFTLElBQUlBLHVCQUFPLDBCQUEwQjtBQUVwRCxNQUFNLG9DQUNKLFNBQzJDO0FBQzNDLEtBQUksUUFBUSxRQUFRLE9BQU8sU0FBUyxVQUFVO0FBQzVDLFNBQU8sU0FBUywyREFBMkQsS0FBSztBQUNoRixTQUFPOztBQUdULEtBQUksRUFBRSw0QkFBNEIsU0FBUyxPQUFPLEtBQUssMkJBQTJCLFdBQVc7QUFDM0YsU0FBTyxTQUNMLDZFQUNBLEtBQ0Q7QUFDRCxTQUFPOztBQUdULEtBQ0UsRUFBRSxnQ0FBZ0MsU0FDbEMsT0FBTyxLQUFLLCtCQUErQixVQUMzQztBQUNBLFNBQU8sU0FDTCxnRkFDQSxLQUNEO0FBQ0QsU0FBTzs7QUFHVCxLQUFJLEVBQUUsc0JBQXNCLFNBQVMsT0FBTyxLQUFLLHFCQUFxQixXQUFXO0FBQy9FLFNBQU8sU0FBUyx1RUFBdUUsS0FBSztBQUM1RixTQUFPOztBQUdULFFBQU87O0FB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
@@ -1,43 +1,44 @@
1
1
  import logger_default from "../../../logging/logger.js";
2
2
 
3
3
  //#region src/application/models/guards/api/isApiOrganizationConfig.ts
4
+ const logger = new logger_default("isApiOrganizationConfig");
4
5
  const isApiOrgAnalyticsConfigAmplitude = (data) => {
5
6
  if (data == null || typeof data !== "object") {
6
- logger_default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigAmplitude: data is not an object", data);
7
+ logger.logDebug("isApiOrgAnalyticsConfigAmplitude: data is not an object", data);
7
8
  return false;
8
9
  }
9
10
  if (!("session_replay_enabled" in data) || typeof data.session_replay_enabled !== "boolean") {
10
- logger_default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigAmplitude: session_replay_enabled is not a boolean", data);
11
+ logger.logDebug("isApiOrgAnalyticsConfigAmplitude: session_replay_enabled is not a boolean", data);
11
12
  return false;
12
13
  }
13
14
  if (!("session_replay_sample_rate" in data) || typeof data.session_replay_sample_rate !== "number") {
14
- logger_default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigAmplitude: session_replay_sample_rate is not a number", data);
15
+ logger.logDebug("isApiOrgAnalyticsConfigAmplitude: session_replay_sample_rate is not a number", data);
15
16
  return false;
16
17
  }
17
18
  if (!("tracking_enabled" in data) || typeof data.tracking_enabled !== "boolean") {
18
- logger_default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigAmplitude: tracking_enabled is not a boolean", data);
19
+ logger.logDebug("isApiOrgAnalyticsConfigAmplitude: tracking_enabled is not a boolean", data);
19
20
  return false;
20
21
  }
21
22
  return true;
22
23
  };
23
24
  const isApiOrgAnalyticsConfigCustomerService = (data) => {
24
25
  if (data == null || typeof data !== "object") {
25
- logger_default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigCustomerService: data is not an object", data);
26
+ logger.logDebug("isApiOrgAnalyticsConfigCustomerService: data is not an object", data);
26
27
  return false;
27
28
  }
28
29
  if (!("provider" in data) || typeof data.provider !== "string") {
29
- logger_default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigCustomerService: provider is not a string", data);
30
+ logger.logDebug("isApiOrgAnalyticsConfigCustomerService: provider is not a string", data);
30
31
  return false;
31
32
  }
32
33
  return true;
33
34
  };
34
35
  const isApiOrgAnalyticsConfigGoogleAnalytics = (data) => {
35
36
  if (data == null || typeof data !== "object") {
36
- logger_default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigGoogleAnalytics: data is not an object", data);
37
+ logger.logDebug("isApiOrgAnalyticsConfigGoogleAnalytics: data is not an object", data);
37
38
  return false;
38
39
  }
39
40
  if (!("measurement_id" in data) || typeof data.measurement_id !== "string") {
40
- logger_default.logDebug("[spiffy-ai] isApiOrgAnalyticsConfigGoogleAnalytics: measurement_id is not a string", data);
41
+ logger.logDebug("isApiOrgAnalyticsConfigGoogleAnalytics: measurement_id is not a string", data);
41
42
  return false;
42
43
  }
43
44
  return true;
@@ -49,19 +50,19 @@ const isApiOrgAnalyticsConfigGoogleAnalytics = (data) => {
49
50
  */
50
51
  const isApiOrgAnalyticsConfig = (data) => {
51
52
  if (data == null || typeof data !== "object") {
52
- logger_default.logDebug("[spiffy-ai] isOrgAnalyticsConfig: data is not an object", data);
53
+ logger.logDebug("isOrgAnalyticsConfig: data is not an object", data);
53
54
  return false;
54
55
  }
55
56
  if ("amplitude" in data && !isApiOrgAnalyticsConfigAmplitude(data.amplitude)) {
56
- logger_default.logDebug("[spiffy-ai] isOrgAnalyticsConfig: amplitude is not an object", data);
57
+ logger.logDebug("isOrgAnalyticsConfig: amplitude is not an object", data);
57
58
  return false;
58
59
  }
59
60
  if ("customer_service" in data && !isApiOrgAnalyticsConfigCustomerService(data.customer_service)) {
60
- logger_default.logDebug("[spiffy-ai] isOrgAnalyticsConfig: customer_service is not an object", data);
61
+ logger.logDebug("isOrgAnalyticsConfig: customer_service is not an object", data);
61
62
  return false;
62
63
  }
63
64
  if ("google_analytics" in data && !isApiOrgAnalyticsConfigGoogleAnalytics(data.google_analytics)) {
64
- logger_default.logDebug("[spiffy-ai] isOrgAnalyticsConfig: google_analytics is not an object", data);
65
+ logger.logDebug("isOrgAnalyticsConfig: google_analytics is not an object", data);
65
66
  return false;
66
67
  }
67
68
  return true;
@@ -73,39 +74,39 @@ const isApiOrgAnalyticsConfig = (data) => {
73
74
  */
74
75
  const isApiOrganizationConfig = (data) => {
75
76
  if (data == null || typeof data !== "object") {
76
- logger_default.logDebug("[spiffy-ai] isOrgConfig: data is not an object", data);
77
+ logger.logDebug("isOrgConfig: data is not an object", data);
77
78
  return false;
78
79
  }
79
80
  if (!("created_at" in data)) {
80
- logger_default.logDebug("[spiffy-ai] isOrgConfig: created_at is not defined", data);
81
+ logger.logDebug("isOrgConfig: created_at is not defined", data);
81
82
  return false;
82
83
  }
83
84
  if (!("namespace" in data) || typeof data.namespace !== "string") {
84
- logger_default.logDebug("[spiffy-ai] isOrgConfig: namespace is not a string", data);
85
+ logger.logDebug("isOrgConfig: namespace is not a string", data);
85
86
  return false;
86
87
  }
87
88
  if (!("is_latest" in data) || typeof data.is_latest !== "boolean") {
88
- logger_default.logDebug("[spiffy-ai] isOrgConfig: is_latest is not a boolean", data);
89
+ logger.logDebug("isOrgConfig: is_latest is not a boolean", data);
89
90
  return false;
90
91
  }
91
92
  if (!("version" in data) || typeof data.version !== "string") {
92
- logger_default.logDebug("[spiffy-ai] isOrgConfig: version is not a string", data);
93
+ logger.logDebug("isOrgConfig: version is not a string", data);
93
94
  return false;
94
95
  }
95
96
  if (!("updated_at" in data)) {
96
- logger_default.logDebug("[spiffy-ai] isOrgConfig: updated_at is not defined", data);
97
+ logger.logDebug("isOrgConfig: updated_at is not defined", data);
97
98
  return false;
98
99
  }
99
100
  if (!("config" in data) || typeof data.config !== "object" || !isApiOrgAnalyticsConfig(data.config)) {
100
- logger_default.logDebug("[spiffy-ai] isOrgConfig: config is not an object", data);
101
+ logger.logDebug("isOrgConfig: config is not an object", data);
101
102
  return false;
102
103
  }
103
104
  if ("organization_id" in data && typeof data.organization_id !== "string") {
104
- logger_default.logDebug("[spiffy-ai] isOrgConfig: organization_id is not a string", data);
105
+ logger.logDebug("isOrgConfig: organization_id is not a string", data);
105
106
  return false;
106
107
  }
107
108
  if ("id" in data && typeof data.id !== "string") {
108
- logger_default.logDebug("[spiffy-ai] isOrgConfig: id is not a string", data);
109
+ logger.logDebug("isOrgConfig: id is not a string", data);
109
110
  return false;
110
111
  }
111
112
  return true;
@@ -113,4 +114,4 @@ const isApiOrganizationConfig = (data) => {
113
114
 
114
115
  //#endregion
115
116
  export { isApiOrganizationConfig };
116
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlPcmdhbml6YXRpb25Db25maWcuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpT3JnYW5pemF0aW9uQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbkNvbmZpZyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbi8vIHRoZSBcImNvbmZpZ1wiIHByb3BlcnR5IGlzIGEgZ2VuZXJpYyBvYmplY3QgaW4gdGhlIGNvbW1lcmNlIGFwaSBzcGVjLCB0aGVzZSBpbnRlcmZhY2VzXG4vLyBhcmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUgc3RydWN0dXJlIG9mIHRoYXQgb2JqZWN0IGFuZCB0byB0cmFuc2Zvcm0gdGhlIGFwaSByZXNwb25zZVxuLy8gaW50byBhIHR5cGVkIG9iamVjdCBmb3IgdGhlIGZyb250ZW5kLiBEbyBub3QgdXNlIHRoZXNlIGludGVyZmFjZXMgZm9yIGFueXRoaW5nIGVsc2UuXG5pbnRlcmZhY2UgQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlIHtcbiAgc2Vzc2lvbl9yZXBsYXlfZW5hYmxlZDogYm9vbGVhbjtcbiAgc2Vzc2lvbl9yZXBsYXlfc2FtcGxlX3JhdGU6IG51bWJlcjtcbiAgdHJhY2tpbmdfZW5hYmxlZDogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZSB7XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3Mge1xuICBtZWFzdXJlbWVudF9pZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXBpT3JnQW5hbHl0aWNzQ29uZmlnIHtcbiAgYW1wbGl0dWRlPzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlO1xuICBjdXN0b21lcl9zZXJ2aWNlPzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlO1xuICBnb29nbGVfYW5hbHl0aWNzPzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9yZ2FuaXphdGlvbkNvbmZpZyBleHRlbmRzIE9yZ2FuaXphdGlvbkNvbmZpZyB7XG4gIGNvbmZpZzogQXBpT3JnQW5hbHl0aWNzQ29uZmlnO1xufVxuXG5jb25zdCBpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0FtcGxpdHVkZSA9IChcbiAgZGF0YTogdW5rbm93bixcbik6IGRhdGEgaXMgQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlOiBkYXRhIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnc2Vzc2lvbl9yZXBsYXlfZW5hYmxlZCcgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEuc2Vzc2lvbl9yZXBsYXlfZW5hYmxlZCAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgJ1tzcGlmZnktYWldIGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlOiBzZXNzaW9uX3JlcGxheV9lbmFibGVkIGlzIG5vdCBhIGJvb2xlYW4nLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChcbiAgICAhKCdzZXNzaW9uX3JlcGxheV9zYW1wbGVfcmF0ZScgaW4gZGF0YSkgfHxcbiAgICB0eXBlb2YgZGF0YS5zZXNzaW9uX3JlcGxheV9zYW1wbGVfcmF0ZSAhPT0gJ251bWJlcidcbiAgKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgJ1tzcGlmZnktYWldIGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlOiBzZXNzaW9uX3JlcGxheV9zYW1wbGVfcmF0ZSBpcyBub3QgYSBudW1iZXInLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCd0cmFja2luZ19lbmFibGVkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS50cmFja2luZ19lbmFibGVkICE9PSAnYm9vbGVhbicpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAnW3NwaWZmeS1haV0gaXNBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGU6IHRyYWNraW5nX2VuYWJsZWQgaXMgbm90IGEgYm9vbGVhbicsXG4gICAgICBkYXRhLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5jb25zdCBpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZSA9IChcbiAgZGF0YTogdW5rbm93bixcbik6IGRhdGEgaXMgQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAnW3NwaWZmeS1haV0gaXNBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2U6IGRhdGEgaXMgbm90IGFuIG9iamVjdCcsXG4gICAgICBkYXRhLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3Byb3ZpZGVyJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5wcm92aWRlciAhPT0gJ3N0cmluZycpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAnW3NwaWZmeS1haV0gaXNBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2U6IHByb3ZpZGVyIGlzIG5vdCBhIHN0cmluZycsXG4gICAgICBkYXRhLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5jb25zdCBpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0dvb2dsZUFuYWx5dGljcyA9IChcbiAgZGF0YTogdW5rbm93bixcbik6IGRhdGEgaXMgQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAnW3NwaWZmeS1haV0gaXNBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3M6IGRhdGEgaXMgbm90IGFuIG9iamVjdCcsXG4gICAgICBkYXRhLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ21lYXN1cmVtZW50X2lkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5tZWFzdXJlbWVudF9pZCAhPT0gJ3N0cmluZycpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAnW3NwaWZmeS1haV0gaXNBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3M6IG1lYXN1cmVtZW50X2lkIGlzIG5vdCBhIHN0cmluZycsXG4gICAgICBkYXRhLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gZGF0YVxuICogQHJldHVybnNcbiAqL1xuY29uc3QgaXNBcGlPcmdBbmFseXRpY3NDb25maWcgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgQXBpT3JnQW5hbHl0aWNzQ29uZmlnID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQW5hbHl0aWNzQ29uZmlnOiBkYXRhIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ2FtcGxpdHVkZScgaW4gZGF0YSAmJiAhaXNBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGUoZGF0YS5hbXBsaXR1ZGUpKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0FuYWx5dGljc0NvbmZpZzogYW1wbGl0dWRlIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ2N1c3RvbWVyX3NlcnZpY2UnIGluIGRhdGEgJiZcbiAgICAhaXNBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2UoZGF0YS5jdXN0b21lcl9zZXJ2aWNlKVxuICApIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQW5hbHl0aWNzQ29uZmlnOiBjdXN0b21lcl9zZXJ2aWNlIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ2dvb2dsZV9hbmFseXRpY3MnIGluIGRhdGEgJiZcbiAgICAhaXNBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3MoZGF0YS5nb29nbGVfYW5hbHl0aWNzKVxuICApIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQW5hbHl0aWNzQ29uZmlnOiBnb29nbGVfYW5hbHl0aWNzIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBkYXRhXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgaXNBcGlPcmdhbml6YXRpb25Db25maWcgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgQXBpT3JnYW5pemF0aW9uQ29uZmlnID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQ29uZmlnOiBkYXRhIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnY3JlYXRlZF9hdCcgaW4gZGF0YSkpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQ29uZmlnOiBjcmVhdGVkX2F0IGlzIG5vdCBkZWZpbmVkJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ25hbWVzcGFjZScgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEubmFtZXNwYWNlICE9PSAnc3RyaW5nJykge1xuICAgIExvZ2dlci5sb2dEZWJ1ZygnW3NwaWZmeS1haV0gaXNPcmdDb25maWc6IG5hbWVzcGFjZSBpcyBub3QgYSBzdHJpbmcnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnaXNfbGF0ZXN0JyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5pc19sYXRlc3QgIT09ICdib29sZWFuJykge1xuICAgIExvZ2dlci5sb2dEZWJ1ZygnW3NwaWZmeS1haV0gaXNPcmdDb25maWc6IGlzX2xhdGVzdCBpcyBub3QgYSBib29sZWFuJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3ZlcnNpb24nIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLnZlcnNpb24gIT09ICdzdHJpbmcnKSB7XG4gICAgTG9nZ2VyLmxvZ0RlYnVnKCdbc3BpZmZ5LWFpXSBpc09yZ0NvbmZpZzogdmVyc2lvbiBpcyBub3QgYSBzdHJpbmcnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgndXBkYXRlZF9hdCcgaW4gZGF0YSkpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQ29uZmlnOiB1cGRhdGVkX2F0IGlzIG5vdCBkZWZpbmVkJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICEoJ2NvbmZpZycgaW4gZGF0YSkgfHxcbiAgICB0eXBlb2YgZGF0YS5jb25maWcgIT09ICdvYmplY3QnIHx8XG4gICAgIWlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnKGRhdGEuY29uZmlnKVxuICApIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQ29uZmlnOiBjb25maWcgaXMgbm90IGFuIG9iamVjdCcsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgnb3JnYW5pemF0aW9uX2lkJyBpbiBkYXRhICYmIHR5cGVvZiBkYXRhLm9yZ2FuaXphdGlvbl9pZCAhPT0gJ3N0cmluZycpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQ29uZmlnOiBvcmdhbml6YXRpb25faWQgaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdpZCcgaW4gZGF0YSAmJiB0eXBlb2YgZGF0YS5pZCAhPT0gJ3N0cmluZycpIHtcbiAgICBMb2dnZXIubG9nRGVidWcoJ1tzcGlmZnktYWldIGlzT3JnQ29uZmlnOiBpZCBpcyBub3QgYSBzdHJpbmcnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQThCQSxNQUFNLG9DQUNKLFNBQzJDO0FBQzNDLEtBQUksUUFBUSxRQUFRLE9BQU8sU0FBUyxVQUFVO0FBQzVDLGlCQUFPLFNBQVMsdUVBQXVFLEtBQUs7QUFDNUYsU0FBTzs7QUFHVCxLQUFJLEVBQUUs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
117
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlPcmdhbml6YXRpb25Db25maWcuanMiLCJuYW1lcyI6WyJMb2dnZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlPcmdhbml6YXRpb25Db25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uQ29uZmlnIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcblxuLy8gdGhlIFwiY29uZmlnXCIgcHJvcGVydHkgaXMgYSBnZW5lcmljIG9iamVjdCBpbiB0aGUgY29tbWVyY2UgYXBpIHNwZWMsIHRoZXNlIGludGVyZmFjZXNcbi8vIGFyZSB1c2VkIHRvIHZhbGlkYXRlIHRoZSBzdHJ1Y3R1cmUgb2YgdGhhdCBvYmplY3QgYW5kIHRvIHRyYW5zZm9ybSB0aGUgYXBpIHJlc3BvbnNlXG4vLyBpbnRvIGEgdHlwZWQgb2JqZWN0IGZvciB0aGUgZnJvbnRlbmQuIERvIG5vdCB1c2UgdGhlc2UgaW50ZXJmYWNlcyBmb3IgYW55dGhpbmcgZWxzZS5cbmludGVyZmFjZSBBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGUge1xuICBzZXNzaW9uX3JlcGxheV9lbmFibGVkOiBib29sZWFuO1xuICBzZXNzaW9uX3JlcGxheV9zYW1wbGVfcmF0ZTogbnVtYmVyO1xuICB0cmFja2luZ19lbmFibGVkOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlIHtcbiAgcHJvdmlkZXI6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0dvb2dsZUFuYWx5dGljcyB7XG4gIG1lYXN1cmVtZW50X2lkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBcGlPcmdBbmFseXRpY3NDb25maWcge1xuICBhbXBsaXR1ZGU/OiBBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGU7XG4gIGN1c3RvbWVyX3NlcnZpY2U/OiBBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2U7XG4gIGdvb2dsZV9hbmFseXRpY3M/OiBBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpT3JnYW5pemF0aW9uQ29uZmlnIGV4dGVuZHMgT3JnYW5pemF0aW9uQ29uZmlnIHtcbiAgY29uZmlnOiBBcGlPcmdBbmFseXRpY3NDb25maWc7XG59XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2lzQXBpT3JnYW5pemF0aW9uQ29uZmlnJyk7XG5cbmNvbnN0IGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQW1wbGl0dWRlID0gKFxuICBkYXRhOiB1bmtub3duLFxuKTogZGF0YSBpcyBBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGUgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnaXNBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGU6IGRhdGEgaXMgbm90IGFuIG9iamVjdCcsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdzZXNzaW9uX3JlcGxheV9lbmFibGVkJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5zZXNzaW9uX3JlcGxheV9lbmFibGVkICE9PSAnYm9vbGVhbicpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAnaXNBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGU6IHNlc3Npb25fcmVwbGF5X2VuYWJsZWQgaXMgbm90IGEgYm9vbGVhbicsXG4gICAgICBkYXRhLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICEoJ3Nlc3Npb25fcmVwbGF5X3NhbXBsZV9yYXRlJyBpbiBkYXRhKSB8fFxuICAgIHR5cGVvZiBkYXRhLnNlc3Npb25fcmVwbGF5X3NhbXBsZV9yYXRlICE9PSAnbnVtYmVyJ1xuICApIHtcbiAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAnaXNBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGU6IHNlc3Npb25fcmVwbGF5X3NhbXBsZV9yYXRlIGlzIG5vdCBhIG51bWJlcicsXG4gICAgICBkYXRhLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3RyYWNraW5nX2VuYWJsZWQnIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLnRyYWNraW5nX2VuYWJsZWQgIT09ICdib29sZWFuJykge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnaXNBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGU6IHRyYWNraW5nX2VuYWJsZWQgaXMgbm90IGEgYm9vbGVhbicsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuY29uc3QgaXNBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2UgPSAoXG4gIGRhdGE6IHVua25vd24sXG4pOiBkYXRhIGlzIEFwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZSA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0N1c3RvbWVyU2VydmljZTogZGF0YSBpcyBub3QgYW4gb2JqZWN0JywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3Byb3ZpZGVyJyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5wcm92aWRlciAhPT0gJ3N0cmluZycpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzQXBpT3JnQW5hbHl0aWNzQ29uZmlnQ3VzdG9tZXJTZXJ2aWNlOiBwcm92aWRlciBpcyBub3QgYSBzdHJpbmcnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmNvbnN0IGlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnR29vZ2xlQW5hbHl0aWNzID0gKFxuICBkYXRhOiB1bmtub3duLFxuKTogZGF0YSBpcyBBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3MgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnaXNBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3M6IGRhdGEgaXMgbm90IGFuIG9iamVjdCcsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghKCdtZWFzdXJlbWVudF9pZCcgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEubWVhc3VyZW1lbnRfaWQgIT09ICdzdHJpbmcnKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc0FwaU9yZ0FuYWx5dGljc0NvbmZpZ0dvb2dsZUFuYWx5dGljczogbWVhc3VyZW1lbnRfaWQgaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0gZGF0YVxuICogQHJldHVybnNcbiAqL1xuY29uc3QgaXNBcGlPcmdBbmFseXRpY3NDb25maWcgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgQXBpT3JnQW5hbHl0aWNzQ29uZmlnID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQW5hbHl0aWNzQ29uZmlnOiBkYXRhIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoJ2FtcGxpdHVkZScgaW4gZGF0YSAmJiAhaXNBcGlPcmdBbmFseXRpY3NDb25maWdBbXBsaXR1ZGUoZGF0YS5hbXBsaXR1ZGUpKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0FuYWx5dGljc0NvbmZpZzogYW1wbGl0dWRlIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ2N1c3RvbWVyX3NlcnZpY2UnIGluIGRhdGEgJiZcbiAgICAhaXNBcGlPcmdBbmFseXRpY3NDb25maWdDdXN0b21lclNlcnZpY2UoZGF0YS5jdXN0b21lcl9zZXJ2aWNlKVxuICApIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQW5hbHl0aWNzQ29uZmlnOiBjdXN0b21lcl9zZXJ2aWNlIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgJ2dvb2dsZV9hbmFseXRpY3MnIGluIGRhdGEgJiZcbiAgICAhaXNBcGlPcmdBbmFseXRpY3NDb25maWdHb29nbGVBbmFseXRpY3MoZGF0YS5nb29nbGVfYW5hbHl0aWNzKVxuICApIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQW5hbHl0aWNzQ29uZmlnOiBnb29nbGVfYW5hbHl0aWNzIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBkYXRhXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgaXNBcGlPcmdhbml6YXRpb25Db25maWcgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgQXBpT3JnYW5pemF0aW9uQ29uZmlnID0+IHtcbiAgaWYgKGRhdGEgPT0gbnVsbCB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQ29uZmlnOiBkYXRhIGlzIG5vdCBhbiBvYmplY3QnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnY3JlYXRlZF9hdCcgaW4gZGF0YSkpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQ29uZmlnOiBjcmVhdGVkX2F0IGlzIG5vdCBkZWZpbmVkJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ25hbWVzcGFjZScgaW4gZGF0YSkgfHwgdHlwZW9mIGRhdGEubmFtZXNwYWNlICE9PSAnc3RyaW5nJykge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnaXNPcmdDb25maWc6IG5hbWVzcGFjZSBpcyBub3QgYSBzdHJpbmcnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgnaXNfbGF0ZXN0JyBpbiBkYXRhKSB8fCB0eXBlb2YgZGF0YS5pc19sYXRlc3QgIT09ICdib29sZWFuJykge1xuICAgIGxvZ2dlci5sb2dEZWJ1ZygnaXNPcmdDb25maWc6IGlzX2xhdGVzdCBpcyBub3QgYSBib29sZWFuJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3ZlcnNpb24nIGluIGRhdGEpIHx8IHR5cGVvZiBkYXRhLnZlcnNpb24gIT09ICdzdHJpbmcnKSB7XG4gICAgbG9nZ2VyLmxvZ0RlYnVnKCdpc09yZ0NvbmZpZzogdmVyc2lvbiBpcyBub3QgYSBzdHJpbmcnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgndXBkYXRlZF9hdCcgaW4gZGF0YSkpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQ29uZmlnOiB1cGRhdGVkX2F0IGlzIG5vdCBkZWZpbmVkJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICEoJ2NvbmZpZycgaW4gZGF0YSkgfHxcbiAgICB0eXBlb2YgZGF0YS5jb25maWcgIT09ICdvYmplY3QnIHx8XG4gICAgIWlzQXBpT3JnQW5hbHl0aWNzQ29uZmlnKGRhdGEuY29uZmlnKVxuICApIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQ29uZmlnOiBjb25maWcgaXMgbm90IGFuIG9iamVjdCcsIGRhdGEpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgnb3JnYW5pemF0aW9uX2lkJyBpbiBkYXRhICYmIHR5cGVvZiBkYXRhLm9yZ2FuaXphdGlvbl9pZCAhPT0gJ3N0cmluZycpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQ29uZmlnOiBvcmdhbml6YXRpb25faWQgaXMgbm90IGEgc3RyaW5nJywgZGF0YSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCdpZCcgaW4gZGF0YSAmJiB0eXBlb2YgZGF0YS5pZCAhPT0gJ3N0cmluZycpIHtcbiAgICBsb2dnZXIubG9nRGVidWcoJ2lzT3JnQ29uZmlnOiBpZCBpcyBub3QgYSBzdHJpbmcnLCBkYXRhKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7OztBQThCQSxNQUFNLFNBQVMsSUFBSUEsZUFBTywwQkFBMEI7QUFFcEQsTUFBTSxvQ0FDSixTQUMyQztBQUMzQyxLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUM1QyxTQUFPLFNBQVMsMkRBQTJELEtBQUs7QUFDaEYsU0FBTzs7QUFHVCxLQUFJLEVBQUUsNEJBQTRCLFNBQVMsT0FBTyxLQUFLLDJCQUEyQixXQUFXO0FBQzNGLFNBQU8sU0FDTCw2RUFDQSxLQUNEO0FBQ0QsU0FBTzs7QUFHVCxLQUNFLEVBQUUsZ0NBQWdDLFNBQ2xDLE9BQU8sS0FBSywrQkFBK0IsVUFDM0M7QUFDQSxTQUFPLFNBQ0wsZ0ZBQ0EsS0FDRDtBQUNELFNBQU87O0FBR1QsS0FBSSxFQUFFLHNCQUFzQixTQUFTLE9BQU8sS0FBSyxxQkFBcUIsV0FBVztBQUMvRSxTQUFPLFNBQVMsdUVBQXVFLEtBQUs7QUFDNUYsU0FBTzs7QUFHVCxRQUFPOztBQUdULE1BQU0sMENBQ0osU0FDaUQ7QUFDakQsS0FBSSxRQUFRLFFBQVEsT0FBTyxTQUFTLFVBQVU7QUFDNUMsU0FBTyxTQUFTLGlFQUFpRSxLQUFLO0FBQ3RGLFNBQU87O0FBR1QsS0FBSSxFQUFFLGNBQWMsU0FBUyxPQUFPLEtBQUssYUFBYSxVQUFVO0FBQzlELFNBQU8sU0FBUyxvRUFBb0UsS0FBSztBQUN6RixTQUFPOztBQUdULFFBQU87O0FBR1QsTUFBTSwwQ0FDSixTQUNpRDtBQUNqRCxLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUM1QyxTQUFPLFNBQVMsaUVBQWlFLEtBQUs7QUFDdEYsU0FBTzs7QUFHVCxLQUFJLEVBQUUsb0JBQW9CLFNBQVMsT0FBTyxLQUFLLG1CQUFtQixVQUFVO0FBQzFFLFNBQU8sU0FBUywwRUFBMEUsS0FBSztBQUMvRixTQUFPOztBQUdULFFBQU87Ozs7Ozs7QUFRVCxNQUFNLDJCQUEyQixTQUFpRDtBQUNoRixLQUFJLFFBQVEsUUFBUSxPQUFPLFNBQVMsVUFBVTtBQUM1QyxTQUFPLFNBQVMsK0NBQStDLEtBQUs7QUFDcEUsU0FBTzs7QUFHVCxLQUFJLGVBQWUsUUFBUSxDQUFDLGlDQUFpQyxLQUFLLFVBQVUsRUFBRTtBQUM1RSxTQUFPLFNBQVMsb0RBQW9ELEtBQUs7QUFDekUsU0FBTzs7QUFHVCxLQUNFLHNCQUFzQixRQUN0QixDQUFDLHVDQUF1QyxLQUFLLGlCQUFpQixFQUM5RDtBQUNBLFNBQU8sU0FBUywyREFBMkQsS0FBSztBQUNoRixTQUFPOztBQUdULEtBQ0Usc0JBQXNCLFFBQ3RCLENBQUMsdUNBQXVDLEtBQUssaUJBQWlCLEVBQzlEO0FBQ0EsU0FBTyxTQUFTLDJEQUEyRCxLQUFLO0FBQ2hGLFNBQU87O0FBR1QsUUFBTzs7Ozs7OztBQVFULE1BQWEsMkJBQTJCLFNBQWlEO0FBQ3ZGLEtBQUksUUFBUSxRQUFRLE9BQU8sU0FBUyxVQUFVO0FBQzVDLFNBQU8sU0FBUyxzQ0FBc0MsS0FBSztBQUMzRCxTQUFPOztBQUdULEtBQUksRUFBRSxnQkFBZ0IsT0FBTztBQUMzQixTQUFPLFNBQVMsMENBQTBDLEtBQUs7QUFDL0QsU0FBTzs7QUFHVCxLQUFJLEVBQUUsZUFBZSxTQUFTLE9BQU8sS0FBSyxjQUFjLFVBQVU7QUFDaEUsU0FBTyxTQUFTLDBDQUEwQyxLQUFLO0FBQy9ELFNBQU87O0FBR1QsS0FBSSxFQUFFLGVBQWUsU0FBUyxPQUFPLEtBQUssY0FBYyxXQUFXO0FBQ2pFLFNBQU8sU0FBUywyQ0FBMkMsS0FBSztBQUNoRSxTQUFPOztBQUdULEtBQUksRUFBRSxhQUFhLFNBQVMsT0FBTyxLQUFLLFlBQVksVUFBVTtBQUM1RCxTQUFPLFNBQVMsd0NBQXdDLEtBQUs7QUFDN0QsU0FBTzs7QUFHVCxLQUFJLEVBQUUsZ0JBQWdCLE9BQU87QUFDM0IsU0FBTyxTQUFTLDBDQUEwQyxLQUFLO0FBQy9ELFNBQU87O0FBR1QsS0FDRSxFQUFFLFlBQVksU0FDZCxPQUFPLEtBQUssV0FBVyxZQUN2QixDQUFDLHdCQUF3QixLQUFLLE9BQU8sRUFDckM7QUFDQSxTQUFPLFNBQVMsd0NBQXdDLEtBQUs7QUFDN0QsU0FBTzs7QUFHVCxLQUFJLHFCQUFxQixRQUFRLE9BQU8sS0FBSyxvQkFBb0IsVUFBVTtBQUN6RSxTQUFPLFNBQVMsZ0RBQWdELEtBQUs7QUFDckUsU0FBTzs7QUFHVCxLQUFJLFFBQVEsUUFBUSxPQUFPLEtBQUssT0FBTyxVQUFVO0FBQy9DLFNBQU8sU0FBUyxtQ0FBbUMsS0FBSztBQUN4RCxTQUFPOztBQUdULFFBQU8ifQ==
@@ -2,45 +2,46 @@ const require_logger = require('../../../logging/logger.cjs');
2
2
  const require_application_models_guards_utils = require('../utils.cjs');
3
3
 
4
4
  //#region src/application/models/guards/api/isApiProductResponseAttributes.ts
5
+ const logger = new require_logger.default("isApiProductResponseAttributes");
5
6
  const isApiProductResponseAttributes = (attributes) => {
6
7
  if (attributes == null || typeof attributes !== "object") {
7
- require_logger.default.logError("isApiProductResponseAttributes: attributes is null or not an object", void 0, { attributes });
8
+ logger.logError("isApiProductResponseAttributes: attributes is null or not an object", void 0, { attributes });
8
9
  return false;
9
10
  }
10
11
  if (!require_application_models_guards_utils.hasPropertyOfType(attributes, "description", "string", true)) {
11
- require_logger.default.logError("isApiProductResponseAttributes: description is not a string", void 0, { attributes });
12
+ logger.logError("isApiProductResponseAttributes: description is not a string", void 0, { attributes });
12
13
  return false;
13
14
  }
14
15
  if (!require_application_models_guards_utils.hasPropertyOfType(attributes, "image_url", "string", true)) {
15
- require_logger.default.logError("isApiProductResponseAttributes: image_url is not a string", void 0, { attributes });
16
+ logger.logError("isApiProductResponseAttributes: image_url is not a string", void 0, { attributes });
16
17
  return false;
17
18
  }
18
19
  if (!require_application_models_guards_utils.hasPropertyOfType(attributes, "title", "string")) {
19
- require_logger.default.logError("isApiProductResponseAttributes: title is not a string", void 0, { attributes });
20
+ logger.logError("isApiProductResponseAttributes: title is not a string", void 0, { attributes });
20
21
  return false;
21
22
  }
22
23
  if (!require_application_models_guards_utils.hasPropertyOfType(attributes, "url", "string")) {
23
- require_logger.default.logError("isApiProductResponseAttributes: url is not a string", void 0, { attributes });
24
+ logger.logError("isApiProductResponseAttributes: url is not a string", void 0, { attributes });
24
25
  return false;
25
26
  }
26
27
  if (!require_application_models_guards_utils.hasPropertyOfType(attributes, "original_price", "number", true)) {
27
- require_logger.default.logError("isApiProductResponseAttributes: original_price is not a number", void 0, { attributes });
28
+ logger.logError("isApiProductResponseAttributes: original_price is not a number", void 0, { attributes });
28
29
  return false;
29
30
  }
30
31
  if (!require_application_models_guards_utils.hasPropertyOfType(attributes, "sale_price", "number", true)) {
31
- require_logger.default.logError("isApiProductResponseAttributes: sale_price is not a number", void 0, { attributes });
32
+ logger.logError("isApiProductResponseAttributes: sale_price is not a number", void 0, { attributes });
32
33
  return false;
33
34
  }
34
35
  if (!require_application_models_guards_utils.hasPropertyOfType(attributes, "average_rating", "number", true)) {
35
- require_logger.default.logError("isApiProductResponseAttributes: average_rating is not a number", void 0, { attributes });
36
+ logger.logError("isApiProductResponseAttributes: average_rating is not a number", void 0, { attributes });
36
37
  return false;
37
38
  }
38
39
  if (!require_application_models_guards_utils.hasPropertyOfType(attributes, "number_reviews", "number", true)) {
39
- require_logger.default.logError("isApiProductResponseAttributes: number_reviews is not a number", void 0, { attributes });
40
+ logger.logError("isApiProductResponseAttributes: number_reviews is not a number", void 0, { attributes });
40
41
  return false;
41
42
  }
42
43
  if (!require_application_models_guards_utils.hasPropertyOfType(attributes, "metadata", "array", true)) {
43
- require_logger.default.logError("isApiProductResponseAttributes: metadata is not an array", void 0, { attributes });
44
+ logger.logError("isApiProductResponseAttributes: metadata is not an array", void 0, { attributes });
44
45
  return false;
45
46
  }
46
47
  return true;
@@ -48,4 +49,4 @@ const isApiProductResponseAttributes = (attributes) => {
48
49
 
49
50
  //#endregion
50
51
  exports.isApiProductResponseAttributes = isApiProductResponseAttributes;
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzLmNqcyIsIm5hbWVzIjpbImhhc1Byb3BlcnR5T2ZUeXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBSZXNwb25zZVByb2R1Y3RBdHRyaWJ1dGVzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGhhc1Byb3BlcnR5T2ZUeXBlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzID0gKFxuICBhdHRyaWJ1dGVzOiB1bmtub3duLFxuKTogYXR0cmlidXRlcyBpcyBSZXNwb25zZVByb2R1Y3RBdHRyaWJ1dGVzID0+IHtcbiAgaWYgKGF0dHJpYnV0ZXMgPT0gbnVsbCB8fCB0eXBlb2YgYXR0cmlidXRlcyAhPT0gJ29iamVjdCcpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoXG4gICAgICAnaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzIGlzIG51bGwgb3Igbm90IGFuIG9iamVjdCcsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB7XG4gICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICB9LFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnZGVzY3JpcHRpb24nLCAnc3RyaW5nJywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogZGVzY3JpcHRpb24gaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ2ltYWdlX3VybCcsICdzdHJpbmcnLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBpbWFnZV91cmwgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3RpdGxlJywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHRpdGxlIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICd1cmwnLCAnc3RyaW5nJykpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogdXJsIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdvcmlnaW5hbF9wcmljZScsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBvcmlnaW5hbF9wcmljZSBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnc2FsZV9wcmljZScsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBzYWxlX3ByaWNlIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdhdmVyYWdlX3JhdGluZycsICdudW1iZXInLCB0cnVlKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiBhdmVyYWdlX3JhdGluZyBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnbnVtYmVyX3Jldmlld3MnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogbnVtYmVyX3Jldmlld3MgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ21ldGFkYXRhJywgJ2FycmF5JywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogbWV0YWRhdGEgaXMgbm90IGFuIGFycmF5JywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUlBLE1BQWEsa0NBQ1gsZUFDNEM7QUFDNUMsS0FBSSxjQUFjLFFBQVEsT0FBTyxlQUFlLFVBQVU7QUFDeEQseUJBQU8sU0FDTCx1RUFDQSxRQUNBLEVBQ0UsWUFDRCxDQUNGO0FBQ0QsU0FBTzs7QUFHVCxLQUFJLENBQUNBLDBEQUFrQixZQUFZLGVBQWUsVUFBVSxLQUFLLEVBQUU7QUFDakUseUJBQU8sU0FBUywrREFBK0QsUUFBVyxFQUN4RixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsMERBQWtCLFlBQVksYUFBYSxVQUFVLEtBQUssRUFBRTtBQUMvRCx5QkFBTyxTQUFTLDZEQUE2RCxRQUFXLEVBQ3RGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDQSwwREFBa0IsWUFBWSxTQUFTLFNBQVMsRUFBRTtBQUNyRCx5QkFBTyxTQUFTLHlEQUF5RCxRQUFXLEVBQ2xGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDQSwwREFBa0IsWUFBWSxPQUFPLFNBQVMsRUFBRTtBQUNuRCx5QkFBTyxTQUFTLHVEQUF1RCxRQUFXLEVBQ2hGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDQSwwREFBa0IsWUFBWSxrQkFBa0IsVUFBVSxLQUFLLEVBQUU7QUFDcEUseUJBQU8sU0FBUyxrRUFBa0UsUUFBVyxFQUMzRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsMERBQWtCLFlBQVksY0FBYyxVQUFVLEtBQUssRUFBRTtBQUNoRSx5QkFBTyxTQUFTLDhEQUE4RCxRQUFXLEVBQ3ZGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDQSwwREFBa0IsWUFBWSxrQkFBa0IsVUFBVSxLQUFLLEVBQUU7QUFDcEUseUJBQU8sU0FBUyxrRUFBa0UsUUFBVyxFQUMzRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsMERBQWtCLFlBQVksa0JBQWtCLFVBQVUsS0FBSyxFQUFFO0FBQ3BFLHlCQUFPLFNBQVMsa0VBQWtFLFFBQVcsRUFDM0YsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUNBLDBEQUFrQixZQUFZLFlBQVksU0FBUyxLQUFLLEVBQUU7QUFDN0QseUJBQU8sU0FBUyw0REFBNEQsUUFBVyxFQUNyRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULFFBQU8ifQ==
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzLmNqcyIsIm5hbWVzIjpbIkxvZ2dlciIsImhhc1Byb3BlcnR5T2ZUeXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBSZXNwb25zZVByb2R1Y3RBdHRyaWJ1dGVzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGhhc1Byb3BlcnR5T2ZUeXBlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMnKTtcblxuZXhwb3J0IGNvbnN0IGlzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcyA9IChcbiAgYXR0cmlidXRlczogdW5rbm93bixcbik6IGF0dHJpYnV0ZXMgaXMgUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyA9PiB7XG4gIGlmIChhdHRyaWJ1dGVzID09IG51bGwgfHwgdHlwZW9mIGF0dHJpYnV0ZXMgIT09ICdvYmplY3QnKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKFxuICAgICAgJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogYXR0cmlidXRlcyBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3QnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAge1xuICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ2Rlc2NyaXB0aW9uJywgJ3N0cmluZycsIHRydWUpKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGRlc2NyaXB0aW9uIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdpbWFnZV91cmwnLCAnc3RyaW5nJywgdHJ1ZSkpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogaW1hZ2VfdXJsIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICd0aXRsZScsICdzdHJpbmcnKSkge1xuICAgIGxvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiB0aXRsZSBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAndXJsJywgJ3N0cmluZycpKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHVybCBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnb3JpZ2luYWxfcHJpY2UnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogb3JpZ2luYWxfcHJpY2UgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3NhbGVfcHJpY2UnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogc2FsZV9wcmljZSBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnYXZlcmFnZV9yYXRpbmcnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogYXZlcmFnZV9yYXRpbmcgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ251bWJlcl9yZXZpZXdzJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IG51bWJlcl9yZXZpZXdzIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdtZXRhZGF0YScsICdhcnJheScsIHRydWUpKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IG1ldGFkYXRhIGlzIG5vdCBhbiBhcnJheScsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFJQSxNQUFNLFNBQVMsSUFBSUEsdUJBQU8saUNBQWlDO0FBRTNELE1BQWEsa0NBQ1gsZUFDNEM7QUFDNUMsS0FBSSxjQUFjLFFBQVEsT0FBTyxlQUFlLFVBQVU7QUFDeEQsU0FBTyxTQUNMLHVFQUNBLFFBQ0EsRUFDRSxZQUNELENBQ0Y7QUFDRCxTQUFPOztBQUdULEtBQUksQ0FBQ0MsMERBQWtCLFlBQVksZUFBZSxVQUFVLEtBQUssRUFBRTtBQUNqRSxTQUFPLFNBQVMsK0RBQStELFFBQVcsRUFDeEYsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUNBLDBEQUFrQixZQUFZLGFBQWEsVUFBVSxLQUFLLEVBQUU7QUFDL0QsU0FBTyxTQUFTLDZEQUE2RCxRQUFXLEVBQ3RGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDQSwwREFBa0IsWUFBWSxTQUFTLFNBQVMsRUFBRTtBQUNyRCxTQUFPLFNBQVMseURBQXlELFFBQVcsRUFDbEYsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUNBLDBEQUFrQixZQUFZLE9BQU8sU0FBUyxFQUFFO0FBQ25ELFNBQU8sU0FBUyx1REFBdUQsUUFBVyxFQUNoRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsMERBQWtCLFlBQVksa0JBQWtCLFVBQVUsS0FBSyxFQUFFO0FBQ3BFLFNBQU8sU0FBUyxrRUFBa0UsUUFBVyxFQUMzRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsMERBQWtCLFlBQVksY0FBYyxVQUFVLEtBQUssRUFBRTtBQUNoRSxTQUFPLFNBQVMsOERBQThELFFBQVcsRUFDdkYsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUNBLDBEQUFrQixZQUFZLGtCQUFrQixVQUFVLEtBQUssRUFBRTtBQUNwRSxTQUFPLFNBQVMsa0VBQWtFLFFBQVcsRUFDM0YsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUNBLDBEQUFrQixZQUFZLGtCQUFrQixVQUFVLEtBQUssRUFBRTtBQUNwRSxTQUFPLFNBQVMsa0VBQWtFLFFBQVcsRUFDM0YsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUNBLDBEQUFrQixZQUFZLFlBQVksU0FBUyxLQUFLLEVBQUU7QUFDN0QsU0FBTyxTQUFTLDREQUE0RCxRQUFXLEVBQ3JGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsUUFBTyJ9
@@ -2,45 +2,46 @@ import logger_default from "../../../logging/logger.js";
2
2
  import { hasPropertyOfType } from "../utils.js";
3
3
 
4
4
  //#region src/application/models/guards/api/isApiProductResponseAttributes.ts
5
+ const logger = new logger_default("isApiProductResponseAttributes");
5
6
  const isApiProductResponseAttributes = (attributes) => {
6
7
  if (attributes == null || typeof attributes !== "object") {
7
- logger_default.logError("isApiProductResponseAttributes: attributes is null or not an object", void 0, { attributes });
8
+ logger.logError("isApiProductResponseAttributes: attributes is null or not an object", void 0, { attributes });
8
9
  return false;
9
10
  }
10
11
  if (!hasPropertyOfType(attributes, "description", "string", true)) {
11
- logger_default.logError("isApiProductResponseAttributes: description is not a string", void 0, { attributes });
12
+ logger.logError("isApiProductResponseAttributes: description is not a string", void 0, { attributes });
12
13
  return false;
13
14
  }
14
15
  if (!hasPropertyOfType(attributes, "image_url", "string", true)) {
15
- logger_default.logError("isApiProductResponseAttributes: image_url is not a string", void 0, { attributes });
16
+ logger.logError("isApiProductResponseAttributes: image_url is not a string", void 0, { attributes });
16
17
  return false;
17
18
  }
18
19
  if (!hasPropertyOfType(attributes, "title", "string")) {
19
- logger_default.logError("isApiProductResponseAttributes: title is not a string", void 0, { attributes });
20
+ logger.logError("isApiProductResponseAttributes: title is not a string", void 0, { attributes });
20
21
  return false;
21
22
  }
22
23
  if (!hasPropertyOfType(attributes, "url", "string")) {
23
- logger_default.logError("isApiProductResponseAttributes: url is not a string", void 0, { attributes });
24
+ logger.logError("isApiProductResponseAttributes: url is not a string", void 0, { attributes });
24
25
  return false;
25
26
  }
26
27
  if (!hasPropertyOfType(attributes, "original_price", "number", true)) {
27
- logger_default.logError("isApiProductResponseAttributes: original_price is not a number", void 0, { attributes });
28
+ logger.logError("isApiProductResponseAttributes: original_price is not a number", void 0, { attributes });
28
29
  return false;
29
30
  }
30
31
  if (!hasPropertyOfType(attributes, "sale_price", "number", true)) {
31
- logger_default.logError("isApiProductResponseAttributes: sale_price is not a number", void 0, { attributes });
32
+ logger.logError("isApiProductResponseAttributes: sale_price is not a number", void 0, { attributes });
32
33
  return false;
33
34
  }
34
35
  if (!hasPropertyOfType(attributes, "average_rating", "number", true)) {
35
- logger_default.logError("isApiProductResponseAttributes: average_rating is not a number", void 0, { attributes });
36
+ logger.logError("isApiProductResponseAttributes: average_rating is not a number", void 0, { attributes });
36
37
  return false;
37
38
  }
38
39
  if (!hasPropertyOfType(attributes, "number_reviews", "number", true)) {
39
- logger_default.logError("isApiProductResponseAttributes: number_reviews is not a number", void 0, { attributes });
40
+ logger.logError("isApiProductResponseAttributes: number_reviews is not a number", void 0, { attributes });
40
41
  return false;
41
42
  }
42
43
  if (!hasPropertyOfType(attributes, "metadata", "array", true)) {
43
- logger_default.logError("isApiProductResponseAttributes: metadata is not an array", void 0, { attributes });
44
+ logger.logError("isApiProductResponseAttributes: metadata is not an array", void 0, { attributes });
44
45
  return false;
45
46
  }
46
47
  return true;
@@ -48,4 +49,4 @@ const isApiProductResponseAttributes = (attributes) => {
48
49
 
49
50
  //#endregion
50
51
  export { isApiProductResponseAttributes };
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL2FwaS9pc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBoYXNQcm9wZXJ0eU9mVHlwZSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGlzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcyA9IChcbiAgYXR0cmlidXRlczogdW5rbm93bixcbik6IGF0dHJpYnV0ZXMgaXMgUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyA9PiB7XG4gIGlmIChhdHRyaWJ1dGVzID09IG51bGwgfHwgdHlwZW9mIGF0dHJpYnV0ZXMgIT09ICdvYmplY3QnKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKFxuICAgICAgJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogYXR0cmlidXRlcyBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3QnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAge1xuICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ2Rlc2NyaXB0aW9uJywgJ3N0cmluZycsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGRlc2NyaXB0aW9uIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdpbWFnZV91cmwnLCAnc3RyaW5nJywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogaW1hZ2VfdXJsIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICd0aXRsZScsICdzdHJpbmcnKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiB0aXRsZSBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAndXJsJywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHVybCBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnb3JpZ2luYWxfcHJpY2UnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogb3JpZ2luYWxfcHJpY2UgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3NhbGVfcHJpY2UnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogc2FsZV9wcmljZSBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnYXZlcmFnZV9yYXRpbmcnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogYXZlcmFnZV9yYXRpbmcgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ251bWJlcl9yZXZpZXdzJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IG51bWJlcl9yZXZpZXdzIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdtZXRhZGF0YScsICdhcnJheScsIHRydWUpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IG1ldGFkYXRhIGlzIG5vdCBhbiBhcnJheScsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFJQSxNQUFhLGtDQUNYLGVBQzRDO0FBQzVDLEtBQUksY0FBYyxRQUFRLE9BQU8sZUFBZSxVQUFVO0FBQ3hELGlCQUFPLFNBQ0wsdUVBQ0EsUUFDQSxFQUNFLFlBQ0QsQ0FDRjtBQUNELFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixZQUFZLGVBQWUsVUFBVSxLQUFLLEVBQUU7QUFDakUsaUJBQU8sU0FBUywrREFBK0QsUUFBVyxFQUN4RixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQyxrQkFBa0IsWUFBWSxhQUFhLFVBQVUsS0FBSyxFQUFFO0FBQy9ELGlCQUFPLFNBQVMsNkRBQTZELFFBQVcsRUFDdEYsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUMsa0JBQWtCLFlBQVksU0FBUyxTQUFTLEVBQUU7QUFDckQsaUJBQU8sU0FBUyx5REFBeUQsUUFBVyxFQUNsRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQyxrQkFBa0IsWUFBWSxPQUFPLFNBQVMsRUFBRTtBQUNuRCxpQkFBTyxTQUFTLHVEQUF1RCxRQUFXLEVBQ2hGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixZQUFZLGtCQUFrQixVQUFVLEtBQUssRUFBRTtBQUNwRSxpQkFBTyxTQUFTLGtFQUFrRSxRQUFXLEVBQzNGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixZQUFZLGNBQWMsVUFBVSxLQUFLLEVBQUU7QUFDaEUsaUJBQU8sU0FBUyw4REFBOEQsUUFBVyxFQUN2RixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQyxrQkFBa0IsWUFBWSxrQkFBa0IsVUFBVSxLQUFLLEVBQUU7QUFDcEUsaUJBQU8sU0FBUyxrRUFBa0UsUUFBVyxFQUMzRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQyxrQkFBa0IsWUFBWSxrQkFBa0IsVUFBVSxLQUFLLEVBQUU7QUFDcEUsaUJBQU8sU0FBUyxrRUFBa0UsUUFBVyxFQUMzRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQyxrQkFBa0IsWUFBWSxZQUFZLFNBQVMsS0FBSyxFQUFFO0FBQzdELGlCQUFPLFNBQVMsNERBQTRELFFBQVcsRUFDckYsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxRQUFPIn0=
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzLmpzIiwibmFtZXMiOlsiTG9nZ2VyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL21vZGVscy9ndWFyZHMvYXBpL2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBSZXNwb25zZVByb2R1Y3RBdHRyaWJ1dGVzIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IGhhc1Byb3BlcnR5T2ZUeXBlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXMnKTtcblxuZXhwb3J0IGNvbnN0IGlzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlcyA9IChcbiAgYXR0cmlidXRlczogdW5rbm93bixcbik6IGF0dHJpYnV0ZXMgaXMgUmVzcG9uc2VQcm9kdWN0QXR0cmlidXRlcyA9PiB7XG4gIGlmIChhdHRyaWJ1dGVzID09IG51bGwgfHwgdHlwZW9mIGF0dHJpYnV0ZXMgIT09ICdvYmplY3QnKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKFxuICAgICAgJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogYXR0cmlidXRlcyBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3QnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAge1xuICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgfSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ2Rlc2NyaXB0aW9uJywgJ3N0cmluZycsIHRydWUpKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IGRlc2NyaXB0aW9uIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdpbWFnZV91cmwnLCAnc3RyaW5nJywgdHJ1ZSkpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogaW1hZ2VfdXJsIGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICd0aXRsZScsICdzdHJpbmcnKSkge1xuICAgIGxvZ2dlci5sb2dFcnJvcignaXNBcGlQcm9kdWN0UmVzcG9uc2VBdHRyaWJ1dGVzOiB0aXRsZSBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAndXJsJywgJ3N0cmluZycpKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IHVybCBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnb3JpZ2luYWxfcHJpY2UnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogb3JpZ2luYWxfcHJpY2UgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ3NhbGVfcHJpY2UnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogc2FsZV9wcmljZSBpcyBub3QgYSBudW1iZXInLCB1bmRlZmluZWQsIHtcbiAgICAgIGF0dHJpYnV0ZXMsXG4gICAgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShhdHRyaWJ1dGVzLCAnYXZlcmFnZV9yYXRpbmcnLCAnbnVtYmVyJywgdHJ1ZSkpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2lzQXBpUHJvZHVjdFJlc3BvbnNlQXR0cmlidXRlczogYXZlcmFnZV9yYXRpbmcgaXMgbm90IGEgbnVtYmVyJywgdW5kZWZpbmVkLCB7XG4gICAgICBhdHRyaWJ1dGVzLFxuICAgIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoYXR0cmlidXRlcywgJ251bWJlcl9yZXZpZXdzJywgJ251bWJlcicsIHRydWUpKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IG51bWJlcl9yZXZpZXdzIGlzIG5vdCBhIG51bWJlcicsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGF0dHJpYnV0ZXMsICdtZXRhZGF0YScsICdhcnJheScsIHRydWUpKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVByb2R1Y3RSZXNwb25zZUF0dHJpYnV0ZXM6IG1ldGFkYXRhIGlzIG5vdCBhbiBhcnJheScsIHVuZGVmaW5lZCwge1xuICAgICAgYXR0cmlidXRlcyxcbiAgICB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFJQSxNQUFNLFNBQVMsSUFBSUEsZUFBTyxpQ0FBaUM7QUFFM0QsTUFBYSxrQ0FDWCxlQUM0QztBQUM1QyxLQUFJLGNBQWMsUUFBUSxPQUFPLGVBQWUsVUFBVTtBQUN4RCxTQUFPLFNBQ0wsdUVBQ0EsUUFDQSxFQUNFLFlBQ0QsQ0FDRjtBQUNELFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixZQUFZLGVBQWUsVUFBVSxLQUFLLEVBQUU7QUFDakUsU0FBTyxTQUFTLCtEQUErRCxRQUFXLEVBQ3hGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixZQUFZLGFBQWEsVUFBVSxLQUFLLEVBQUU7QUFDL0QsU0FBTyxTQUFTLDZEQUE2RCxRQUFXLEVBQ3RGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixZQUFZLFNBQVMsU0FBUyxFQUFFO0FBQ3JELFNBQU8sU0FBUyx5REFBeUQsUUFBVyxFQUNsRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQyxrQkFBa0IsWUFBWSxPQUFPLFNBQVMsRUFBRTtBQUNuRCxTQUFPLFNBQVMsdURBQXVELFFBQVcsRUFDaEYsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUMsa0JBQWtCLFlBQVksa0JBQWtCLFVBQVUsS0FBSyxFQUFFO0FBQ3BFLFNBQU8sU0FBUyxrRUFBa0UsUUFBVyxFQUMzRixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQyxrQkFBa0IsWUFBWSxjQUFjLFVBQVUsS0FBSyxFQUFFO0FBQ2hFLFNBQU8sU0FBUyw4REFBOEQsUUFBVyxFQUN2RixZQUNELENBQUM7QUFDRixTQUFPOztBQUdULEtBQUksQ0FBQyxrQkFBa0IsWUFBWSxrQkFBa0IsVUFBVSxLQUFLLEVBQUU7QUFDcEUsU0FBTyxTQUFTLGtFQUFrRSxRQUFXLEVBQzNGLFlBQ0QsQ0FBQztBQUNGLFNBQU87O0FBR1QsS0FBSSxDQUFDLGtCQUFrQixZQUFZLGtCQUFrQixVQUFVLEtBQUssRUFBRTtBQUNwRSxTQUFPLFNBQVMsa0VBQWtFLFFBQVcsRUFDM0YsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxLQUFJLENBQUMsa0JBQWtCLFlBQVksWUFBWSxTQUFTLEtBQUssRUFBRTtBQUM3RCxTQUFPLFNBQVMsNERBQTRELFFBQVcsRUFDckYsWUFDRCxDQUFDO0FBQ0YsU0FBTzs7QUFHVCxRQUFPIn0=
@@ -4,25 +4,26 @@ const require_application_models_guards_utils = require('../utils.cjs');
4
4
  let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
5
5
 
6
6
  //#region src/application/models/guards/api/isApiResponse.ts
7
+ const logger = new require_logger.default("isApiResponse");
7
8
  const isApiResponse = (data) => {
8
9
  if (data == null || typeof data !== "object") {
9
- require_logger.default.logError("isApiResponse: data is null or not an object", void 0, { data });
10
+ logger.logError("isApiResponse: data is null or not an object", void 0, { data });
10
11
  return false;
11
12
  }
12
13
  if (!require_application_models_guards_utils.hasPropertyOfType(data, "id", "string")) {
13
- require_logger.default.logError("isApiResponse: id is not a string", void 0, { data });
14
+ logger.logError("isApiResponse: id is not a string", void 0, { data });
14
15
  return false;
15
16
  }
16
17
  if (!require_application_models_guards_utils.hasPropertyOfType(data, "category", "string") || !Object.values(__spiffy_ai_commerce_api_client.ResponseCategory).includes(data.category)) {
17
- require_logger.default.logError("isApiResponse: category is not a string or not a valid response category", void 0, { data });
18
+ logger.logError("isApiResponse: category is not a string or not a valid response category", void 0, { data });
18
19
  return false;
19
20
  }
20
21
  if (!require_application_models_guards_utils.hasPropertyOfType(data, "created_at", "string")) {
21
- require_logger.default.logError("isApiResponse: created_at is not a string", void 0, { data });
22
+ logger.logError("isApiResponse: created_at is not a string", void 0, { data });
22
23
  return false;
23
24
  }
24
25
  if (!require_application_models_guards_utils.hasPropertyOfType(data, "attributes", "object", true)) {
25
- require_logger.default.logError("isApiResponse: attributes is not an object", void 0, { data });
26
+ logger.logError("isApiResponse: attributes is not an object", void 0, { data });
26
27
  return false;
27
28
  }
28
29
  return true;
@@ -30,4 +31,4 @@ const isApiResponse = (data) => {
30
31
 
31
32
  //#endregion
32
33
  exports.isApiResponse = isApiResponse;
33
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlSZXNwb25zZS5janMiLCJuYW1lcyI6WyJoYXNQcm9wZXJ0eU9mVHlwZSIsIlJlc3BvbnNlQ2F0ZWdvcnkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXNwb25zZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBSZXNwb25zZSwgUmVzcG9uc2VDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBoYXNQcm9wZXJ0eU9mVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGlzQXBpUmVzcG9uc2UgPSAoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgUmVzcG9uc2UgPT4ge1xuICBpZiAoZGF0YSA9PSBudWxsIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogZGF0YSBpcyBudWxsIG9yIG5vdCBhbiBvYmplY3QnLCB1bmRlZmluZWQsIHsgZGF0YSB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdpZCcsICdzdHJpbmcnKSkge1xuICAgIExvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogaWQgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFxuICAgICFoYXNQcm9wZXJ0eU9mVHlwZShkYXRhLCAnY2F0ZWdvcnknLCAnc3RyaW5nJykgfHxcbiAgICAhT2JqZWN0LnZhbHVlcyhSZXNwb25zZUNhdGVnb3J5KS5pbmNsdWRlcyhkYXRhLmNhdGVnb3J5IGFzIFJlc3BvbnNlQ2F0ZWdvcnkpXG4gICkge1xuICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICdpc0FwaVJlc3BvbnNlOiBjYXRlZ29yeSBpcyBub3QgYSBzdHJpbmcgb3Igbm90IGEgdmFsaWQgcmVzcG9uc2UgY2F0ZWdvcnknLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgeyBkYXRhIH0sXG4gICAgKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdjcmVhdGVkX2F0JywgJ3N0cmluZycpKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBjcmVhdGVkX2F0IGlzIG5vdCBhIHN0cmluZycsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2F0dHJpYnV0ZXMnLCAnb2JqZWN0JywgdHJ1ZSkpIHtcbiAgICBMb2dnZXIubG9nRXJyb3IoJ2lzQXBpUmVzcG9uc2U6IGF0dHJpYnV0ZXMgaXMgbm90IGFuIG9iamVjdCcsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBSUEsTUFBYSxpQkFBaUIsU0FBb0M7QUFDaEUsS0FBSSxRQUFRLFFBQVEsT0FBTyxTQUFTLFVBQVU7QUFDNUMseUJBQU8sU0FBUyxnREFBZ0QsUUFBVyxFQUFFLE1BQU0sQ0FBQztBQUNwRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsMERBQWtCLE1BQU0sTUFBTSxTQUFTLEVBQUU7QUFDNUMseUJBQU8sU0FBUyxxQ0FBcUMsUUFBVyxFQUFFLE1BQU0sQ0FBQztBQUN6RSxTQUFPOztBQUdULEtBQ0UsQ0FBQ0EsMERBQWtCLE1BQU0sWUFBWSxTQUFTLElBQzlDLENBQUMsT0FBTyxPQUFPQyxpREFBaUIsQ0FBQyxTQUFTLEtBQUssU0FBNkIsRUFDNUU7QUFDQSx5QkFBTyxTQUNMLDRFQUNBLFFBQ0EsRUFBRSxNQUFNLENBQ1Q7QUFDRCxTQUFPOztBQUdULEtBQUksQ0FBQ0QsMERBQWtCLE1BQU0sY0FBYyxTQUFTLEVBQUU7QUFDcEQseUJBQU8sU0FBUyw2Q0FBNkMsUUFBVyxFQUFFLE1BQU0sQ0FBQztBQUNqRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsMERBQWtCLE1BQU0sY0FBYyxVQUFVLEtBQUssRUFBRTtBQUMxRCx5QkFBTyxTQUFTLDhDQUE4QyxRQUFXLEVBQUUsTUFBTSxDQUFDO0FBQ2xGLFNBQU87O0FBR1QsUUFBTyJ9
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNBcGlSZXNwb25zZS5janMiLCJuYW1lcyI6WyJMb2dnZXIiLCJoYXNQcm9wZXJ0eU9mVHlwZSIsIlJlc3BvbnNlQ2F0ZWdvcnkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vbW9kZWxzL2d1YXJkcy9hcGkvaXNBcGlSZXNwb25zZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBSZXNwb25zZSwgUmVzcG9uc2VDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBoYXNQcm9wZXJ0eU9mVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZ3VhcmRzL3V0aWxzJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignaXNBcGlSZXNwb25zZScpO1xuXG5leHBvcnQgY29uc3QgaXNBcGlSZXNwb25zZSA9IChkYXRhOiB1bmtub3duKTogZGF0YSBpcyBSZXNwb25zZSA9PiB7XG4gIGlmIChkYXRhID09IG51bGwgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBkYXRhIGlzIG51bGwgb3Igbm90IGFuIG9iamVjdCcsIHVuZGVmaW5lZCwgeyBkYXRhIH0pO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2lkJywgJ3N0cmluZycpKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKCdpc0FwaVJlc3BvbnNlOiBpZCBpcyBub3QgYSBzdHJpbmcnLCB1bmRlZmluZWQsIHsgZGF0YSB9KTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoXG4gICAgIWhhc1Byb3BlcnR5T2ZUeXBlKGRhdGEsICdjYXRlZ29yeScsICdzdHJpbmcnKSB8fFxuICAgICFPYmplY3QudmFsdWVzKFJlc3BvbnNlQ2F0ZWdvcnkpLmluY2x1ZGVzKGRhdGEuY2F0ZWdvcnkgYXMgUmVzcG9uc2VDYXRlZ29yeSlcbiAgKSB7XG4gICAgbG9nZ2VyLmxvZ0Vycm9yKFxuICAgICAgJ2lzQXBpUmVzcG9uc2U6IGNhdGVnb3J5IGlzIG5vdCBhIHN0cmluZyBvciBub3QgYSB2YWxpZCByZXNwb25zZSBjYXRlZ29yeScsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB7IGRhdGEgfSxcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghaGFzUHJvcGVydHlPZlR5cGUoZGF0YSwgJ2NyZWF0ZWRfYXQnLCAnc3RyaW5nJykpIHtcbiAgICBsb2dnZXIubG9nRXJyb3IoJ2lzQXBpUmVzcG9uc2U6IGNyZWF0ZWRfYXQgaXMgbm90IGEgc3RyaW5nJywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wZXJ0eU9mVHlwZShkYXRhLCAnYXR0cmlidXRlcycsICdvYmplY3QnLCB0cnVlKSkge1xuICAgIGxvZ2dlci5sb2dFcnJvcignaXNBcGlSZXNwb25zZTogYXR0cmlidXRlcyBpcyBub3QgYW4gb2JqZWN0JywgdW5kZWZpbmVkLCB7IGRhdGEgfSk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFJQSxNQUFNLFNBQVMsSUFBSUEsdUJBQU8sZ0JBQWdCO0FBRTFDLE1BQWEsaUJBQWlCLFNBQW9DO0FBQ2hFLEtBQUksUUFBUSxRQUFRLE9BQU8sU0FBUyxVQUFVO0FBQzVDLFNBQU8sU0FBUyxnREFBZ0QsUUFBVyxFQUFFLE1BQU0sQ0FBQztBQUNwRixTQUFPOztBQUdULEtBQUksQ0FBQ0MsMERBQWtCLE1BQU0sTUFBTSxTQUFTLEVBQUU7QUFDNUMsU0FBTyxTQUFTLHFDQUFxQyxRQUFXLEVBQUUsTUFBTSxDQUFDO0FBQ3pFLFNBQU87O0FBR1QsS0FDRSxDQUFDQSwwREFBa0IsTUFBTSxZQUFZLFNBQVMsSUFDOUMsQ0FBQyxPQUFPLE9BQU9DLGlEQUFpQixDQUFDLFNBQVMsS0FBSyxTQUE2QixFQUM1RTtBQUNBLFNBQU8sU0FDTCw0RUFDQSxRQUNBLEVBQUUsTUFBTSxDQUNUO0FBQ0QsU0FBTzs7QUFHVCxLQUFJLENBQUNELDBEQUFrQixNQUFNLGNBQWMsU0FBUyxFQUFFO0FBQ3BELFNBQU8sU0FBUyw2Q0FBNkMsUUFBVyxFQUFFLE1BQU0sQ0FBQztBQUNqRixTQUFPOztBQUdULEtBQUksQ0FBQ0EsMERBQWtCLE1BQU0sY0FBYyxVQUFVLEtBQUssRUFBRTtBQUMxRCxTQUFPLFNBQVMsOENBQThDLFFBQVcsRUFBRSxNQUFNLENBQUM7QUFDbEYsU0FBTzs7QUFHVCxRQUFPIn0=