@oneuptime/common 7.0.2525 → 7.0.2550

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 (819) hide show
  1. package/AnalyticsModels/BaseModel.ts +437 -443
  2. package/AnalyticsModels/CommonModel.ts +216 -226
  3. package/AnalyticsModels/NestedModel.ts +5 -5
  4. package/Models/AccessControlModel.ts +10 -10
  5. package/Models/BaseModel.ts +662 -670
  6. package/Models/FileModel.ts +102 -102
  7. package/Models/GlobalConfig.ts +5 -5
  8. package/Models/TenantModel.ts +8 -8
  9. package/Models/UserModel.ts +8 -8
  10. package/ServiceRoute.ts +17 -17
  11. package/Tests/MockType.ts +9 -0
  12. package/Tests/Spy.ts +11 -0
  13. package/Tests/Types/API/ErrorResponse.test.ts +14 -14
  14. package/Tests/Types/API/HTTPErrorResponse.test.ts +55 -55
  15. package/Tests/Types/API/HTTPMethod.test.ts +14 -14
  16. package/Tests/Types/API/Headers.test.ts +13 -13
  17. package/Tests/Types/API/Hostname.test.ts +20 -20
  18. package/Tests/Types/API/Protocal.test.ts +17 -17
  19. package/Tests/Types/API/Response.test.ts +19 -19
  20. package/Tests/Types/API/ResponseType.test.ts +11 -11
  21. package/Tests/Types/API/Route.test.ts +28 -28
  22. package/Tests/Types/API/StatusCode.test.ts +24 -24
  23. package/Tests/Types/API/URL.test.ts +39 -39
  24. package/Tests/Types/Alerts/AlertEventType.test.ts +46 -46
  25. package/Tests/Types/Alerts/AlertType.test.ts +17 -17
  26. package/Tests/Types/AppEnvironment.test.ts +11 -11
  27. package/Tests/Types/ApplicationLog/ApplicationLogType.test.ts +11 -11
  28. package/Tests/Types/ArrayUtil.test.ts +77 -77
  29. package/Tests/Types/Billing/SubscriptionPlan.test.ts +255 -270
  30. package/Tests/Types/BrandColors.test.ts +138 -138
  31. package/Tests/Types/Char.test.ts +81 -81
  32. package/Tests/Types/Code/CodeType.test.ts +11 -11
  33. package/Tests/Types/Color.test.ts +42 -42
  34. package/Tests/Types/Company/CompanySize.test.ts +17 -17
  35. package/Tests/Types/Company/JobRole.test.ts +20 -20
  36. package/Tests/Types/Countries.test.ts +287 -301
  37. package/Tests/Types/Database/ColumnLength.test.ts +41 -41
  38. package/Tests/Types/Database/ColumnType.test.ts +77 -77
  39. package/Tests/Types/Database/Columns.test.ts +18 -18
  40. package/Tests/Types/Database/CompareBase.test.ts +32 -32
  41. package/Tests/Types/Database/Date.test.ts +73 -75
  42. package/Tests/Types/Database/EqualToOrNull.test.ts +61 -61
  43. package/Tests/Types/Database/InBetween.test.ts +71 -71
  44. package/Tests/Types/Database/LimitMax.test.ts +14 -14
  45. package/Tests/Types/Database/NotEqual.test.ts +15 -15
  46. package/Tests/Types/Database/Search.test.ts +8 -8
  47. package/Tests/Types/DatabaseType.test.ts +5 -5
  48. package/Tests/Types/Date.test.ts +87 -93
  49. package/Tests/Types/Dictionary.test.ts +22 -22
  50. package/Tests/Types/Domain.test.ts +36 -36
  51. package/Tests/Types/Email/Email.test.ts +55 -55
  52. package/Tests/Types/EmailWithName.test.ts +46 -46
  53. package/Tests/Types/EncryptionAlgorithm.test.ts +5 -5
  54. package/Tests/Types/Exception/ApiException.test.ts +12 -13
  55. package/Tests/Types/Exception/BadDataException.test.ts +12 -12
  56. package/Tests/Types/Exception/BadOperationException.test.ts +12 -13
  57. package/Tests/Types/Exception/BadRequestException.test.ts +12 -12
  58. package/Tests/Types/Exception/DatabaseNotConnectedException.test.ts +10 -10
  59. package/Tests/Types/Exception/Exception.test.ts +15 -17
  60. package/Tests/Types/Exception/NotImplementedException.test.ts +10 -10
  61. package/Tests/Types/File.test.ts +20 -20
  62. package/Tests/Types/HashedString.test.ts +18 -18
  63. package/Tests/Types/Html.test.ts +6 -6
  64. package/Tests/Types/IP/IP.test.ts +65 -67
  65. package/Tests/Types/IP/IPType.test.ts +8 -8
  66. package/Tests/Types/IP/IPv4.test.ts +15 -15
  67. package/Tests/Types/IP/IPv6.test.ts +15 -15
  68. package/Tests/Types/JSON.test.ts +35 -35
  69. package/Tests/Types/JSONFunctions.test.ts +41 -44
  70. package/Tests/Types/ListData.test.ts +33 -33
  71. package/Tests/Types/Name.test.ts +24 -24
  72. package/Tests/Types/ObjectID.test.ts +10 -10
  73. package/Tests/Types/Permission.test.ts +8 -8
  74. package/Tests/Types/Phone.test.ts +35 -35
  75. package/Tests/Types/Port.test.ts +33 -33
  76. package/Tests/Types/PositiveNumber.test.ts +123 -123
  77. package/Tests/Types/SecuritySeverity.test.ts +14 -14
  78. package/Tests/Types/SerializableObject.test.ts +33 -34
  79. package/Tests/Types/Sleep.test.ts +16 -19
  80. package/Tests/Types/Text.test.ts +6 -8
  81. package/Tests/Types/Timezone.test.ts +644 -674
  82. package/Tests/Types/Typeof.test.ts +14 -14
  83. package/Tests/Types/UserType.test.ts +14 -14
  84. package/Tests/Types/Version.test.ts +33 -33
  85. package/Tests/Types/XML.test.ts +33 -33
  86. package/Tests/Utils/API.test.ts +339 -342
  87. package/Tests/Utils/Analytics.test.ts +65 -65
  88. package/Tests/Utils/CronTime.test.ts +26 -26
  89. package/Tests/Utils/Faker.test.ts +30 -32
  90. package/Tests/Utils/Slug.test.ts +20 -20
  91. package/Tests/Utils/UUID.test.ts +10 -10
  92. package/Types/API/EmptyResponse.ts +1 -1
  93. package/Types/API/HTTPErrorResponse.ts +18 -21
  94. package/Types/API/HTTPMethod.ts +5 -5
  95. package/Types/API/HTTPResponse.ts +108 -110
  96. package/Types/API/Headers.ts +1 -1
  97. package/Types/API/Hostname.ts +94 -94
  98. package/Types/API/Protocol.ts +6 -6
  99. package/Types/API/ResponseType.ts +3 -3
  100. package/Types/API/Route.ts +76 -76
  101. package/Types/API/StatusCode.ts +31 -34
  102. package/Types/API/URL.ts +217 -221
  103. package/Types/Alerts/AlertEventType.ts +10 -10
  104. package/Types/Alerts/AlertType.ts +5 -5
  105. package/Types/AnalyticsDatabase/AnalyticsTableEngine.ts +1 -1
  106. package/Types/AnalyticsDatabase/TableColumn.ts +157 -160
  107. package/Types/AnalyticsDatabase/TableColumnType.ts +12 -12
  108. package/Types/AppEnvironment.ts +3 -3
  109. package/Types/ApplicationLog/ApplicationLogType.ts +3 -3
  110. package/Types/ArrayUtil.ts +68 -70
  111. package/Types/BaseDatabase/AccessControl.ts +5 -5
  112. package/Types/BaseDatabase/ColumnBillingAccessControl.ts +4 -4
  113. package/Types/BaseDatabase/DatabaseCommonInteractionProps.ts +20 -20
  114. package/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.ts +75 -76
  115. package/Types/BaseDatabase/DatabaseType.ts +2 -2
  116. package/Types/BaseDatabase/EnableWorkflowOn.ts +4 -4
  117. package/Types/BaseDatabase/EqualToOrNull.ts +29 -29
  118. package/Types/BaseDatabase/GreaterThan.ts +18 -18
  119. package/Types/BaseDatabase/GreaterThanOrEqual.ts +18 -18
  120. package/Types/BaseDatabase/InBetween.ts +61 -61
  121. package/Types/BaseDatabase/Includes.ts +32 -34
  122. package/Types/BaseDatabase/IsNull.ts +21 -21
  123. package/Types/BaseDatabase/LessThan.ts +18 -18
  124. package/Types/BaseDatabase/LessThanOrEqual.ts +18 -18
  125. package/Types/BaseDatabase/ModelPermission.ts +31 -31
  126. package/Types/BaseDatabase/NotEqual.ts +29 -29
  127. package/Types/BaseDatabase/NotNull.ts +21 -21
  128. package/Types/BaseDatabase/Search.ts +34 -34
  129. package/Types/BaseDatabase/SortOrder.ts +2 -2
  130. package/Types/BaseDatabase/TableBillingAccessControl.ts +5 -5
  131. package/Types/Billing/MeteredPlan.ts +21 -21
  132. package/Types/Billing/SubscriptionPlan.ts +223 -228
  133. package/Types/Billing/SubscriptionStatus.ts +23 -23
  134. package/Types/BrandColors.ts +60 -60
  135. package/Types/BrowserType.ts +3 -3
  136. package/Types/Calendar/CalendarEvent.ts +9 -9
  137. package/Types/Call/CallRequest.ts +19 -19
  138. package/Types/Call/CallStatus.ts +5 -5
  139. package/Types/CallAndSMS/TwilioConfig.ts +4 -4
  140. package/Types/Char.ts +62 -62
  141. package/Types/Code/CodeType.ts +7 -7
  142. package/Types/CodeRepository/CodeRepositoryType.ts +6 -0
  143. package/Types/CodeRepository/PullRequest.ts +16 -0
  144. package/Types/CodeRepository/PullRequestState.ts +7 -0
  145. package/Types/Color.ts +88 -88
  146. package/Types/Company/CompanySize.ts +5 -5
  147. package/Types/Company/JobRole.ts +6 -6
  148. package/Types/Copilot/CopilotEventStatus.ts +6 -0
  149. package/Types/Copilot/CopilotEventType.ts +2 -2
  150. package/Types/Countries.ts +243 -243
  151. package/Types/Currency.ts +23 -23
  152. package/Types/CustomField/CustomFieldType.ts +3 -3
  153. package/Types/Database/AccessControl/AllowAccessIfSubscriptionIsUnpaid.ts +4 -4
  154. package/Types/Database/AccessControl/ColumnAccessControl.ts +33 -33
  155. package/Types/Database/AccessControl/ColumnBillingAccessControl.ts +34 -36
  156. package/Types/Database/AccessControl/TableAccessControl.ts +16 -16
  157. package/Types/Database/AccessControl/TableBillingAccessControl.ts +16 -16
  158. package/Types/Database/AccessControlColumn.ts +4 -4
  159. package/Types/Database/AllowUserQueryWithoutTenant.ts +4 -4
  160. package/Types/Database/CanAccessIfCanReadOn.ts +6 -6
  161. package/Types/Database/ColumnLength.ts +61 -61
  162. package/Types/Database/ColumnType.ts +33 -33
  163. package/Types/Database/Columns.ts +16 -16
  164. package/Types/Database/CompareBase.ts +28 -28
  165. package/Types/Database/CrudApiEndpoint.ts +5 -5
  166. package/Types/Database/CurrentUserCanAccessRecordBy.ts +4 -4
  167. package/Types/Database/DatabaseProperty.ts +42 -42
  168. package/Types/Database/Date.ts +20 -20
  169. package/Types/Database/EnableDocumentation.ts +6 -7
  170. package/Types/Database/EnableWorkflow.ts +5 -5
  171. package/Types/Database/IsPermissionsIf.ts +12 -12
  172. package/Types/Database/LabelsColumn.ts +4 -4
  173. package/Types/Database/MultiTenentQueryAllowed.ts +4 -4
  174. package/Types/Database/PartialEntity.ts +1 -1
  175. package/Types/Database/SlugifyColumn.ts +5 -5
  176. package/Types/Database/TableColumn.ts +42 -42
  177. package/Types/Database/TableColumnType.ts +39 -39
  178. package/Types/Database/TableMetadata.ts +14 -14
  179. package/Types/Database/TenantColumn.ts +4 -4
  180. package/Types/Database/TotalItemsBy.ts +9 -9
  181. package/Types/Database/UniqueColumnBy.ts +27 -27
  182. package/Types/DatabaseType.ts +2 -2
  183. package/Types/Date.ts +965 -978
  184. package/Types/Day/DayOfWeek.ts +24 -24
  185. package/Types/Decimal.ts +57 -57
  186. package/Types/Dictionary.ts +1 -1
  187. package/Types/DiskSize.ts +32 -32
  188. package/Types/Domain.ts +74 -74
  189. package/Types/Email/EmailBody.ts +2 -2
  190. package/Types/Email/EmailMessage.ts +8 -8
  191. package/Types/Email/EmailServer.ts +12 -12
  192. package/Types/Email/EmailTemplate.ts +5 -5
  193. package/Types/Email/EmailTemplateType.ts +36 -36
  194. package/Types/Email.ts +99 -101
  195. package/Types/EmailWithName.ts +26 -26
  196. package/Types/EncryptionAlgorithm.ts +1 -1
  197. package/Types/Events/EventInterval.ts +5 -5
  198. package/Types/Events/Recurring.ts +90 -92
  199. package/Types/Exception/ApiException.ts +5 -5
  200. package/Types/Exception/BadDataException.ts +5 -5
  201. package/Types/Exception/BadOperationException.ts +5 -5
  202. package/Types/Exception/BadRequestException.ts +5 -5
  203. package/Types/Exception/DatabaseNotConnectedException.ts +8 -8
  204. package/Types/Exception/Exception.ts +15 -15
  205. package/Types/Exception/ExceptionCode.ts +17 -17
  206. package/Types/Exception/NotAuthenticatedException.ts +5 -5
  207. package/Types/Exception/NotAuthorizedException.ts +5 -5
  208. package/Types/Exception/NotFoundException.ts +5 -5
  209. package/Types/Exception/NotImplementedException.ts +8 -8
  210. package/Types/Exception/PaymentRequiredException.ts +5 -5
  211. package/Types/Exception/ServerException.ts +5 -5
  212. package/Types/Exception/SsoAuthorizationException.ts +12 -12
  213. package/Types/Exception/TenantNotFoundException.ts +5 -5
  214. package/Types/Exception/TimeoutException.ts +5 -5
  215. package/Types/Exception/UnableToReachServer.ts +5 -5
  216. package/Types/Exception/WebsiteRequestException.ts +5 -5
  217. package/Types/File/MimeType.ts +5 -5
  218. package/Types/File.ts +2 -2
  219. package/Types/Filter/FilterCondition.ts +2 -2
  220. package/Types/Filter/FilterType.ts +6 -6
  221. package/Types/HashCode.ts +8 -8
  222. package/Types/HashedString.ts +80 -82
  223. package/Types/Html.ts +13 -13
  224. package/Types/IP/IP.ts +93 -93
  225. package/Types/IP/IPType.ts +2 -2
  226. package/Types/IP/IPv4.ts +7 -7
  227. package/Types/IP/IPv6.ts +7 -7
  228. package/Types/Icon/IconProp.ts +122 -122
  229. package/Types/Infrastructure/BasicMetrics.ts +15 -15
  230. package/Types/Infrastructure/OSType.ts +4 -4
  231. package/Types/IsolatedVM/ReturnResult.ts +2 -2
  232. package/Types/JSON.ts +139 -139
  233. package/Types/JSONFunctions.ts +310 -320
  234. package/Types/JsonWebTokenData.ts +11 -11
  235. package/Types/Link.ts +5 -5
  236. package/Types/ListData.ts +26 -26
  237. package/Types/Mail/MailStatus.ts +2 -2
  238. package/Types/MeteredPlan/ProductType.ts +4 -4
  239. package/Types/Mixins.ts +1 -1
  240. package/Types/Monitor/CriteriaFilter.ts +107 -107
  241. package/Types/Monitor/CriteriaIncident.ts +7 -7
  242. package/Types/Monitor/CustomCodeMonitor/CustomCodeMonitorResponse.ts +5 -5
  243. package/Types/Monitor/IncomingMonitor/IncomingMonitorRequest.ts +10 -10
  244. package/Types/Monitor/MonitorCriteria.ts +151 -162
  245. package/Types/Monitor/MonitorCriteriaInstance.ts +622 -628
  246. package/Types/Monitor/MonitorStep.ts +314 -319
  247. package/Types/Monitor/MonitorSteps.ts +156 -161
  248. package/Types/Monitor/MonitorType.ts +164 -169
  249. package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +12 -12
  250. package/Types/Monitor/ServerMonitor/ServerMonitorResponse.ts +10 -10
  251. package/Types/Monitor/SyntheticMonitors/BrowserType.ts +1 -1
  252. package/Types/Monitor/SyntheticMonitors/ScreenSizeType.ts +1 -1
  253. package/Types/Monitor/SyntheticMonitors/Screenshot.ts +1 -1
  254. package/Types/Monitor/SyntheticMonitors/SyntheticMonitorResponse.ts +8 -8
  255. package/Types/Name.ts +65 -65
  256. package/Types/NotificationRule/NotificationRuleType.ts +3 -3
  257. package/Types/NotificationSetting/NotificationSettingEventType.ts +18 -18
  258. package/Types/ObjectID.ts +73 -73
  259. package/Types/OnCallDutyPolicy/Layer.ts +782 -824
  260. package/Types/OnCallDutyPolicy/OnCalDutyExecutionLogTimelineStatus.ts +6 -6
  261. package/Types/OnCallDutyPolicy/OnCallDutyPolicyAlertStatus.ts +3 -3
  262. package/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.ts +5 -5
  263. package/Types/OnCallDutyPolicy/RestrictionTimes.ts +177 -179
  264. package/Types/Operation/OperationResult.ts +2 -2
  265. package/Types/Operation/OperationStatus.ts +5 -5
  266. package/Types/Permission.ts +3373 -3461
  267. package/Types/Phone.ts +58 -59
  268. package/Types/Port.ts +73 -73
  269. package/Types/PositiveNumber.ts +53 -61
  270. package/Types/PricingPlan.ts +5 -5
  271. package/Types/Probe/ProbeApiIngestResponse.ts +6 -6
  272. package/Types/Probe/ProbeMonitorResponse.ts +25 -25
  273. package/Types/Probe/ProbeStatusReport.ts +4 -4
  274. package/Types/Reflection.ts +4 -4
  275. package/Types/SMS/SMS.ts +3 -3
  276. package/Types/SMS/SmsTemplateType.ts +9 -9
  277. package/Types/SSO/DigestMethod.ts +4 -4
  278. package/Types/SSO/SignatureMethod.ts +4 -4
  279. package/Types/ScheduledEvent/ScheduledEventState.ts +4 -4
  280. package/Types/ScreenSizeType.ts +3 -3
  281. package/Types/SecuritySeverity.ts +4 -4
  282. package/Types/SerializableObject.ts +12 -12
  283. package/Types/SerializableObjectDictionary.ts +58 -58
  284. package/Types/ServiceCatalog/ServiceLanguage.ts +20 -0
  285. package/Types/Sleep.ts +6 -6
  286. package/Types/SmsStatus.ts +3 -3
  287. package/Types/StatusPage/StatusPageChartType.ts +6 -6
  288. package/Types/Text.ts +126 -130
  289. package/Types/Time/StartAndEndTime.ts +2 -2
  290. package/Types/Timezone.ts +592 -592
  291. package/Types/TimezoneCode.ts +63 -0
  292. package/Types/Typeof.ts +4 -4
  293. package/Types/UserNotification/UserNotificationEventType.ts +1 -1
  294. package/Types/UserNotification/UserNotificationExecutionStatus.ts +5 -5
  295. package/Types/UserNotification/UserNotificationStatus.ts +5 -5
  296. package/Types/UserType.ts +4 -4
  297. package/Types/Version.ts +50 -50
  298. package/Types/WebsiteRequest.ts +55 -55
  299. package/Types/Workflow/Component.ts +72 -72
  300. package/Types/Workflow/ComponentID.ts +16 -16
  301. package/Types/Workflow/Components/API.ts +349 -357
  302. package/Types/Workflow/Components/BaseModel.ts +572 -573
  303. package/Types/Workflow/Components/Condition.ts +60 -60
  304. package/Types/Workflow/Components/Email.ts +102 -103
  305. package/Types/Workflow/Components/JSON.ts +151 -156
  306. package/Types/Workflow/Components/JavaScript.ts +61 -61
  307. package/Types/Workflow/Components/Log.ts +39 -39
  308. package/Types/Workflow/Components/Manual.ts +33 -34
  309. package/Types/Workflow/Components/MicrosoftTeams.ts +61 -62
  310. package/Types/Workflow/Components/Schedule.ts +32 -32
  311. package/Types/Workflow/Components/Slack.ts +63 -64
  312. package/Types/Workflow/Components/Webhook.ts +51 -51
  313. package/Types/Workflow/Components/Workflow.ts +38 -38
  314. package/Types/Workflow/Components.ts +76 -76
  315. package/Types/Workflow/WorkflowPlan.ts +4 -4
  316. package/Types/Workflow/WorkflowStatus.ts +6 -6
  317. package/Types/XML.ts +16 -16
  318. package/Typings/Index.d.ts +3 -3
  319. package/Utils/API.ts +355 -309
  320. package/Utils/Analytics.ts +31 -31
  321. package/Utils/CronTime.ts +7 -7
  322. package/Utils/Enum.ts +14 -0
  323. package/Utils/Faker.ts +25 -25
  324. package/Utils/ObjectUtil.ts +5 -5
  325. package/Utils/Realtime.ts +24 -24
  326. package/Utils/Slug.ts +15 -15
  327. package/Utils/UUID.ts +4 -4
  328. package/build/dist/AnalyticsModels/BaseModel.js +32 -32
  329. package/build/dist/AnalyticsModels/BaseModel.js.map +1 -1
  330. package/build/dist/AnalyticsModels/CommonModel.js +14 -17
  331. package/build/dist/AnalyticsModels/CommonModel.js.map +1 -1
  332. package/build/dist/AnalyticsModels/NestedModel.js +1 -1
  333. package/build/dist/AnalyticsModels/NestedModel.js.map +1 -1
  334. package/build/dist/Models/AccessControlModel.js +1 -1
  335. package/build/dist/Models/AccessControlModel.js.map +1 -1
  336. package/build/dist/Models/BaseModel.js +28 -28
  337. package/build/dist/Models/BaseModel.js.map +1 -1
  338. package/build/dist/Models/FileModel.js +14 -14
  339. package/build/dist/Models/FileModel.js.map +1 -1
  340. package/build/dist/Models/GlobalConfig.js +1 -1
  341. package/build/dist/Models/GlobalConfig.js.map +1 -1
  342. package/build/dist/Models/TenantModel.js +1 -1
  343. package/build/dist/Models/TenantModel.js.map +1 -1
  344. package/build/dist/Models/UserModel.js +1 -1
  345. package/build/dist/Models/UserModel.js.map +1 -1
  346. package/build/dist/ServiceRoute.js +17 -17
  347. package/build/dist/Tests/MockType.js +5 -0
  348. package/build/dist/Tests/MockType.js.map +1 -0
  349. package/build/dist/Tests/Spy.js +4 -0
  350. package/build/dist/Tests/Spy.js.map +1 -0
  351. package/build/dist/Tests/Types/API/ErrorResponse.test.js +5 -5
  352. package/build/dist/Tests/Types/API/ErrorResponse.test.js.map +1 -1
  353. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js +18 -18
  354. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js.map +1 -1
  355. package/build/dist/Tests/Types/API/HTTPMethod.test.js +10 -10
  356. package/build/dist/Tests/Types/API/HTTPMethod.test.js.map +1 -1
  357. package/build/dist/Tests/Types/API/Headers.test.js +8 -8
  358. package/build/dist/Tests/Types/API/Headers.test.js.map +1 -1
  359. package/build/dist/Tests/Types/API/Hostname.test.js +11 -11
  360. package/build/dist/Tests/Types/API/Hostname.test.js.map +1 -1
  361. package/build/dist/Tests/Types/API/Protocal.test.js +12 -12
  362. package/build/dist/Tests/Types/API/Protocal.test.js.map +1 -1
  363. package/build/dist/Tests/Types/API/Response.test.js +7 -7
  364. package/build/dist/Tests/Types/API/Response.test.js.map +1 -1
  365. package/build/dist/Tests/Types/API/ResponseType.test.js +8 -8
  366. package/build/dist/Tests/Types/API/ResponseType.test.js.map +1 -1
  367. package/build/dist/Tests/Types/API/Route.test.js +15 -15
  368. package/build/dist/Tests/Types/API/Route.test.js.map +1 -1
  369. package/build/dist/Tests/Types/API/StatusCode.test.js +14 -14
  370. package/build/dist/Tests/Types/API/StatusCode.test.js.map +1 -1
  371. package/build/dist/Tests/Types/API/URL.test.js +20 -20
  372. package/build/dist/Tests/Types/API/URL.test.js.map +1 -1
  373. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js +22 -22
  374. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js.map +1 -1
  375. package/build/dist/Tests/Types/Alerts/AlertType.test.js +12 -12
  376. package/build/dist/Tests/Types/Alerts/AlertType.test.js.map +1 -1
  377. package/build/dist/Tests/Types/AppEnvironment.test.js +8 -8
  378. package/build/dist/Tests/Types/AppEnvironment.test.js.map +1 -1
  379. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js +8 -8
  380. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js.map +1 -1
  381. package/build/dist/Tests/Types/ArrayUtil.test.js +9 -9
  382. package/build/dist/Tests/Types/ArrayUtil.test.js.map +1 -1
  383. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js +75 -77
  384. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js.map +1 -1
  385. package/build/dist/Tests/Types/BrandColors.test.js +55 -55
  386. package/build/dist/Tests/Types/BrandColors.test.js.map +1 -1
  387. package/build/dist/Tests/Types/Char.test.js +72 -72
  388. package/build/dist/Tests/Types/Char.test.js.map +1 -1
  389. package/build/dist/Tests/Types/Code/CodeType.test.js +8 -8
  390. package/build/dist/Tests/Types/Code/CodeType.test.js.map +1 -1
  391. package/build/dist/Tests/Types/Color.test.js +24 -24
  392. package/build/dist/Tests/Types/Color.test.js.map +1 -1
  393. package/build/dist/Tests/Types/Company/CompanySize.test.js +12 -12
  394. package/build/dist/Tests/Types/Company/CompanySize.test.js.map +1 -1
  395. package/build/dist/Tests/Types/Company/JobRole.test.js +14 -14
  396. package/build/dist/Tests/Types/Company/JobRole.test.js.map +1 -1
  397. package/build/dist/Tests/Types/Countries.test.js +244 -244
  398. package/build/dist/Tests/Types/Countries.test.js.map +1 -1
  399. package/build/dist/Tests/Types/Database/ColumnLength.test.js +15 -15
  400. package/build/dist/Tests/Types/Database/ColumnLength.test.js.map +1 -1
  401. package/build/dist/Tests/Types/Database/ColumnType.test.js +52 -52
  402. package/build/dist/Tests/Types/Database/ColumnType.test.js.map +1 -1
  403. package/build/dist/Tests/Types/Database/Columns.test.js +14 -14
  404. package/build/dist/Tests/Types/Database/Columns.test.js.map +1 -1
  405. package/build/dist/Tests/Types/Database/CompareBase.test.js +13 -13
  406. package/build/dist/Tests/Types/Database/CompareBase.test.js.map +1 -1
  407. package/build/dist/Tests/Types/Database/Date.test.js +32 -32
  408. package/build/dist/Tests/Types/Database/Date.test.js.map +1 -1
  409. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js +30 -30
  410. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js.map +1 -1
  411. package/build/dist/Tests/Types/Database/InBetween.test.js +20 -20
  412. package/build/dist/Tests/Types/Database/InBetween.test.js.map +1 -1
  413. package/build/dist/Tests/Types/Database/LimitMax.test.js +9 -9
  414. package/build/dist/Tests/Types/Database/LimitMax.test.js.map +1 -1
  415. package/build/dist/Tests/Types/Database/NotEqual.test.js +9 -9
  416. package/build/dist/Tests/Types/Database/NotEqual.test.js.map +1 -1
  417. package/build/dist/Tests/Types/Database/Search.test.js +6 -6
  418. package/build/dist/Tests/Types/Database/Search.test.js.map +1 -1
  419. package/build/dist/Tests/Types/DatabaseType.test.js +4 -4
  420. package/build/dist/Tests/Types/DatabaseType.test.js.map +1 -1
  421. package/build/dist/Tests/Types/Date.test.js +32 -32
  422. package/build/dist/Tests/Types/Date.test.js.map +1 -1
  423. package/build/dist/Tests/Types/Dictionary.test.js +10 -10
  424. package/build/dist/Tests/Types/Dictionary.test.js.map +1 -1
  425. package/build/dist/Tests/Types/Domain.test.js +23 -23
  426. package/build/dist/Tests/Types/Domain.test.js.map +1 -1
  427. package/build/dist/Tests/Types/Email/Email.test.js +31 -31
  428. package/build/dist/Tests/Types/Email/Email.test.js.map +1 -1
  429. package/build/dist/Tests/Types/EmailWithName.test.js +11 -11
  430. package/build/dist/Tests/Types/EmailWithName.test.js.map +1 -1
  431. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js +4 -4
  432. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js.map +1 -1
  433. package/build/dist/Tests/Types/Exception/ApiException.test.js +6 -7
  434. package/build/dist/Tests/Types/Exception/ApiException.test.js.map +1 -1
  435. package/build/dist/Tests/Types/Exception/BadDataException.test.js +7 -7
  436. package/build/dist/Tests/Types/Exception/BadDataException.test.js.map +1 -1
  437. package/build/dist/Tests/Types/Exception/BadOperationException.test.js +6 -7
  438. package/build/dist/Tests/Types/Exception/BadOperationException.test.js.map +1 -1
  439. package/build/dist/Tests/Types/Exception/BadRequestException.test.js +7 -7
  440. package/build/dist/Tests/Types/Exception/BadRequestException.test.js.map +1 -1
  441. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js +5 -5
  442. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js.map +1 -1
  443. package/build/dist/Tests/Types/Exception/Exception.test.js +9 -9
  444. package/build/dist/Tests/Types/Exception/Exception.test.js.map +1 -1
  445. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js +5 -5
  446. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js.map +1 -1
  447. package/build/dist/Tests/Types/File.test.js +13 -13
  448. package/build/dist/Tests/Types/File.test.js.map +1 -1
  449. package/build/dist/Tests/Types/HashedString.test.js +8 -8
  450. package/build/dist/Tests/Types/HashedString.test.js.map +1 -1
  451. package/build/dist/Tests/Types/Html.test.js +5 -5
  452. package/build/dist/Tests/Types/Html.test.js.map +1 -1
  453. package/build/dist/Tests/Types/IP/IP.test.js +40 -40
  454. package/build/dist/Tests/Types/IP/IP.test.js.map +1 -1
  455. package/build/dist/Tests/Types/IP/IPType.test.js +6 -6
  456. package/build/dist/Tests/Types/IP/IPType.test.js.map +1 -1
  457. package/build/dist/Tests/Types/IP/IPv4.test.js +9 -9
  458. package/build/dist/Tests/Types/IP/IPv4.test.js.map +1 -1
  459. package/build/dist/Tests/Types/IP/IPv6.test.js +9 -9
  460. package/build/dist/Tests/Types/IP/IPv6.test.js.map +1 -1
  461. package/build/dist/Tests/Types/JSON.test.js +28 -28
  462. package/build/dist/Tests/Types/JSON.test.js.map +1 -1
  463. package/build/dist/Tests/Types/JSONFunctions.test.js +13 -13
  464. package/build/dist/Tests/Types/JSONFunctions.test.js.map +1 -1
  465. package/build/dist/Tests/Types/ListData.test.js +10 -10
  466. package/build/dist/Tests/Types/ListData.test.js.map +1 -1
  467. package/build/dist/Tests/Types/Name.test.js +17 -17
  468. package/build/dist/Tests/Types/Name.test.js.map +1 -1
  469. package/build/dist/Tests/Types/ObjectID.test.js +8 -8
  470. package/build/dist/Tests/Types/ObjectID.test.js.map +1 -1
  471. package/build/dist/Tests/Types/Permission.test.js +6 -6
  472. package/build/dist/Tests/Types/Permission.test.js.map +1 -1
  473. package/build/dist/Tests/Types/Phone.test.js +21 -21
  474. package/build/dist/Tests/Types/Phone.test.js.map +1 -1
  475. package/build/dist/Tests/Types/Port.test.js +13 -13
  476. package/build/dist/Tests/Types/Port.test.js.map +1 -1
  477. package/build/dist/Tests/Types/PositiveNumber.test.js +19 -19
  478. package/build/dist/Tests/Types/PositiveNumber.test.js.map +1 -1
  479. package/build/dist/Tests/Types/SecuritySeverity.test.js +10 -10
  480. package/build/dist/Tests/Types/SecuritySeverity.test.js.map +1 -1
  481. package/build/dist/Tests/Types/SerializableObject.test.js +14 -12
  482. package/build/dist/Tests/Types/SerializableObject.test.js.map +1 -1
  483. package/build/dist/Tests/Types/Sleep.test.js +4 -4
  484. package/build/dist/Tests/Types/Sleep.test.js.map +1 -1
  485. package/build/dist/Tests/Types/Text.test.js +5 -5
  486. package/build/dist/Tests/Types/Text.test.js.map +1 -1
  487. package/build/dist/Tests/Types/Timezone.test.js +593 -593
  488. package/build/dist/Tests/Types/Timezone.test.js.map +1 -1
  489. package/build/dist/Tests/Types/Typeof.test.js +10 -10
  490. package/build/dist/Tests/Types/Typeof.test.js.map +1 -1
  491. package/build/dist/Tests/Types/UserType.test.js +10 -10
  492. package/build/dist/Tests/Types/UserType.test.js.map +1 -1
  493. package/build/dist/Tests/Types/Version.test.js +21 -21
  494. package/build/dist/Tests/Types/Version.test.js.map +1 -1
  495. package/build/dist/Tests/Types/XML.test.js +17 -17
  496. package/build/dist/Tests/Types/XML.test.js.map +1 -1
  497. package/build/dist/Tests/Utils/API.test.js +83 -83
  498. package/build/dist/Tests/Utils/API.test.js.map +1 -1
  499. package/build/dist/Tests/Utils/Analytics.test.js +25 -25
  500. package/build/dist/Tests/Utils/Analytics.test.js.map +1 -1
  501. package/build/dist/Tests/Utils/CronTime.test.js +14 -14
  502. package/build/dist/Tests/Utils/CronTime.test.js.map +1 -1
  503. package/build/dist/Tests/Utils/Faker.test.js +10 -10
  504. package/build/dist/Tests/Utils/Faker.test.js.map +1 -1
  505. package/build/dist/Tests/Utils/Slug.test.js +12 -12
  506. package/build/dist/Tests/Utils/Slug.test.js.map +1 -1
  507. package/build/dist/Tests/Utils/UUID.test.js +3 -3
  508. package/build/dist/Tests/Utils/UUID.test.js.map +1 -1
  509. package/build/dist/Types/API/HTTPErrorResponse.js +10 -11
  510. package/build/dist/Types/API/HTTPErrorResponse.js.map +1 -1
  511. package/build/dist/Types/API/HTTPMethod.js.map +1 -1
  512. package/build/dist/Types/API/HTTPResponse.js +9 -9
  513. package/build/dist/Types/API/HTTPResponse.js.map +1 -1
  514. package/build/dist/Types/API/Hostname.js +14 -14
  515. package/build/dist/Types/API/Hostname.js.map +1 -1
  516. package/build/dist/Types/API/Protocol.js.map +1 -1
  517. package/build/dist/Types/API/ResponseType.js.map +1 -1
  518. package/build/dist/Types/API/Route.js +11 -11
  519. package/build/dist/Types/API/Route.js.map +1 -1
  520. package/build/dist/Types/API/StatusCode.js +3 -4
  521. package/build/dist/Types/API/StatusCode.js.map +1 -1
  522. package/build/dist/Types/API/URL.js +44 -44
  523. package/build/dist/Types/API/URL.js.map +1 -1
  524. package/build/dist/Types/Alerts/AlertEventType.js.map +1 -1
  525. package/build/dist/Types/Alerts/AlertType.js.map +1 -1
  526. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableEngine.js.map +1 -1
  527. package/build/dist/Types/AnalyticsDatabase/TableColumn.js +6 -7
  528. package/build/dist/Types/AnalyticsDatabase/TableColumn.js.map +1 -1
  529. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js.map +1 -1
  530. package/build/dist/Types/AppEnvironment.js.map +1 -1
  531. package/build/dist/Types/ApplicationLog/ApplicationLogType.js.map +1 -1
  532. package/build/dist/Types/ArrayUtil.js.map +1 -1
  533. package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js +10 -11
  534. package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js.map +1 -1
  535. package/build/dist/Types/BaseDatabase/DatabaseType.js.map +1 -1
  536. package/build/dist/Types/BaseDatabase/EqualToOrNull.js +6 -6
  537. package/build/dist/Types/BaseDatabase/EqualToOrNull.js.map +1 -1
  538. package/build/dist/Types/BaseDatabase/GreaterThan.js +6 -6
  539. package/build/dist/Types/BaseDatabase/GreaterThan.js.map +1 -1
  540. package/build/dist/Types/BaseDatabase/GreaterThanOrEqual.js +6 -6
  541. package/build/dist/Types/BaseDatabase/GreaterThanOrEqual.js.map +1 -1
  542. package/build/dist/Types/BaseDatabase/InBetween.js +8 -8
  543. package/build/dist/Types/BaseDatabase/InBetween.js.map +1 -1
  544. package/build/dist/Types/BaseDatabase/Includes.js +7 -7
  545. package/build/dist/Types/BaseDatabase/Includes.js.map +1 -1
  546. package/build/dist/Types/BaseDatabase/IsNull.js +6 -6
  547. package/build/dist/Types/BaseDatabase/IsNull.js.map +1 -1
  548. package/build/dist/Types/BaseDatabase/LessThan.js +6 -6
  549. package/build/dist/Types/BaseDatabase/LessThan.js.map +1 -1
  550. package/build/dist/Types/BaseDatabase/LessThanOrEqual.js +6 -6
  551. package/build/dist/Types/BaseDatabase/LessThanOrEqual.js.map +1 -1
  552. package/build/dist/Types/BaseDatabase/ModelPermission.js +1 -1
  553. package/build/dist/Types/BaseDatabase/ModelPermission.js.map +1 -1
  554. package/build/dist/Types/BaseDatabase/NotEqual.js +6 -6
  555. package/build/dist/Types/BaseDatabase/NotEqual.js.map +1 -1
  556. package/build/dist/Types/BaseDatabase/NotNull.js +6 -6
  557. package/build/dist/Types/BaseDatabase/NotNull.js.map +1 -1
  558. package/build/dist/Types/BaseDatabase/Search.js +6 -6
  559. package/build/dist/Types/BaseDatabase/Search.js.map +1 -1
  560. package/build/dist/Types/BaseDatabase/SortOrder.js.map +1 -1
  561. package/build/dist/Types/Billing/MeteredPlan.js.map +1 -1
  562. package/build/dist/Types/Billing/SubscriptionPlan.js +15 -16
  563. package/build/dist/Types/Billing/SubscriptionPlan.js.map +1 -1
  564. package/build/dist/Types/Billing/SubscriptionStatus.js.map +1 -1
  565. package/build/dist/Types/BrandColors.js +40 -40
  566. package/build/dist/Types/BrandColors.js.map +1 -1
  567. package/build/dist/Types/BrowserType.js.map +1 -1
  568. package/build/dist/Types/Call/CallRequest.js +1 -1
  569. package/build/dist/Types/Call/CallRequest.js.map +1 -1
  570. package/build/dist/Types/Call/CallStatus.js.map +1 -1
  571. package/build/dist/Types/Code/CodeType.js.map +1 -1
  572. package/build/dist/Types/CodeRepository/CodeRepositoryType.js +7 -0
  573. package/build/dist/Types/CodeRepository/CodeRepositoryType.js.map +1 -0
  574. package/build/dist/Types/CodeRepository/PullRequest.js +2 -0
  575. package/build/dist/Types/CodeRepository/PullRequest.js.map +1 -0
  576. package/build/dist/Types/CodeRepository/PullRequestState.js +8 -0
  577. package/build/dist/Types/CodeRepository/PullRequestState.js.map +1 -0
  578. package/build/dist/Types/Color.js +13 -13
  579. package/build/dist/Types/Color.js.map +1 -1
  580. package/build/dist/Types/Company/CompanySize.js.map +1 -1
  581. package/build/dist/Types/Company/JobRole.js.map +1 -1
  582. package/build/dist/Types/Copilot/CopilotEventStatus.js +7 -0
  583. package/build/dist/Types/Copilot/CopilotEventStatus.js.map +1 -0
  584. package/build/dist/Types/Copilot/CopilotEventType.js.map +1 -1
  585. package/build/dist/Types/Countries.js.map +1 -1
  586. package/build/dist/Types/Currency.js +3 -3
  587. package/build/dist/Types/Currency.js.map +1 -1
  588. package/build/dist/Types/CustomField/CustomFieldType.js.map +1 -1
  589. package/build/dist/Types/Database/AccessControl/AllowAccessIfSubscriptionIsUnpaid.js.map +1 -1
  590. package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js +2 -2
  591. package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js.map +1 -1
  592. package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js +2 -2
  593. package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js.map +1 -1
  594. package/build/dist/Types/Database/AccessControl/TableAccessControl.js.map +1 -1
  595. package/build/dist/Types/Database/AccessControl/TableBillingAccessControl.js.map +1 -1
  596. package/build/dist/Types/Database/AccessControlColumn.js.map +1 -1
  597. package/build/dist/Types/Database/AllowUserQueryWithoutTenant.js.map +1 -1
  598. package/build/dist/Types/Database/CanAccessIfCanReadOn.js.map +1 -1
  599. package/build/dist/Types/Database/ColumnLength.js +1 -1
  600. package/build/dist/Types/Database/ColumnLength.js.map +1 -1
  601. package/build/dist/Types/Database/ColumnType.js.map +1 -1
  602. package/build/dist/Types/Database/Columns.js.map +1 -1
  603. package/build/dist/Types/Database/CompareBase.js +5 -5
  604. package/build/dist/Types/Database/CompareBase.js.map +1 -1
  605. package/build/dist/Types/Database/CrudApiEndpoint.js.map +1 -1
  606. package/build/dist/Types/Database/CurrentUserCanAccessRecordBy.js.map +1 -1
  607. package/build/dist/Types/Database/DatabaseProperty.js +3 -3
  608. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  609. package/build/dist/Types/Database/Date.js +2 -2
  610. package/build/dist/Types/Database/Date.js.map +1 -1
  611. package/build/dist/Types/Database/EnableDocumentation.js +1 -2
  612. package/build/dist/Types/Database/EnableDocumentation.js.map +1 -1
  613. package/build/dist/Types/Database/EnableWorkflow.js.map +1 -1
  614. package/build/dist/Types/Database/IsPermissionsIf.js.map +1 -1
  615. package/build/dist/Types/Database/LabelsColumn.js.map +1 -1
  616. package/build/dist/Types/Database/MultiTenentQueryAllowed.js.map +1 -1
  617. package/build/dist/Types/Database/SlugifyColumn.js.map +1 -1
  618. package/build/dist/Types/Database/TableColumn.js +2 -2
  619. package/build/dist/Types/Database/TableColumn.js.map +1 -1
  620. package/build/dist/Types/Database/TableColumnType.js.map +1 -1
  621. package/build/dist/Types/Database/TableMetadata.js.map +1 -1
  622. package/build/dist/Types/Database/TenantColumn.js.map +1 -1
  623. package/build/dist/Types/Database/TotalItemsBy.js.map +1 -1
  624. package/build/dist/Types/Database/UniqueColumnBy.js +2 -2
  625. package/build/dist/Types/Database/UniqueColumnBy.js.map +1 -1
  626. package/build/dist/Types/DatabaseType.js.map +1 -1
  627. package/build/dist/Types/Date.js +132 -136
  628. package/build/dist/Types/Date.js.map +1 -1
  629. package/build/dist/Types/Day/DayOfWeek.js.map +1 -1
  630. package/build/dist/Types/Decimal.js +8 -8
  631. package/build/dist/Types/Decimal.js.map +1 -1
  632. package/build/dist/Types/DiskSize.js +3 -3
  633. package/build/dist/Types/DiskSize.js.map +1 -1
  634. package/build/dist/Types/Domain.js +13 -13
  635. package/build/dist/Types/Domain.js.map +1 -1
  636. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  637. package/build/dist/Types/Email.js +32 -32
  638. package/build/dist/Types/Email.js.map +1 -1
  639. package/build/dist/Types/EmailWithName.js +4 -4
  640. package/build/dist/Types/EmailWithName.js.map +1 -1
  641. package/build/dist/Types/EncryptionAlgorithm.js.map +1 -1
  642. package/build/dist/Types/Events/EventInterval.js.map +1 -1
  643. package/build/dist/Types/Events/Recurring.js +15 -15
  644. package/build/dist/Types/Events/Recurring.js.map +1 -1
  645. package/build/dist/Types/Exception/ApiException.js +2 -2
  646. package/build/dist/Types/Exception/ApiException.js.map +1 -1
  647. package/build/dist/Types/Exception/BadDataException.js +2 -2
  648. package/build/dist/Types/Exception/BadDataException.js.map +1 -1
  649. package/build/dist/Types/Exception/BadOperationException.js +2 -2
  650. package/build/dist/Types/Exception/BadOperationException.js.map +1 -1
  651. package/build/dist/Types/Exception/BadRequestException.js +2 -2
  652. package/build/dist/Types/Exception/BadRequestException.js.map +1 -1
  653. package/build/dist/Types/Exception/DatabaseNotConnectedException.js +3 -3
  654. package/build/dist/Types/Exception/DatabaseNotConnectedException.js.map +1 -1
  655. package/build/dist/Types/Exception/Exception.js +1 -1
  656. package/build/dist/Types/Exception/Exception.js.map +1 -1
  657. package/build/dist/Types/Exception/ExceptionCode.js.map +1 -1
  658. package/build/dist/Types/Exception/NotAuthenticatedException.js +2 -2
  659. package/build/dist/Types/Exception/NotAuthenticatedException.js.map +1 -1
  660. package/build/dist/Types/Exception/NotAuthorizedException.js +2 -2
  661. package/build/dist/Types/Exception/NotAuthorizedException.js.map +1 -1
  662. package/build/dist/Types/Exception/NotFoundException.js +2 -2
  663. package/build/dist/Types/Exception/NotFoundException.js.map +1 -1
  664. package/build/dist/Types/Exception/NotImplementedException.js +3 -3
  665. package/build/dist/Types/Exception/NotImplementedException.js.map +1 -1
  666. package/build/dist/Types/Exception/PaymentRequiredException.js +2 -2
  667. package/build/dist/Types/Exception/PaymentRequiredException.js.map +1 -1
  668. package/build/dist/Types/Exception/ServerException.js +3 -3
  669. package/build/dist/Types/Exception/ServerException.js.map +1 -1
  670. package/build/dist/Types/Exception/SsoAuthorizationException.js +3 -3
  671. package/build/dist/Types/Exception/SsoAuthorizationException.js.map +1 -1
  672. package/build/dist/Types/Exception/TenantNotFoundException.js +2 -2
  673. package/build/dist/Types/Exception/TenantNotFoundException.js.map +1 -1
  674. package/build/dist/Types/Exception/TimeoutException.js +2 -2
  675. package/build/dist/Types/Exception/TimeoutException.js.map +1 -1
  676. package/build/dist/Types/Exception/UnableToReachServer.js +2 -2
  677. package/build/dist/Types/Exception/UnableToReachServer.js.map +1 -1
  678. package/build/dist/Types/Exception/WebsiteRequestException.js +2 -2
  679. package/build/dist/Types/Exception/WebsiteRequestException.js.map +1 -1
  680. package/build/dist/Types/File/MimeType.js.map +1 -1
  681. package/build/dist/Types/Filter/FilterCondition.js.map +1 -1
  682. package/build/dist/Types/Filter/FilterType.js.map +1 -1
  683. package/build/dist/Types/HashCode.js.map +1 -1
  684. package/build/dist/Types/HashedString.js +14 -14
  685. package/build/dist/Types/HashedString.js.map +1 -1
  686. package/build/dist/Types/Html.js +1 -1
  687. package/build/dist/Types/Html.js.map +1 -1
  688. package/build/dist/Types/IP/IP.js +13 -13
  689. package/build/dist/Types/IP/IP.js.map +1 -1
  690. package/build/dist/Types/IP/IPType.js.map +1 -1
  691. package/build/dist/Types/IP/IPv4.js +3 -3
  692. package/build/dist/Types/IP/IPv4.js.map +1 -1
  693. package/build/dist/Types/IP/IPv6.js +3 -3
  694. package/build/dist/Types/IP/IPv6.js.map +1 -1
  695. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  696. package/build/dist/Types/Infrastructure/OSType.js.map +1 -1
  697. package/build/dist/Types/JSON.js.map +1 -1
  698. package/build/dist/Types/JSONFunctions.js +33 -35
  699. package/build/dist/Types/JSONFunctions.js.map +1 -1
  700. package/build/dist/Types/ListData.js.map +1 -1
  701. package/build/dist/Types/Mail/MailStatus.js.map +1 -1
  702. package/build/dist/Types/MeteredPlan/ProductType.js.map +1 -1
  703. package/build/dist/Types/Monitor/CriteriaFilter.js +1 -1
  704. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  705. package/build/dist/Types/Monitor/MonitorCriteria.js +17 -19
  706. package/build/dist/Types/Monitor/MonitorCriteria.js.map +1 -1
  707. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +54 -55
  708. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  709. package/build/dist/Types/Monitor/MonitorStep.js +48 -52
  710. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  711. package/build/dist/Types/Monitor/MonitorSteps.js +19 -19
  712. package/build/dist/Types/Monitor/MonitorSteps.js.map +1 -1
  713. package/build/dist/Types/Monitor/MonitorType.js +23 -23
  714. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  715. package/build/dist/Types/Monitor/SyntheticMonitors/BrowserType.js +1 -1
  716. package/build/dist/Types/Monitor/SyntheticMonitors/ScreenSizeType.js +1 -1
  717. package/build/dist/Types/Name.js +16 -16
  718. package/build/dist/Types/Name.js.map +1 -1
  719. package/build/dist/Types/NotificationRule/NotificationRuleType.js.map +1 -1
  720. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  721. package/build/dist/Types/ObjectID.js +15 -15
  722. package/build/dist/Types/ObjectID.js.map +1 -1
  723. package/build/dist/Types/OnCallDutyPolicy/Layer.js +14 -18
  724. package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
  725. package/build/dist/Types/OnCallDutyPolicy/OnCalDutyExecutionLogTimelineStatus.js.map +1 -1
  726. package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyAlertStatus.js.map +1 -1
  727. package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.js.map +1 -1
  728. package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js +14 -14
  729. package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js.map +1 -1
  730. package/build/dist/Types/Operation/OperationResult.js.map +1 -1
  731. package/build/dist/Types/Operation/OperationStatus.js.map +1 -1
  732. package/build/dist/Types/Permission.js +696 -696
  733. package/build/dist/Types/Permission.js.map +1 -1
  734. package/build/dist/Types/Phone.js +8 -8
  735. package/build/dist/Types/Phone.js.map +1 -1
  736. package/build/dist/Types/Port.js +11 -11
  737. package/build/dist/Types/Port.js.map +1 -1
  738. package/build/dist/Types/PositiveNumber.js +7 -8
  739. package/build/dist/Types/PositiveNumber.js.map +1 -1
  740. package/build/dist/Types/SMS/SmsTemplateType.js.map +1 -1
  741. package/build/dist/Types/SSO/DigestMethod.js.map +1 -1
  742. package/build/dist/Types/SSO/SignatureMethod.js.map +1 -1
  743. package/build/dist/Types/ScheduledEvent/ScheduledEventState.js.map +1 -1
  744. package/build/dist/Types/ScreenSizeType.js.map +1 -1
  745. package/build/dist/Types/SecuritySeverity.js.map +1 -1
  746. package/build/dist/Types/SerializableObject.js +1 -1
  747. package/build/dist/Types/SerializableObject.js.map +1 -1
  748. package/build/dist/Types/SerializableObjectDictionary.js +29 -29
  749. package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
  750. package/build/dist/Types/ServiceCatalog/ServiceLanguage.js +21 -0
  751. package/build/dist/Types/ServiceCatalog/ServiceLanguage.js.map +1 -0
  752. package/build/dist/Types/Sleep.js.map +1 -1
  753. package/build/dist/Types/SmsStatus.js.map +1 -1
  754. package/build/dist/Types/StatusPage/StatusPageChartType.js.map +1 -1
  755. package/build/dist/Types/Text.js +35 -35
  756. package/build/dist/Types/Text.js.map +1 -1
  757. package/build/dist/Types/Timezone.js.map +1 -1
  758. package/build/dist/Types/TimezoneCode.js +64 -0
  759. package/build/dist/Types/TimezoneCode.js.map +1 -0
  760. package/build/dist/Types/Typeof.js.map +1 -1
  761. package/build/dist/Types/UserNotification/UserNotificationEventType.js.map +1 -1
  762. package/build/dist/Types/UserNotification/UserNotificationExecutionStatus.js.map +1 -1
  763. package/build/dist/Types/UserNotification/UserNotificationStatus.js.map +1 -1
  764. package/build/dist/Types/UserType.js.map +1 -1
  765. package/build/dist/Types/Version.js +9 -9
  766. package/build/dist/Types/Version.js.map +1 -1
  767. package/build/dist/Types/WebsiteRequest.js +3 -3
  768. package/build/dist/Types/WebsiteRequest.js.map +1 -1
  769. package/build/dist/Types/Workflow/Component.js.map +1 -1
  770. package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
  771. package/build/dist/Types/Workflow/Components/API.js +139 -139
  772. package/build/dist/Types/Workflow/Components/API.js.map +1 -1
  773. package/build/dist/Types/Workflow/Components/BaseModel.js +139 -139
  774. package/build/dist/Types/Workflow/Components/BaseModel.js.map +1 -1
  775. package/build/dist/Types/Workflow/Components/Condition.js +27 -27
  776. package/build/dist/Types/Workflow/Components/Condition.js.map +1 -1
  777. package/build/dist/Types/Workflow/Components/Email.js +44 -44
  778. package/build/dist/Types/Workflow/Components/Email.js.map +1 -1
  779. package/build/dist/Types/Workflow/Components/JSON.js +60 -60
  780. package/build/dist/Types/Workflow/Components/JSON.js.map +1 -1
  781. package/build/dist/Types/Workflow/Components/JavaScript.js +26 -26
  782. package/build/dist/Types/Workflow/Components/JavaScript.js.map +1 -1
  783. package/build/dist/Types/Workflow/Components/Log.js +15 -15
  784. package/build/dist/Types/Workflow/Components/Log.js.map +1 -1
  785. package/build/dist/Types/Workflow/Components/Manual.js +12 -12
  786. package/build/dist/Types/Workflow/Components/Manual.js.map +1 -1
  787. package/build/dist/Types/Workflow/Components/MicrosoftTeams.js +26 -26
  788. package/build/dist/Types/Workflow/Components/MicrosoftTeams.js.map +1 -1
  789. package/build/dist/Types/Workflow/Components/Schedule.js +12 -12
  790. package/build/dist/Types/Workflow/Components/Schedule.js.map +1 -1
  791. package/build/dist/Types/Workflow/Components/Slack.js +26 -26
  792. package/build/dist/Types/Workflow/Components/Slack.js.map +1 -1
  793. package/build/dist/Types/Workflow/Components/Webhook.js +20 -20
  794. package/build/dist/Types/Workflow/Components/Webhook.js.map +1 -1
  795. package/build/dist/Types/Workflow/Components/Workflow.js +15 -15
  796. package/build/dist/Types/Workflow/Components/Workflow.js.map +1 -1
  797. package/build/dist/Types/Workflow/Components.js +33 -33
  798. package/build/dist/Types/Workflow/Components.js.map +1 -1
  799. package/build/dist/Types/Workflow/WorkflowPlan.js.map +1 -1
  800. package/build/dist/Types/Workflow/WorkflowStatus.js.map +1 -1
  801. package/build/dist/Types/XML.js +3 -3
  802. package/build/dist/Types/XML.js.map +1 -1
  803. package/build/dist/Utils/API.js +66 -16
  804. package/build/dist/Utils/API.js.map +1 -1
  805. package/build/dist/Utils/Analytics.js +1 -1
  806. package/build/dist/Utils/Analytics.js.map +1 -1
  807. package/build/dist/Utils/CronTime.js +7 -7
  808. package/build/dist/Utils/Enum.js +9 -0
  809. package/build/dist/Utils/Enum.js.map +1 -0
  810. package/build/dist/Utils/Faker.js +5 -5
  811. package/build/dist/Utils/Faker.js.map +1 -1
  812. package/build/dist/Utils/ObjectUtil.js.map +1 -1
  813. package/build/dist/Utils/Realtime.js +1 -1
  814. package/build/dist/Utils/Realtime.js.map +1 -1
  815. package/build/dist/Utils/Slug.js +3 -3
  816. package/build/dist/Utils/Slug.js.map +1 -1
  817. package/build/dist/Utils/UUID.js +1 -1
  818. package/build/dist/Utils/UUID.js.map +1 -1
  819. package/package.json +3 -3
