@oneuptime/common 7.0.2525 → 7.0.2570
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.
- package/AnalyticsModels/BaseModel.ts +437 -443
- package/AnalyticsModels/CommonModel.ts +216 -226
- package/AnalyticsModels/NestedModel.ts +5 -5
- package/Models/AccessControlModel.ts +10 -10
- package/Models/BaseModel.ts +662 -670
- package/Models/FileModel.ts +102 -102
- package/Models/GlobalConfig.ts +5 -5
- package/Models/TenantModel.ts +8 -8
- package/Models/UserModel.ts +8 -8
- package/ServiceRoute.ts +17 -17
- package/Tests/MockType.ts +9 -0
- package/Tests/Spy.ts +11 -0
- package/Tests/Types/API/ErrorResponse.test.ts +14 -14
- package/Tests/Types/API/HTTPErrorResponse.test.ts +55 -55
- package/Tests/Types/API/HTTPMethod.test.ts +14 -14
- package/Tests/Types/API/Headers.test.ts +13 -13
- package/Tests/Types/API/Hostname.test.ts +20 -20
- package/Tests/Types/API/Protocal.test.ts +17 -17
- package/Tests/Types/API/Response.test.ts +19 -19
- package/Tests/Types/API/ResponseType.test.ts +11 -11
- package/Tests/Types/API/Route.test.ts +28 -28
- package/Tests/Types/API/StatusCode.test.ts +24 -24
- package/Tests/Types/API/URL.test.ts +39 -39
- package/Tests/Types/Alerts/AlertEventType.test.ts +46 -46
- package/Tests/Types/Alerts/AlertType.test.ts +17 -17
- package/Tests/Types/AppEnvironment.test.ts +11 -11
- package/Tests/Types/ApplicationLog/ApplicationLogType.test.ts +11 -11
- package/Tests/Types/ArrayUtil.test.ts +77 -77
- package/Tests/Types/Billing/SubscriptionPlan.test.ts +255 -270
- package/Tests/Types/BrandColors.test.ts +138 -138
- package/Tests/Types/Char.test.ts +81 -81
- package/Tests/Types/Code/CodeType.test.ts +11 -11
- package/Tests/Types/Color.test.ts +42 -42
- package/Tests/Types/Company/CompanySize.test.ts +17 -17
- package/Tests/Types/Company/JobRole.test.ts +20 -20
- package/Tests/Types/Countries.test.ts +287 -301
- package/Tests/Types/Database/ColumnLength.test.ts +41 -41
- package/Tests/Types/Database/ColumnType.test.ts +77 -77
- package/Tests/Types/Database/Columns.test.ts +18 -18
- package/Tests/Types/Database/CompareBase.test.ts +32 -32
- package/Tests/Types/Database/Date.test.ts +73 -75
- package/Tests/Types/Database/EqualToOrNull.test.ts +61 -61
- package/Tests/Types/Database/InBetween.test.ts +71 -71
- package/Tests/Types/Database/LimitMax.test.ts +14 -14
- package/Tests/Types/Database/NotEqual.test.ts +15 -15
- package/Tests/Types/Database/Search.test.ts +8 -8
- package/Tests/Types/DatabaseType.test.ts +5 -5
- package/Tests/Types/Date.test.ts +87 -93
- package/Tests/Types/Dictionary.test.ts +22 -22
- package/Tests/Types/Domain.test.ts +36 -36
- package/Tests/Types/Email/Email.test.ts +55 -55
- package/Tests/Types/EmailWithName.test.ts +46 -46
- package/Tests/Types/EncryptionAlgorithm.test.ts +5 -5
- package/Tests/Types/Exception/ApiException.test.ts +12 -13
- package/Tests/Types/Exception/BadDataException.test.ts +12 -12
- package/Tests/Types/Exception/BadOperationException.test.ts +12 -13
- package/Tests/Types/Exception/BadRequestException.test.ts +12 -12
- package/Tests/Types/Exception/DatabaseNotConnectedException.test.ts +10 -10
- package/Tests/Types/Exception/Exception.test.ts +15 -17
- package/Tests/Types/Exception/NotImplementedException.test.ts +10 -10
- package/Tests/Types/File.test.ts +20 -20
- package/Tests/Types/HashedString.test.ts +18 -18
- package/Tests/Types/Html.test.ts +6 -6
- package/Tests/Types/IP/IP.test.ts +65 -67
- package/Tests/Types/IP/IPType.test.ts +8 -8
- package/Tests/Types/IP/IPv4.test.ts +15 -15
- package/Tests/Types/IP/IPv6.test.ts +15 -15
- package/Tests/Types/JSON.test.ts +35 -35
- package/Tests/Types/JSONFunctions.test.ts +41 -44
- package/Tests/Types/ListData.test.ts +33 -33
- package/Tests/Types/Name.test.ts +24 -24
- package/Tests/Types/ObjectID.test.ts +10 -10
- package/Tests/Types/Permission.test.ts +8 -8
- package/Tests/Types/Phone.test.ts +35 -35
- package/Tests/Types/Port.test.ts +33 -33
- package/Tests/Types/PositiveNumber.test.ts +123 -123
- package/Tests/Types/SecuritySeverity.test.ts +14 -14
- package/Tests/Types/SerializableObject.test.ts +33 -34
- package/Tests/Types/Sleep.test.ts +16 -19
- package/Tests/Types/Text.test.ts +6 -8
- package/Tests/Types/Timezone.test.ts +644 -674
- package/Tests/Types/Typeof.test.ts +14 -14
- package/Tests/Types/UserType.test.ts +14 -14
- package/Tests/Types/Version.test.ts +33 -33
- package/Tests/Types/XML.test.ts +33 -33
- package/Tests/Utils/API.test.ts +339 -342
- package/Tests/Utils/Analytics.test.ts +65 -65
- package/Tests/Utils/CronTime.test.ts +26 -26
- package/Tests/Utils/Faker.test.ts +30 -32
- package/Tests/Utils/Slug.test.ts +20 -20
- package/Tests/Utils/UUID.test.ts +10 -10
- package/Types/API/EmptyResponse.ts +1 -1
- package/Types/API/HTTPErrorResponse.ts +18 -21
- package/Types/API/HTTPMethod.ts +5 -5
- package/Types/API/HTTPResponse.ts +108 -110
- package/Types/API/Headers.ts +1 -1
- package/Types/API/Hostname.ts +94 -94
- package/Types/API/Protocol.ts +6 -6
- package/Types/API/ResponseType.ts +3 -3
- package/Types/API/Route.ts +76 -76
- package/Types/API/StatusCode.ts +31 -34
- package/Types/API/URL.ts +217 -221
- package/Types/Alerts/AlertEventType.ts +10 -10
- package/Types/Alerts/AlertType.ts +5 -5
- package/Types/AnalyticsDatabase/AnalyticsTableEngine.ts +1 -1
- package/Types/AnalyticsDatabase/TableColumn.ts +157 -160
- package/Types/AnalyticsDatabase/TableColumnType.ts +12 -12
- package/Types/AppEnvironment.ts +3 -3
- package/Types/ApplicationLog/ApplicationLogType.ts +3 -3
- package/Types/ArrayUtil.ts +68 -70
- package/Types/BaseDatabase/AccessControl.ts +5 -5
- package/Types/BaseDatabase/ColumnBillingAccessControl.ts +4 -4
- package/Types/BaseDatabase/DatabaseCommonInteractionProps.ts +20 -20
- package/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.ts +75 -76
- package/Types/BaseDatabase/DatabaseType.ts +2 -2
- package/Types/BaseDatabase/EnableWorkflowOn.ts +4 -4
- package/Types/BaseDatabase/EqualToOrNull.ts +29 -29
- package/Types/BaseDatabase/GreaterThan.ts +18 -18
- package/Types/BaseDatabase/GreaterThanOrEqual.ts +18 -18
- package/Types/BaseDatabase/InBetween.ts +61 -61
- package/Types/BaseDatabase/Includes.ts +32 -34
- package/Types/BaseDatabase/IsNull.ts +21 -21
- package/Types/BaseDatabase/LessThan.ts +18 -18
- package/Types/BaseDatabase/LessThanOrEqual.ts +18 -18
- package/Types/BaseDatabase/ModelPermission.ts +31 -31
- package/Types/BaseDatabase/NotEqual.ts +29 -29
- package/Types/BaseDatabase/NotNull.ts +21 -21
- package/Types/BaseDatabase/Search.ts +34 -34
- package/Types/BaseDatabase/SortOrder.ts +2 -2
- package/Types/BaseDatabase/TableBillingAccessControl.ts +5 -5
- package/Types/Billing/MeteredPlan.ts +21 -21
- package/Types/Billing/SubscriptionPlan.ts +223 -228
- package/Types/Billing/SubscriptionStatus.ts +23 -23
- package/Types/BrandColors.ts +60 -60
- package/Types/BrowserType.ts +3 -3
- package/Types/Calendar/CalendarEvent.ts +9 -9
- package/Types/Call/CallRequest.ts +19 -19
- package/Types/Call/CallStatus.ts +5 -5
- package/Types/CallAndSMS/TwilioConfig.ts +4 -4
- package/Types/Char.ts +62 -62
- package/Types/Code/CodeType.ts +7 -7
- package/Types/CodeRepository/CodeRepositoryType.ts +6 -0
- package/Types/CodeRepository/PullRequest.ts +16 -0
- package/Types/CodeRepository/PullRequestState.ts +7 -0
- package/Types/Color.ts +88 -88
- package/Types/Company/CompanySize.ts +5 -5
- package/Types/Company/JobRole.ts +6 -6
- package/Types/CookieName.ts +11 -0
- package/Types/Copilot/CopilotEventStatus.ts +6 -0
- package/Types/Copilot/CopilotEventType.ts +2 -2
- package/Types/Countries.ts +243 -243
- package/Types/Currency.ts +23 -23
- package/Types/CustomField/CustomFieldType.ts +3 -3
- package/Types/Database/AccessControl/AllowAccessIfSubscriptionIsUnpaid.ts +4 -4
- package/Types/Database/AccessControl/ColumnAccessControl.ts +33 -33
- package/Types/Database/AccessControl/ColumnBillingAccessControl.ts +34 -36
- package/Types/Database/AccessControl/TableAccessControl.ts +16 -16
- package/Types/Database/AccessControl/TableBillingAccessControl.ts +16 -16
- package/Types/Database/AccessControlColumn.ts +4 -4
- package/Types/Database/AllowUserQueryWithoutTenant.ts +4 -4
- package/Types/Database/CanAccessIfCanReadOn.ts +6 -6
- package/Types/Database/ColumnLength.ts +61 -61
- package/Types/Database/ColumnType.ts +33 -33
- package/Types/Database/Columns.ts +16 -16
- package/Types/Database/CompareBase.ts +28 -28
- package/Types/Database/CrudApiEndpoint.ts +5 -5
- package/Types/Database/CurrentUserCanAccessRecordBy.ts +4 -4
- package/Types/Database/DatabaseProperty.ts +42 -42
- package/Types/Database/Date.ts +20 -20
- package/Types/Database/EnableDocumentation.ts +6 -7
- package/Types/Database/EnableWorkflow.ts +5 -5
- package/Types/Database/IsPermissionsIf.ts +12 -12
- package/Types/Database/LabelsColumn.ts +4 -4
- package/Types/Database/MultiTenentQueryAllowed.ts +4 -4
- package/Types/Database/PartialEntity.ts +1 -1
- package/Types/Database/SlugifyColumn.ts +5 -5
- package/Types/Database/TableColumn.ts +42 -42
- package/Types/Database/TableColumnType.ts +39 -39
- package/Types/Database/TableMetadata.ts +14 -14
- package/Types/Database/TenantColumn.ts +4 -4
- package/Types/Database/TotalItemsBy.ts +9 -9
- package/Types/Database/UniqueColumnBy.ts +27 -27
- package/Types/DatabaseType.ts +2 -2
- package/Types/Date.ts +969 -921
- package/Types/Day/DayOfWeek.ts +24 -24
- package/Types/Decimal.ts +57 -57
- package/Types/Dictionary.ts +1 -1
- package/Types/DiskSize.ts +32 -32
- package/Types/Domain.ts +74 -74
- package/Types/Email/EmailBody.ts +2 -2
- package/Types/Email/EmailMessage.ts +8 -8
- package/Types/Email/EmailServer.ts +12 -12
- package/Types/Email/EmailTemplate.ts +5 -5
- package/Types/Email/EmailTemplateType.ts +36 -36
- package/Types/Email.ts +99 -101
- package/Types/EmailWithName.ts +26 -26
- package/Types/EncryptionAlgorithm.ts +1 -1
- package/Types/Events/EventInterval.ts +5 -5
- package/Types/Events/Recurring.ts +90 -92
- package/Types/Exception/ApiException.ts +5 -5
- package/Types/Exception/BadDataException.ts +5 -5
- package/Types/Exception/BadOperationException.ts +5 -5
- package/Types/Exception/BadRequestException.ts +5 -5
- package/Types/Exception/DatabaseNotConnectedException.ts +8 -8
- package/Types/Exception/Exception.ts +15 -15
- package/Types/Exception/ExceptionCode.ts +17 -17
- package/Types/Exception/NotAuthenticatedException.ts +5 -5
- package/Types/Exception/NotAuthorizedException.ts +5 -5
- package/Types/Exception/NotFoundException.ts +5 -5
- package/Types/Exception/NotImplementedException.ts +8 -8
- package/Types/Exception/PaymentRequiredException.ts +5 -5
- package/Types/Exception/ServerException.ts +5 -5
- package/Types/Exception/SsoAuthorizationException.ts +12 -12
- package/Types/Exception/TenantNotFoundException.ts +5 -5
- package/Types/Exception/TimeoutException.ts +5 -5
- package/Types/Exception/UnableToReachServer.ts +5 -5
- package/Types/Exception/WebsiteRequestException.ts +5 -5
- package/Types/File/MimeType.ts +5 -5
- package/Types/File.ts +2 -2
- package/Types/Filter/FilterCondition.ts +2 -2
- package/Types/Filter/FilterType.ts +6 -6
- package/Types/HashCode.ts +8 -8
- package/Types/HashedString.ts +80 -82
- package/Types/Html.ts +13 -13
- package/Types/IP/IP.ts +93 -93
- package/Types/IP/IPType.ts +2 -2
- package/Types/IP/IPv4.ts +7 -7
- package/Types/IP/IPv6.ts +7 -7
- package/Types/Icon/IconProp.ts +122 -122
- package/Types/Infrastructure/BasicMetrics.ts +15 -15
- package/Types/Infrastructure/OSType.ts +4 -4
- package/Types/IsolatedVM/ReturnResult.ts +2 -2
- package/Types/JSON.ts +139 -139
- package/Types/JSONFunctions.ts +310 -320
- package/Types/JsonWebTokenData.ts +11 -11
- package/Types/Link.ts +5 -5
- package/Types/ListData.ts +26 -26
- package/Types/Mail/MailStatus.ts +2 -2
- package/Types/MeteredPlan/ProductType.ts +4 -4
- package/Types/Mixins.ts +1 -1
- package/Types/Monitor/CriteriaFilter.ts +107 -107
- package/Types/Monitor/CriteriaIncident.ts +8 -7
- package/Types/Monitor/CustomCodeMonitor/CustomCodeMonitorResponse.ts +5 -5
- package/Types/Monitor/IncomingMonitor/IncomingMonitorRequest.ts +10 -10
- package/Types/Monitor/MonitorCriteria.ts +151 -162
- package/Types/Monitor/MonitorCriteriaInstance.ts +622 -628
- package/Types/Monitor/MonitorStep.ts +314 -319
- package/Types/Monitor/MonitorSteps.ts +156 -161
- package/Types/Monitor/MonitorType.ts +164 -169
- package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +12 -12
- package/Types/Monitor/ServerMonitor/ServerMonitorResponse.ts +10 -10
- package/Types/Monitor/SyntheticMonitors/BrowserType.ts +1 -1
- package/Types/Monitor/SyntheticMonitors/ScreenSizeType.ts +1 -1
- package/Types/Monitor/SyntheticMonitors/Screenshot.ts +1 -1
- package/Types/Monitor/SyntheticMonitors/SyntheticMonitorResponse.ts +8 -8
- package/Types/Name.ts +65 -65
- package/Types/NotificationRule/NotificationRuleType.ts +3 -3
- package/Types/NotificationSetting/NotificationSettingEventType.ts +18 -18
- package/Types/ObjectID.ts +73 -73
- package/Types/OnCallDutyPolicy/Layer.ts +782 -824
- package/Types/OnCallDutyPolicy/OnCalDutyExecutionLogTimelineStatus.ts +6 -6
- package/Types/OnCallDutyPolicy/OnCallDutyPolicyAlertStatus.ts +3 -3
- package/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.ts +5 -5
- package/Types/OnCallDutyPolicy/RestrictionTimes.ts +177 -179
- package/Types/Operation/OperationResult.ts +2 -2
- package/Types/Operation/OperationStatus.ts +5 -5
- package/Types/Permission.ts +3373 -3461
- package/Types/Phone.ts +58 -59
- package/Types/Port.ts +73 -73
- package/Types/PositiveNumber.ts +53 -61
- package/Types/PricingPlan.ts +5 -5
- package/Types/Probe/ProbeApiIngestResponse.ts +6 -6
- package/Types/Probe/ProbeMonitorResponse.ts +25 -25
- package/Types/Probe/ProbeStatusReport.ts +4 -4
- package/Types/Reflection.ts +4 -4
- package/Types/SMS/SMS.ts +3 -3
- package/Types/SMS/SmsTemplateType.ts +9 -9
- package/Types/SSO/DigestMethod.ts +4 -4
- package/Types/SSO/SignatureMethod.ts +4 -4
- package/Types/ScheduledEvent/ScheduledEventState.ts +4 -4
- package/Types/ScreenSizeType.ts +3 -3
- package/Types/SecuritySeverity.ts +4 -4
- package/Types/SerializableObject.ts +12 -12
- package/Types/SerializableObjectDictionary.ts +58 -58
- package/Types/ServiceCatalog/ServiceLanguage.ts +20 -0
- package/Types/Sleep.ts +6 -6
- package/Types/SmsStatus.ts +3 -3
- package/Types/StatusPage/StatusPageChartType.ts +6 -6
- package/Types/Text.ts +126 -130
- package/Types/Time/StartAndEndTime.ts +2 -2
- package/Types/Timezone.ts +592 -592
- package/Types/Typeof.ts +4 -4
- package/Types/UserNotification/UserNotificationEventType.ts +1 -1
- package/Types/UserNotification/UserNotificationExecutionStatus.ts +5 -5
- package/Types/UserNotification/UserNotificationStatus.ts +5 -5
- package/Types/UserType.ts +4 -4
- package/Types/Version.ts +50 -50
- package/Types/WebsiteRequest.ts +55 -55
- package/Types/Workflow/Component.ts +72 -72
- package/Types/Workflow/ComponentID.ts +16 -16
- package/Types/Workflow/Components/API.ts +349 -357
- package/Types/Workflow/Components/BaseModel.ts +572 -573
- package/Types/Workflow/Components/Condition.ts +60 -60
- package/Types/Workflow/Components/Email.ts +102 -103
- package/Types/Workflow/Components/JSON.ts +151 -156
- package/Types/Workflow/Components/JavaScript.ts +61 -61
- package/Types/Workflow/Components/Log.ts +39 -39
- package/Types/Workflow/Components/Manual.ts +33 -34
- package/Types/Workflow/Components/MicrosoftTeams.ts +61 -62
- package/Types/Workflow/Components/Schedule.ts +32 -32
- package/Types/Workflow/Components/Slack.ts +63 -64
- package/Types/Workflow/Components/Webhook.ts +51 -51
- package/Types/Workflow/Components/Workflow.ts +38 -38
- package/Types/Workflow/Components.ts +76 -76
- package/Types/Workflow/WorkflowPlan.ts +4 -4
- package/Types/Workflow/WorkflowStatus.ts +6 -6
- package/Types/XML.ts +16 -16
- package/Typings/Index.d.ts +3 -3
- package/Utils/API.ts +355 -309
- package/Utils/Analytics.ts +31 -31
- package/Utils/CronTime.ts +7 -7
- package/Utils/Enum.ts +14 -0
- package/Utils/Faker.ts +25 -25
- package/Utils/ObjectUtil.ts +5 -5
- package/Utils/Realtime.ts +24 -24
- package/Utils/Slug.ts +15 -15
- package/Utils/UUID.ts +4 -4
- package/build/dist/AnalyticsModels/BaseModel.js +32 -32
- package/build/dist/AnalyticsModels/BaseModel.js.map +1 -1
- package/build/dist/AnalyticsModels/CommonModel.js +14 -17
- package/build/dist/AnalyticsModels/CommonModel.js.map +1 -1
- package/build/dist/AnalyticsModels/NestedModel.js +1 -1
- package/build/dist/AnalyticsModels/NestedModel.js.map +1 -1
- package/build/dist/Models/AccessControlModel.js +1 -1
- package/build/dist/Models/AccessControlModel.js.map +1 -1
- package/build/dist/Models/BaseModel.js +28 -28
- package/build/dist/Models/BaseModel.js.map +1 -1
- package/build/dist/Models/FileModel.js +14 -14
- package/build/dist/Models/FileModel.js.map +1 -1
- package/build/dist/Models/GlobalConfig.js +1 -1
- package/build/dist/Models/GlobalConfig.js.map +1 -1
- package/build/dist/Models/TenantModel.js +1 -1
- package/build/dist/Models/TenantModel.js.map +1 -1
- package/build/dist/Models/UserModel.js +1 -1
- package/build/dist/Models/UserModel.js.map +1 -1
- package/build/dist/ServiceRoute.js +17 -17
- package/build/dist/Tests/MockType.js +5 -0
- package/build/dist/Tests/MockType.js.map +1 -0
- package/build/dist/Tests/Spy.js +4 -0
- package/build/dist/Tests/Spy.js.map +1 -0
- package/build/dist/Tests/Types/API/ErrorResponse.test.js +5 -5
- package/build/dist/Tests/Types/API/ErrorResponse.test.js.map +1 -1
- package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js +18 -18
- package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js.map +1 -1
- package/build/dist/Tests/Types/API/HTTPMethod.test.js +10 -10
- package/build/dist/Tests/Types/API/HTTPMethod.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Headers.test.js +8 -8
- package/build/dist/Tests/Types/API/Headers.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Hostname.test.js +11 -11
- package/build/dist/Tests/Types/API/Hostname.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Protocal.test.js +12 -12
- package/build/dist/Tests/Types/API/Protocal.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Response.test.js +7 -7
- package/build/dist/Tests/Types/API/Response.test.js.map +1 -1
- package/build/dist/Tests/Types/API/ResponseType.test.js +8 -8
- package/build/dist/Tests/Types/API/ResponseType.test.js.map +1 -1
- package/build/dist/Tests/Types/API/Route.test.js +15 -15
- package/build/dist/Tests/Types/API/Route.test.js.map +1 -1
- package/build/dist/Tests/Types/API/StatusCode.test.js +14 -14
- package/build/dist/Tests/Types/API/StatusCode.test.js.map +1 -1
- package/build/dist/Tests/Types/API/URL.test.js +20 -20
- package/build/dist/Tests/Types/API/URL.test.js.map +1 -1
- package/build/dist/Tests/Types/Alerts/AlertEventType.test.js +22 -22
- package/build/dist/Tests/Types/Alerts/AlertEventType.test.js.map +1 -1
- package/build/dist/Tests/Types/Alerts/AlertType.test.js +12 -12
- package/build/dist/Tests/Types/Alerts/AlertType.test.js.map +1 -1
- package/build/dist/Tests/Types/AppEnvironment.test.js +8 -8
- package/build/dist/Tests/Types/AppEnvironment.test.js.map +1 -1
- package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js +8 -8
- package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js.map +1 -1
- package/build/dist/Tests/Types/ArrayUtil.test.js +9 -9
- package/build/dist/Tests/Types/ArrayUtil.test.js.map +1 -1
- package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js +75 -77
- package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js.map +1 -1
- package/build/dist/Tests/Types/BrandColors.test.js +55 -55
- package/build/dist/Tests/Types/BrandColors.test.js.map +1 -1
- package/build/dist/Tests/Types/Char.test.js +72 -72
- package/build/dist/Tests/Types/Char.test.js.map +1 -1
- package/build/dist/Tests/Types/Code/CodeType.test.js +8 -8
- package/build/dist/Tests/Types/Code/CodeType.test.js.map +1 -1
- package/build/dist/Tests/Types/Color.test.js +24 -24
- package/build/dist/Tests/Types/Color.test.js.map +1 -1
- package/build/dist/Tests/Types/Company/CompanySize.test.js +12 -12
- package/build/dist/Tests/Types/Company/CompanySize.test.js.map +1 -1
- package/build/dist/Tests/Types/Company/JobRole.test.js +14 -14
- package/build/dist/Tests/Types/Company/JobRole.test.js.map +1 -1
- package/build/dist/Tests/Types/Countries.test.js +244 -244
- package/build/dist/Tests/Types/Countries.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/ColumnLength.test.js +15 -15
- package/build/dist/Tests/Types/Database/ColumnLength.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/ColumnType.test.js +52 -52
- package/build/dist/Tests/Types/Database/ColumnType.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/Columns.test.js +14 -14
- package/build/dist/Tests/Types/Database/Columns.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/CompareBase.test.js +13 -13
- package/build/dist/Tests/Types/Database/CompareBase.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/Date.test.js +32 -32
- package/build/dist/Tests/Types/Database/Date.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/EqualToOrNull.test.js +30 -30
- package/build/dist/Tests/Types/Database/EqualToOrNull.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/InBetween.test.js +20 -20
- package/build/dist/Tests/Types/Database/InBetween.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/LimitMax.test.js +9 -9
- package/build/dist/Tests/Types/Database/LimitMax.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/NotEqual.test.js +9 -9
- package/build/dist/Tests/Types/Database/NotEqual.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/Search.test.js +6 -6
- package/build/dist/Tests/Types/Database/Search.test.js.map +1 -1
- package/build/dist/Tests/Types/DatabaseType.test.js +4 -4
- package/build/dist/Tests/Types/DatabaseType.test.js.map +1 -1
- package/build/dist/Tests/Types/Date.test.js +32 -32
- package/build/dist/Tests/Types/Date.test.js.map +1 -1
- package/build/dist/Tests/Types/Dictionary.test.js +10 -10
- package/build/dist/Tests/Types/Dictionary.test.js.map +1 -1
- package/build/dist/Tests/Types/Domain.test.js +23 -23
- package/build/dist/Tests/Types/Domain.test.js.map +1 -1
- package/build/dist/Tests/Types/Email/Email.test.js +31 -31
- package/build/dist/Tests/Types/Email/Email.test.js.map +1 -1
- package/build/dist/Tests/Types/EmailWithName.test.js +11 -11
- package/build/dist/Tests/Types/EmailWithName.test.js.map +1 -1
- package/build/dist/Tests/Types/EncryptionAlgorithm.test.js +4 -4
- package/build/dist/Tests/Types/EncryptionAlgorithm.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/ApiException.test.js +6 -7
- package/build/dist/Tests/Types/Exception/ApiException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/BadDataException.test.js +7 -7
- package/build/dist/Tests/Types/Exception/BadDataException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/BadOperationException.test.js +6 -7
- package/build/dist/Tests/Types/Exception/BadOperationException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/BadRequestException.test.js +7 -7
- package/build/dist/Tests/Types/Exception/BadRequestException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js +5 -5
- package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/Exception.test.js +9 -9
- package/build/dist/Tests/Types/Exception/Exception.test.js.map +1 -1
- package/build/dist/Tests/Types/Exception/NotImplementedException.test.js +5 -5
- package/build/dist/Tests/Types/Exception/NotImplementedException.test.js.map +1 -1
- package/build/dist/Tests/Types/File.test.js +13 -13
- package/build/dist/Tests/Types/File.test.js.map +1 -1
- package/build/dist/Tests/Types/HashedString.test.js +8 -8
- package/build/dist/Tests/Types/HashedString.test.js.map +1 -1
- package/build/dist/Tests/Types/Html.test.js +5 -5
- package/build/dist/Tests/Types/Html.test.js.map +1 -1
- package/build/dist/Tests/Types/IP/IP.test.js +40 -40
- package/build/dist/Tests/Types/IP/IP.test.js.map +1 -1
- package/build/dist/Tests/Types/IP/IPType.test.js +6 -6
- package/build/dist/Tests/Types/IP/IPType.test.js.map +1 -1
- package/build/dist/Tests/Types/IP/IPv4.test.js +9 -9
- package/build/dist/Tests/Types/IP/IPv4.test.js.map +1 -1
- package/build/dist/Tests/Types/IP/IPv6.test.js +9 -9
- package/build/dist/Tests/Types/IP/IPv6.test.js.map +1 -1
- package/build/dist/Tests/Types/JSON.test.js +28 -28
- package/build/dist/Tests/Types/JSON.test.js.map +1 -1
- package/build/dist/Tests/Types/JSONFunctions.test.js +13 -13
- package/build/dist/Tests/Types/JSONFunctions.test.js.map +1 -1
- package/build/dist/Tests/Types/ListData.test.js +10 -10
- package/build/dist/Tests/Types/ListData.test.js.map +1 -1
- package/build/dist/Tests/Types/Name.test.js +17 -17
- package/build/dist/Tests/Types/Name.test.js.map +1 -1
- package/build/dist/Tests/Types/ObjectID.test.js +8 -8
- package/build/dist/Tests/Types/ObjectID.test.js.map +1 -1
- package/build/dist/Tests/Types/Permission.test.js +6 -6
- package/build/dist/Tests/Types/Permission.test.js.map +1 -1
- package/build/dist/Tests/Types/Phone.test.js +21 -21
- package/build/dist/Tests/Types/Phone.test.js.map +1 -1
- package/build/dist/Tests/Types/Port.test.js +13 -13
- package/build/dist/Tests/Types/Port.test.js.map +1 -1
- package/build/dist/Tests/Types/PositiveNumber.test.js +19 -19
- package/build/dist/Tests/Types/PositiveNumber.test.js.map +1 -1
- package/build/dist/Tests/Types/SecuritySeverity.test.js +10 -10
- package/build/dist/Tests/Types/SecuritySeverity.test.js.map +1 -1
- package/build/dist/Tests/Types/SerializableObject.test.js +14 -12
- package/build/dist/Tests/Types/SerializableObject.test.js.map +1 -1
- package/build/dist/Tests/Types/Sleep.test.js +4 -4
- package/build/dist/Tests/Types/Sleep.test.js.map +1 -1
- package/build/dist/Tests/Types/Text.test.js +5 -5
- package/build/dist/Tests/Types/Text.test.js.map +1 -1
- package/build/dist/Tests/Types/Timezone.test.js +593 -593
- package/build/dist/Tests/Types/Timezone.test.js.map +1 -1
- package/build/dist/Tests/Types/Typeof.test.js +10 -10
- package/build/dist/Tests/Types/Typeof.test.js.map +1 -1
- package/build/dist/Tests/Types/UserType.test.js +10 -10
- package/build/dist/Tests/Types/UserType.test.js.map +1 -1
- package/build/dist/Tests/Types/Version.test.js +21 -21
- package/build/dist/Tests/Types/Version.test.js.map +1 -1
- package/build/dist/Tests/Types/XML.test.js +17 -17
- package/build/dist/Tests/Types/XML.test.js.map +1 -1
- package/build/dist/Tests/Utils/API.test.js +83 -83
- package/build/dist/Tests/Utils/API.test.js.map +1 -1
- package/build/dist/Tests/Utils/Analytics.test.js +25 -25
- package/build/dist/Tests/Utils/Analytics.test.js.map +1 -1
- package/build/dist/Tests/Utils/CronTime.test.js +14 -14
- package/build/dist/Tests/Utils/CronTime.test.js.map +1 -1
- package/build/dist/Tests/Utils/Faker.test.js +10 -10
- package/build/dist/Tests/Utils/Faker.test.js.map +1 -1
- package/build/dist/Tests/Utils/Slug.test.js +12 -12
- package/build/dist/Tests/Utils/Slug.test.js.map +1 -1
- package/build/dist/Tests/Utils/UUID.test.js +3 -3
- package/build/dist/Tests/Utils/UUID.test.js.map +1 -1
- package/build/dist/Types/API/HTTPErrorResponse.js +10 -11
- package/build/dist/Types/API/HTTPErrorResponse.js.map +1 -1
- package/build/dist/Types/API/HTTPMethod.js.map +1 -1
- package/build/dist/Types/API/HTTPResponse.js +9 -9
- package/build/dist/Types/API/HTTPResponse.js.map +1 -1
- package/build/dist/Types/API/Hostname.js +14 -14
- package/build/dist/Types/API/Hostname.js.map +1 -1
- package/build/dist/Types/API/Protocol.js.map +1 -1
- package/build/dist/Types/API/ResponseType.js.map +1 -1
- package/build/dist/Types/API/Route.js +11 -11
- package/build/dist/Types/API/Route.js.map +1 -1
- package/build/dist/Types/API/StatusCode.js +3 -4
- package/build/dist/Types/API/StatusCode.js.map +1 -1
- package/build/dist/Types/API/URL.js +44 -44
- package/build/dist/Types/API/URL.js.map +1 -1
- package/build/dist/Types/Alerts/AlertEventType.js.map +1 -1
- package/build/dist/Types/Alerts/AlertType.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableEngine.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/TableColumn.js +6 -7
- package/build/dist/Types/AnalyticsDatabase/TableColumn.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/TableColumnType.js.map +1 -1
- package/build/dist/Types/AppEnvironment.js.map +1 -1
- package/build/dist/Types/ApplicationLog/ApplicationLogType.js.map +1 -1
- package/build/dist/Types/ArrayUtil.js.map +1 -1
- package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js +10 -11
- package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js.map +1 -1
- package/build/dist/Types/BaseDatabase/DatabaseType.js.map +1 -1
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js +6 -6
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/GreaterThan.js +6 -6
- package/build/dist/Types/BaseDatabase/GreaterThan.js.map +1 -1
- package/build/dist/Types/BaseDatabase/GreaterThanOrEqual.js +6 -6
- package/build/dist/Types/BaseDatabase/GreaterThanOrEqual.js.map +1 -1
- package/build/dist/Types/BaseDatabase/InBetween.js +8 -8
- package/build/dist/Types/BaseDatabase/InBetween.js.map +1 -1
- package/build/dist/Types/BaseDatabase/Includes.js +7 -7
- package/build/dist/Types/BaseDatabase/Includes.js.map +1 -1
- package/build/dist/Types/BaseDatabase/IsNull.js +6 -6
- package/build/dist/Types/BaseDatabase/IsNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/LessThan.js +6 -6
- package/build/dist/Types/BaseDatabase/LessThan.js.map +1 -1
- package/build/dist/Types/BaseDatabase/LessThanOrEqual.js +6 -6
- package/build/dist/Types/BaseDatabase/LessThanOrEqual.js.map +1 -1
- package/build/dist/Types/BaseDatabase/ModelPermission.js +1 -1
- package/build/dist/Types/BaseDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotEqual.js +6 -6
- package/build/dist/Types/BaseDatabase/NotEqual.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotNull.js +6 -6
- package/build/dist/Types/BaseDatabase/NotNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/Search.js +6 -6
- package/build/dist/Types/BaseDatabase/Search.js.map +1 -1
- package/build/dist/Types/BaseDatabase/SortOrder.js.map +1 -1
- package/build/dist/Types/Billing/MeteredPlan.js.map +1 -1
- package/build/dist/Types/Billing/SubscriptionPlan.js +15 -16
- package/build/dist/Types/Billing/SubscriptionPlan.js.map +1 -1
- package/build/dist/Types/Billing/SubscriptionStatus.js.map +1 -1
- package/build/dist/Types/BrandColors.js +40 -40
- package/build/dist/Types/BrandColors.js.map +1 -1
- package/build/dist/Types/BrowserType.js.map +1 -1
- package/build/dist/Types/Call/CallRequest.js +1 -1
- package/build/dist/Types/Call/CallRequest.js.map +1 -1
- package/build/dist/Types/Call/CallStatus.js.map +1 -1
- package/build/dist/Types/Code/CodeType.js.map +1 -1
- package/build/dist/Types/CodeRepository/CodeRepositoryType.js +7 -0
- package/build/dist/Types/CodeRepository/CodeRepositoryType.js.map +1 -0
- package/build/dist/Types/CodeRepository/PullRequest.js +2 -0
- package/build/dist/Types/CodeRepository/PullRequest.js.map +1 -0
- package/build/dist/Types/CodeRepository/PullRequestState.js +8 -0
- package/build/dist/Types/CodeRepository/PullRequestState.js.map +1 -0
- package/build/dist/Types/Color.js +13 -13
- package/build/dist/Types/Color.js.map +1 -1
- package/build/dist/Types/Company/CompanySize.js.map +1 -1
- package/build/dist/Types/Company/JobRole.js.map +1 -1
- package/build/dist/Types/CookieName.js +12 -0
- package/build/dist/Types/CookieName.js.map +1 -0
- package/build/dist/Types/Copilot/CopilotEventStatus.js +7 -0
- package/build/dist/Types/Copilot/CopilotEventStatus.js.map +1 -0
- package/build/dist/Types/Copilot/CopilotEventType.js.map +1 -1
- package/build/dist/Types/Countries.js.map +1 -1
- package/build/dist/Types/Currency.js +3 -3
- package/build/dist/Types/Currency.js.map +1 -1
- package/build/dist/Types/CustomField/CustomFieldType.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/AllowAccessIfSubscriptionIsUnpaid.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js +2 -2
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js +2 -2
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/TableAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/TableBillingAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControlColumn.js.map +1 -1
- package/build/dist/Types/Database/AllowUserQueryWithoutTenant.js.map +1 -1
- package/build/dist/Types/Database/CanAccessIfCanReadOn.js.map +1 -1
- package/build/dist/Types/Database/ColumnLength.js +1 -1
- package/build/dist/Types/Database/ColumnLength.js.map +1 -1
- package/build/dist/Types/Database/ColumnType.js.map +1 -1
- package/build/dist/Types/Database/Columns.js.map +1 -1
- package/build/dist/Types/Database/CompareBase.js +5 -5
- package/build/dist/Types/Database/CompareBase.js.map +1 -1
- package/build/dist/Types/Database/CrudApiEndpoint.js.map +1 -1
- package/build/dist/Types/Database/CurrentUserCanAccessRecordBy.js.map +1 -1
- package/build/dist/Types/Database/DatabaseProperty.js +3 -3
- package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
- package/build/dist/Types/Database/Date.js +2 -2
- package/build/dist/Types/Database/Date.js.map +1 -1
- package/build/dist/Types/Database/EnableDocumentation.js +1 -2
- package/build/dist/Types/Database/EnableDocumentation.js.map +1 -1
- package/build/dist/Types/Database/EnableWorkflow.js.map +1 -1
- package/build/dist/Types/Database/IsPermissionsIf.js.map +1 -1
- package/build/dist/Types/Database/LabelsColumn.js.map +1 -1
- package/build/dist/Types/Database/MultiTenentQueryAllowed.js.map +1 -1
- package/build/dist/Types/Database/SlugifyColumn.js.map +1 -1
- package/build/dist/Types/Database/TableColumn.js +2 -2
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Types/Database/TableColumnType.js.map +1 -1
- package/build/dist/Types/Database/TableMetadata.js.map +1 -1
- package/build/dist/Types/Database/TenantColumn.js.map +1 -1
- package/build/dist/Types/Database/TotalItemsBy.js.map +1 -1
- package/build/dist/Types/Database/UniqueColumnBy.js +2 -2
- package/build/dist/Types/Database/UniqueColumnBy.js.map +1 -1
- package/build/dist/Types/DatabaseType.js.map +1 -1
- package/build/dist/Types/Date.js +192 -141
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Day/DayOfWeek.js.map +1 -1
- package/build/dist/Types/Decimal.js +8 -8
- package/build/dist/Types/Decimal.js.map +1 -1
- package/build/dist/Types/DiskSize.js +3 -3
- package/build/dist/Types/DiskSize.js.map +1 -1
- package/build/dist/Types/Domain.js +13 -13
- package/build/dist/Types/Domain.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Email.js +32 -32
- package/build/dist/Types/Email.js.map +1 -1
- package/build/dist/Types/EmailWithName.js +4 -4
- package/build/dist/Types/EmailWithName.js.map +1 -1
- package/build/dist/Types/EncryptionAlgorithm.js.map +1 -1
- package/build/dist/Types/Events/EventInterval.js.map +1 -1
- package/build/dist/Types/Events/Recurring.js +15 -15
- package/build/dist/Types/Events/Recurring.js.map +1 -1
- package/build/dist/Types/Exception/ApiException.js +2 -2
- package/build/dist/Types/Exception/ApiException.js.map +1 -1
- package/build/dist/Types/Exception/BadDataException.js +2 -2
- package/build/dist/Types/Exception/BadDataException.js.map +1 -1
- package/build/dist/Types/Exception/BadOperationException.js +2 -2
- package/build/dist/Types/Exception/BadOperationException.js.map +1 -1
- package/build/dist/Types/Exception/BadRequestException.js +2 -2
- package/build/dist/Types/Exception/BadRequestException.js.map +1 -1
- package/build/dist/Types/Exception/DatabaseNotConnectedException.js +3 -3
- package/build/dist/Types/Exception/DatabaseNotConnectedException.js.map +1 -1
- package/build/dist/Types/Exception/Exception.js +1 -1
- package/build/dist/Types/Exception/Exception.js.map +1 -1
- package/build/dist/Types/Exception/ExceptionCode.js.map +1 -1
- package/build/dist/Types/Exception/NotAuthenticatedException.js +2 -2
- package/build/dist/Types/Exception/NotAuthenticatedException.js.map +1 -1
- package/build/dist/Types/Exception/NotAuthorizedException.js +2 -2
- package/build/dist/Types/Exception/NotAuthorizedException.js.map +1 -1
- package/build/dist/Types/Exception/NotFoundException.js +2 -2
- package/build/dist/Types/Exception/NotFoundException.js.map +1 -1
- package/build/dist/Types/Exception/NotImplementedException.js +3 -3
- package/build/dist/Types/Exception/NotImplementedException.js.map +1 -1
- package/build/dist/Types/Exception/PaymentRequiredException.js +2 -2
- package/build/dist/Types/Exception/PaymentRequiredException.js.map +1 -1
- package/build/dist/Types/Exception/ServerException.js +3 -3
- package/build/dist/Types/Exception/ServerException.js.map +1 -1
- package/build/dist/Types/Exception/SsoAuthorizationException.js +3 -3
- package/build/dist/Types/Exception/SsoAuthorizationException.js.map +1 -1
- package/build/dist/Types/Exception/TenantNotFoundException.js +2 -2
- package/build/dist/Types/Exception/TenantNotFoundException.js.map +1 -1
- package/build/dist/Types/Exception/TimeoutException.js +2 -2
- package/build/dist/Types/Exception/TimeoutException.js.map +1 -1
- package/build/dist/Types/Exception/UnableToReachServer.js +2 -2
- package/build/dist/Types/Exception/UnableToReachServer.js.map +1 -1
- package/build/dist/Types/Exception/WebsiteRequestException.js +2 -2
- package/build/dist/Types/Exception/WebsiteRequestException.js.map +1 -1
- package/build/dist/Types/File/MimeType.js.map +1 -1
- package/build/dist/Types/Filter/FilterCondition.js.map +1 -1
- package/build/dist/Types/Filter/FilterType.js.map +1 -1
- package/build/dist/Types/HashCode.js.map +1 -1
- package/build/dist/Types/HashedString.js +14 -14
- package/build/dist/Types/HashedString.js.map +1 -1
- package/build/dist/Types/Html.js +1 -1
- package/build/dist/Types/Html.js.map +1 -1
- package/build/dist/Types/IP/IP.js +13 -13
- package/build/dist/Types/IP/IP.js.map +1 -1
- package/build/dist/Types/IP/IPType.js.map +1 -1
- package/build/dist/Types/IP/IPv4.js +3 -3
- package/build/dist/Types/IP/IPv4.js.map +1 -1
- package/build/dist/Types/IP/IPv6.js +3 -3
- package/build/dist/Types/IP/IPv6.js.map +1 -1
- package/build/dist/Types/Icon/IconProp.js.map +1 -1
- package/build/dist/Types/Infrastructure/OSType.js.map +1 -1
- package/build/dist/Types/JSON.js.map +1 -1
- package/build/dist/Types/JSONFunctions.js +33 -35
- package/build/dist/Types/JSONFunctions.js.map +1 -1
- package/build/dist/Types/ListData.js.map +1 -1
- package/build/dist/Types/Mail/MailStatus.js.map +1 -1
- package/build/dist/Types/MeteredPlan/ProductType.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteria.js +17 -19
- package/build/dist/Types/Monitor/MonitorCriteria.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +54 -55
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +48 -52
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorSteps.js +19 -19
- package/build/dist/Types/Monitor/MonitorSteps.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +23 -23
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SyntheticMonitors/BrowserType.js +1 -1
- package/build/dist/Types/Monitor/SyntheticMonitors/ScreenSizeType.js +1 -1
- package/build/dist/Types/Name.js +16 -16
- package/build/dist/Types/Name.js.map +1 -1
- package/build/dist/Types/NotificationRule/NotificationRuleType.js.map +1 -1
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/ObjectID.js +15 -15
- package/build/dist/Types/ObjectID.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/Layer.js +14 -18
- package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/OnCalDutyExecutionLogTimelineStatus.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyAlertStatus.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js +14 -14
- package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js.map +1 -1
- package/build/dist/Types/Operation/OperationResult.js.map +1 -1
- package/build/dist/Types/Operation/OperationStatus.js.map +1 -1
- package/build/dist/Types/Permission.js +696 -696
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Phone.js +8 -8
- package/build/dist/Types/Phone.js.map +1 -1
- package/build/dist/Types/Port.js +11 -11
- package/build/dist/Types/Port.js.map +1 -1
- package/build/dist/Types/PositiveNumber.js +7 -8
- package/build/dist/Types/PositiveNumber.js.map +1 -1
- package/build/dist/Types/SMS/SmsTemplateType.js.map +1 -1
- package/build/dist/Types/SSO/DigestMethod.js.map +1 -1
- package/build/dist/Types/SSO/SignatureMethod.js.map +1 -1
- package/build/dist/Types/ScheduledEvent/ScheduledEventState.js.map +1 -1
- package/build/dist/Types/ScreenSizeType.js.map +1 -1
- package/build/dist/Types/SecuritySeverity.js.map +1 -1
- package/build/dist/Types/SerializableObject.js +1 -1
- package/build/dist/Types/SerializableObject.js.map +1 -1
- package/build/dist/Types/SerializableObjectDictionary.js +29 -29
- package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
- package/build/dist/Types/ServiceCatalog/ServiceLanguage.js +21 -0
- package/build/dist/Types/ServiceCatalog/ServiceLanguage.js.map +1 -0
- package/build/dist/Types/Sleep.js.map +1 -1
- package/build/dist/Types/SmsStatus.js.map +1 -1
- package/build/dist/Types/StatusPage/StatusPageChartType.js.map +1 -1
- package/build/dist/Types/Text.js +35 -35
- package/build/dist/Types/Text.js.map +1 -1
- package/build/dist/Types/Timezone.js.map +1 -1
- package/build/dist/Types/Typeof.js.map +1 -1
- package/build/dist/Types/UserNotification/UserNotificationEventType.js.map +1 -1
- package/build/dist/Types/UserNotification/UserNotificationExecutionStatus.js.map +1 -1
- package/build/dist/Types/UserNotification/UserNotificationStatus.js.map +1 -1
- package/build/dist/Types/UserType.js.map +1 -1
- package/build/dist/Types/Version.js +9 -9
- package/build/dist/Types/Version.js.map +1 -1
- package/build/dist/Types/WebsiteRequest.js +3 -3
- package/build/dist/Types/WebsiteRequest.js.map +1 -1
- package/build/dist/Types/Workflow/Component.js.map +1 -1
- package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
- package/build/dist/Types/Workflow/Components/API.js +139 -139
- package/build/dist/Types/Workflow/Components/API.js.map +1 -1
- package/build/dist/Types/Workflow/Components/BaseModel.js +139 -139
- package/build/dist/Types/Workflow/Components/BaseModel.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Condition.js +27 -27
- package/build/dist/Types/Workflow/Components/Condition.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Email.js +44 -44
- package/build/dist/Types/Workflow/Components/Email.js.map +1 -1
- package/build/dist/Types/Workflow/Components/JSON.js +60 -60
- package/build/dist/Types/Workflow/Components/JSON.js.map +1 -1
- package/build/dist/Types/Workflow/Components/JavaScript.js +26 -26
- package/build/dist/Types/Workflow/Components/JavaScript.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Log.js +15 -15
- package/build/dist/Types/Workflow/Components/Log.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Manual.js +12 -12
- package/build/dist/Types/Workflow/Components/Manual.js.map +1 -1
- package/build/dist/Types/Workflow/Components/MicrosoftTeams.js +26 -26
- package/build/dist/Types/Workflow/Components/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Schedule.js +12 -12
- package/build/dist/Types/Workflow/Components/Schedule.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Slack.js +26 -26
- package/build/dist/Types/Workflow/Components/Slack.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Webhook.js +20 -20
- package/build/dist/Types/Workflow/Components/Webhook.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Workflow.js +15 -15
- package/build/dist/Types/Workflow/Components/Workflow.js.map +1 -1
- package/build/dist/Types/Workflow/Components.js +33 -33
- package/build/dist/Types/Workflow/Components.js.map +1 -1
- package/build/dist/Types/Workflow/WorkflowPlan.js.map +1 -1
- package/build/dist/Types/Workflow/WorkflowStatus.js.map +1 -1
- package/build/dist/Types/XML.js +3 -3
- package/build/dist/Types/XML.js.map +1 -1
- package/build/dist/Utils/API.js +66 -16
- package/build/dist/Utils/API.js.map +1 -1
- package/build/dist/Utils/Analytics.js +1 -1
- package/build/dist/Utils/Analytics.js.map +1 -1
- package/build/dist/Utils/CronTime.js +7 -7
- package/build/dist/Utils/Enum.js +9 -0
- package/build/dist/Utils/Enum.js.map +1 -0
- package/build/dist/Utils/Faker.js +5 -5
- package/build/dist/Utils/Faker.js.map +1 -1
- package/build/dist/Utils/ObjectUtil.js.map +1 -1
- package/build/dist/Utils/Realtime.js +1 -1
- package/build/dist/Utils/Realtime.js.map +1 -1
- package/build/dist/Utils/Slug.js +3 -3
- package/build/dist/Utils/Slug.js.map +1 -1
- package/build/dist/Utils/UUID.js +1 -1
- package/build/dist/Utils/UUID.js.map +1 -1
- package/package.json +3 -3
package/Types/Date.ts
CHANGED
|
@@ -1,1069 +1,1117 @@
|
|
|
1
|
-
import InBetween from
|
|
2
|
-
import DayOfWeek, { DayOfWeekUtil } from
|
|
3
|
-
import BadDataException from
|
|
4
|
-
import { JSONObject, ObjectType } from
|
|
5
|
-
import PositiveNumber from
|
|
6
|
-
import moment from
|
|
1
|
+
import InBetween from "./BaseDatabase/InBetween";
|
|
2
|
+
import DayOfWeek, { DayOfWeekUtil } from "./Day/DayOfWeek";
|
|
3
|
+
import BadDataException from "./Exception/BadDataException";
|
|
4
|
+
import { JSONObject, ObjectType } from "./JSON";
|
|
5
|
+
import PositiveNumber from "./PositiveNumber";
|
|
6
|
+
import moment from "moment-timezone";
|
|
7
|
+
import Timezone from "./Timezone";
|
|
7
8
|
|
|
8
9
|
export const Moment: typeof moment = moment;
|
|
9
10
|
|
|
10
11
|
export default class OneUptimeDate {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
public getNanoSecondsFromSeconds(seconds: number): number {
|
|
13
|
+
return seconds * 1000 * 1000 * 1000;
|
|
14
|
+
}
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
public static getDateFromYYYYMMDD(
|
|
17
|
+
year: string,
|
|
18
|
+
month: string,
|
|
19
|
+
day: string,
|
|
20
|
+
): Date {
|
|
21
|
+
return moment(`${year}-${month}-${day}`).toDate();
|
|
22
|
+
}
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
public getMicroSecondsFromSeconds(seconds: number): number {
|
|
25
|
+
return seconds * 1000 * 1000;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public getMilliSecondsFromSeconds(seconds: number): number {
|
|
29
|
+
return seconds * 1000;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public static getCurrentDateAsUnixNano(): number {
|
|
33
|
+
return this.toUnixNano(this.getCurrentDate());
|
|
34
|
+
}
|
|
26
35
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
36
|
+
public static toUnixNano(date: Date): number {
|
|
37
|
+
return date.getTime() * 1000000;
|
|
38
|
+
}
|
|
30
39
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
public static getLocalHourAndMinuteFromDate(date: Date | string): string {
|
|
41
|
+
date = this.fromString(date);
|
|
42
|
+
return moment(date).format("HH:mm");
|
|
43
|
+
}
|
|
34
44
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
45
|
+
public static getMillisecondsBetweenTwoUnixNanoDates(
|
|
46
|
+
startDate: number,
|
|
47
|
+
endDate: number,
|
|
48
|
+
): number {
|
|
49
|
+
return endDate - startDate;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public static moveDateToTheDayOfWeek(
|
|
53
|
+
date: Date,
|
|
54
|
+
moveToWeek: Date,
|
|
55
|
+
dayOfWeek: DayOfWeek,
|
|
56
|
+
): Date {
|
|
57
|
+
// date will be moved to the week of "moveToWeek" and then to the day of week "dayOfWeek"
|
|
58
|
+
|
|
59
|
+
date = this.fromString(date);
|
|
60
|
+
date = this.keepTimeButMoveDay(date, moveToWeek);
|
|
61
|
+
|
|
62
|
+
// now move the date to the day of week
|
|
63
|
+
|
|
64
|
+
const dateDayOfWeek: DayOfWeek = this.getDayOfWeek(date);
|
|
65
|
+
|
|
66
|
+
if (dateDayOfWeek === dayOfWeek) {
|
|
67
|
+
return date;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const numberOfDayOfWeek: number =
|
|
71
|
+
DayOfWeekUtil.getNumberOfDayOfWeek(dayOfWeek);
|
|
72
|
+
|
|
73
|
+
const dateDayOfWeekNumber: number =
|
|
74
|
+
DayOfWeekUtil.getNumberOfDayOfWeek(dateDayOfWeek);
|
|
75
|
+
|
|
76
|
+
const difference: number = numberOfDayOfWeek - dateDayOfWeekNumber;
|
|
77
|
+
|
|
78
|
+
if (difference === 0) {
|
|
79
|
+
return date;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return this.addRemoveDays(date, difference);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
public static isOverlapping(
|
|
86
|
+
start: Date,
|
|
87
|
+
end: Date,
|
|
88
|
+
start1: Date,
|
|
89
|
+
end1: Date,
|
|
90
|
+
): unknown {
|
|
91
|
+
start = this.fromString(start);
|
|
92
|
+
end = this.fromString(end);
|
|
93
|
+
start1 = this.fromString(start1);
|
|
94
|
+
end1 = this.fromString(end1);
|
|
95
|
+
|
|
96
|
+
let isOverlapping: boolean =
|
|
97
|
+
moment(start).isBetween(start1, end1) ||
|
|
98
|
+
moment(end).isBetween(start1, end1) ||
|
|
99
|
+
moment(start).isSame(start1) ||
|
|
100
|
+
moment(end).isSame(end1);
|
|
101
|
+
|
|
102
|
+
if (!isOverlapping) {
|
|
103
|
+
// check if the start1 and end1 are in between start and end
|
|
104
|
+
|
|
105
|
+
isOverlapping =
|
|
106
|
+
moment(start1).isBetween(start, end) ||
|
|
107
|
+
moment(end1).isBetween(start, end) ||
|
|
108
|
+
moment(start1).isSame(start) ||
|
|
109
|
+
moment(end1).isSame(end);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return isOverlapping;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
public static getCurrentDate(): Date {
|
|
116
|
+
return moment().toDate();
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
public static fromNow(date: Date): string {
|
|
120
|
+
return moment(date).fromNow();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
public static differenceBetweenTwoDatesAsFromattedString(
|
|
124
|
+
date1: Date,
|
|
125
|
+
date2: Date,
|
|
126
|
+
): string {
|
|
127
|
+
const seconds: number = this.getSecondsBetweenTwoDates(date1, date2);
|
|
128
|
+
return this.secondsToFormattedFriendlyTimeString(seconds);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
public static toTimeString(date: Date | string): string {
|
|
132
|
+
if (typeof date === "string") {
|
|
133
|
+
date = this.fromString(date);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return moment(date).format("HH:mm");
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
public static isSame(date1: Date, date2: Date): boolean {
|
|
140
|
+
date1 = this.fromString(date1);
|
|
141
|
+
date2 = this.fromString(date2);
|
|
142
|
+
return moment(date1).isSame(date2);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
public static getDaysBetweenTwoDates(startDate: Date, endDate: Date): number {
|
|
146
|
+
startDate = this.fromString(startDate);
|
|
147
|
+
endDate = this.fromString(endDate);
|
|
148
|
+
return moment(endDate).diff(moment(startDate), "days");
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
public static getDaysBetweenTwoDatesInclusive(
|
|
152
|
+
startDate: Date,
|
|
153
|
+
endDate: Date,
|
|
154
|
+
): number {
|
|
155
|
+
return this.getDaysBetweenTwoDates(startDate, endDate) + 1;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
public static getHoursBetweenTwoDates(
|
|
159
|
+
startDate: Date,
|
|
160
|
+
endDate: Date,
|
|
161
|
+
): number {
|
|
162
|
+
startDate = this.fromString(startDate);
|
|
163
|
+
endDate = this.fromString(endDate);
|
|
164
|
+
return moment(endDate).diff(moment(startDate), "hours");
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
public static getHoursBetweenTwoDatesInclusive(
|
|
168
|
+
startDate: Date,
|
|
169
|
+
endDate: Date,
|
|
170
|
+
): number {
|
|
171
|
+
return this.getHoursBetweenTwoDates(startDate, endDate) + 1;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
public static getMinutesBetweenTwoDates(
|
|
175
|
+
startDate: Date,
|
|
176
|
+
endDate: Date,
|
|
177
|
+
): number {
|
|
178
|
+
startDate = this.fromString(startDate);
|
|
179
|
+
endDate = this.fromString(endDate);
|
|
180
|
+
return moment(endDate).diff(moment(startDate), "minutes");
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
public static getMinutesBetweenTwoDatesInclusive(
|
|
184
|
+
startDate: Date,
|
|
185
|
+
endDate: Date,
|
|
186
|
+
): number {
|
|
187
|
+
return this.getMinutesBetweenTwoDates(startDate, endDate) + 1;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
public static getSecondsBetweenTwoDates(
|
|
191
|
+
startDate: Date,
|
|
192
|
+
endDate: Date,
|
|
193
|
+
): number {
|
|
194
|
+
startDate = this.fromString(startDate);
|
|
195
|
+
endDate = this.fromString(endDate);
|
|
196
|
+
return moment(endDate).diff(moment(startDate), "seconds");
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
public static getSecondsBetweenTwoDatesInclusive(
|
|
200
|
+
startDate: Date,
|
|
201
|
+
endDate: Date,
|
|
202
|
+
): number {
|
|
203
|
+
return this.getSecondsBetweenTwoDates(startDate, endDate) + 1;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
public static getWeeksBetweenTwoDates(
|
|
207
|
+
startDate: Date,
|
|
208
|
+
endDate: Date,
|
|
209
|
+
): number {
|
|
210
|
+
startDate = this.fromString(startDate);
|
|
211
|
+
endDate = this.fromString(endDate);
|
|
212
|
+
return moment(endDate).diff(moment(startDate), "weeks");
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
public static getWeeksBetweenTwoDatesInclusive(
|
|
216
|
+
startDate: Date,
|
|
217
|
+
endDate: Date,
|
|
218
|
+
): number {
|
|
219
|
+
return this.getWeeksBetweenTwoDates(startDate, endDate) + 1;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
public static getMonthsBetweenTwoDates(
|
|
223
|
+
startDate: Date,
|
|
224
|
+
endDate: Date,
|
|
225
|
+
): number {
|
|
226
|
+
startDate = this.fromString(startDate);
|
|
227
|
+
endDate = this.fromString(endDate);
|
|
228
|
+
return moment(endDate).diff(moment(startDate), "months");
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
public static getMonthsBetweenTwoDatesInclusive(
|
|
232
|
+
startDate: Date,
|
|
233
|
+
endDate: Date,
|
|
234
|
+
): number {
|
|
235
|
+
return this.getMonthsBetweenTwoDates(startDate, endDate) + 1;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
public static getYearsBetweenTwoDates(
|
|
239
|
+
startDate: Date,
|
|
240
|
+
endDate: Date,
|
|
241
|
+
): number {
|
|
242
|
+
startDate = this.fromString(startDate);
|
|
243
|
+
endDate = this.fromString(endDate);
|
|
244
|
+
return moment(endDate).diff(moment(startDate), "years");
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
public static getYearsBetweenTwoDatesInclusive(
|
|
248
|
+
startDate: Date,
|
|
249
|
+
endDate: Date,
|
|
250
|
+
): number {
|
|
251
|
+
return this.getYearsBetweenTwoDates(startDate, endDate) + 1;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
public static toString(date: Date | undefined): string {
|
|
255
|
+
if (!date) {
|
|
256
|
+
return "";
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
date = this.fromString(date);
|
|
260
|
+
|
|
261
|
+
return date.toISOString();
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
public static getCurrentMomentDate(): moment.Moment {
|
|
265
|
+
return moment();
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
public static keepTimeButMoveDay(keepTimeFor: Date, moveDayTo: Date): Date {
|
|
269
|
+
keepTimeFor = this.fromString(keepTimeFor);
|
|
270
|
+
moveDayTo = this.fromString(moveDayTo);
|
|
271
|
+
return moment(moveDayTo)
|
|
272
|
+
.set({
|
|
273
|
+
hour: keepTimeFor.getHours(),
|
|
274
|
+
minute: keepTimeFor.getMinutes(),
|
|
275
|
+
second: keepTimeFor.getSeconds(),
|
|
276
|
+
millisecond: keepTimeFor.getMilliseconds(),
|
|
277
|
+
})
|
|
278
|
+
.toDate();
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
public static getOneMinAgo(): Date {
|
|
282
|
+
return this.getSomeMinutesAgo(new PositiveNumber(1));
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
public static getOneDayAgo(): Date {
|
|
286
|
+
return this.getSomeDaysAgo(new PositiveNumber(1));
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
public static fromUnixNano(timestamp: number): Date {
|
|
290
|
+
return moment(timestamp / 1000000).toDate();
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
public static getSecondsTo(date: Date): number {
|
|
294
|
+
date = this.fromString(date);
|
|
295
|
+
const dif: number = date.getTime() - this.getCurrentDate().getTime();
|
|
296
|
+
const Seconds_from_T1_to_T2: number = dif / 1000;
|
|
297
|
+
return Math.abs(Seconds_from_T1_to_T2);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
public static getSomeMinutesAgo(minutes: PositiveNumber | number): Date {
|
|
301
|
+
if (!(minutes instanceof PositiveNumber)) {
|
|
302
|
+
minutes = new PositiveNumber(minutes);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
return this.getCurrentMomentDate()
|
|
306
|
+
.add(-1 * minutes.toNumber(), "minutes")
|
|
307
|
+
.toDate();
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
public static timezoneOffsetDate(date: Date): Date {
|
|
311
|
+
date = this.fromString(date);
|
|
312
|
+
return this.addRemoveMinutes(date, date.getTimezoneOffset());
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
public static toDateTimeLocalString(date: Date): string {
|
|
316
|
+
date = this.fromString(date);
|
|
317
|
+
|
|
318
|
+
type TenFunction = (i: number) => string;
|
|
319
|
+
|
|
320
|
+
const ten: TenFunction = (i: number): string => {
|
|
321
|
+
return (i < 10 ? "0" : "") + i;
|
|
322
|
+
},
|
|
323
|
+
YYYY: number = date.getFullYear(),
|
|
324
|
+
MM: string = ten(date.getMonth() + 1),
|
|
325
|
+
DD: string = ten(date.getDate()),
|
|
326
|
+
HH: string = ten(date.getHours()),
|
|
327
|
+
II: string = ten(date.getMinutes()),
|
|
328
|
+
SS: string = ten(date.getSeconds());
|
|
329
|
+
|
|
330
|
+
return YYYY + "-" + MM + "-" + DD + "T" + HH + ":" + II + ":" + SS;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
public static fromJSON(json: JSONObject): Date {
|
|
334
|
+
if (json["_type"] === ObjectType.DateTime) {
|
|
335
|
+
return OneUptimeDate.fromString(json["value"] as string);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
throw new BadDataException("Invalid JSON: " + JSON.stringify(json));
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
public static toJSON(date: Date): JSONObject {
|
|
342
|
+
return {
|
|
343
|
+
_type: ObjectType.DateTime,
|
|
344
|
+
value: OneUptimeDate.toString(date),
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
public static areOnTheSameDay(date1: Date, date2: Date): boolean {
|
|
349
|
+
date1 = this.fromString(date1);
|
|
350
|
+
date2 = this.fromString(date2);
|
|
351
|
+
return moment(date1).isSame(date2, "day");
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
public static areOnTheSameMonth(date1: Date, date2: Date): boolean {
|
|
355
|
+
date1 = this.fromString(date1);
|
|
356
|
+
date2 = this.fromString(date2);
|
|
357
|
+
return moment(date1).isSame(date2, "month");
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
public static areOnTheSameYear(date1: Date, date2: Date): boolean {
|
|
361
|
+
date1 = this.fromString(date1);
|
|
362
|
+
date2 = this.fromString(date2);
|
|
363
|
+
return moment(date1).isSame(date2, "year");
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
public static areOnTheSameHour(date1: Date, date2: Date): boolean {
|
|
367
|
+
date1 = this.fromString(date1);
|
|
368
|
+
date2 = this.fromString(date2);
|
|
369
|
+
return moment(date1).isSame(date2, "hour");
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
public static areOnTheSameMinute(date1: Date, date2: Date): boolean {
|
|
373
|
+
date1 = this.fromString(date1);
|
|
374
|
+
date2 = this.fromString(date2);
|
|
375
|
+
return moment(date1).isSame(date2, "minute");
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
public static areOnTheSameSecond(date1: Date, date2: Date): boolean {
|
|
379
|
+
date1 = this.fromString(date1);
|
|
380
|
+
date2 = this.fromString(date2);
|
|
381
|
+
return moment(date1).isSame(date2, "second");
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
public static areOnTheSameWeek(date1: Date, date2: Date): boolean {
|
|
385
|
+
date1 = this.fromString(date1);
|
|
386
|
+
date2 = this.fromString(date2);
|
|
387
|
+
return moment(date1).isSame(date2, "week");
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
public static addRemoveMinutes(date: Date, minutes: number): Date {
|
|
391
|
+
date = this.fromString(date);
|
|
392
|
+
return moment(date).add(minutes, "minutes").toDate();
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
public static addRemoveDays(date: Date, days: number): Date {
|
|
396
|
+
date = this.fromString(date);
|
|
397
|
+
return moment(date).add(days, "days").toDate();
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
public static addRemoveHours(date: Date, hours: number): Date {
|
|
401
|
+
date = this.fromString(date);
|
|
402
|
+
return moment(date).add(hours, "hours").toDate();
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
public static addRemoveYears(date: Date, years: number): Date {
|
|
406
|
+
date = this.fromString(date);
|
|
407
|
+
return moment(date).add(years, "years").toDate();
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
public static addRemoveMonths(date: Date, months: number): Date {
|
|
411
|
+
date = this.fromString(date);
|
|
412
|
+
return moment(date).add(months, "months").toDate();
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
public static addRemoveWeeks(date: Date, weeks: number): Date {
|
|
416
|
+
date = this.fromString(date);
|
|
417
|
+
return moment(date).add(weeks, "weeks").toDate();
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
public static addRemoveSeconds(date: Date, seconds: number): Date {
|
|
421
|
+
date = this.fromString(date);
|
|
422
|
+
return moment(date).add(seconds, "seconds").toDate();
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
public static getSecondsInDays(days: PositiveNumber | number): number {
|
|
426
|
+
if (!(days instanceof PositiveNumber)) {
|
|
427
|
+
days = new PositiveNumber(days);
|
|
428
|
+
}
|
|
429
|
+
return days.positiveNumber * 24 * 60 * 60;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
public static getMillisecondsInDays(days: PositiveNumber | number): number {
|
|
433
|
+
return this.getSecondsInDays(days) * 1000;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
public static getSomeHoursAgo(hours: PositiveNumber | number): Date {
|
|
437
|
+
if (!(hours instanceof PositiveNumber)) {
|
|
438
|
+
hours = new PositiveNumber(hours);
|
|
439
|
+
}
|
|
440
|
+
return this.getCurrentMomentDate()
|
|
441
|
+
.add(-1 * hours.toNumber(), "hours")
|
|
442
|
+
.toDate();
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
public static getSomeDaysAgo(days: PositiveNumber | number): Date {
|
|
446
|
+
if (!(days instanceof PositiveNumber)) {
|
|
447
|
+
days = new PositiveNumber(days);
|
|
448
|
+
}
|
|
449
|
+
return this.getCurrentMomentDate()
|
|
450
|
+
.add(-1 * days.toNumber(), "days")
|
|
451
|
+
.toDate();
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
public static getSomeDaysAgoFromDate(
|
|
455
|
+
date: Date,
|
|
456
|
+
days: PositiveNumber | number,
|
|
457
|
+
): Date {
|
|
458
|
+
date = this.fromString(date);
|
|
459
|
+
if (!(days instanceof PositiveNumber)) {
|
|
460
|
+
days = new PositiveNumber(days);
|
|
461
|
+
}
|
|
462
|
+
return moment(date)
|
|
463
|
+
.add(-1 * days.toNumber(), "days")
|
|
464
|
+
.toDate();
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
public static getSomeDaysAfterFromDate(
|
|
468
|
+
date: Date,
|
|
469
|
+
days: PositiveNumber | number,
|
|
470
|
+
): Date {
|
|
471
|
+
date = this.fromString(date);
|
|
472
|
+
if (!(days instanceof PositiveNumber)) {
|
|
473
|
+
days = new PositiveNumber(days);
|
|
474
|
+
}
|
|
475
|
+
return moment(date).add(Number(days.toNumber()), "days").toDate();
|
|
476
|
+
}
|
|
38
477
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
478
|
+
public static getSomeDaysBeforeFromDate(
|
|
479
|
+
date: Date,
|
|
480
|
+
days: PositiveNumber | number,
|
|
481
|
+
): Date {
|
|
482
|
+
date = this.fromString(date);
|
|
483
|
+
if (!(days instanceof PositiveNumber)) {
|
|
484
|
+
days = new PositiveNumber(days);
|
|
42
485
|
}
|
|
486
|
+
return moment(date)
|
|
487
|
+
.add(-1 * Number(days.toNumber()), "days")
|
|
488
|
+
.toDate();
|
|
489
|
+
}
|
|
43
490
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
): number {
|
|
48
|
-
return endDate - startDate;
|
|
491
|
+
public static getSomeSecondsAgo(seconds: PositiveNumber | number): Date {
|
|
492
|
+
if (!(seconds instanceof PositiveNumber)) {
|
|
493
|
+
seconds = new PositiveNumber(seconds);
|
|
49
494
|
}
|
|
50
495
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
): Date {
|
|
56
|
-
// date will be moved to the week of "moveToWeek" and then to the day of week "dayOfWeek"
|
|
57
|
-
|
|
58
|
-
date = this.fromString(date);
|
|
59
|
-
date = this.keepTimeButMoveDay(date, moveToWeek);
|
|
60
|
-
|
|
61
|
-
// now move the date to the day of week
|
|
62
|
-
|
|
63
|
-
const dateDayOfWeek: DayOfWeek = this.getDayOfWeek(date);
|
|
64
|
-
|
|
65
|
-
if (dateDayOfWeek === dayOfWeek) {
|
|
66
|
-
return date;
|
|
67
|
-
}
|
|
496
|
+
return this.getCurrentMomentDate()
|
|
497
|
+
.add(-1 * seconds.toNumber(), "seconds")
|
|
498
|
+
.toDate();
|
|
499
|
+
}
|
|
68
500
|
|
|
69
|
-
|
|
70
|
-
|
|
501
|
+
public static getOneMinAfter(): Date {
|
|
502
|
+
return this.getSomeMinutesAfter(new PositiveNumber(1));
|
|
503
|
+
}
|
|
71
504
|
|
|
72
|
-
|
|
73
|
-
|
|
505
|
+
public static getOneDayAfter(): Date {
|
|
506
|
+
return this.getSomeDaysAfter(new PositiveNumber(1));
|
|
507
|
+
}
|
|
74
508
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return date;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return this.addRemoveDays(date, difference);
|
|
509
|
+
public static getSomeMinutesAfter(minutes: PositiveNumber | number): Date {
|
|
510
|
+
if (!(minutes instanceof PositiveNumber)) {
|
|
511
|
+
minutes = new PositiveNumber(minutes);
|
|
82
512
|
}
|
|
83
513
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
end1: Date
|
|
89
|
-
): unknown {
|
|
90
|
-
start = this.fromString(start);
|
|
91
|
-
end = this.fromString(end);
|
|
92
|
-
start1 = this.fromString(start1);
|
|
93
|
-
end1 = this.fromString(end1);
|
|
94
|
-
|
|
95
|
-
let isOverlapping: boolean =
|
|
96
|
-
moment(start).isBetween(start1, end1) ||
|
|
97
|
-
moment(end).isBetween(start1, end1) ||
|
|
98
|
-
moment(start).isSame(start1) ||
|
|
99
|
-
moment(end).isSame(end1);
|
|
100
|
-
|
|
101
|
-
if (!isOverlapping) {
|
|
102
|
-
// check if the start1 and end1 are in between start and end
|
|
103
|
-
|
|
104
|
-
isOverlapping =
|
|
105
|
-
moment(start1).isBetween(start, end) ||
|
|
106
|
-
moment(end1).isBetween(start, end) ||
|
|
107
|
-
moment(start1).isSame(start) ||
|
|
108
|
-
moment(end1).isSame(end);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
return isOverlapping;
|
|
112
|
-
}
|
|
514
|
+
return this.getCurrentMomentDate()
|
|
515
|
+
.add(minutes.toNumber(), "minutes")
|
|
516
|
+
.toDate();
|
|
517
|
+
}
|
|
113
518
|
|
|
114
|
-
|
|
115
|
-
|
|
519
|
+
public static getSomeHoursAfter(hours: PositiveNumber | number): Date {
|
|
520
|
+
if (!(hours instanceof PositiveNumber)) {
|
|
521
|
+
hours = new PositiveNumber(hours);
|
|
116
522
|
}
|
|
523
|
+
return this.getCurrentMomentDate().add(hours.toNumber(), "hours").toDate();
|
|
524
|
+
}
|
|
117
525
|
|
|
118
|
-
|
|
119
|
-
|
|
526
|
+
public static getSomeDaysAfter(days: PositiveNumber | number): Date {
|
|
527
|
+
if (!(days instanceof PositiveNumber)) {
|
|
528
|
+
days = new PositiveNumber(days);
|
|
120
529
|
}
|
|
121
530
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
date2: Date
|
|
125
|
-
): string {
|
|
126
|
-
const seconds: number = this.getSecondsBetweenTwoDates(date1, date2);
|
|
127
|
-
return this.secondsToFormattedFriendlyTimeString(seconds);
|
|
128
|
-
}
|
|
531
|
+
return this.getCurrentMomentDate().add(days.toNumber(), "days").toDate();
|
|
532
|
+
}
|
|
129
533
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
534
|
+
public static secondsToFormattedTimeString(seconds: number): string {
|
|
535
|
+
return moment.utc(seconds * 1000).format("HH:mm:ss");
|
|
536
|
+
}
|
|
134
537
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
public static isSame(date1: Date, date2: Date): boolean {
|
|
139
|
-
date1 = this.fromString(date1);
|
|
140
|
-
date2 = this.fromString(date2);
|
|
141
|
-
return moment(date1).isSame(date2);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
public static getDaysBetweenTwoDates(
|
|
145
|
-
startDate: Date,
|
|
146
|
-
endDate: Date
|
|
147
|
-
): number {
|
|
148
|
-
startDate = this.fromString(startDate);
|
|
149
|
-
endDate = this.fromString(endDate);
|
|
150
|
-
return moment(endDate).diff(moment(startDate), 'days');
|
|
151
|
-
}
|
|
538
|
+
public static toUnixTimestamp(date: Date): number {
|
|
539
|
+
return Math.floor(date.getTime() / 1000);
|
|
540
|
+
}
|
|
152
541
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
): number {
|
|
157
|
-
return this.getDaysBetweenTwoDates(startDate, endDate) + 1;
|
|
158
|
-
}
|
|
542
|
+
public static secondsToFormattedFriendlyTimeString(seconds: number): string {
|
|
543
|
+
const startDate: moment.Moment = moment.utc(0);
|
|
544
|
+
const date: moment.Moment = moment.utc(seconds * 1000);
|
|
159
545
|
|
|
160
|
-
|
|
161
|
-
startDate: Date,
|
|
162
|
-
endDate: Date
|
|
163
|
-
): number {
|
|
164
|
-
startDate = this.fromString(startDate);
|
|
165
|
-
endDate = this.fromString(endDate);
|
|
166
|
-
return moment(endDate).diff(moment(startDate), 'hours');
|
|
167
|
-
}
|
|
546
|
+
// get the difference between the two dates as friendly formatted string
|
|
168
547
|
|
|
169
|
-
|
|
170
|
-
startDate: Date,
|
|
171
|
-
endDate: Date
|
|
172
|
-
): number {
|
|
173
|
-
return this.getHoursBetweenTwoDates(startDate, endDate) + 1;
|
|
174
|
-
}
|
|
548
|
+
let formattedString: string = "";
|
|
175
549
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
endDate: Date
|
|
179
|
-
): number {
|
|
180
|
-
startDate = this.fromString(startDate);
|
|
181
|
-
endDate = this.fromString(endDate);
|
|
182
|
-
return moment(endDate).diff(moment(startDate), 'minutes');
|
|
183
|
-
}
|
|
550
|
+
// years between two dates
|
|
551
|
+
const years: number = date.diff(startDate, "years");
|
|
184
552
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
}
|
|
553
|
+
if (years > 0) {
|
|
554
|
+
let text: string = "years ";
|
|
555
|
+
if (years === 1) {
|
|
556
|
+
text = "year ";
|
|
557
|
+
}
|
|
191
558
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
endDate: Date
|
|
195
|
-
): number {
|
|
196
|
-
startDate = this.fromString(startDate);
|
|
197
|
-
endDate = this.fromString(endDate);
|
|
198
|
-
return moment(endDate).diff(moment(startDate), 'seconds');
|
|
199
|
-
}
|
|
559
|
+
// add years to start date
|
|
560
|
+
startDate.add(years, "years");
|
|
200
561
|
|
|
201
|
-
|
|
202
|
-
startDate: Date,
|
|
203
|
-
endDate: Date
|
|
204
|
-
): number {
|
|
205
|
-
return this.getSecondsBetweenTwoDates(startDate, endDate) + 1;
|
|
562
|
+
formattedString += years + " " + text;
|
|
206
563
|
}
|
|
207
564
|
|
|
208
|
-
|
|
209
|
-
startDate: Date,
|
|
210
|
-
endDate: Date
|
|
211
|
-
): number {
|
|
212
|
-
startDate = this.fromString(startDate);
|
|
213
|
-
endDate = this.fromString(endDate);
|
|
214
|
-
return moment(endDate).diff(moment(startDate), 'weeks');
|
|
215
|
-
}
|
|
565
|
+
const months: number = date.diff(startDate, "months");
|
|
216
566
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
endDate: Date
|
|
220
|
-
): number {
|
|
221
|
-
return this.getWeeksBetweenTwoDates(startDate, endDate) + 1;
|
|
222
|
-
}
|
|
567
|
+
if (months > 0) {
|
|
568
|
+
let text: string = "months ";
|
|
223
569
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
): number {
|
|
228
|
-
startDate = this.fromString(startDate);
|
|
229
|
-
endDate = this.fromString(endDate);
|
|
230
|
-
return moment(endDate).diff(moment(startDate), 'months');
|
|
231
|
-
}
|
|
570
|
+
if (months === 1) {
|
|
571
|
+
text = "month ";
|
|
572
|
+
}
|
|
232
573
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
endDate: Date
|
|
236
|
-
): number {
|
|
237
|
-
return this.getMonthsBetweenTwoDates(startDate, endDate) + 1;
|
|
238
|
-
}
|
|
574
|
+
// add months to start date
|
|
575
|
+
startDate.add(months, "months");
|
|
239
576
|
|
|
240
|
-
|
|
241
|
-
startDate: Date,
|
|
242
|
-
endDate: Date
|
|
243
|
-
): number {
|
|
244
|
-
startDate = this.fromString(startDate);
|
|
245
|
-
endDate = this.fromString(endDate);
|
|
246
|
-
return moment(endDate).diff(moment(startDate), 'years');
|
|
577
|
+
formattedString += months + " " + text;
|
|
247
578
|
}
|
|
248
579
|
|
|
249
|
-
|
|
250
|
-
startDate: Date,
|
|
251
|
-
endDate: Date
|
|
252
|
-
): number {
|
|
253
|
-
return this.getYearsBetweenTwoDates(startDate, endDate) + 1;
|
|
254
|
-
}
|
|
580
|
+
const days: number = date.diff(startDate, "days");
|
|
255
581
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
return '';
|
|
259
|
-
}
|
|
582
|
+
if (days > 0) {
|
|
583
|
+
let text: string = "days ";
|
|
260
584
|
|
|
261
|
-
|
|
585
|
+
if (days === 1) {
|
|
586
|
+
text = "day ";
|
|
587
|
+
}
|
|
262
588
|
|
|
263
|
-
|
|
264
|
-
|
|
589
|
+
// add days to start date
|
|
590
|
+
startDate.add(days, "days");
|
|
265
591
|
|
|
266
|
-
|
|
267
|
-
return moment();
|
|
592
|
+
formattedString += days + " " + text;
|
|
268
593
|
}
|
|
269
594
|
|
|
270
|
-
|
|
271
|
-
keepTimeFor = this.fromString(keepTimeFor);
|
|
272
|
-
moveDayTo = this.fromString(moveDayTo);
|
|
273
|
-
return moment(moveDayTo)
|
|
274
|
-
.set({
|
|
275
|
-
hour: keepTimeFor.getHours(),
|
|
276
|
-
minute: keepTimeFor.getMinutes(),
|
|
277
|
-
second: keepTimeFor.getSeconds(),
|
|
278
|
-
millisecond: keepTimeFor.getMilliseconds(),
|
|
279
|
-
})
|
|
280
|
-
.toDate();
|
|
281
|
-
}
|
|
595
|
+
const hours: number = date.diff(startDate, "hours");
|
|
282
596
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
}
|
|
597
|
+
if (hours > 0) {
|
|
598
|
+
let text: string = "hours ";
|
|
286
599
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
600
|
+
if (hours === 1) {
|
|
601
|
+
text = "hour ";
|
|
602
|
+
}
|
|
290
603
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
}
|
|
604
|
+
// add hours to start date
|
|
605
|
+
startDate.add(hours, "hours");
|
|
294
606
|
|
|
295
|
-
|
|
296
|
-
date = this.fromString(date);
|
|
297
|
-
const dif: number = date.getTime() - this.getCurrentDate().getTime();
|
|
298
|
-
const Seconds_from_T1_to_T2: number = dif / 1000;
|
|
299
|
-
return Math.abs(Seconds_from_T1_to_T2);
|
|
607
|
+
formattedString += hours + " " + text;
|
|
300
608
|
}
|
|
301
609
|
|
|
302
|
-
|
|
303
|
-
if (!(minutes instanceof PositiveNumber)) {
|
|
304
|
-
minutes = new PositiveNumber(minutes);
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
return this.getCurrentMomentDate()
|
|
308
|
-
.add(-1 * minutes.toNumber(), 'minutes')
|
|
309
|
-
.toDate();
|
|
310
|
-
}
|
|
610
|
+
const minutes: number = date.diff(startDate, "minutes");
|
|
311
611
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
return this.addRemoveMinutes(date, date.getTimezoneOffset());
|
|
315
|
-
}
|
|
612
|
+
if (minutes > 0) {
|
|
613
|
+
let text: string = "mins ";
|
|
316
614
|
|
|
317
|
-
|
|
318
|
-
|
|
615
|
+
if (minutes === 1) {
|
|
616
|
+
text = "min ";
|
|
617
|
+
}
|
|
319
618
|
|
|
320
|
-
|
|
619
|
+
// add minutes to start date
|
|
620
|
+
startDate.add(minutes, "minutes");
|
|
321
621
|
|
|
322
|
-
|
|
323
|
-
return (i < 10 ? '0' : '') + i;
|
|
324
|
-
},
|
|
325
|
-
YYYY: number = date.getFullYear(),
|
|
326
|
-
MM: string = ten(date.getMonth() + 1),
|
|
327
|
-
DD: string = ten(date.getDate()),
|
|
328
|
-
HH: string = ten(date.getHours()),
|
|
329
|
-
II: string = ten(date.getMinutes()),
|
|
330
|
-
SS: string = ten(date.getSeconds());
|
|
331
|
-
|
|
332
|
-
return YYYY + '-' + MM + '-' + DD + 'T' + HH + ':' + II + ':' + SS;
|
|
622
|
+
formattedString += minutes + " " + text;
|
|
333
623
|
}
|
|
334
624
|
|
|
335
|
-
|
|
336
|
-
if (json['_type'] === ObjectType.DateTime) {
|
|
337
|
-
return OneUptimeDate.fromString(json['value'] as string);
|
|
338
|
-
}
|
|
625
|
+
const secondsLeft: number = date.diff(startDate, "seconds");
|
|
339
626
|
|
|
340
|
-
|
|
341
|
-
|
|
627
|
+
if (secondsLeft > 0) {
|
|
628
|
+
let text: string = "secs ";
|
|
342
629
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
value: OneUptimeDate.toString(date),
|
|
347
|
-
};
|
|
348
|
-
}
|
|
630
|
+
if (secondsLeft === 1) {
|
|
631
|
+
text = "sec ";
|
|
632
|
+
}
|
|
349
633
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
date2 = this.fromString(date2);
|
|
353
|
-
return moment(date1).isSame(date2, 'day');
|
|
354
|
-
}
|
|
634
|
+
// add seconds to start date
|
|
635
|
+
startDate.add(secondsLeft, "seconds");
|
|
355
636
|
|
|
356
|
-
|
|
357
|
-
date1 = this.fromString(date1);
|
|
358
|
-
date2 = this.fromString(date2);
|
|
359
|
-
return moment(date1).isSame(date2, 'month');
|
|
637
|
+
formattedString += secondsLeft + " " + text;
|
|
360
638
|
}
|
|
361
639
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
date2 = this.fromString(date2);
|
|
365
|
-
return moment(date1).isSame(date2, 'year');
|
|
366
|
-
}
|
|
640
|
+
return formattedString.trim();
|
|
641
|
+
}
|
|
367
642
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
643
|
+
public static getGreaterDate(a: Date, b: Date): Date {
|
|
644
|
+
a = this.fromString(a);
|
|
645
|
+
b = this.fromString(b);
|
|
646
|
+
if (this.isAfter(a, b)) {
|
|
647
|
+
return a;
|
|
372
648
|
}
|
|
373
649
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
date2 = this.fromString(date2);
|
|
377
|
-
return moment(date1).isSame(date2, 'minute');
|
|
378
|
-
}
|
|
650
|
+
return b;
|
|
651
|
+
}
|
|
379
652
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
653
|
+
public static getLesserDate(a: Date, b: Date): Date {
|
|
654
|
+
a = this.fromString(a);
|
|
655
|
+
b = this.fromString(b);
|
|
656
|
+
if (this.isBefore(a, b)) {
|
|
657
|
+
return a;
|
|
384
658
|
}
|
|
385
659
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
date2 = this.fromString(date2);
|
|
389
|
-
return moment(date1).isSame(date2, 'week');
|
|
390
|
-
}
|
|
660
|
+
return b;
|
|
661
|
+
}
|
|
391
662
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
663
|
+
public static getSecondsBetweenDates(start: Date, end: Date): number {
|
|
664
|
+
start = this.fromString(start);
|
|
665
|
+
end = this.fromString(end);
|
|
666
|
+
const duration: moment.Duration = moment.duration(
|
|
667
|
+
moment(end).diff(moment(start)),
|
|
668
|
+
);
|
|
669
|
+
return duration.asSeconds();
|
|
670
|
+
}
|
|
396
671
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
672
|
+
public static getSomeDaysAfterDate(
|
|
673
|
+
date: Date,
|
|
674
|
+
days: PositiveNumber | number,
|
|
675
|
+
): Date {
|
|
676
|
+
if (!(days instanceof PositiveNumber)) {
|
|
677
|
+
days = new PositiveNumber(days);
|
|
400
678
|
}
|
|
401
679
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
return moment(date).add(hours, 'hours').toDate();
|
|
405
|
-
}
|
|
680
|
+
return moment(date).add(days.toNumber(), "days").toDate();
|
|
681
|
+
}
|
|
406
682
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
683
|
+
public static getSomeSecondsAfter(seconds: PositiveNumber | number): Date {
|
|
684
|
+
if (!(seconds instanceof PositiveNumber)) {
|
|
685
|
+
seconds = new PositiveNumber(seconds);
|
|
410
686
|
}
|
|
411
687
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
688
|
+
return this.getCurrentMomentDate()
|
|
689
|
+
.add(seconds.toNumber(), "seconds")
|
|
690
|
+
.toDate();
|
|
691
|
+
}
|
|
416
692
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
693
|
+
public static getNumberOfDaysBetweenDates(
|
|
694
|
+
startDate: Date,
|
|
695
|
+
endDate: Date,
|
|
696
|
+
): number {
|
|
697
|
+
const a: moment.Moment = moment(startDate);
|
|
698
|
+
const b: moment.Moment = moment(endDate);
|
|
699
|
+
return b.diff(a, "days");
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
public static getNumberOfMinutesBetweenDates(
|
|
703
|
+
startDate: Date,
|
|
704
|
+
endDate: Date,
|
|
705
|
+
): number {
|
|
706
|
+
const a: moment.Moment = moment(startDate);
|
|
707
|
+
const b: moment.Moment = moment(endDate);
|
|
708
|
+
return b.diff(a, "minutes");
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
public static getNumberOfDaysBetweenDatesInclusive(
|
|
712
|
+
startDate: Date,
|
|
713
|
+
endDate: Date,
|
|
714
|
+
): number {
|
|
715
|
+
return this.getNumberOfDaysBetweenDates(startDate, endDate) + 1;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
public static momentToDate(moment: moment.Moment): Date {
|
|
719
|
+
return moment.toDate();
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
public static getCurrentYear(): number {
|
|
723
|
+
return moment().year();
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
public static getStartOfDay(date: Date): Date {
|
|
727
|
+
date = this.fromString(date);
|
|
728
|
+
return moment(date).startOf("day").toDate();
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
public static getEndOfDay(date: Date): Date {
|
|
732
|
+
date = this.fromString(date);
|
|
733
|
+
return moment(date).endOf("day").toDate();
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
public static isBetween(date: Date, startDate: Date, endDate: Date): boolean {
|
|
737
|
+
date = this.fromString(date);
|
|
738
|
+
startDate = this.fromString(startDate);
|
|
739
|
+
endDate = this.fromString(endDate);
|
|
740
|
+
return moment(date).isBetween(startDate, endDate);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
public static isAfter(date: Date, startDate: Date): boolean {
|
|
744
|
+
date = this.fromString(date);
|
|
745
|
+
startDate = this.fromString(startDate);
|
|
746
|
+
return moment(date).isAfter(startDate);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
public static isOnOrAfter(date: Date, startDate: Date): boolean {
|
|
750
|
+
date = this.fromString(date);
|
|
751
|
+
startDate = this.fromString(startDate);
|
|
752
|
+
return moment(date).isSameOrAfter(startDate);
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
public static getDayOfWeek(date: Date): DayOfWeek {
|
|
756
|
+
const dayOfWeek: number = this.geyDayOfWeekAsNumber(date);
|
|
757
|
+
|
|
758
|
+
if (dayOfWeek === 1) {
|
|
759
|
+
return DayOfWeek.Monday;
|
|
760
|
+
} else if (dayOfWeek === 2) {
|
|
761
|
+
return DayOfWeek.Tuesday;
|
|
762
|
+
} else if (dayOfWeek === 3) {
|
|
763
|
+
return DayOfWeek.Wednesday;
|
|
764
|
+
} else if (dayOfWeek === 4) {
|
|
765
|
+
return DayOfWeek.Thursday;
|
|
766
|
+
} else if (dayOfWeek === 5) {
|
|
767
|
+
return DayOfWeek.Friday;
|
|
768
|
+
} else if (dayOfWeek === 6) {
|
|
769
|
+
return DayOfWeek.Saturday;
|
|
770
|
+
} else if (dayOfWeek === 7) {
|
|
771
|
+
return DayOfWeek.Sunday;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
throw new BadDataException("Invalid day of week");
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
public static geyDayOfWeekAsNumber(date: Date): number {
|
|
778
|
+
date = this.fromString(date);
|
|
779
|
+
return moment(date).isoWeekday();
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
public static isOnOrBefore(date: Date, endDate: Date): boolean {
|
|
783
|
+
date = this.fromString(date);
|
|
784
|
+
endDate = this.fromString(endDate);
|
|
785
|
+
return moment(date).isSameOrBefore(endDate);
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
public static isEqualBySeconds(date: Date, startDate: Date): boolean {
|
|
789
|
+
date = this.fromString(date);
|
|
790
|
+
startDate = this.fromString(startDate);
|
|
791
|
+
return moment(date).isSame(startDate, "seconds");
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
public static hasExpired(expirationDate: Date): boolean {
|
|
795
|
+
expirationDate = this.fromString(expirationDate);
|
|
796
|
+
return !moment(this.getCurrentDate()).isBefore(expirationDate);
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
public static isBefore(date: Date, endDate: Date): boolean {
|
|
800
|
+
date = this.fromString(date);
|
|
801
|
+
endDate = this.fromString(endDate);
|
|
802
|
+
return moment(date).isBefore(endDate);
|
|
803
|
+
}
|
|
421
804
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
805
|
+
public static getCurrentDateAsFormattedString(): string {
|
|
806
|
+
return this.getDateAsFormattedString(new Date());
|
|
807
|
+
}
|
|
426
808
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
}
|
|
809
|
+
public static getDateAsFormattedString(
|
|
810
|
+
date: string | Date,
|
|
811
|
+
onlyShowDate?: boolean,
|
|
812
|
+
): string {
|
|
813
|
+
date = this.fromString(date);
|
|
433
814
|
|
|
434
|
-
|
|
435
|
-
return this.getSecondsInDays(days) * 1000;
|
|
436
|
-
}
|
|
815
|
+
let formatstring: string = "MMM DD YYYY, HH:mm";
|
|
437
816
|
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
hours = new PositiveNumber(hours);
|
|
441
|
-
}
|
|
442
|
-
return this.getCurrentMomentDate()
|
|
443
|
-
.add(-1 * hours.toNumber(), 'hours')
|
|
444
|
-
.toDate();
|
|
817
|
+
if (onlyShowDate) {
|
|
818
|
+
formatstring = "MMM DD, YYYY";
|
|
445
819
|
}
|
|
446
820
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
.toDate();
|
|
454
|
-
}
|
|
821
|
+
return (
|
|
822
|
+
moment(date).format(formatstring) +
|
|
823
|
+
" " +
|
|
824
|
+
(onlyShowDate ? "" : this.getCurrentTimezoneString())
|
|
825
|
+
);
|
|
826
|
+
}
|
|
455
827
|
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
date = this.fromString(date);
|
|
461
|
-
if (!(days instanceof PositiveNumber)) {
|
|
462
|
-
days = new PositiveNumber(days);
|
|
463
|
-
}
|
|
464
|
-
return moment(date)
|
|
465
|
-
.add(-1 * days.toNumber(), 'days')
|
|
466
|
-
.toDate();
|
|
467
|
-
}
|
|
828
|
+
public static getDifferenceInMinutes(date: Date, date2: Date): number {
|
|
829
|
+
date = this.fromString(date);
|
|
830
|
+
date2 = this.fromString(date2);
|
|
831
|
+
const minutes: number = moment(date).diff(moment(date2), "minutes");
|
|
468
832
|
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
days: PositiveNumber | number
|
|
472
|
-
): Date {
|
|
473
|
-
date = this.fromString(date);
|
|
474
|
-
if (!(days instanceof PositiveNumber)) {
|
|
475
|
-
days = new PositiveNumber(days);
|
|
476
|
-
}
|
|
477
|
-
return moment(date).add(Number(days.toNumber()), 'days').toDate();
|
|
833
|
+
if (minutes < 0) {
|
|
834
|
+
return minutes * -1;
|
|
478
835
|
}
|
|
479
836
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
days: PositiveNumber | number
|
|
483
|
-
): Date {
|
|
484
|
-
date = this.fromString(date);
|
|
485
|
-
if (!(days instanceof PositiveNumber)) {
|
|
486
|
-
days = new PositiveNumber(days);
|
|
487
|
-
}
|
|
488
|
-
return moment(date)
|
|
489
|
-
.add(-1 * Number(days.toNumber()), 'days')
|
|
490
|
-
.toDate();
|
|
491
|
-
}
|
|
837
|
+
return minutes;
|
|
838
|
+
}
|
|
492
839
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
seconds = new PositiveNumber(seconds);
|
|
496
|
-
}
|
|
840
|
+
public static convertMinutesToDaysHoursAndMinutes(minutes: number): string {
|
|
841
|
+
// should output 2 days, 3 hours and 4 minutes. If the days are 0, it should not show the days. If the hours are 0, it should not show the hours. If the minutes are 0, it should not show the minutes.
|
|
497
842
|
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
}
|
|
843
|
+
const days: number = Math.floor(minutes / (24 * 60));
|
|
844
|
+
const hours: number = Math.floor((minutes % (24 * 60)) / 60);
|
|
845
|
+
const mins: number = minutes % 60;
|
|
502
846
|
|
|
503
|
-
|
|
504
|
-
return this.getSomeMinutesAfter(new PositiveNumber(1));
|
|
505
|
-
}
|
|
847
|
+
let formattedString: string = "";
|
|
506
848
|
|
|
507
|
-
|
|
508
|
-
|
|
849
|
+
if (days > 0) {
|
|
850
|
+
formattedString += days + " days";
|
|
509
851
|
}
|
|
510
852
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
853
|
+
if (hours > 0) {
|
|
854
|
+
if (formattedString.length > 0) {
|
|
855
|
+
formattedString += ", ";
|
|
856
|
+
}
|
|
515
857
|
|
|
516
|
-
|
|
517
|
-
.add(minutes.toNumber(), 'minutes')
|
|
518
|
-
.toDate();
|
|
858
|
+
formattedString += hours + " hours";
|
|
519
859
|
}
|
|
520
860
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
return this.getCurrentMomentDate()
|
|
526
|
-
.add(hours.toNumber(), 'hours')
|
|
527
|
-
.toDate();
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
public static getSomeDaysAfter(days: PositiveNumber | number): Date {
|
|
531
|
-
if (!(days instanceof PositiveNumber)) {
|
|
532
|
-
days = new PositiveNumber(days);
|
|
533
|
-
}
|
|
861
|
+
if (mins >= 0) {
|
|
862
|
+
if (formattedString.length > 0) {
|
|
863
|
+
formattedString += ", ";
|
|
864
|
+
}
|
|
534
865
|
|
|
535
|
-
|
|
536
|
-
.add(days.toNumber(), 'days')
|
|
537
|
-
.toDate();
|
|
866
|
+
formattedString += mins + " minutes";
|
|
538
867
|
}
|
|
539
868
|
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
public static toUnixTimestamp(date: Date): number {
|
|
545
|
-
return Math.floor(date.getTime() / 1000);
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
public static secondsToFormattedFriendlyTimeString(
|
|
549
|
-
seconds: number
|
|
550
|
-
): string {
|
|
551
|
-
const startDate: moment.Moment = moment.utc(0);
|
|
552
|
-
const date: moment.Moment = moment.utc(seconds * 1000);
|
|
553
|
-
|
|
554
|
-
// get the difference between the two dates as friendly formatted string
|
|
555
|
-
|
|
556
|
-
let formattedString: string = '';
|
|
557
|
-
|
|
558
|
-
// years between two dates
|
|
559
|
-
const years: number = date.diff(startDate, 'years');
|
|
560
|
-
|
|
561
|
-
if (years > 0) {
|
|
562
|
-
let text: string = 'years ';
|
|
563
|
-
if (years === 1) {
|
|
564
|
-
text = 'year ';
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
// add years to start date
|
|
568
|
-
startDate.add(years, 'years');
|
|
569
|
-
|
|
570
|
-
formattedString += years + ' ' + text;
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
const months: number = date.diff(startDate, 'months');
|
|
574
|
-
|
|
575
|
-
if (months > 0) {
|
|
576
|
-
let text: string = 'months ';
|
|
577
|
-
|
|
578
|
-
if (months === 1) {
|
|
579
|
-
text = 'month ';
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
// add months to start date
|
|
583
|
-
startDate.add(months, 'months');
|
|
584
|
-
|
|
585
|
-
formattedString += months + ' ' + text;
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
const days: number = date.diff(startDate, 'days');
|
|
869
|
+
return formattedString;
|
|
870
|
+
}
|
|
589
871
|
|
|
590
|
-
|
|
591
|
-
|
|
872
|
+
public static getGmtOffsetByTimezone(timezone: Timezone): number {
|
|
873
|
+
return moment.tz(timezone).utcOffset();
|
|
874
|
+
}
|
|
592
875
|
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
876
|
+
public static getGmtOffsetFriendlyStringByTimezone(
|
|
877
|
+
timezone: Timezone,
|
|
878
|
+
): string {
|
|
879
|
+
const offset: number = this.getGmtOffsetByTimezone(timezone);
|
|
880
|
+
return this.getGmtOffsetFriendlyString(offset) + " " + timezone;
|
|
881
|
+
}
|
|
596
882
|
|
|
597
|
-
|
|
598
|
-
|
|
883
|
+
public static getGmtOffsetFriendlyString(offset: number): string {
|
|
884
|
+
const hours: number = Math.abs(offset) / 60;
|
|
885
|
+
const minutes: number = Math.abs(offset) % 60;
|
|
599
886
|
|
|
600
|
-
|
|
601
|
-
}
|
|
887
|
+
let formattedString: string = "GMT";
|
|
602
888
|
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
if (hours === 1) {
|
|
609
|
-
text = 'hour ';
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
// add hours to start date
|
|
613
|
-
startDate.add(hours, 'hours');
|
|
614
|
-
|
|
615
|
-
formattedString += hours + ' ' + text;
|
|
616
|
-
}
|
|
617
|
-
|
|
618
|
-
const minutes: number = date.diff(startDate, 'minutes');
|
|
619
|
-
|
|
620
|
-
if (minutes > 0) {
|
|
621
|
-
let text: string = 'mins ';
|
|
622
|
-
|
|
623
|
-
if (minutes === 1) {
|
|
624
|
-
text = 'min ';
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
// add minutes to start date
|
|
628
|
-
startDate.add(minutes, 'minutes');
|
|
629
|
-
|
|
630
|
-
formattedString += minutes + ' ' + text;
|
|
631
|
-
}
|
|
632
|
-
|
|
633
|
-
const secondsLeft: number = date.diff(startDate, 'seconds');
|
|
634
|
-
|
|
635
|
-
if (secondsLeft > 0) {
|
|
636
|
-
let text: string = 'secs ';
|
|
637
|
-
|
|
638
|
-
if (secondsLeft === 1) {
|
|
639
|
-
text = 'sec ';
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
// add seconds to start date
|
|
643
|
-
startDate.add(secondsLeft, 'seconds');
|
|
644
|
-
|
|
645
|
-
formattedString += secondsLeft + ' ' + text;
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
return formattedString.trim();
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
public static getGreaterDate(a: Date, b: Date): Date {
|
|
652
|
-
a = this.fromString(a);
|
|
653
|
-
b = this.fromString(b);
|
|
654
|
-
if (this.isAfter(a, b)) {
|
|
655
|
-
return a;
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
return b;
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
public static getLesserDate(a: Date, b: Date): Date {
|
|
662
|
-
a = this.fromString(a);
|
|
663
|
-
b = this.fromString(b);
|
|
664
|
-
if (this.isBefore(a, b)) {
|
|
665
|
-
return a;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
return b;
|
|
669
|
-
}
|
|
670
|
-
|
|
671
|
-
public static getSecondsBetweenDates(start: Date, end: Date): number {
|
|
672
|
-
start = this.fromString(start);
|
|
673
|
-
end = this.fromString(end);
|
|
674
|
-
const duration: moment.Duration = moment.duration(
|
|
675
|
-
moment(end).diff(moment(start))
|
|
676
|
-
);
|
|
677
|
-
return duration.asSeconds();
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
public static getSomeDaysAfterDate(
|
|
681
|
-
date: Date,
|
|
682
|
-
days: PositiveNumber | number
|
|
683
|
-
): Date {
|
|
684
|
-
if (!(days instanceof PositiveNumber)) {
|
|
685
|
-
days = new PositiveNumber(days);
|
|
686
|
-
}
|
|
687
|
-
|
|
688
|
-
return moment(date).add(days.toNumber(), 'days').toDate();
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
public static getSomeSecondsAfter(seconds: PositiveNumber | number): Date {
|
|
692
|
-
if (!(seconds instanceof PositiveNumber)) {
|
|
693
|
-
seconds = new PositiveNumber(seconds);
|
|
694
|
-
}
|
|
695
|
-
|
|
696
|
-
return this.getCurrentMomentDate()
|
|
697
|
-
.add(seconds.toNumber(), 'seconds')
|
|
698
|
-
.toDate();
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
public static getNumberOfDaysBetweenDates(
|
|
702
|
-
startDate: Date,
|
|
703
|
-
endDate: Date
|
|
704
|
-
): number {
|
|
705
|
-
const a: moment.Moment = moment(startDate);
|
|
706
|
-
const b: moment.Moment = moment(endDate);
|
|
707
|
-
return b.diff(a, 'days');
|
|
708
|
-
}
|
|
709
|
-
|
|
710
|
-
public static getNumberOfMinutesBetweenDates(
|
|
711
|
-
startDate: Date,
|
|
712
|
-
endDate: Date
|
|
713
|
-
): number {
|
|
714
|
-
const a: moment.Moment = moment(startDate);
|
|
715
|
-
const b: moment.Moment = moment(endDate);
|
|
716
|
-
return b.diff(a, 'minutes');
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
public static getNumberOfDaysBetweenDatesInclusive(
|
|
720
|
-
startDate: Date,
|
|
721
|
-
endDate: Date
|
|
722
|
-
): number {
|
|
723
|
-
return this.getNumberOfDaysBetweenDates(startDate, endDate) + 1;
|
|
724
|
-
}
|
|
725
|
-
|
|
726
|
-
public static momentToDate(moment: moment.Moment): Date {
|
|
727
|
-
return moment.toDate();
|
|
889
|
+
if (offset < 0) {
|
|
890
|
+
formattedString += "-";
|
|
891
|
+
} else {
|
|
892
|
+
formattedString += "+";
|
|
728
893
|
}
|
|
729
894
|
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
}
|
|
895
|
+
// remove decimals from hours
|
|
896
|
+
formattedString += Math.floor(hours);
|
|
733
897
|
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
return moment(date).startOf('day').toDate();
|
|
898
|
+
if (minutes > 0) {
|
|
899
|
+
formattedString += ":" + minutes;
|
|
737
900
|
}
|
|
738
901
|
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
return moment(date).endOf('day').toDate();
|
|
742
|
-
}
|
|
902
|
+
return formattedString;
|
|
903
|
+
}
|
|
743
904
|
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
return moment(date).isBetween(startDate, endDate);
|
|
753
|
-
}
|
|
905
|
+
public static getDateAsFormattedArrayInMultipleTimezones(data: {
|
|
906
|
+
date: string | Date;
|
|
907
|
+
onlyShowDate?: boolean | undefined;
|
|
908
|
+
timezones?: Array<Timezone> | undefined;
|
|
909
|
+
}): Array<string> {
|
|
910
|
+
let date: string | Date = data.date;
|
|
911
|
+
const onlyShowDate: boolean | undefined = data.onlyShowDate;
|
|
912
|
+
let timezones: Array<Timezone> | undefined = data.timezones;
|
|
754
913
|
|
|
755
|
-
|
|
756
|
-
date = this.fromString(date);
|
|
757
|
-
startDate = this.fromString(startDate);
|
|
758
|
-
return moment(date).isAfter(startDate);
|
|
759
|
-
}
|
|
914
|
+
date = this.fromString(date);
|
|
760
915
|
|
|
761
|
-
|
|
762
|
-
date = this.fromString(date);
|
|
763
|
-
startDate = this.fromString(startDate);
|
|
764
|
-
return moment(date).isSameOrAfter(startDate);
|
|
765
|
-
}
|
|
916
|
+
let formatstring: string = "MMM DD YYYY, HH:mm";
|
|
766
917
|
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
if (dayOfWeek === 1) {
|
|
771
|
-
return DayOfWeek.Monday;
|
|
772
|
-
} else if (dayOfWeek === 2) {
|
|
773
|
-
return DayOfWeek.Tuesday;
|
|
774
|
-
} else if (dayOfWeek === 3) {
|
|
775
|
-
return DayOfWeek.Wednesday;
|
|
776
|
-
} else if (dayOfWeek === 4) {
|
|
777
|
-
return DayOfWeek.Thursday;
|
|
778
|
-
} else if (dayOfWeek === 5) {
|
|
779
|
-
return DayOfWeek.Friday;
|
|
780
|
-
} else if (dayOfWeek === 6) {
|
|
781
|
-
return DayOfWeek.Saturday;
|
|
782
|
-
} else if (dayOfWeek === 7) {
|
|
783
|
-
return DayOfWeek.Sunday;
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
throw new BadDataException('Invalid day of week');
|
|
918
|
+
if (onlyShowDate) {
|
|
919
|
+
formatstring = "MMM DD, YYYY";
|
|
787
920
|
}
|
|
788
921
|
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
return moment(date).isoWeekday();
|
|
792
|
-
}
|
|
922
|
+
// convert this date into GMT, EST, PST, IST, ACT with moment
|
|
923
|
+
const timezoneDates: Array<string> = [];
|
|
793
924
|
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
925
|
+
if (!timezones || timezones.length === 0) {
|
|
926
|
+
timezones = [
|
|
927
|
+
Timezone.UTC,
|
|
928
|
+
Timezone.EST,
|
|
929
|
+
Timezone.AmericaLos_Angeles,
|
|
930
|
+
Timezone.AsiaKolkata,
|
|
931
|
+
Timezone.AustraliaSydney,
|
|
932
|
+
]; // default timezones.
|
|
798
933
|
}
|
|
799
934
|
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
935
|
+
for (let i: number = 0; i < timezones.length; i++) {
|
|
936
|
+
timezoneDates.push(
|
|
937
|
+
moment(date)
|
|
938
|
+
.tz(timezones[i] as string)
|
|
939
|
+
.format(formatstring) +
|
|
940
|
+
" " +
|
|
941
|
+
(onlyShowDate
|
|
942
|
+
? ""
|
|
943
|
+
: this.getZoneAbbrByTimezone(timezones[i] as Timezone)),
|
|
944
|
+
);
|
|
804
945
|
}
|
|
805
946
|
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
return !moment(this.getCurrentDate()).isBefore(expirationDate);
|
|
809
|
-
}
|
|
947
|
+
return timezoneDates;
|
|
948
|
+
}
|
|
810
949
|
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
950
|
+
public static getDateAsFormattedHTMLInMultipleTimezones(data: {
|
|
951
|
+
date: string | Date;
|
|
952
|
+
onlyShowDate?: boolean;
|
|
953
|
+
timezones?: Array<Timezone> | undefined; // if this is skipped, then it will show the default timezones in the order of UTC, EST, PST, IST, ACT
|
|
954
|
+
}): string {
|
|
955
|
+
const date: string | Date = data.date;
|
|
956
|
+
const onlyShowDate: boolean | undefined = data.onlyShowDate;
|
|
957
|
+
const timezones: Array<Timezone> | undefined = data.timezones;
|
|
816
958
|
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
959
|
+
return this.getDateAsFormattedArrayInMultipleTimezones({
|
|
960
|
+
date,
|
|
961
|
+
onlyShowDate,
|
|
962
|
+
timezones,
|
|
963
|
+
}).join("<br/>");
|
|
964
|
+
}
|
|
820
965
|
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
966
|
+
public static getDateAsFormattedStringInMultipleTimezones(data: {
|
|
967
|
+
date: string | Date;
|
|
968
|
+
onlyShowDate?: boolean | undefined;
|
|
969
|
+
timezones?: Array<Timezone> | undefined; // if this is skipped, then it will show the default timezones in the order of UTC, EST, PST, IST, ACT
|
|
970
|
+
}): string {
|
|
971
|
+
const date: string | Date = data.date;
|
|
972
|
+
const onlyShowDate: boolean | undefined = data.onlyShowDate;
|
|
973
|
+
const timezones: Array<Timezone> | undefined = data.timezones;
|
|
826
974
|
|
|
827
|
-
|
|
975
|
+
return this.getDateAsFormattedArrayInMultipleTimezones({
|
|
976
|
+
date,
|
|
977
|
+
onlyShowDate,
|
|
978
|
+
timezones,
|
|
979
|
+
}).join("\n");
|
|
980
|
+
}
|
|
828
981
|
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
982
|
+
public static getDateAsLocalFormattedString(
|
|
983
|
+
date: string | Date,
|
|
984
|
+
onlyShowDate?: boolean,
|
|
985
|
+
): string {
|
|
986
|
+
date = this.fromString(date);
|
|
987
|
+
|
|
988
|
+
let formatstring: string = "MMM DD YYYY, HH:mm";
|
|
989
|
+
|
|
990
|
+
if (onlyShowDate) {
|
|
991
|
+
formatstring = "MMM DD, YYYY";
|
|
992
|
+
}
|
|
832
993
|
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
994
|
+
const momentDate: moment.Moment = moment(date).local();
|
|
995
|
+
|
|
996
|
+
return (
|
|
997
|
+
momentDate.format(formatstring) +
|
|
998
|
+
" " +
|
|
999
|
+
(onlyShowDate ? "" : this.getCurrentTimezoneString())
|
|
1000
|
+
).trim();
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
public static getDayInSeconds(days?: number | undefined): number {
|
|
1004
|
+
if (!days) {
|
|
1005
|
+
days = 1;
|
|
1006
|
+
}
|
|
1007
|
+
return 24 * 60 * 60 * days;
|
|
1008
|
+
}
|
|
839
1009
|
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
const minutes: number = moment(date).diff(moment(date2), 'minutes');
|
|
1010
|
+
public static getCurrentTimezoneString(): string {
|
|
1011
|
+
return this.getZoneAbbrByTimezone(this.getCurrentTimezone());
|
|
1012
|
+
}
|
|
844
1013
|
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
1014
|
+
public static getZoneAbbrByTimezone(timezone: Timezone): string {
|
|
1015
|
+
let zoneAbbr: string = moment.tz(timezone).zoneAbbr();
|
|
1016
|
+
|
|
1017
|
+
if (zoneAbbr.startsWith("+") || zoneAbbr.startsWith("-")) {
|
|
1018
|
+
zoneAbbr = "GMT" + zoneAbbr;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
return zoneAbbr;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
public static getCurrentTimezone(): Timezone {
|
|
1025
|
+
return moment.tz.guess() as Timezone;
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
public static getDateString(date: Date): string {
|
|
1029
|
+
date = this.fromString(date);
|
|
1030
|
+
return this.getDateAsLocalFormattedString(date, true);
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
public static isInThePast(date: string | Date): boolean {
|
|
1034
|
+
date = this.fromString(date);
|
|
1035
|
+
return moment(date).isBefore(new Date());
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
public static isInTheFuture(date: string | Date): boolean {
|
|
1039
|
+
date = this.fromString(date);
|
|
1040
|
+
return moment(date).isAfter(new Date());
|
|
1041
|
+
}
|
|
848
1042
|
|
|
849
|
-
|
|
1043
|
+
public static fromString(date: string | JSONObject | Date): Date {
|
|
1044
|
+
if (date instanceof Date) {
|
|
1045
|
+
return date;
|
|
850
1046
|
}
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
if (hours > 0) {
|
|
866
|
-
if (formattedString.length > 0) {
|
|
867
|
-
formattedString += ', ';
|
|
868
|
-
}
|
|
869
|
-
|
|
870
|
-
formattedString += hours + ' hours';
|
|
871
|
-
}
|
|
872
|
-
|
|
873
|
-
if (mins >= 0) {
|
|
874
|
-
if (formattedString.length > 0) {
|
|
875
|
-
formattedString += ', ';
|
|
876
|
-
}
|
|
877
|
-
|
|
878
|
-
formattedString += mins + ' minutes';
|
|
879
|
-
}
|
|
880
|
-
|
|
881
|
-
return formattedString;
|
|
1047
|
+
|
|
1048
|
+
if (typeof date === "string") {
|
|
1049
|
+
return moment(date).toDate();
|
|
1050
|
+
}
|
|
1051
|
+
|
|
1052
|
+
if (
|
|
1053
|
+
date &&
|
|
1054
|
+
date["value"] &&
|
|
1055
|
+
typeof date["value"] === "string" &&
|
|
1056
|
+
date["_type"] &&
|
|
1057
|
+
(date["_type"] === "Date" || date["_type"] === "DateTime")
|
|
1058
|
+
) {
|
|
1059
|
+
return moment(date["value"]).toDate();
|
|
882
1060
|
}
|
|
883
1061
|
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
onlyShowDate?: boolean
|
|
887
|
-
): Array<string> {
|
|
888
|
-
date = this.fromString(date);
|
|
889
|
-
|
|
890
|
-
let formatstring: string = 'MMM DD YYYY, HH:mm';
|
|
891
|
-
|
|
892
|
-
if (onlyShowDate) {
|
|
893
|
-
formatstring = 'MMM DD, YYYY';
|
|
894
|
-
}
|
|
895
|
-
|
|
896
|
-
// convert this date into GMT, EST, PST, IST, ACT with moment
|
|
897
|
-
const timezoneDates: Array<string> = [];
|
|
898
|
-
|
|
899
|
-
timezoneDates.push(
|
|
900
|
-
moment(date).tz('UTC').format(formatstring) +
|
|
901
|
-
' ' +
|
|
902
|
-
(onlyShowDate ? '' : 'GMT')
|
|
903
|
-
);
|
|
904
|
-
timezoneDates.push(
|
|
905
|
-
moment(date).tz('America/New_York').format(formatstring) +
|
|
906
|
-
' ' +
|
|
907
|
-
(onlyShowDate ? '' : 'EST')
|
|
908
|
-
);
|
|
909
|
-
timezoneDates.push(
|
|
910
|
-
moment(date).tz('America/Los_Angeles').format(formatstring) +
|
|
911
|
-
' ' +
|
|
912
|
-
(onlyShowDate ? '' : 'PST')
|
|
913
|
-
);
|
|
914
|
-
timezoneDates.push(
|
|
915
|
-
moment(date).tz('Asia/Kolkata').format(formatstring) +
|
|
916
|
-
' ' +
|
|
917
|
-
(onlyShowDate ? '' : 'IST')
|
|
918
|
-
);
|
|
919
|
-
timezoneDates.push(
|
|
920
|
-
moment(date).tz('Australia/Sydney').format(formatstring) +
|
|
921
|
-
' ' +
|
|
922
|
-
(onlyShowDate ? '' : 'AEST')
|
|
923
|
-
);
|
|
924
|
-
|
|
925
|
-
return timezoneDates;
|
|
926
|
-
}
|
|
927
|
-
|
|
928
|
-
public static getDateAsFormattedHTMLInMultipleTimezones(
|
|
929
|
-
date: string | Date,
|
|
930
|
-
onlyShowDate?: boolean
|
|
931
|
-
): string {
|
|
932
|
-
return this.getDateAsFormattedArrayInMultipleTimezones(
|
|
933
|
-
date,
|
|
934
|
-
onlyShowDate
|
|
935
|
-
).join('<br/>');
|
|
936
|
-
}
|
|
937
|
-
|
|
938
|
-
public static getDateAsFormattedStringInMultipleTimezones(
|
|
939
|
-
date: string | Date,
|
|
940
|
-
onlyShowDate?: boolean
|
|
941
|
-
): string {
|
|
942
|
-
return this.getDateAsFormattedArrayInMultipleTimezones(
|
|
943
|
-
date,
|
|
944
|
-
onlyShowDate
|
|
945
|
-
).join('\n');
|
|
946
|
-
}
|
|
947
|
-
|
|
948
|
-
public static getDateAsLocalFormattedString(
|
|
949
|
-
date: string | Date,
|
|
950
|
-
onlyShowDate?: boolean
|
|
951
|
-
): string {
|
|
952
|
-
date = this.fromString(date);
|
|
953
|
-
|
|
954
|
-
let formatstring: string = 'MMM DD YYYY, HH:mm';
|
|
955
|
-
|
|
956
|
-
if (onlyShowDate) {
|
|
957
|
-
formatstring = 'MMM DD, YYYY';
|
|
958
|
-
}
|
|
959
|
-
|
|
960
|
-
const momentDate: moment.Moment = moment(date).local();
|
|
1062
|
+
throw new BadDataException("Invalid date: " + date.toString());
|
|
1063
|
+
}
|
|
961
1064
|
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
}
|
|
1065
|
+
public static asDateForDatabaseQuery(date: string | Date): string {
|
|
1066
|
+
date = this.fromString(date);
|
|
1067
|
+
const formatstring: string = "YYYY-MM-DD";
|
|
1068
|
+
return moment(date).local().format(formatstring);
|
|
1069
|
+
}
|
|
968
1070
|
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
1071
|
+
public static asFilterDateForDatabaseQuery(date: string | Date): InBetween {
|
|
1072
|
+
date = this.fromString(date);
|
|
1073
|
+
const formattedDate: Date = moment(date).toDate();
|
|
1074
|
+
return new InBetween(
|
|
1075
|
+
OneUptimeDate.getStartOfDay(formattedDate),
|
|
1076
|
+
OneUptimeDate.getEndOfDay(formattedDate),
|
|
1077
|
+
);
|
|
1078
|
+
}
|
|
975
1079
|
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
1080
|
+
public static getDateWithCustomTime(data: {
|
|
1081
|
+
hours: number;
|
|
1082
|
+
minutes: number;
|
|
1083
|
+
seconds: number;
|
|
1084
|
+
}): Date {
|
|
1085
|
+
const hour: number = data.hours;
|
|
1086
|
+
const minutes: number = data.minutes;
|
|
1087
|
+
const seconds: number = data.seconds;
|
|
979
1088
|
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
1089
|
+
//validate the hour
|
|
1090
|
+
if (hour < 0 || hour > 23) {
|
|
1091
|
+
throw new BadDataException("Invalid hour");
|
|
983
1092
|
}
|
|
984
1093
|
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
1094
|
+
//validate the minutes
|
|
1095
|
+
if (minutes < 0 || minutes > 59) {
|
|
1096
|
+
throw new BadDataException("Invalid minutes");
|
|
988
1097
|
}
|
|
989
1098
|
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
1099
|
+
//validate the seconds
|
|
1100
|
+
if (seconds < 0 || seconds > 59) {
|
|
1101
|
+
throw new BadDataException("Invalid seconds");
|
|
993
1102
|
}
|
|
994
1103
|
|
|
995
|
-
|
|
996
|
-
if (date instanceof Date) {
|
|
997
|
-
return date;
|
|
998
|
-
}
|
|
999
|
-
|
|
1000
|
-
if (typeof date === 'string') {
|
|
1001
|
-
return moment(date).toDate();
|
|
1002
|
-
}
|
|
1003
|
-
|
|
1004
|
-
if (
|
|
1005
|
-
date &&
|
|
1006
|
-
date['value'] &&
|
|
1007
|
-
typeof date['value'] === 'string' &&
|
|
1008
|
-
date['_type'] &&
|
|
1009
|
-
(date['_type'] === 'Date' || date['_type'] === 'DateTime')
|
|
1010
|
-
) {
|
|
1011
|
-
return moment(date['value']).toDate();
|
|
1012
|
-
}
|
|
1013
|
-
|
|
1014
|
-
throw new BadDataException('Invalid date');
|
|
1015
|
-
}
|
|
1104
|
+
const date: Date = OneUptimeDate.getCurrentDate();
|
|
1016
1105
|
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
return moment(date).local().format(formatstring);
|
|
1021
|
-
}
|
|
1106
|
+
date.setHours(hour);
|
|
1107
|
+
date.setMinutes(minutes);
|
|
1108
|
+
date.setSeconds(seconds);
|
|
1022
1109
|
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
const formattedDate: Date = moment(date).toDate();
|
|
1026
|
-
return new InBetween(
|
|
1027
|
-
OneUptimeDate.getStartOfDay(formattedDate),
|
|
1028
|
-
OneUptimeDate.getEndOfDay(formattedDate)
|
|
1029
|
-
);
|
|
1030
|
-
}
|
|
1031
|
-
|
|
1032
|
-
public static getDateWithCustomTime(data: {
|
|
1033
|
-
hours: number;
|
|
1034
|
-
minutes: number;
|
|
1035
|
-
seconds: number;
|
|
1036
|
-
}): Date {
|
|
1037
|
-
const hour: number = data.hours;
|
|
1038
|
-
const minutes: number = data.minutes;
|
|
1039
|
-
const seconds: number = data.seconds;
|
|
1040
|
-
|
|
1041
|
-
//validate the hour
|
|
1042
|
-
if (hour < 0 || hour > 23) {
|
|
1043
|
-
throw new BadDataException('Invalid hour');
|
|
1044
|
-
}
|
|
1045
|
-
|
|
1046
|
-
//validate the minutes
|
|
1047
|
-
if (minutes < 0 || minutes > 59) {
|
|
1048
|
-
throw new BadDataException('Invalid minutes');
|
|
1049
|
-
}
|
|
1050
|
-
|
|
1051
|
-
//validate the seconds
|
|
1052
|
-
if (seconds < 0 || seconds > 59) {
|
|
1053
|
-
throw new BadDataException('Invalid seconds');
|
|
1054
|
-
}
|
|
1055
|
-
|
|
1056
|
-
const date: Date = OneUptimeDate.getCurrentDate();
|
|
1057
|
-
|
|
1058
|
-
date.setHours(hour);
|
|
1059
|
-
date.setMinutes(minutes);
|
|
1060
|
-
date.setSeconds(seconds);
|
|
1061
|
-
|
|
1062
|
-
return date;
|
|
1063
|
-
}
|
|
1110
|
+
return date;
|
|
1111
|
+
}
|
|
1064
1112
|
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1113
|
+
public static toDatabaseDate(date: Date): string {
|
|
1114
|
+
date = this.fromString(date);
|
|
1115
|
+
return moment(date).format("YYYY-MM-DD HH:mm:ss");
|
|
1116
|
+
}
|
|
1069
1117
|
}
|