@@ -1,739 +1,731 @@
1
- import Route from '../Types/API/Route';
2
- import { ColumnAccessControl } from '../Types/BaseDatabase/AccessControl';
3
- import ColumnBillingAccessControl from '../Types/BaseDatabase/ColumnBillingAccessControl';
4
- import EnableWorkflowOn from '../Types/BaseDatabase/EnableWorkflowOn';
5
- import ModelPermission from '../Types/BaseDatabase/ModelPermission';
6
- import { PlanSelect } from '../Types/Billing/SubscriptionPlan';
7
- import { getColumnAccessControlForAllColumns } from '../Types/Database/AccessControl/ColumnAccessControl';
8
- import { getColumnBillingAccessControlForAllColumns } from '../Types/Database/AccessControl/ColumnBillingAccessControl';
9
- import Columns from '../Types/Database/Columns';
1
+ import Route from "../Types/API/Route";
2
+ import { ColumnAccessControl } from "../Types/BaseDatabase/AccessControl";
3
+ import ColumnBillingAccessControl from "../Types/BaseDatabase/ColumnBillingAccessControl";
4
+ import EnableWorkflowOn from "../Types/BaseDatabase/EnableWorkflowOn";
5
+ import ModelPermission from "../Types/BaseDatabase/ModelPermission";
6
+ import { PlanSelect } from "../Types/Billing/SubscriptionPlan";
7
+ import { getColumnAccessControlForAllColumns } from "../Types/Database/AccessControl/ColumnAccessControl";
8
+ import { getColumnBillingAccessControlForAllColumns } from "../Types/Database/AccessControl/ColumnBillingAccessControl";
9
+ import Columns from "../Types/Database/Columns";
10
10
  import TableColumn, {
11
- TableColumnMetadata,
12
- getTableColumn,
13
- getTableColumns,
14
- } from '../Types/Database/TableColumn';
15
- import TableColumnType from '../Types/Database/TableColumnType';
16
- import Dictionary from '../Types/Dictionary';
17
- import Email from '../Types/Email';
18
- import BadDataException from '../Types/Exception/BadDataException';
19
- import HashedString from '../Types/HashedString';
20
- import IconProp from '../Types/Icon/IconProp';
21
- import { JSONArray, JSONObject, JSONValue } from '../Types/JSON';
22
- import JSONFunctions from '../Types/JSONFunctions';
23
- import ObjectID from '../Types/ObjectID';
24
- import Permission, { UserTenantAccessPermission } from '../Types/Permission';
25
- import Phone from '../Types/Phone';
26
- import PositiveNumber from '../Types/PositiveNumber';
27
- import Text from '../Types/Text';
11
+ TableColumnMetadata,
12
+ getTableColumn,
13
+ getTableColumns,
14
+ } from "../Types/Database/TableColumn";
15
+ import TableColumnType from "../Types/Database/TableColumnType";
16
+ import Dictionary from "../Types/Dictionary";
17
+ import Email from "../Types/Email";
18
+ import BadDataException from "../Types/Exception/BadDataException";
19
+ import HashedString from "../Types/HashedString";
20
+ import IconProp from "../Types/Icon/IconProp";
21
+ import { JSONArray, JSONObject, JSONValue } from "../Types/JSON";
22
+ import JSONFunctions from "../Types/JSONFunctions";
23
+ import ObjectID from "../Types/ObjectID";
24
+ import Permission, { UserTenantAccessPermission } from "../Types/Permission";
25
+ import Phone from "../Types/Phone";
26
+ import PositiveNumber from "../Types/PositiveNumber";
27
+ import Text from "../Types/Text";
28
28
  import {
29
- BaseEntity,
30
- CreateDateColumn,
31
- DeleteDateColumn,
32
- PrimaryGeneratedColumn,
33
- UpdateDateColumn,
34
- VersionColumn,
35
- } from 'typeorm';
29
+ BaseEntity,
30
+ CreateDateColumn,
31
+ DeleteDateColumn,
32
+ PrimaryGeneratedColumn,
33
+ UpdateDateColumn,
34
+ VersionColumn,
35
+ } from "typeorm";
36
36
 
37
37
  export type BaseModelType = { new (): BaseModel };
38
38
 
39
39
  export type DbTypes =
40
- | string
41
- | number
42
- | PositiveNumber
43
- | Email
44
- | HashedString
45
- | URL
46
- | Phone
47
- | JSONObject
48
- | ObjectID
49
- | JSONArray
50
- | Buffer;
40
+ | string
41
+ | number
42
+ | PositiveNumber
43
+ | Email
44
+ | HashedString
45
+ | URL
46
+ | Phone
47
+ | JSONObject
48
+ | ObjectID
49
+ | JSONArray
50
+ | Buffer;
51
51
 
52
52
  export default class BaseModel extends BaseEntity {
53
- @TableColumn({
54
- title: 'ID',
55
- type: TableColumnType.ObjectID,
56
- description: 'ID of this object',
57
- })
58
- @PrimaryGeneratedColumn('uuid')
59
- public _id?: string = undefined;
60
-
61
- @TableColumn({
62
- title: 'Created',
63
- type: TableColumnType.Date,
64
- description: 'Date and Time when the object was created.',
65
- })
66
- @CreateDateColumn()
67
- public createdAt?: Date = undefined;
68
-
69
- @TableColumn({
70
- title: 'Updated',
71
- type: TableColumnType.Date,
72
- description: 'Date and Time when the object was updated.',
73
- })
74
- @UpdateDateColumn()
75
- public updatedAt?: Date = undefined;
76
-
77
- @TableColumn({
78
- title: 'Deleted',
79
- type: TableColumnType.Date,
80
- description: 'Date and Time when the object was deleted.',
81
- })
82
- @DeleteDateColumn()
83
- public deletedAt?: Date = undefined;
84
-
85
- @TableColumn({
86
- title: 'Version',
87
- type: TableColumnType.Version,
88
- description: 'Object version',
89
- })
90
- @VersionColumn()
91
- public version?: number = undefined;
92
-
93
- public createRecordPermissions!: Array<Permission>;
94
- public readRecordPermissions!: Array<Permission>;
95
- public deleteRecordPermissions!: Array<Permission>;
96
- public updateRecordPermissions!: Array<Permission>;
97
-
98
- // Billing Plans.
99
- public createBillingPlan!: PlanSelect | null;
100
- public readBillingPlan!: PlanSelect | null;
101
- public updateBillingPlan!: PlanSelect | null;
102
- public deleteBillingPlan!: PlanSelect | null;
103
-
104
- public allowAccessIfSubscriptionIsUnpaid!: boolean;
105
-
106
- public enableWorkflowOn!: EnableWorkflowOn;
107
-
108
- public enableDocumentation!: boolean;
109
- public isMasterAdminApiDocs!: boolean;
110
-
111
- public currentUserCanAccessColumnBy!: string | null;
112
- public labelsColumn!: string | null;
113
- public slugifyColumn!: string | null;
114
- public saveSlugToColumn!: string | null;
115
- public singularName!: string | null;
116
- public pluralName!: string | null;
117
-
118
- // total items by
119
- public totalItemsByColumnName!: string | null;
120
- public totalItemsNumber!: number | null;
121
- public totalItemsErrorMessage!: string | null;
122
-
123
- public isPermissionIf: Dictionary<JSONObject> = {};
124
-
125
- public isMultiTenantRequestAllowed!: boolean | null;
126
- public allowUserQueryWithoutTenant!: boolean | null;
127
-
128
- public crudApiPath!: Route | null;
129
-
130
- // If this resource is by projectId, which column does projectId belong to?
131
- public tenantColumn!: string | null;
132
-
133
- public accessControlColumn!: string | null;
134
-
135
- public icon!: IconProp | null;
136
-
137
- public tableDescription!: string | null;
138
-
139
- public tableName!: string | null;
140
-
141
- public canAccessIfCanReadOn!: string | null;
142
-
143
- public constructor(id?: ObjectID) {
144
- super();
145
- if (id) {
146
- this.id = id;
147
- }
148
- }
149
-
150
- public getHashedColumns(): Columns {
151
- const dictionary: Dictionary<TableColumnMetadata> =
152
- getTableColumns(this);
153
- const columns: Array<string> = [];
154
- for (const key in dictionary) {
155
- if (dictionary[key]?.hashed) {
156
- columns.push(key);
157
- }
158
- }
159
-
160
- return new Columns(columns);
161
- }
162
-
163
- public getDisplayColumnPlaceholderAs(columnName: string): string | null {
164
- return getTableColumn(this, columnName)?.placeholder || null;
165
- }
166
-
167
- public getDisplayColumnTitleAs(columnName: string): string | null {
168
- return getTableColumn(this, columnName)?.title || null;
169
- }
170
-
171
- public getDisplayColumnDescriptionAs(columnName: string): string | null {
172
- return getTableColumn(this, columnName)?.description || null;
173
- }
174
-
175
- public getEncryptedColumns(): Columns {
176
- const dictionary: Dictionary<TableColumnMetadata> =
177
- getTableColumns(this);
178
- const columns: Array<string> = [];
179
- for (const key in dictionary) {
180
- if (dictionary[key]?.encrypted) {
181
- columns.push(key);
182
- }
183
- }
184
-
185
- return new Columns(columns);
186
- }
187
-
188
- public getTableColumns(): Columns {
189
- return new Columns(Object.keys(getTableColumns(this)));
190
- }
191
-
192
- public canQueryMultiTenant(): boolean {
193
- return Boolean(this.isMultiTenantRequestAllowed);
194
- }
195
-
196
- public isUserQueryWithoutTenantAllowed(): boolean {
197
- return Boolean(this.allowUserQueryWithoutTenant);
198
- }
199
-
200
- public getTableColumnMetadata(columnName: string): TableColumnMetadata {
201
- const dictionary: Dictionary<TableColumnMetadata> =
202
- getTableColumns(this);
203
- return dictionary[columnName] as TableColumnMetadata;
204
- }
205
-
206
- public hasColumn(columnName: string): boolean {
207
- return Boolean(getTableColumn(this, columnName));
208
- }
209
-
210
- public getColumnBillingAccessControl(
211
- columnName: string
212
- ): ColumnBillingAccessControl {
213
- const dictionary: Dictionary<ColumnBillingAccessControl> =
214
- getColumnBillingAccessControlForAllColumns(this);
215
- return dictionary[columnName] as ColumnBillingAccessControl;
216
- }
217
-
218
- public getColumnAccessControlFor(
219
- columnName: string
220
- ): ColumnAccessControl | null {
221
- return this.getColumnAccessControlForAllColumns()[columnName] || null;
222
- }
223
-
224
- public getColumnAccessControlForAllColumns(): Dictionary<ColumnAccessControl> {
225
- const dictionary: Dictionary<ColumnAccessControl> =
226
- getColumnAccessControlForAllColumns(this);
227
-
228
- const defaultColumns: Array<string> = [
229
- '_id',
230
- 'createdAt',
231
- 'deletedAt',
232
- 'updatedAt',
233
- ];
234
-
235
- for (const key of defaultColumns) {
236
- dictionary[key] = {
237
- read: this.readRecordPermissions,
238
- create: this.createRecordPermissions,
239
- update: this.updateRecordPermissions,
240
- };
241
- }
242
-
243
- return dictionary;
244
- }
245
-
246
- public hasValue(columnName: string): boolean {
247
- return Boolean((this as any)[columnName]);
248
- }
249
-
250
- public getValue<T extends DbTypes>(columnName: string): T {
251
- return (this as any)[columnName] as T;
252
- }
253
-
254
- public setValue<T extends DbTypes>(columnName: string, value: T): void {
255
- (this as any)[columnName] = value;
256
- }
257
-
258
- public removeValue(columnName: string): void {
259
- (this as any)[columnName] = undefined;
260
- }
261
-
262
- public doesPermissionHaveConditions(
263
- permission: Permission
264
- ): JSONObject | null {
265
- return this.isPermissionIf[permission]
266
- ? (this.isPermissionIf[permission] as JSONObject)
267
- : null;
268
- }
269
-
270
- public getUniqueColumns(): Columns {
271
- const dictionary: Dictionary<TableColumnMetadata> =
272
- getTableColumns(this);
273
- const columns: Array<string> = [];
274
- for (const key in dictionary) {
275
- if (dictionary[key]?.unique) {
276
- columns.push(key);
277
- }
278
- }
279
-
280
- return new Columns(columns);
281
- }
282
-
283
- public setSlugifyColumn(columnName: string): void {
284
- this.slugifyColumn = columnName;
285
- }
286
-
287
- public getTotalItemsByColumnName(): string | null {
288
- return this.totalItemsByColumnName;
289
- }
290
-
291
- public getTotalItemsByErrorMessage(): string | null {
292
- return this.totalItemsErrorMessage;
293
- }
294
-
295
- public getTotalItemsNumber(): number | null {
296
- return this.totalItemsNumber;
297
- }
298
-
299
- public getRequiredColumns(): Columns {
300
- const dictionary: Dictionary<TableColumnMetadata> =
301
- getTableColumns(this);
302
- const columns: Array<string> = [];
303
- for (const key in dictionary) {
304
- if (dictionary[key]?.required) {
305
- columns.push(key);
306
- }
307
- }
308
-
309
- return new Columns(columns);
310
- }
311
-
312
- public getSlugifyColumn(): string | null {
313
- return this.slugifyColumn;
314
- }
315
-
316
- public getCrudApiPath(): Route | null {
317
- return this.crudApiPath;
318
- }
319
-
320
- public getSaveSlugToColumn(): string | null {
321
- return this.saveSlugToColumn;
322
- }
53
+ @TableColumn({
54
+ title: "ID",
55
+ type: TableColumnType.ObjectID,
56
+ description: "ID of this object",
57
+ })
58
+ @PrimaryGeneratedColumn("uuid")
59
+ public _id?: string = undefined;
60
+
61
+ @TableColumn({
62
+ title: "Created",
63
+ type: TableColumnType.Date,
64
+ description: "Date and Time when the object was created.",
65
+ })
66
+ @CreateDateColumn()
67
+ public createdAt?: Date = undefined;
68
+
69
+ @TableColumn({
70
+ title: "Updated",
71
+ type: TableColumnType.Date,
72
+ description: "Date and Time when the object was updated.",
73
+ })
74
+ @UpdateDateColumn()
75
+ public updatedAt?: Date = undefined;
76
+
77
+ @TableColumn({
78
+ title: "Deleted",
79
+ type: TableColumnType.Date,
80
+ description: "Date and Time when the object was deleted.",
81
+ })
82
+ @DeleteDateColumn()
83
+ public deletedAt?: Date = undefined;
84
+
85
+ @TableColumn({
86
+ title: "Version",
87
+ type: TableColumnType.Version,
88
+ description: "Object version",
89
+ })
90
+ @VersionColumn()
91
+ public version?: number = undefined;
92
+
93
+ public createRecordPermissions!: Array<Permission>;
94
+ public readRecordPermissions!: Array<Permission>;
95
+ public deleteRecordPermissions!: Array<Permission>;
96
+ public updateRecordPermissions!: Array<Permission>;
97
+
98
+ // Billing Plans.
99
+ public createBillingPlan!: PlanSelect | null;
100
+ public readBillingPlan!: PlanSelect | null;
101
+ public updateBillingPlan!: PlanSelect | null;
102
+ public deleteBillingPlan!: PlanSelect | null;
103
+
104
+ public allowAccessIfSubscriptionIsUnpaid!: boolean;
105
+
106
+ public enableWorkflowOn!: EnableWorkflowOn;
107
+
108
+ public enableDocumentation!: boolean;
109
+ public isMasterAdminApiDocs!: boolean;
110
+
111
+ public currentUserCanAccessColumnBy!: string | null;
112
+ public labelsColumn!: string | null;
113
+ public slugifyColumn!: string | null;
114
+ public saveSlugToColumn!: string | null;
115
+ public singularName!: string | null;
116
+ public pluralName!: string | null;
117
+
118
+ // total items by
119
+ public totalItemsByColumnName!: string | null;
120
+ public totalItemsNumber!: number | null;
121
+ public totalItemsErrorMessage!: string | null;
122
+
123
+ public isPermissionIf: Dictionary<JSONObject> = {};
124
+
125
+ public isMultiTenantRequestAllowed!: boolean | null;
126
+ public allowUserQueryWithoutTenant!: boolean | null;
127
+
128
+ public crudApiPath!: Route | null;
129
+
130
+ // If this resource is by projectId, which column does projectId belong to?
131
+ public tenantColumn!: string | null;
132
+
133
+ public accessControlColumn!: string | null;
134
+
135
+ public icon!: IconProp | null;
136
+
137
+ public tableDescription!: string | null;
138
+
139
+ public tableName!: string | null;
140
+
141
+ public canAccessIfCanReadOn!: string | null;
142
+
143
+ public constructor(id?: ObjectID) {
144
+ super();
145
+ if (id) {
146
+ this.id = id;
147
+ }
148
+ }
149
+
150
+ public getHashedColumns(): Columns {
151
+ const dictionary: Dictionary<TableColumnMetadata> = getTableColumns(this);
152
+ const columns: Array<string> = [];
153
+ for (const key in dictionary) {
154
+ if (dictionary[key]?.hashed) {
155
+ columns.push(key);
156
+ }
157
+ }
158
+
159
+ return new Columns(columns);
160
+ }
161
+
162
+ public getDisplayColumnPlaceholderAs(columnName: string): string | null {
163
+ return getTableColumn(this, columnName)?.placeholder || null;
164
+ }
165
+
166
+ public getDisplayColumnTitleAs(columnName: string): string | null {
167
+ return getTableColumn(this, columnName)?.title || null;
168
+ }
169
+
170
+ public getDisplayColumnDescriptionAs(columnName: string): string | null {
171
+ return getTableColumn(this, columnName)?.description || null;
172
+ }
173
+
174
+ public getEncryptedColumns(): Columns {
175
+ const dictionary: Dictionary<TableColumnMetadata> = getTableColumns(this);
176
+ const columns: Array<string> = [];
177
+ for (const key in dictionary) {
178
+ if (dictionary[key]?.encrypted) {
179
+ columns.push(key);
180
+ }
181
+ }
323
182
 
324
- public getTenantColumn(): string | null {
325
- return this.tenantColumn;
326
- }
183
+ return new Columns(columns);
184
+ }
185
+
186
+ public getTableColumns(): Columns {
187
+ return new Columns(Object.keys(getTableColumns(this)));
188
+ }
327
189
 
328
- public getAccessControlColumn(): string | null {
329
- return this.accessControlColumn;
330
- }
190
+ public canQueryMultiTenant(): boolean {
191
+ return Boolean(this.isMultiTenantRequestAllowed);
192
+ }
331
193
 
332
- public getUserColumn(): string | null {
333
- return this.currentUserCanAccessColumnBy;
334
- }
194
+ public isUserQueryWithoutTenantAllowed(): boolean {
195
+ return Boolean(this.allowUserQueryWithoutTenant);
196
+ }
335
197
 
336
- public getLabelsColumn(): string | null {
337
- return this.labelsColumn;
338
- }
198
+ public getTableColumnMetadata(columnName: string): TableColumnMetadata {
199
+ const dictionary: Dictionary<TableColumnMetadata> = getTableColumns(this);
200
+ return dictionary[columnName] as TableColumnMetadata;
201
+ }
339
202
 
340
- public get id(): ObjectID | null {
341
- return this._id ? new ObjectID(this._id) : null;
342
- }
203
+ public hasColumn(columnName: string): boolean {
204
+ return Boolean(getTableColumn(this, columnName));
205
+ }
343
206
 
344
- public set id(value: ObjectID | null) {
345
- if (value) {
346
- this._id = value.toString();
347
- }
348
- }
207
+ public getColumnBillingAccessControl(
208
+ columnName: string,
209
+ ): ColumnBillingAccessControl {
210
+ const dictionary: Dictionary<ColumnBillingAccessControl> =
211
+ getColumnBillingAccessControlForAllColumns(this);
212
+ return dictionary[columnName] as ColumnBillingAccessControl;
213
+ }
349
214
 
350
- public isDefaultValueColumn(columnName: string): boolean {
351
- return Boolean(getTableColumn(this, columnName).isDefaultValueColumn);
352
- }
215
+ public getColumnAccessControlFor(
216
+ columnName: string,
217
+ ): ColumnAccessControl | null {
218
+ return this.getColumnAccessControlForAllColumns()[columnName] || null;
219
+ }
353
220
 
354
- public getColumnValue(
355
- columnName: string
356
- ): JSONValue | BaseModel | Array<BaseModel> | null {
357
- if (getTableColumn(this, columnName) && (this as any)[columnName]) {
358
- return (this as any)[columnName] as JSONValue;
359
- }
221
+ public getColumnAccessControlForAllColumns(): Dictionary<ColumnAccessControl> {
222
+ const dictionary: Dictionary<ColumnAccessControl> =
223
+ getColumnAccessControlForAllColumns(this);
360
224
 
361
- return null;
362
- }
225
+ const defaultColumns: Array<string> = [
226
+ "_id",
227
+ "createdAt",
228
+ "deletedAt",
229
+ "updatedAt",
230
+ ];
363
231
 
364
- public setColumnValue(
365
- columnName: string,
366
- value: JSONValue | BaseModel | Array<BaseModel>
367
- ): void {
368
- if (getTableColumn(this, columnName)) {
369
- return ((this as any)[columnName] = value as any);
370
- }
371
- }
232
+ for (const key of defaultColumns) {
233
+ dictionary[key] = {
234
+ read: this.readRecordPermissions,
235
+ create: this.createRecordPermissions,
236
+ update: this.updateRecordPermissions,
237
+ };
238
+ }
239
+
240
+ return dictionary;
241
+ }
242
+
243
+ public hasValue(columnName: string): boolean {
244
+ return Boolean((this as any)[columnName]);
245
+ }
246
+
247
+ public getValue<T extends DbTypes>(columnName: string): T {
248
+ return (this as any)[columnName] as T;
249
+ }
250
+
251
+ public setValue<T extends DbTypes>(columnName: string, value: T): void {
252
+ (this as any)[columnName] = value;
253
+ }
254
+
255
+ public removeValue(columnName: string): void {
256
+ (this as any)[columnName] = undefined;
257
+ }
258
+
259
+ public doesPermissionHaveConditions(
260
+ permission: Permission,
261
+ ): JSONObject | null {
262
+ return this.isPermissionIf[permission]
263
+ ? (this.isPermissionIf[permission] as JSONObject)
264
+ : null;
265
+ }
266
+
267
+ public getUniqueColumns(): Columns {
268
+ const dictionary: Dictionary<TableColumnMetadata> = getTableColumns(this);
269
+ const columns: Array<string> = [];
270
+ for (const key in dictionary) {
271
+ if (dictionary[key]?.unique) {
272
+ columns.push(key);
273
+ }
274
+ }
275
+
276
+ return new Columns(columns);
277
+ }
278
+
279
+ public setSlugifyColumn(columnName: string): void {
280
+ this.slugifyColumn = columnName;
281
+ }
282
+
283
+ public getTotalItemsByColumnName(): string | null {
284
+ return this.totalItemsByColumnName;
285
+ }
286
+
287
+ public getTotalItemsByErrorMessage(): string | null {
288
+ return this.totalItemsErrorMessage;
289
+ }
290
+
291
+ public getTotalItemsNumber(): number | null {
292
+ return this.totalItemsNumber;
293
+ }
294
+
295
+ public getRequiredColumns(): Columns {
296
+ const dictionary: Dictionary<TableColumnMetadata> = getTableColumns(this);
297
+ const columns: Array<string> = [];
298
+ for (const key in dictionary) {
299
+ if (dictionary[key]?.required) {
300
+ columns.push(key);
301
+ }
302
+ }
303
+
304
+ return new Columns(columns);
305
+ }
306
+
307
+ public getSlugifyColumn(): string | null {
308
+ return this.slugifyColumn;
309
+ }
310
+
311
+ public getCrudApiPath(): Route | null {
312
+ return this.crudApiPath;
313
+ }
372
314
 
373
- public isTableColumn(columnName: string): boolean {
374
- return Boolean(getTableColumn(this, columnName));
375
- }
315
+ public getSaveSlugToColumn(): string | null {
316
+ return this.saveSlugToColumn;
317
+ }
376
318
 
377
- public isEntityColumn(columnName: string): boolean {
378
- const tableColumnType: TableColumnMetadata = getTableColumn(
379
- this,
380
- columnName
381
- );
319
+ public getTenantColumn(): string | null {
320
+ return this.tenantColumn;
321
+ }
382
322
 
383
- if (!tableColumnType) {
384
- throw new BadDataException(
385
- 'TableColumnMetadata not found for ' + columnName + ' column'
386
- );
387
- }
323
+ public getAccessControlColumn(): string | null {
324
+ return this.accessControlColumn;
325
+ }
388
326
 
389
- return Boolean(
390
- tableColumnType.type === TableColumnType.Entity ||
391
- tableColumnType.type === TableColumnType.EntityArray
392
- );
393
- }
327
+ public getUserColumn(): string | null {
328
+ return this.currentUserCanAccessColumnBy;
329
+ }
394
330
 
395
- public isHashedStringColumn(columnName: string): boolean {
396
- const tableColumnType: TableColumnMetadata = getTableColumn(
397
- this,
398
- columnName
399
- );
331
+ public getLabelsColumn(): string | null {
332
+ return this.labelsColumn;
333
+ }
400
334
 
401
- if (!tableColumnType) {
402
- throw new BadDataException(
403
- 'TableColumnMetadata not found for ' + columnName + ' column'
404
- );
405
- }
335
+ public get id(): ObjectID | null {
336
+ return this._id ? new ObjectID(this._id) : null;
337
+ }
406
338
 
407
- return Boolean(tableColumnType.type === TableColumnType.HashedString);
339
+ public set id(value: ObjectID | null) {
340
+ if (value) {
341
+ this._id = value.toString();
408
342
  }
343
+ }
409
344
 
410
- public isFileColumn(columnName: string): boolean {
411
- const tableColumnType: TableColumnMetadata = getTableColumn(
412
- this,
413
- columnName
414
- );
345
+ public isDefaultValueColumn(columnName: string): boolean {
346
+ return Boolean(getTableColumn(this, columnName).isDefaultValueColumn);
347
+ }
415
348
 
416
- if (!tableColumnType || !tableColumnType.modelType) {
417
- return false;
418
- }
419
-
420
- const fileModel: BaseModel = new tableColumnType.modelType();
421
-
422
- if (fileModel.isFileModel()) {
423
- return true;
424
- }
425
-
426
- return false;
349
+ public getColumnValue(
350
+ columnName: string,
351
+ ): JSONValue | BaseModel | Array<BaseModel> | null {
352
+ if (getTableColumn(this, columnName) && (this as any)[columnName]) {
353
+ return (this as any)[columnName] as JSONValue;
427
354
  }
428
355
 
429
- public hasPermission(_permissions: Array<Permission>): boolean {
430
- return false;
431
- }
356
+ return null;
357
+ }
432
358
 
433
- public isTenantModel(): boolean {
434
- return false;
359
+ public setColumnValue(
360
+ columnName: string,
361
+ value: JSONValue | BaseModel | Array<BaseModel>,
362
+ ): void {
363
+ if (getTableColumn(this, columnName)) {
364
+ return ((this as any)[columnName] = value as any);
435
365
  }
366
+ }
436
367
 
437
- public isFileModel(): boolean {
438
- return false;
439
- }
368
+ public isTableColumn(columnName: string): boolean {
369
+ return Boolean(getTableColumn(this, columnName));
370
+ }
440
371
 
441
- public isAccessControlModel(): boolean {
442
- return false;
443
- }
372
+ public isEntityColumn(columnName: string): boolean {
373
+ const tableColumnType: TableColumnMetadata = getTableColumn(
374
+ this,
375
+ columnName,
376
+ );
444
377
 
445
- public isUserModel(): boolean {
446
- return false;
378
+ if (!tableColumnType) {
379
+ throw new BadDataException(
380
+ "TableColumnMetadata not found for " + columnName + " column",
381
+ );
447
382
  }
448
383
 
449
- public hasCreatePermissions(
450
- userProjectPermissions: UserTenantAccessPermission | Array<Permission>,
451
- columnName?: string
452
- ): boolean {
453
- let modelPermission: Array<Permission> = this.createRecordPermissions;
454
-
455
- if (columnName) {
456
- const columnAccessControl: ColumnAccessControl | null =
457
- this.getColumnAccessControlFor(columnName);
458
- if (columnAccessControl) {
459
- modelPermission = columnAccessControl.create;
460
- }
461
- }
462
-
463
- return ModelPermission.hasPermissions(
464
- userProjectPermissions,
465
- modelPermission
466
- );
467
- }
384
+ return Boolean(
385
+ tableColumnType.type === TableColumnType.Entity ||
386
+ tableColumnType.type === TableColumnType.EntityArray,
387
+ );
388
+ }
468
389
 
469
- public getReadPermissions(): Array<Permission> {
470
- return this.readRecordPermissions;
471
- }
390
+ public isHashedStringColumn(columnName: string): boolean {
391
+ const tableColumnType: TableColumnMetadata = getTableColumn(
392
+ this,
393
+ columnName,
394
+ );
472
395
 
473
- public getReadBillingPlan(): PlanSelect | null {
474
- return this.readBillingPlan;
396
+ if (!tableColumnType) {
397
+ throw new BadDataException(
398
+ "TableColumnMetadata not found for " + columnName + " column",
399
+ );
475
400
  }
476
401
 
477
- public getCreateBillingPlan(): PlanSelect | null {
478
- return this.createBillingPlan;
479
- }
402
+ return Boolean(tableColumnType.type === TableColumnType.HashedString);
403
+ }
480
404
 
481
- public getUpdateBillingPlan(): PlanSelect | null {
482
- return this.updateBillingPlan;
483
- }
405
+ public isFileColumn(columnName: string): boolean {
406
+ const tableColumnType: TableColumnMetadata = getTableColumn(
407
+ this,
408
+ columnName,
409
+ );
484
410
 
485
- public getDeleteBillingPlan(): PlanSelect | null {
486
- return this.deleteBillingPlan;
411
+ if (!tableColumnType || !tableColumnType.modelType) {
412
+ return false;
487
413
  }
488
414
 
489
- public getCreatePermissions(): Array<Permission> {
490
- return this.createRecordPermissions;
491
- }
415
+ const fileModel: BaseModel = new tableColumnType.modelType();
492
416
 
493
- public getUpdatePermissions(): Array<Permission> {
494
- return this.updateRecordPermissions;
417
+ if (fileModel.isFileModel()) {
418
+ return true;
495
419
  }
496
420
 
497
- public getDeletePermissions(): Array<Permission> {
498
- return this.deleteRecordPermissions;
499
- }
500
-
501
- public hasReadPermissions(
502
- userProjectPermissions: UserTenantAccessPermission | Array<Permission>,
503
- columnName?: string
504
- ): boolean {
505
- let modelPermission: Array<Permission> = this.readRecordPermissions;
506
-
507
- if (columnName) {
508
- const columnAccessControl: ColumnAccessControl | null =
509
- this.getColumnAccessControlFor(columnName);
510
- if (columnAccessControl) {
511
- modelPermission = columnAccessControl.read;
512
- }
421
+ return false;
422
+ }
423
+
424
+ public hasPermission(_permissions: Array<Permission>): boolean {
425
+ return false;
426
+ }
427
+
428
+ public isTenantModel(): boolean {
429
+ return false;
430
+ }
431
+
432
+ public isFileModel(): boolean {
433
+ return false;
434
+ }
435
+
436
+ public isAccessControlModel(): boolean {
437
+ return false;
438
+ }
439
+
440
+ public isUserModel(): boolean {
441
+ return false;
442
+ }
443
+
444
+ public hasCreatePermissions(
445
+ userProjectPermissions: UserTenantAccessPermission | Array<Permission>,
446
+ columnName?: string,
447
+ ): boolean {
448
+ let modelPermission: Array<Permission> = this.createRecordPermissions;
449
+
450
+ if (columnName) {
451
+ const columnAccessControl: ColumnAccessControl | null =
452
+ this.getColumnAccessControlFor(columnName);
453
+ if (columnAccessControl) {
454
+ modelPermission = columnAccessControl.create;
455
+ }
456
+ }
457
+
458
+ return ModelPermission.hasPermissions(
459
+ userProjectPermissions,
460
+ modelPermission,
461
+ );
462
+ }
463
+
464
+ public getReadPermissions(): Array<Permission> {
465
+ return this.readRecordPermissions;
466
+ }
467
+
468
+ public getReadBillingPlan(): PlanSelect | null {
469
+ return this.readBillingPlan;
470
+ }
471
+
472
+ public getCreateBillingPlan(): PlanSelect | null {
473
+ return this.createBillingPlan;
474
+ }
475
+
476
+ public getUpdateBillingPlan(): PlanSelect | null {
477
+ return this.updateBillingPlan;
478
+ }
479
+
480
+ public getDeleteBillingPlan(): PlanSelect | null {
481
+ return this.deleteBillingPlan;
482
+ }
483
+
484
+ public getCreatePermissions(): Array<Permission> {
485
+ return this.createRecordPermissions;
486
+ }
487
+
488
+ public getUpdatePermissions(): Array<Permission> {
489
+ return this.updateRecordPermissions;
490
+ }
491
+
492
+ public getDeletePermissions(): Array<Permission> {
493
+ return this.deleteRecordPermissions;
494
+ }
495
+
496
+ public hasReadPermissions(
497
+ userProjectPermissions: UserTenantAccessPermission | Array<Permission>,
498
+ columnName?: string,
499
+ ): boolean {
500
+ let modelPermission: Array<Permission> = this.readRecordPermissions;
501
+
502
+ if (columnName) {
503
+ const columnAccessControl: ColumnAccessControl | null =
504
+ this.getColumnAccessControlFor(columnName);
505
+ if (columnAccessControl) {
506
+ modelPermission = columnAccessControl.read;
507
+ }
508
+ }
509
+
510
+ return ModelPermission.hasPermissions(
511
+ userProjectPermissions,
512
+ modelPermission,
513
+ );
514
+ }
515
+
516
+ public hasDeletePermissions(
517
+ userProjectPermissions: UserTenantAccessPermission | Array<Permission>,
518
+ ): boolean {
519
+ const modelPermission: Array<Permission> = this.deleteRecordPermissions;
520
+ return ModelPermission.hasPermissions(
521
+ userProjectPermissions,
522
+ modelPermission,
523
+ );
524
+ }
525
+
526
+ public hasUpdatePermissions(
527
+ userProjectPermissions: UserTenantAccessPermission | Array<Permission>,
528
+ columnName?: string,
529
+ ): boolean {
530
+ let modelPermission: Array<Permission> = this.updateRecordPermissions;
531
+
532
+ if (columnName) {
533
+ const columnAccessControl: ColumnAccessControl | null =
534
+ this.getColumnAccessControlFor(columnName);
535
+ if (columnAccessControl) {
536
+ modelPermission = columnAccessControl.update;
537
+ }
538
+ }
539
+
540
+ return ModelPermission.hasPermissions(
541
+ userProjectPermissions,
542
+ modelPermission,
543
+ );
544
+ }
545
+
546
+ public getAPIDocumentationPath(): string {
547
+ return Text.pascalCaseToDashes(this.tableName as string);
548
+ }
549
+
550
+ public static toJSON(model: BaseModel, modelType: BaseModelType): JSONObject {
551
+ const json: JSONObject = this.toJSONObject(model, modelType);
552
+ return JSONFunctions.serialize(json);
553
+ }
554
+
555
+ public static toJSONObject(
556
+ model: BaseModel,
557
+ modelType: BaseModelType,
558
+ ): JSONObject {
559
+ const json: JSONObject = {};
560
+
561
+ const vanillaModel: BaseModel = new modelType();
562
+
563
+ for (const key of vanillaModel.getTableColumns().columns) {
564
+ if ((model as any)[key] === undefined) {
565
+ continue;
566
+ }
567
+
568
+ const tableColumnMetadata: TableColumnMetadata =
569
+ vanillaModel.getTableColumnMetadata(key);
570
+
571
+ if (tableColumnMetadata) {
572
+ if (
573
+ (model as any)[key] &&
574
+ tableColumnMetadata.modelType &&
575
+ tableColumnMetadata.type === TableColumnType.Entity &&
576
+ (model as any)[key] instanceof BaseModel
577
+ ) {
578
+ (json as any)[key] = this.toJSONObject(
579
+ (model as any)[key],
580
+ tableColumnMetadata.modelType,
581
+ );
582
+ } else if (
583
+ (model as any)[key] &&
584
+ Array.isArray((model as any)[key]) &&
585
+ (model as any)[key].length > 0 &&
586
+ tableColumnMetadata.modelType &&
587
+ tableColumnMetadata.type === TableColumnType.EntityArray
588
+ ) {
589
+ (json as any)[key] = this.toJSONObjectArray(
590
+ (model as any)[key] as Array<BaseModel>,
591
+ tableColumnMetadata.modelType,
592
+ );
593
+ } else {
594
+ (json as any)[key] = (model as any)[key];
513
595
  }
514
-
515
- return ModelPermission.hasPermissions(
516
- userProjectPermissions,
517
- modelPermission
518
- );
519
- }
520
-
521
- public hasDeletePermissions(
522
- userProjectPermissions: UserTenantAccessPermission | Array<Permission>
523
- ): boolean {
524
- const modelPermission: Array<Permission> = this.deleteRecordPermissions;
525
- return ModelPermission.hasPermissions(
526
- userProjectPermissions,
527
- modelPermission
528
- );
529
- }
530
-
531
- public hasUpdatePermissions(
532
- userProjectPermissions: UserTenantAccessPermission | Array<Permission>,
533
- columnName?: string
534
- ): boolean {
535
- let modelPermission: Array<Permission> = this.updateRecordPermissions;
536
-
537
- if (columnName) {
538
- const columnAccessControl: ColumnAccessControl | null =
539
- this.getColumnAccessControlFor(columnName);
540
- if (columnAccessControl) {
541
- modelPermission = columnAccessControl.update;
542
- }
596
+ }
597
+ }
598
+
599
+ return json;
600
+ }
601
+
602
+ public static toJSONObjectArray(
603
+ list: Array<BaseModel>,
604
+ modelType: BaseModelType,
605
+ ): JSONArray {
606
+ const array: JSONArray = [];
607
+
608
+ for (const item of list) {
609
+ array.push(this.toJSONObject(item, modelType));
610
+ }
611
+
612
+ return array;
613
+ }
614
+
615
+ public static toJSONArray(
616
+ list: Array<BaseModel>,
617
+ modelType: BaseModelType,
618
+ ): JSONArray {
619
+ const array: JSONArray = [];
620
+
621
+ for (const item of list) {
622
+ array.push(this.toJSON(item, modelType));
623
+ }
624
+
625
+ return array;
626
+ }
627
+
628
+ private static _fromJSON<T extends BaseModel>(
629
+ json: JSONObject | T,
630
+ type: { new (): T },
631
+ ): T {
632
+ if (json instanceof BaseModel) {
633
+ return json;
634
+ }
635
+
636
+ json = JSONFunctions.deserialize(json);
637
+ const baseModel: T = new type();
638
+
639
+ for (const key of Object.keys(json)) {
640
+ const tableColumnMetadata: TableColumnMetadata =
641
+ baseModel.getTableColumnMetadata(key);
642
+ if (tableColumnMetadata) {
643
+ if (
644
+ json[key] &&
645
+ tableColumnMetadata.modelType &&
646
+ tableColumnMetadata.type === TableColumnType.Entity
647
+ ) {
648
+ if (
649
+ json[key] &&
650
+ Array.isArray(json[key]) &&
651
+ (json[key] as Array<any>).length > 0
652
+ ) {
653
+ json[key] = (json[key] as Array<any>)[0];
654
+ }
655
+
656
+ (baseModel as any)[key] = this.fromJSON(
657
+ json[key] as JSONObject,
658
+ tableColumnMetadata.modelType,
659
+ );
660
+ } else if (
661
+ json[key] &&
662
+ tableColumnMetadata.modelType &&
663
+ tableColumnMetadata.type === TableColumnType.EntityArray
664
+ ) {
665
+ if (json[key] && !Array.isArray(json[key])) {
666
+ json[key] = [json[key]];
667
+ }
668
+
669
+ (baseModel as any)[key] = this.fromJSONArray(
670
+ json[key] as JSONArray,
671
+ tableColumnMetadata.modelType,
672
+ );
673
+ } else {
674
+ (baseModel as any)[key] = json[key];
543
675
  }
544
-
545
- return ModelPermission.hasPermissions(
546
- userProjectPermissions,
547
- modelPermission
548
- );
676
+ }
549
677
  }
550
678
 
551
- public getAPIDocumentationPath(): string {
552
- return Text.pascalCaseToDashes(this.tableName as string);
553
- }
679
+ return baseModel as T;
680
+ }
554
681
 
555
- public static toJSON(
556
- model: BaseModel,
557
- modelType: BaseModelType
558
- ): JSONObject {
559
- const json: JSONObject = this.toJSONObject(model, modelType);
560
- return JSONFunctions.serialize(json);
561
- }
682
+ public static fromJSON<T extends BaseModel>(
683
+ json: JSONObject | JSONArray | BaseModel | Array<BaseModel>,
684
+ type: { new (): T },
685
+ ): T | Array<T> {
686
+ if (Array.isArray(json)) {
687
+ const arr: Array<T> = [];
562
688
 
563
- public static toJSONObject(
564
- model: BaseModel,
565
- modelType: BaseModelType
566
- ): JSONObject {
567
- const json: JSONObject = {};
568
-
569
- const vanillaModel: BaseModel = new modelType();
570
-
571
- for (const key of vanillaModel.getTableColumns().columns) {
572
- if ((model as any)[key] === undefined) {
573
- continue;
574
- }
575
-
576
- const tableColumnMetadata: TableColumnMetadata =
577
- vanillaModel.getTableColumnMetadata(key);
578
-
579
- if (tableColumnMetadata) {
580
- if (
581
- (model as any)[key] &&
582
- tableColumnMetadata.modelType &&
583
- tableColumnMetadata.type === TableColumnType.Entity &&
584
- (model as any)[key] instanceof BaseModel
585
- ) {
586
- (json as any)[key] = this.toJSONObject(
587
- (model as any)[key],
588
- tableColumnMetadata.modelType
589
- );
590
- } else if (
591
- (model as any)[key] &&
592
- Array.isArray((model as any)[key]) &&
593
- (model as any)[key].length > 0 &&
594
- tableColumnMetadata.modelType &&
595
- tableColumnMetadata.type === TableColumnType.EntityArray
596
- ) {
597
- (json as any)[key] = this.toJSONObjectArray(
598
- (model as any)[key] as Array<BaseModel>,
599
- tableColumnMetadata.modelType
600
- );
601
- } else {
602
- (json as any)[key] = (model as any)[key];
603
- }
604
- }
689
+ for (const item of json) {
690
+ if (item instanceof BaseModel) {
691
+ arr.push(item as T);
692
+ continue;
605
693
  }
606
694
 
607
- return json;
608
- }
609
-
610
- public static toJSONObjectArray(
611
- list: Array<BaseModel>,
612
- modelType: BaseModelType
613
- ): JSONArray {
614
- const array: JSONArray = [];
615
-
616
- for (const item of list) {
617
- array.push(this.toJSONObject(item, modelType));
618
- }
695
+ arr.push(this._fromJSON<T>(item, type));
696
+ }
619
697
 
620
- return array;
698
+ return arr;
621
699
  }
622
700
 
623
- public static toJSONArray(
624
- list: Array<BaseModel>,
625
- modelType: BaseModelType
626
- ): JSONArray {
627
- const array: JSONArray = [];
628
-
629
- for (const item of list) {
630
- array.push(this.toJSON(item, modelType));
631
- }
632
-
633
- return array;
701
+ if (json instanceof BaseModel) {
702
+ return json as T;
634
703
  }
635
704
 
636
- private static _fromJSON<T extends BaseModel>(
637
- json: JSONObject | T,
638
- type: { new (): T }
639
- ): T {
640
- if (json instanceof BaseModel) {
641
- return json;
642
- }
643
-
644
- json = JSONFunctions.deserialize(json);
645
- const baseModel: T = new type();
646
-
647
- for (const key of Object.keys(json)) {
648
- const tableColumnMetadata: TableColumnMetadata =
649
- baseModel.getTableColumnMetadata(key);
650
- if (tableColumnMetadata) {
651
- if (
652
- json[key] &&
653
- tableColumnMetadata.modelType &&
654
- tableColumnMetadata.type === TableColumnType.Entity
655
- ) {
656
- if (
657
- json[key] &&
658
- Array.isArray(json[key]) &&
659
- (json[key] as Array<any>).length > 0
660
- ) {
661
- json[key] = (json[key] as Array<any>)[0];
662
- }
663
-
664
- (baseModel as any)[key] = this.fromJSON(
665
- json[key] as JSONObject,
666
- tableColumnMetadata.modelType
667
- );
668
- } else if (
669
- json[key] &&
670
- tableColumnMetadata.modelType &&
671
- tableColumnMetadata.type === TableColumnType.EntityArray
672
- ) {
673
- if (json[key] && !Array.isArray(json[key])) {
674
- json[key] = [json[key]];
675
- }
676
-
677
- (baseModel as any)[key] = this.fromJSONArray(
678
- json[key] as JSONArray,
679
- tableColumnMetadata.modelType
680
- );
681
- } else {
682
- (baseModel as any)[key] = json[key];
683
- }
684
- }
685
- }
705
+ return this._fromJSON<T>(json, type);
706
+ }
686
707
 
687
- return baseModel as T;
708
+ public static fromJSONObject<T extends BaseModel>(
709
+ json: JSONObject | T,
710
+ type: { new (): T },
711
+ ): T {
712
+ if (json instanceof BaseModel) {
713
+ return json;
688
714
  }
689
715
 
690
- public static fromJSON<T extends BaseModel>(
691
- json: JSONObject | JSONArray | BaseModel | Array<BaseModel>,
692
- type: { new (): T }
693
- ): T | Array<T> {
694
- if (Array.isArray(json)) {
695
- const arr: Array<T> = [];
696
-
697
- for (const item of json) {
698
- if (item instanceof BaseModel) {
699
- arr.push(item as T);
700
- continue;
701
- }
702
-
703
- arr.push(this._fromJSON<T>(item, type));
704
- }
705
-
706
- return arr;
707
- }
708
-
709
- if (json instanceof BaseModel) {
710
- return json as T;
711
- }
712
-
713
- return this._fromJSON<T>(json, type);
714
- }
716
+ return this.fromJSON<T>(json, type) as T;
717
+ }
715
718
 
716
- public static fromJSONObject<T extends BaseModel>(
717
- json: JSONObject | T,
718
- type: { new (): T }
719
- ): T {
720
- if (json instanceof BaseModel) {
721
- return json;
722
- }
719
+ public static fromJSONArray<T extends BaseModel>(
720
+ json: Array<JSONObject | T>,
721
+ type: { new (): T },
722
+ ): Array<T> {
723
+ const arr: Array<T> = [];
723
724
 
724
- return this.fromJSON<T>(json, type) as T;
725
+ for (const item of json) {
726
+ arr.push(this._fromJSON<T>(item, type));
725
727
  }
726
728
 
727
- public static fromJSONArray<T extends BaseModel>(
728
- json: Array<JSONObject | T>,
729
- type: { new (): T }
730
- ): Array<T> {
731
- const arr: Array<T> = [];
732
-
733
- for (const item of json) {
734
- arr.push(this._fromJSON<T>(item, type));
735
- }
736
-
737
- return arr;
738
- }
729
+ return arr;
730
+ }
739
731
  }