@oneuptime/common 7.0.2513 → 7.0.2550
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/Copilot/CopilotEventStatus.ts +6 -0
- package/Types/Copilot/CopilotEventType.ts +6 -0
- 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 +965 -978
- 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 +7 -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 -154
- 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 -3412
- 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/TimezoneCode.ts +63 -0
- 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/Copilot/CopilotEventStatus.js +7 -0
- package/build/dist/Types/Copilot/CopilotEventStatus.js.map +1 -0
- package/build/dist/Types/Copilot/CopilotEventType.js +7 -0
- package/build/dist/Types/Copilot/CopilotEventType.js.map +1 -0
- 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 +132 -136
- 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 +37 -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 +726 -686
- 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/TimezoneCode.js +64 -0
- package/build/dist/Types/TimezoneCode.js.map +1 -0
- 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/jest.config.json +6 -1
- package/package.json +3 -3
package/Types/Date.ts
CHANGED
|
@@ -1,1069 +1,1056 @@
|
|
|
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
7
|
|
|
8
8
|
export const Moment: typeof moment = moment;
|
|
9
9
|
|
|
10
10
|
export default class OneUptimeDate {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
public static getDateFromYYYYMMDD(
|
|
16
|
-
year: string,
|
|
17
|
-
month: string,
|
|
18
|
-
day: string
|
|
19
|
-
): Date {
|
|
20
|
-
return moment(`${year}-${month}-${day}`).toDate();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public getMicroSecondsFromSeconds(seconds: number): number {
|
|
24
|
-
return seconds * 1000 * 1000;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public getMilliSecondsFromSeconds(seconds: number): number {
|
|
28
|
-
return seconds * 1000;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
public static getCurrentDateAsUnixNano(): number {
|
|
32
|
-
return this.toUnixNano(this.getCurrentDate());
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
public static toUnixNano(date: Date): number {
|
|
36
|
-
return date.getTime() * 1000000;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public static getLocalHourAndMinuteFromDate(date: Date | string): string {
|
|
40
|
-
date = this.fromString(date);
|
|
41
|
-
return moment(date).format('HH:mm');
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public static getMillisecondsBetweenTwoUnixNanoDates(
|
|
45
|
-
startDate: number,
|
|
46
|
-
endDate: number
|
|
47
|
-
): number {
|
|
48
|
-
return endDate - startDate;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
public static moveDateToTheDayOfWeek(
|
|
52
|
-
date: Date,
|
|
53
|
-
moveToWeek: Date,
|
|
54
|
-
dayOfWeek: DayOfWeek
|
|
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
|
-
}
|
|
68
|
-
|
|
69
|
-
const numberOfDayOfWeek: number =
|
|
70
|
-
DayOfWeekUtil.getNumberOfDayOfWeek(dayOfWeek);
|
|
71
|
-
|
|
72
|
-
const dateDayOfWeekNumber: number =
|
|
73
|
-
DayOfWeekUtil.getNumberOfDayOfWeek(dateDayOfWeek);
|
|
74
|
-
|
|
75
|
-
const difference: number = numberOfDayOfWeek - dateDayOfWeekNumber;
|
|
76
|
-
|
|
77
|
-
if (difference === 0) {
|
|
78
|
-
return date;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return this.addRemoveDays(date, difference);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
public static isOverlapping(
|
|
85
|
-
start: Date,
|
|
86
|
-
end: Date,
|
|
87
|
-
start1: Date,
|
|
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
|
-
}
|
|
113
|
-
|
|
114
|
-
public static getCurrentDate(): Date {
|
|
115
|
-
return moment().toDate();
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
public static fromNow(date: Date): string {
|
|
119
|
-
return moment(date).fromNow();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
public static differenceBetweenTwoDatesAsFromattedString(
|
|
123
|
-
date1: Date,
|
|
124
|
-
date2: Date
|
|
125
|
-
): string {
|
|
126
|
-
const seconds: number = this.getSecondsBetweenTwoDates(date1, date2);
|
|
127
|
-
return this.secondsToFormattedFriendlyTimeString(seconds);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
public static toTimeString(date: Date | string): string {
|
|
131
|
-
if (typeof date === 'string') {
|
|
132
|
-
date = this.fromString(date);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
return moment(date).format('HH:mm');
|
|
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
|
-
}
|
|
152
|
-
|
|
153
|
-
public static getDaysBetweenTwoDatesInclusive(
|
|
154
|
-
startDate: Date,
|
|
155
|
-
endDate: Date
|
|
156
|
-
): number {
|
|
157
|
-
return this.getDaysBetweenTwoDates(startDate, endDate) + 1;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
public static getHoursBetweenTwoDates(
|
|
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
|
-
}
|
|
168
|
-
|
|
169
|
-
public static getHoursBetweenTwoDatesInclusive(
|
|
170
|
-
startDate: Date,
|
|
171
|
-
endDate: Date
|
|
172
|
-
): number {
|
|
173
|
-
return this.getHoursBetweenTwoDates(startDate, endDate) + 1;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
public static getMinutesBetweenTwoDates(
|
|
177
|
-
startDate: Date,
|
|
178
|
-
endDate: Date
|
|
179
|
-
): number {
|
|
180
|
-
startDate = this.fromString(startDate);
|
|
181
|
-
endDate = this.fromString(endDate);
|
|
182
|
-
return moment(endDate).diff(moment(startDate), 'minutes');
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
public static getMinutesBetweenTwoDatesInclusive(
|
|
186
|
-
startDate: Date,
|
|
187
|
-
endDate: Date
|
|
188
|
-
): number {
|
|
189
|
-
return this.getMinutesBetweenTwoDates(startDate, endDate) + 1;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
public static getSecondsBetweenTwoDates(
|
|
193
|
-
startDate: Date,
|
|
194
|
-
endDate: Date
|
|
195
|
-
): number {
|
|
196
|
-
startDate = this.fromString(startDate);
|
|
197
|
-
endDate = this.fromString(endDate);
|
|
198
|
-
return moment(endDate).diff(moment(startDate), 'seconds');
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
public static getSecondsBetweenTwoDatesInclusive(
|
|
202
|
-
startDate: Date,
|
|
203
|
-
endDate: Date
|
|
204
|
-
): number {
|
|
205
|
-
return this.getSecondsBetweenTwoDates(startDate, endDate) + 1;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
public static getWeeksBetweenTwoDates(
|
|
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
|
-
}
|
|
216
|
-
|
|
217
|
-
public static getWeeksBetweenTwoDatesInclusive(
|
|
218
|
-
startDate: Date,
|
|
219
|
-
endDate: Date
|
|
220
|
-
): number {
|
|
221
|
-
return this.getWeeksBetweenTwoDates(startDate, endDate) + 1;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
public static getMonthsBetweenTwoDates(
|
|
225
|
-
startDate: Date,
|
|
226
|
-
endDate: Date
|
|
227
|
-
): number {
|
|
228
|
-
startDate = this.fromString(startDate);
|
|
229
|
-
endDate = this.fromString(endDate);
|
|
230
|
-
return moment(endDate).diff(moment(startDate), 'months');
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
public static getMonthsBetweenTwoDatesInclusive(
|
|
234
|
-
startDate: Date,
|
|
235
|
-
endDate: Date
|
|
236
|
-
): number {
|
|
237
|
-
return this.getMonthsBetweenTwoDates(startDate, endDate) + 1;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
public static getYearsBetweenTwoDates(
|
|
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');
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
public static getYearsBetweenTwoDatesInclusive(
|
|
250
|
-
startDate: Date,
|
|
251
|
-
endDate: Date
|
|
252
|
-
): number {
|
|
253
|
-
return this.getYearsBetweenTwoDates(startDate, endDate) + 1;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
public static toString(date: Date | undefined): string {
|
|
257
|
-
if (!date) {
|
|
258
|
-
return '';
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
date = this.fromString(date);
|
|
262
|
-
|
|
263
|
-
return date.toISOString();
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
public static getCurrentMomentDate(): moment.Moment {
|
|
267
|
-
return moment();
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
public static keepTimeButMoveDay(keepTimeFor: Date, moveDayTo: Date): Date {
|
|
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
|
-
}
|
|
282
|
-
|
|
283
|
-
public static getOneMinAgo(): Date {
|
|
284
|
-
return this.getSomeMinutesAgo(new PositiveNumber(1));
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
public static getOneDayAgo(): Date {
|
|
288
|
-
return this.getSomeDaysAgo(new PositiveNumber(1));
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
public static fromUnixNano(timestamp: number): Date {
|
|
292
|
-
return moment(timestamp / 1000000).toDate();
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
public static getSecondsTo(date: Date): number {
|
|
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);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
public static getSomeMinutesAgo(minutes: PositiveNumber | number): Date {
|
|
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
|
-
}
|
|
311
|
-
|
|
312
|
-
public static timezoneOffsetDate(date: Date): Date {
|
|
313
|
-
date = this.fromString(date);
|
|
314
|
-
return this.addRemoveMinutes(date, date.getTimezoneOffset());
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
public static toDateTimeLocalString(date: Date): string {
|
|
318
|
-
date = this.fromString(date);
|
|
319
|
-
|
|
320
|
-
type TenFunction = (i: number) => string;
|
|
321
|
-
|
|
322
|
-
const ten: TenFunction = (i: number): string => {
|
|
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;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
public static fromJSON(json: JSONObject): Date {
|
|
336
|
-
if (json['_type'] === ObjectType.DateTime) {
|
|
337
|
-
return OneUptimeDate.fromString(json['value'] as string);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
throw new BadDataException('Invalid JSON: ' + JSON.stringify(json));
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
public static toJSON(date: Date): JSONObject {
|
|
344
|
-
return {
|
|
345
|
-
_type: ObjectType.DateTime,
|
|
346
|
-
value: OneUptimeDate.toString(date),
|
|
347
|
-
};
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
public static areOnTheSameDay(date1: Date, date2: Date): boolean {
|
|
351
|
-
date1 = this.fromString(date1);
|
|
352
|
-
date2 = this.fromString(date2);
|
|
353
|
-
return moment(date1).isSame(date2, 'day');
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
public static areOnTheSameMonth(date1: Date, date2: Date): boolean {
|
|
357
|
-
date1 = this.fromString(date1);
|
|
358
|
-
date2 = this.fromString(date2);
|
|
359
|
-
return moment(date1).isSame(date2, 'month');
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
public static areOnTheSameYear(date1: Date, date2: Date): boolean {
|
|
363
|
-
date1 = this.fromString(date1);
|
|
364
|
-
date2 = this.fromString(date2);
|
|
365
|
-
return moment(date1).isSame(date2, 'year');
|
|
366
|
-
}
|
|
11
|
+
public getNanoSecondsFromSeconds(seconds: number): number {
|
|
12
|
+
return seconds * 1000 * 1000 * 1000;
|
|
13
|
+
}
|
|
367
14
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
15
|
+
public static getDateFromYYYYMMDD(
|
|
16
|
+
year: string,
|
|
17
|
+
month: string,
|
|
18
|
+
day: string,
|
|
19
|
+
): Date {
|
|
20
|
+
return moment(`${year}-${month}-${day}`).toDate();
|
|
21
|
+
}
|
|
373
22
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
23
|
+
public getMicroSecondsFromSeconds(seconds: number): number {
|
|
24
|
+
return seconds * 1000 * 1000;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public getMilliSecondsFromSeconds(seconds: number): number {
|
|
28
|
+
return seconds * 1000;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public static getCurrentDateAsUnixNano(): number {
|
|
32
|
+
return this.toUnixNano(this.getCurrentDate());
|
|
33
|
+
}
|
|
379
34
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
return moment(date1).isSame(date2, 'second');
|
|
384
|
-
}
|
|
35
|
+
public static toUnixNano(date: Date): number {
|
|
36
|
+
return date.getTime() * 1000000;
|
|
37
|
+
}
|
|
385
38
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
}
|
|
39
|
+
public static getLocalHourAndMinuteFromDate(date: Date | string): string {
|
|
40
|
+
date = this.fromString(date);
|
|
41
|
+
return moment(date).format("HH:mm");
|
|
42
|
+
}
|
|
391
43
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
44
|
+
public static getMillisecondsBetweenTwoUnixNanoDates(
|
|
45
|
+
startDate: number,
|
|
46
|
+
endDate: number,
|
|
47
|
+
): number {
|
|
48
|
+
return endDate - startDate;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public static moveDateToTheDayOfWeek(
|
|
52
|
+
date: Date,
|
|
53
|
+
moveToWeek: Date,
|
|
54
|
+
dayOfWeek: DayOfWeek,
|
|
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
|
+
}
|
|
68
|
+
|
|
69
|
+
const numberOfDayOfWeek: number =
|
|
70
|
+
DayOfWeekUtil.getNumberOfDayOfWeek(dayOfWeek);
|
|
71
|
+
|
|
72
|
+
const dateDayOfWeekNumber: number =
|
|
73
|
+
DayOfWeekUtil.getNumberOfDayOfWeek(dateDayOfWeek);
|
|
74
|
+
|
|
75
|
+
const difference: number = numberOfDayOfWeek - dateDayOfWeekNumber;
|
|
76
|
+
|
|
77
|
+
if (difference === 0) {
|
|
78
|
+
return date;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return this.addRemoveDays(date, difference);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public static isOverlapping(
|
|
85
|
+
start: Date,
|
|
86
|
+
end: Date,
|
|
87
|
+
start1: Date,
|
|
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
|
+
}
|
|
113
|
+
|
|
114
|
+
public static getCurrentDate(): Date {
|
|
115
|
+
return moment().toDate();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
public static fromNow(date: Date): string {
|
|
119
|
+
return moment(date).fromNow();
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
public static differenceBetweenTwoDatesAsFromattedString(
|
|
123
|
+
date1: Date,
|
|
124
|
+
date2: Date,
|
|
125
|
+
): string {
|
|
126
|
+
const seconds: number = this.getSecondsBetweenTwoDates(date1, date2);
|
|
127
|
+
return this.secondsToFormattedFriendlyTimeString(seconds);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
public static toTimeString(date: Date | string): string {
|
|
131
|
+
if (typeof date === "string") {
|
|
132
|
+
date = this.fromString(date);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return moment(date).format("HH:mm");
|
|
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(startDate: Date, endDate: Date): number {
|
|
145
|
+
startDate = this.fromString(startDate);
|
|
146
|
+
endDate = this.fromString(endDate);
|
|
147
|
+
return moment(endDate).diff(moment(startDate), "days");
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
public static getDaysBetweenTwoDatesInclusive(
|
|
151
|
+
startDate: Date,
|
|
152
|
+
endDate: Date,
|
|
153
|
+
): number {
|
|
154
|
+
return this.getDaysBetweenTwoDates(startDate, endDate) + 1;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
public static getHoursBetweenTwoDates(
|
|
158
|
+
startDate: Date,
|
|
159
|
+
endDate: Date,
|
|
160
|
+
): number {
|
|
161
|
+
startDate = this.fromString(startDate);
|
|
162
|
+
endDate = this.fromString(endDate);
|
|
163
|
+
return moment(endDate).diff(moment(startDate), "hours");
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
public static getHoursBetweenTwoDatesInclusive(
|
|
167
|
+
startDate: Date,
|
|
168
|
+
endDate: Date,
|
|
169
|
+
): number {
|
|
170
|
+
return this.getHoursBetweenTwoDates(startDate, endDate) + 1;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
public static getMinutesBetweenTwoDates(
|
|
174
|
+
startDate: Date,
|
|
175
|
+
endDate: Date,
|
|
176
|
+
): number {
|
|
177
|
+
startDate = this.fromString(startDate);
|
|
178
|
+
endDate = this.fromString(endDate);
|
|
179
|
+
return moment(endDate).diff(moment(startDate), "minutes");
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
public static getMinutesBetweenTwoDatesInclusive(
|
|
183
|
+
startDate: Date,
|
|
184
|
+
endDate: Date,
|
|
185
|
+
): number {
|
|
186
|
+
return this.getMinutesBetweenTwoDates(startDate, endDate) + 1;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
public static getSecondsBetweenTwoDates(
|
|
190
|
+
startDate: Date,
|
|
191
|
+
endDate: Date,
|
|
192
|
+
): number {
|
|
193
|
+
startDate = this.fromString(startDate);
|
|
194
|
+
endDate = this.fromString(endDate);
|
|
195
|
+
return moment(endDate).diff(moment(startDate), "seconds");
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
public static getSecondsBetweenTwoDatesInclusive(
|
|
199
|
+
startDate: Date,
|
|
200
|
+
endDate: Date,
|
|
201
|
+
): number {
|
|
202
|
+
return this.getSecondsBetweenTwoDates(startDate, endDate) + 1;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
public static getWeeksBetweenTwoDates(
|
|
206
|
+
startDate: Date,
|
|
207
|
+
endDate: Date,
|
|
208
|
+
): number {
|
|
209
|
+
startDate = this.fromString(startDate);
|
|
210
|
+
endDate = this.fromString(endDate);
|
|
211
|
+
return moment(endDate).diff(moment(startDate), "weeks");
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
public static getWeeksBetweenTwoDatesInclusive(
|
|
215
|
+
startDate: Date,
|
|
216
|
+
endDate: Date,
|
|
217
|
+
): number {
|
|
218
|
+
return this.getWeeksBetweenTwoDates(startDate, endDate) + 1;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
public static getMonthsBetweenTwoDates(
|
|
222
|
+
startDate: Date,
|
|
223
|
+
endDate: Date,
|
|
224
|
+
): number {
|
|
225
|
+
startDate = this.fromString(startDate);
|
|
226
|
+
endDate = this.fromString(endDate);
|
|
227
|
+
return moment(endDate).diff(moment(startDate), "months");
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
public static getMonthsBetweenTwoDatesInclusive(
|
|
231
|
+
startDate: Date,
|
|
232
|
+
endDate: Date,
|
|
233
|
+
): number {
|
|
234
|
+
return this.getMonthsBetweenTwoDates(startDate, endDate) + 1;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
public static getYearsBetweenTwoDates(
|
|
238
|
+
startDate: Date,
|
|
239
|
+
endDate: Date,
|
|
240
|
+
): number {
|
|
241
|
+
startDate = this.fromString(startDate);
|
|
242
|
+
endDate = this.fromString(endDate);
|
|
243
|
+
return moment(endDate).diff(moment(startDate), "years");
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
public static getYearsBetweenTwoDatesInclusive(
|
|
247
|
+
startDate: Date,
|
|
248
|
+
endDate: Date,
|
|
249
|
+
): number {
|
|
250
|
+
return this.getYearsBetweenTwoDates(startDate, endDate) + 1;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
public static toString(date: Date | undefined): string {
|
|
254
|
+
if (!date) {
|
|
255
|
+
return "";
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
date = this.fromString(date);
|
|
259
|
+
|
|
260
|
+
return date.toISOString();
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
public static getCurrentMomentDate(): moment.Moment {
|
|
264
|
+
return moment();
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
public static keepTimeButMoveDay(keepTimeFor: Date, moveDayTo: Date): Date {
|
|
268
|
+
keepTimeFor = this.fromString(keepTimeFor);
|
|
269
|
+
moveDayTo = this.fromString(moveDayTo);
|
|
270
|
+
return moment(moveDayTo)
|
|
271
|
+
.set({
|
|
272
|
+
hour: keepTimeFor.getHours(),
|
|
273
|
+
minute: keepTimeFor.getMinutes(),
|
|
274
|
+
second: keepTimeFor.getSeconds(),
|
|
275
|
+
millisecond: keepTimeFor.getMilliseconds(),
|
|
276
|
+
})
|
|
277
|
+
.toDate();
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
public static getOneMinAgo(): Date {
|
|
281
|
+
return this.getSomeMinutesAgo(new PositiveNumber(1));
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
public static getOneDayAgo(): Date {
|
|
285
|
+
return this.getSomeDaysAgo(new PositiveNumber(1));
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
public static fromUnixNano(timestamp: number): Date {
|
|
289
|
+
return moment(timestamp / 1000000).toDate();
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
public static getSecondsTo(date: Date): number {
|
|
293
|
+
date = this.fromString(date);
|
|
294
|
+
const dif: number = date.getTime() - this.getCurrentDate().getTime();
|
|
295
|
+
const Seconds_from_T1_to_T2: number = dif / 1000;
|
|
296
|
+
return Math.abs(Seconds_from_T1_to_T2);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
public static getSomeMinutesAgo(minutes: PositiveNumber | number): Date {
|
|
300
|
+
if (!(minutes instanceof PositiveNumber)) {
|
|
301
|
+
minutes = new PositiveNumber(minutes);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
return this.getCurrentMomentDate()
|
|
305
|
+
.add(-1 * minutes.toNumber(), "minutes")
|
|
306
|
+
.toDate();
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
public static timezoneOffsetDate(date: Date): Date {
|
|
310
|
+
date = this.fromString(date);
|
|
311
|
+
return this.addRemoveMinutes(date, date.getTimezoneOffset());
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
public static toDateTimeLocalString(date: Date): string {
|
|
315
|
+
date = this.fromString(date);
|
|
316
|
+
|
|
317
|
+
type TenFunction = (i: number) => string;
|
|
318
|
+
|
|
319
|
+
const ten: TenFunction = (i: number): string => {
|
|
320
|
+
return (i < 10 ? "0" : "") + i;
|
|
321
|
+
},
|
|
322
|
+
YYYY: number = date.getFullYear(),
|
|
323
|
+
MM: string = ten(date.getMonth() + 1),
|
|
324
|
+
DD: string = ten(date.getDate()),
|
|
325
|
+
HH: string = ten(date.getHours()),
|
|
326
|
+
II: string = ten(date.getMinutes()),
|
|
327
|
+
SS: string = ten(date.getSeconds());
|
|
328
|
+
|
|
329
|
+
return YYYY + "-" + MM + "-" + DD + "T" + HH + ":" + II + ":" + SS;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
public static fromJSON(json: JSONObject): Date {
|
|
333
|
+
if (json["_type"] === ObjectType.DateTime) {
|
|
334
|
+
return OneUptimeDate.fromString(json["value"] as string);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
throw new BadDataException("Invalid JSON: " + JSON.stringify(json));
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
public static toJSON(date: Date): JSONObject {
|
|
341
|
+
return {
|
|
342
|
+
_type: ObjectType.DateTime,
|
|
343
|
+
value: OneUptimeDate.toString(date),
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
public static areOnTheSameDay(date1: Date, date2: Date): boolean {
|
|
348
|
+
date1 = this.fromString(date1);
|
|
349
|
+
date2 = this.fromString(date2);
|
|
350
|
+
return moment(date1).isSame(date2, "day");
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
public static areOnTheSameMonth(date1: Date, date2: Date): boolean {
|
|
354
|
+
date1 = this.fromString(date1);
|
|
355
|
+
date2 = this.fromString(date2);
|
|
356
|
+
return moment(date1).isSame(date2, "month");
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
public static areOnTheSameYear(date1: Date, date2: Date): boolean {
|
|
360
|
+
date1 = this.fromString(date1);
|
|
361
|
+
date2 = this.fromString(date2);
|
|
362
|
+
return moment(date1).isSame(date2, "year");
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
public static areOnTheSameHour(date1: Date, date2: Date): boolean {
|
|
366
|
+
date1 = this.fromString(date1);
|
|
367
|
+
date2 = this.fromString(date2);
|
|
368
|
+
return moment(date1).isSame(date2, "hour");
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
public static areOnTheSameMinute(date1: Date, date2: Date): boolean {
|
|
372
|
+
date1 = this.fromString(date1);
|
|
373
|
+
date2 = this.fromString(date2);
|
|
374
|
+
return moment(date1).isSame(date2, "minute");
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
public static areOnTheSameSecond(date1: Date, date2: Date): boolean {
|
|
378
|
+
date1 = this.fromString(date1);
|
|
379
|
+
date2 = this.fromString(date2);
|
|
380
|
+
return moment(date1).isSame(date2, "second");
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
public static areOnTheSameWeek(date1: Date, date2: Date): boolean {
|
|
384
|
+
date1 = this.fromString(date1);
|
|
385
|
+
date2 = this.fromString(date2);
|
|
386
|
+
return moment(date1).isSame(date2, "week");
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
public static addRemoveMinutes(date: Date, minutes: number): Date {
|
|
390
|
+
date = this.fromString(date);
|
|
391
|
+
return moment(date).add(minutes, "minutes").toDate();
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
public static addRemoveDays(date: Date, days: number): Date {
|
|
395
|
+
date = this.fromString(date);
|
|
396
|
+
return moment(date).add(days, "days").toDate();
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
public static addRemoveHours(date: Date, hours: number): Date {
|
|
400
|
+
date = this.fromString(date);
|
|
401
|
+
return moment(date).add(hours, "hours").toDate();
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
public static addRemoveYears(date: Date, years: number): Date {
|
|
405
|
+
date = this.fromString(date);
|
|
406
|
+
return moment(date).add(years, "years").toDate();
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
public static addRemoveMonths(date: Date, months: number): Date {
|
|
410
|
+
date = this.fromString(date);
|
|
411
|
+
return moment(date).add(months, "months").toDate();
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
public static addRemoveWeeks(date: Date, weeks: number): Date {
|
|
415
|
+
date = this.fromString(date);
|
|
416
|
+
return moment(date).add(weeks, "weeks").toDate();
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
public static addRemoveSeconds(date: Date, seconds: number): Date {
|
|
420
|
+
date = this.fromString(date);
|
|
421
|
+
return moment(date).add(seconds, "seconds").toDate();
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
public static getSecondsInDays(days: PositiveNumber | number): number {
|
|
425
|
+
if (!(days instanceof PositiveNumber)) {
|
|
426
|
+
days = new PositiveNumber(days);
|
|
427
|
+
}
|
|
428
|
+
return days.positiveNumber * 24 * 60 * 60;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
public static getMillisecondsInDays(days: PositiveNumber | number): number {
|
|
432
|
+
return this.getSecondsInDays(days) * 1000;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
public static getSomeHoursAgo(hours: PositiveNumber | number): Date {
|
|
436
|
+
if (!(hours instanceof PositiveNumber)) {
|
|
437
|
+
hours = new PositiveNumber(hours);
|
|
438
|
+
}
|
|
439
|
+
return this.getCurrentMomentDate()
|
|
440
|
+
.add(-1 * hours.toNumber(), "hours")
|
|
441
|
+
.toDate();
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
public static getSomeDaysAgo(days: PositiveNumber | number): Date {
|
|
445
|
+
if (!(days instanceof PositiveNumber)) {
|
|
446
|
+
days = new PositiveNumber(days);
|
|
447
|
+
}
|
|
448
|
+
return this.getCurrentMomentDate()
|
|
449
|
+
.add(-1 * days.toNumber(), "days")
|
|
450
|
+
.toDate();
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
public static getSomeDaysAgoFromDate(
|
|
454
|
+
date: Date,
|
|
455
|
+
days: PositiveNumber | number,
|
|
456
|
+
): Date {
|
|
457
|
+
date = this.fromString(date);
|
|
458
|
+
if (!(days instanceof PositiveNumber)) {
|
|
459
|
+
days = new PositiveNumber(days);
|
|
460
|
+
}
|
|
461
|
+
return moment(date)
|
|
462
|
+
.add(-1 * days.toNumber(), "days")
|
|
463
|
+
.toDate();
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
public static getSomeDaysAfterFromDate(
|
|
467
|
+
date: Date,
|
|
468
|
+
days: PositiveNumber | number,
|
|
469
|
+
): Date {
|
|
470
|
+
date = this.fromString(date);
|
|
471
|
+
if (!(days instanceof PositiveNumber)) {
|
|
472
|
+
days = new PositiveNumber(days);
|
|
473
|
+
}
|
|
474
|
+
return moment(date).add(Number(days.toNumber()), "days").toDate();
|
|
475
|
+
}
|
|
396
476
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
477
|
+
public static getSomeDaysBeforeFromDate(
|
|
478
|
+
date: Date,
|
|
479
|
+
days: PositiveNumber | number,
|
|
480
|
+
): Date {
|
|
481
|
+
date = this.fromString(date);
|
|
482
|
+
if (!(days instanceof PositiveNumber)) {
|
|
483
|
+
days = new PositiveNumber(days);
|
|
400
484
|
}
|
|
485
|
+
return moment(date)
|
|
486
|
+
.add(-1 * Number(days.toNumber()), "days")
|
|
487
|
+
.toDate();
|
|
488
|
+
}
|
|
401
489
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
490
|
+
public static getSomeSecondsAgo(seconds: PositiveNumber | number): Date {
|
|
491
|
+
if (!(seconds instanceof PositiveNumber)) {
|
|
492
|
+
seconds = new PositiveNumber(seconds);
|
|
405
493
|
}
|
|
406
494
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
495
|
+
return this.getCurrentMomentDate()
|
|
496
|
+
.add(-1 * seconds.toNumber(), "seconds")
|
|
497
|
+
.toDate();
|
|
498
|
+
}
|
|
411
499
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
}
|
|
500
|
+
public static getOneMinAfter(): Date {
|
|
501
|
+
return this.getSomeMinutesAfter(new PositiveNumber(1));
|
|
502
|
+
}
|
|
416
503
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
}
|
|
504
|
+
public static getOneDayAfter(): Date {
|
|
505
|
+
return this.getSomeDaysAfter(new PositiveNumber(1));
|
|
506
|
+
}
|
|
421
507
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
508
|
+
public static getSomeMinutesAfter(minutes: PositiveNumber | number): Date {
|
|
509
|
+
if (!(minutes instanceof PositiveNumber)) {
|
|
510
|
+
minutes = new PositiveNumber(minutes);
|
|
425
511
|
}
|
|
426
512
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
return days.positiveNumber * 24 * 60 * 60;
|
|
432
|
-
}
|
|
513
|
+
return this.getCurrentMomentDate()
|
|
514
|
+
.add(minutes.toNumber(), "minutes")
|
|
515
|
+
.toDate();
|
|
516
|
+
}
|
|
433
517
|
|
|
434
|
-
|
|
435
|
-
|
|
518
|
+
public static getSomeHoursAfter(hours: PositiveNumber | number): Date {
|
|
519
|
+
if (!(hours instanceof PositiveNumber)) {
|
|
520
|
+
hours = new PositiveNumber(hours);
|
|
436
521
|
}
|
|
522
|
+
return this.getCurrentMomentDate().add(hours.toNumber(), "hours").toDate();
|
|
523
|
+
}
|
|
437
524
|
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
}
|
|
442
|
-
return this.getCurrentMomentDate()
|
|
443
|
-
.add(-1 * hours.toNumber(), 'hours')
|
|
444
|
-
.toDate();
|
|
525
|
+
public static getSomeDaysAfter(days: PositiveNumber | number): Date {
|
|
526
|
+
if (!(days instanceof PositiveNumber)) {
|
|
527
|
+
days = new PositiveNumber(days);
|
|
445
528
|
}
|
|
446
529
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
days = new PositiveNumber(days);
|
|
450
|
-
}
|
|
451
|
-
return this.getCurrentMomentDate()
|
|
452
|
-
.add(-1 * days.toNumber(), 'days')
|
|
453
|
-
.toDate();
|
|
454
|
-
}
|
|
530
|
+
return this.getCurrentMomentDate().add(days.toNumber(), "days").toDate();
|
|
531
|
+
}
|
|
455
532
|
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
): Date {
|
|
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
|
-
}
|
|
533
|
+
public static secondsToFormattedTimeString(seconds: number): string {
|
|
534
|
+
return moment.utc(seconds * 1000).format("HH:mm:ss");
|
|
535
|
+
}
|
|
468
536
|
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
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();
|
|
478
|
-
}
|
|
537
|
+
public static toUnixTimestamp(date: Date): number {
|
|
538
|
+
return Math.floor(date.getTime() / 1000);
|
|
539
|
+
}
|
|
479
540
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
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
|
-
}
|
|
541
|
+
public static secondsToFormattedFriendlyTimeString(seconds: number): string {
|
|
542
|
+
const startDate: moment.Moment = moment.utc(0);
|
|
543
|
+
const date: moment.Moment = moment.utc(seconds * 1000);
|
|
492
544
|
|
|
493
|
-
|
|
494
|
-
if (!(seconds instanceof PositiveNumber)) {
|
|
495
|
-
seconds = new PositiveNumber(seconds);
|
|
496
|
-
}
|
|
545
|
+
// get the difference between the two dates as friendly formatted string
|
|
497
546
|
|
|
498
|
-
|
|
499
|
-
.add(-1 * seconds.toNumber(), 'seconds')
|
|
500
|
-
.toDate();
|
|
501
|
-
}
|
|
547
|
+
let formattedString: string = "";
|
|
502
548
|
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
}
|
|
549
|
+
// years between two dates
|
|
550
|
+
const years: number = date.diff(startDate, "years");
|
|
506
551
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
552
|
+
if (years > 0) {
|
|
553
|
+
let text: string = "years ";
|
|
554
|
+
if (years === 1) {
|
|
555
|
+
text = "year ";
|
|
556
|
+
}
|
|
510
557
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
minutes = new PositiveNumber(minutes);
|
|
514
|
-
}
|
|
558
|
+
// add years to start date
|
|
559
|
+
startDate.add(years, "years");
|
|
515
560
|
|
|
516
|
-
|
|
517
|
-
.add(minutes.toNumber(), 'minutes')
|
|
518
|
-
.toDate();
|
|
561
|
+
formattedString += years + " " + text;
|
|
519
562
|
}
|
|
520
563
|
|
|
521
|
-
|
|
522
|
-
if (!(hours instanceof PositiveNumber)) {
|
|
523
|
-
hours = new PositiveNumber(hours);
|
|
524
|
-
}
|
|
525
|
-
return this.getCurrentMomentDate()
|
|
526
|
-
.add(hours.toNumber(), 'hours')
|
|
527
|
-
.toDate();
|
|
528
|
-
}
|
|
564
|
+
const months: number = date.diff(startDate, "months");
|
|
529
565
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
days = new PositiveNumber(days);
|
|
533
|
-
}
|
|
566
|
+
if (months > 0) {
|
|
567
|
+
let text: string = "months ";
|
|
534
568
|
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
}
|
|
569
|
+
if (months === 1) {
|
|
570
|
+
text = "month ";
|
|
571
|
+
}
|
|
539
572
|
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
}
|
|
573
|
+
// add months to start date
|
|
574
|
+
startDate.add(months, "months");
|
|
543
575
|
|
|
544
|
-
|
|
545
|
-
return Math.floor(date.getTime() / 1000);
|
|
576
|
+
formattedString += months + " " + text;
|
|
546
577
|
}
|
|
547
578
|
|
|
548
|
-
|
|
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
|
-
}
|
|
579
|
+
const days: number = date.diff(startDate, "days");
|
|
572
580
|
|
|
573
|
-
|
|
581
|
+
if (days > 0) {
|
|
582
|
+
let text: string = "days ";
|
|
574
583
|
|
|
575
|
-
|
|
576
|
-
|
|
584
|
+
if (days === 1) {
|
|
585
|
+
text = "day ";
|
|
586
|
+
}
|
|
577
587
|
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
}
|
|
588
|
+
// add days to start date
|
|
589
|
+
startDate.add(days, "days");
|
|
581
590
|
|
|
582
|
-
|
|
583
|
-
startDate.add(months, 'months');
|
|
584
|
-
|
|
585
|
-
formattedString += months + ' ' + text;
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
const days: number = date.diff(startDate, 'days');
|
|
589
|
-
|
|
590
|
-
if (days > 0) {
|
|
591
|
-
let text: string = 'days ';
|
|
592
|
-
|
|
593
|
-
if (days === 1) {
|
|
594
|
-
text = 'day ';
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
// add days to start date
|
|
598
|
-
startDate.add(days, 'days');
|
|
599
|
-
|
|
600
|
-
formattedString += days + ' ' + text;
|
|
601
|
-
}
|
|
602
|
-
|
|
603
|
-
const hours: number = date.diff(startDate, 'hours');
|
|
604
|
-
|
|
605
|
-
if (hours > 0) {
|
|
606
|
-
let text: string = 'hours ';
|
|
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();
|
|
591
|
+
formattedString += days + " " + text;
|
|
649
592
|
}
|
|
650
593
|
|
|
651
|
-
|
|
652
|
-
a = this.fromString(a);
|
|
653
|
-
b = this.fromString(b);
|
|
654
|
-
if (this.isAfter(a, b)) {
|
|
655
|
-
return a;
|
|
656
|
-
}
|
|
594
|
+
const hours: number = date.diff(startDate, "hours");
|
|
657
595
|
|
|
658
|
-
|
|
659
|
-
|
|
596
|
+
if (hours > 0) {
|
|
597
|
+
let text: string = "hours ";
|
|
660
598
|
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
if (this.isBefore(a, b)) {
|
|
665
|
-
return a;
|
|
666
|
-
}
|
|
599
|
+
if (hours === 1) {
|
|
600
|
+
text = "hour ";
|
|
601
|
+
}
|
|
667
602
|
|
|
668
|
-
|
|
669
|
-
|
|
603
|
+
// add hours to start date
|
|
604
|
+
startDate.add(hours, "hours");
|
|
670
605
|
|
|
671
|
-
|
|
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();
|
|
606
|
+
formattedString += hours + " " + text;
|
|
678
607
|
}
|
|
679
608
|
|
|
680
|
-
|
|
681
|
-
date: Date,
|
|
682
|
-
days: PositiveNumber | number
|
|
683
|
-
): Date {
|
|
684
|
-
if (!(days instanceof PositiveNumber)) {
|
|
685
|
-
days = new PositiveNumber(days);
|
|
686
|
-
}
|
|
609
|
+
const minutes: number = date.diff(startDate, "minutes");
|
|
687
610
|
|
|
688
|
-
|
|
689
|
-
|
|
611
|
+
if (minutes > 0) {
|
|
612
|
+
let text: string = "mins ";
|
|
690
613
|
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
}
|
|
614
|
+
if (minutes === 1) {
|
|
615
|
+
text = "min ";
|
|
616
|
+
}
|
|
695
617
|
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
.toDate();
|
|
699
|
-
}
|
|
618
|
+
// add minutes to start date
|
|
619
|
+
startDate.add(minutes, "minutes");
|
|
700
620
|
|
|
701
|
-
|
|
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');
|
|
621
|
+
formattedString += minutes + " " + text;
|
|
708
622
|
}
|
|
709
623
|
|
|
710
|
-
|
|
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
|
-
}
|
|
624
|
+
const secondsLeft: number = date.diff(startDate, "seconds");
|
|
718
625
|
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
endDate: Date
|
|
722
|
-
): number {
|
|
723
|
-
return this.getNumberOfDaysBetweenDates(startDate, endDate) + 1;
|
|
724
|
-
}
|
|
626
|
+
if (secondsLeft > 0) {
|
|
627
|
+
let text: string = "secs ";
|
|
725
628
|
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
629
|
+
if (secondsLeft === 1) {
|
|
630
|
+
text = "sec ";
|
|
631
|
+
}
|
|
729
632
|
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
}
|
|
633
|
+
// add seconds to start date
|
|
634
|
+
startDate.add(secondsLeft, "seconds");
|
|
733
635
|
|
|
734
|
-
|
|
735
|
-
date = this.fromString(date);
|
|
736
|
-
return moment(date).startOf('day').toDate();
|
|
636
|
+
formattedString += secondsLeft + " " + text;
|
|
737
637
|
}
|
|
738
638
|
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
return moment(date).endOf('day').toDate();
|
|
742
|
-
}
|
|
639
|
+
return formattedString.trim();
|
|
640
|
+
}
|
|
743
641
|
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
date = this.fromString(date);
|
|
750
|
-
startDate = this.fromString(startDate);
|
|
751
|
-
endDate = this.fromString(endDate);
|
|
752
|
-
return moment(date).isBetween(startDate, endDate);
|
|
642
|
+
public static getGreaterDate(a: Date, b: Date): Date {
|
|
643
|
+
a = this.fromString(a);
|
|
644
|
+
b = this.fromString(b);
|
|
645
|
+
if (this.isAfter(a, b)) {
|
|
646
|
+
return a;
|
|
753
647
|
}
|
|
754
648
|
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
startDate = this.fromString(startDate);
|
|
758
|
-
return moment(date).isAfter(startDate);
|
|
759
|
-
}
|
|
649
|
+
return b;
|
|
650
|
+
}
|
|
760
651
|
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
652
|
+
public static getLesserDate(a: Date, b: Date): Date {
|
|
653
|
+
a = this.fromString(a);
|
|
654
|
+
b = this.fromString(b);
|
|
655
|
+
if (this.isBefore(a, b)) {
|
|
656
|
+
return a;
|
|
765
657
|
}
|
|
766
658
|
|
|
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');
|
|
787
|
-
}
|
|
659
|
+
return b;
|
|
660
|
+
}
|
|
788
661
|
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
return moment(date).isSameOrBefore(endDate);
|
|
798
|
-
}
|
|
662
|
+
public static getSecondsBetweenDates(start: Date, end: Date): number {
|
|
663
|
+
start = this.fromString(start);
|
|
664
|
+
end = this.fromString(end);
|
|
665
|
+
const duration: moment.Duration = moment.duration(
|
|
666
|
+
moment(end).diff(moment(start)),
|
|
667
|
+
);
|
|
668
|
+
return duration.asSeconds();
|
|
669
|
+
}
|
|
799
670
|
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
671
|
+
public static getSomeDaysAfterDate(
|
|
672
|
+
date: Date,
|
|
673
|
+
days: PositiveNumber | number,
|
|
674
|
+
): Date {
|
|
675
|
+
if (!(days instanceof PositiveNumber)) {
|
|
676
|
+
days = new PositiveNumber(days);
|
|
804
677
|
}
|
|
805
678
|
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
return !moment(this.getCurrentDate()).isBefore(expirationDate);
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
public static isBefore(date: Date, endDate: Date): boolean {
|
|
812
|
-
date = this.fromString(date);
|
|
813
|
-
endDate = this.fromString(endDate);
|
|
814
|
-
return moment(date).isBefore(endDate);
|
|
815
|
-
}
|
|
679
|
+
return moment(date).add(days.toNumber(), "days").toDate();
|
|
680
|
+
}
|
|
816
681
|
|
|
817
|
-
|
|
818
|
-
|
|
682
|
+
public static getSomeSecondsAfter(seconds: PositiveNumber | number): Date {
|
|
683
|
+
if (!(seconds instanceof PositiveNumber)) {
|
|
684
|
+
seconds = new PositiveNumber(seconds);
|
|
819
685
|
}
|
|
820
686
|
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
date = this.fromString(date);
|
|
687
|
+
return this.getCurrentMomentDate()
|
|
688
|
+
.add(seconds.toNumber(), "seconds")
|
|
689
|
+
.toDate();
|
|
690
|
+
}
|
|
826
691
|
|
|
827
|
-
|
|
692
|
+
public static getNumberOfDaysBetweenDates(
|
|
693
|
+
startDate: Date,
|
|
694
|
+
endDate: Date,
|
|
695
|
+
): number {
|
|
696
|
+
const a: moment.Moment = moment(startDate);
|
|
697
|
+
const b: moment.Moment = moment(endDate);
|
|
698
|
+
return b.diff(a, "days");
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
public static getNumberOfMinutesBetweenDates(
|
|
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, "minutes");
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
public static getNumberOfDaysBetweenDatesInclusive(
|
|
711
|
+
startDate: Date,
|
|
712
|
+
endDate: Date,
|
|
713
|
+
): number {
|
|
714
|
+
return this.getNumberOfDaysBetweenDates(startDate, endDate) + 1;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
public static momentToDate(moment: moment.Moment): Date {
|
|
718
|
+
return moment.toDate();
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
public static getCurrentYear(): number {
|
|
722
|
+
return moment().year();
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
public static getStartOfDay(date: Date): Date {
|
|
726
|
+
date = this.fromString(date);
|
|
727
|
+
return moment(date).startOf("day").toDate();
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
public static getEndOfDay(date: Date): Date {
|
|
731
|
+
date = this.fromString(date);
|
|
732
|
+
return moment(date).endOf("day").toDate();
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
public static isBetween(date: Date, startDate: Date, endDate: Date): boolean {
|
|
736
|
+
date = this.fromString(date);
|
|
737
|
+
startDate = this.fromString(startDate);
|
|
738
|
+
endDate = this.fromString(endDate);
|
|
739
|
+
return moment(date).isBetween(startDate, endDate);
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
public static isAfter(date: Date, startDate: Date): boolean {
|
|
743
|
+
date = this.fromString(date);
|
|
744
|
+
startDate = this.fromString(startDate);
|
|
745
|
+
return moment(date).isAfter(startDate);
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
public static isOnOrAfter(date: Date, startDate: Date): boolean {
|
|
749
|
+
date = this.fromString(date);
|
|
750
|
+
startDate = this.fromString(startDate);
|
|
751
|
+
return moment(date).isSameOrAfter(startDate);
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
public static getDayOfWeek(date: Date): DayOfWeek {
|
|
755
|
+
const dayOfWeek: number = this.geyDayOfWeekAsNumber(date);
|
|
756
|
+
|
|
757
|
+
if (dayOfWeek === 1) {
|
|
758
|
+
return DayOfWeek.Monday;
|
|
759
|
+
} else if (dayOfWeek === 2) {
|
|
760
|
+
return DayOfWeek.Tuesday;
|
|
761
|
+
} else if (dayOfWeek === 3) {
|
|
762
|
+
return DayOfWeek.Wednesday;
|
|
763
|
+
} else if (dayOfWeek === 4) {
|
|
764
|
+
return DayOfWeek.Thursday;
|
|
765
|
+
} else if (dayOfWeek === 5) {
|
|
766
|
+
return DayOfWeek.Friday;
|
|
767
|
+
} else if (dayOfWeek === 6) {
|
|
768
|
+
return DayOfWeek.Saturday;
|
|
769
|
+
} else if (dayOfWeek === 7) {
|
|
770
|
+
return DayOfWeek.Sunday;
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
throw new BadDataException("Invalid day of week");
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
public static geyDayOfWeekAsNumber(date: Date): number {
|
|
777
|
+
date = this.fromString(date);
|
|
778
|
+
return moment(date).isoWeekday();
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
public static isOnOrBefore(date: Date, endDate: Date): boolean {
|
|
782
|
+
date = this.fromString(date);
|
|
783
|
+
endDate = this.fromString(endDate);
|
|
784
|
+
return moment(date).isSameOrBefore(endDate);
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
public static isEqualBySeconds(date: Date, startDate: Date): boolean {
|
|
788
|
+
date = this.fromString(date);
|
|
789
|
+
startDate = this.fromString(startDate);
|
|
790
|
+
return moment(date).isSame(startDate, "seconds");
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
public static hasExpired(expirationDate: Date): boolean {
|
|
794
|
+
expirationDate = this.fromString(expirationDate);
|
|
795
|
+
return !moment(this.getCurrentDate()).isBefore(expirationDate);
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
public static isBefore(date: Date, endDate: Date): boolean {
|
|
799
|
+
date = this.fromString(date);
|
|
800
|
+
endDate = this.fromString(endDate);
|
|
801
|
+
return moment(date).isBefore(endDate);
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
public static getCurrentDateAsFormattedString(): string {
|
|
805
|
+
return this.getDateAsFormattedString(new Date());
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
public static getDateAsFormattedString(
|
|
809
|
+
date: string | Date,
|
|
810
|
+
onlyShowDate?: boolean,
|
|
811
|
+
): string {
|
|
812
|
+
date = this.fromString(date);
|
|
813
|
+
|
|
814
|
+
let formatstring: string = "MMM DD YYYY, HH:mm";
|
|
815
|
+
|
|
816
|
+
if (onlyShowDate) {
|
|
817
|
+
formatstring = "MMM DD, YYYY";
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
return (
|
|
821
|
+
moment(date).format(formatstring) +
|
|
822
|
+
" " +
|
|
823
|
+
(onlyShowDate ? "" : this.getCurrentTimezoneString())
|
|
824
|
+
);
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
public static getDifferenceInMinutes(date: Date, date2: Date): number {
|
|
828
|
+
date = this.fromString(date);
|
|
829
|
+
date2 = this.fromString(date2);
|
|
830
|
+
const minutes: number = moment(date).diff(moment(date2), "minutes");
|
|
831
|
+
|
|
832
|
+
if (minutes < 0) {
|
|
833
|
+
return minutes * -1;
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
return minutes;
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
public static convertMinutesToDaysHoursAndMinutes(minutes: number): string {
|
|
840
|
+
// 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.
|
|
841
|
+
|
|
842
|
+
const days: number = Math.floor(minutes / (24 * 60));
|
|
843
|
+
const hours: number = Math.floor((minutes % (24 * 60)) / 60);
|
|
844
|
+
const mins: number = minutes % 60;
|
|
845
|
+
|
|
846
|
+
let formattedString: string = "";
|
|
847
|
+
|
|
848
|
+
if (days > 0) {
|
|
849
|
+
formattedString += days + " days";
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
if (hours > 0) {
|
|
853
|
+
if (formattedString.length > 0) {
|
|
854
|
+
formattedString += ", ";
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
formattedString += hours + " hours";
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
if (mins >= 0) {
|
|
861
|
+
if (formattedString.length > 0) {
|
|
862
|
+
formattedString += ", ";
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
formattedString += mins + " minutes";
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
return formattedString;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
public static getDateAsFormattedArrayInMultipleTimezones(
|
|
872
|
+
date: string | Date,
|
|
873
|
+
onlyShowDate?: boolean,
|
|
874
|
+
): Array<string> {
|
|
875
|
+
date = this.fromString(date);
|
|
876
|
+
|
|
877
|
+
let formatstring: string = "MMM DD YYYY, HH:mm";
|
|
878
|
+
|
|
879
|
+
if (onlyShowDate) {
|
|
880
|
+
formatstring = "MMM DD, YYYY";
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
// convert this date into GMT, EST, PST, IST, ACT with moment
|
|
884
|
+
const timezoneDates: Array<string> = [];
|
|
885
|
+
|
|
886
|
+
timezoneDates.push(
|
|
887
|
+
moment(date).tz("UTC").format(formatstring) +
|
|
888
|
+
" " +
|
|
889
|
+
(onlyShowDate ? "" : "GMT"),
|
|
890
|
+
);
|
|
891
|
+
timezoneDates.push(
|
|
892
|
+
moment(date).tz("America/New_York").format(formatstring) +
|
|
893
|
+
" " +
|
|
894
|
+
(onlyShowDate ? "" : "EST"),
|
|
895
|
+
);
|
|
896
|
+
timezoneDates.push(
|
|
897
|
+
moment(date).tz("America/Los_Angeles").format(formatstring) +
|
|
898
|
+
" " +
|
|
899
|
+
(onlyShowDate ? "" : "PST"),
|
|
900
|
+
);
|
|
901
|
+
timezoneDates.push(
|
|
902
|
+
moment(date).tz("Asia/Kolkata").format(formatstring) +
|
|
903
|
+
" " +
|
|
904
|
+
(onlyShowDate ? "" : "IST"),
|
|
905
|
+
);
|
|
906
|
+
timezoneDates.push(
|
|
907
|
+
moment(date).tz("Australia/Sydney").format(formatstring) +
|
|
908
|
+
" " +
|
|
909
|
+
(onlyShowDate ? "" : "AEST"),
|
|
910
|
+
);
|
|
828
911
|
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
912
|
+
return timezoneDates;
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
public static getDateAsFormattedHTMLInMultipleTimezones(
|
|
916
|
+
date: string | Date,
|
|
917
|
+
onlyShowDate?: boolean,
|
|
918
|
+
): string {
|
|
919
|
+
return this.getDateAsFormattedArrayInMultipleTimezones(
|
|
920
|
+
date,
|
|
921
|
+
onlyShowDate,
|
|
922
|
+
).join("<br/>");
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
public static getDateAsFormattedStringInMultipleTimezones(
|
|
926
|
+
date: string | Date,
|
|
927
|
+
onlyShowDate?: boolean,
|
|
928
|
+
): string {
|
|
929
|
+
return this.getDateAsFormattedArrayInMultipleTimezones(
|
|
930
|
+
date,
|
|
931
|
+
onlyShowDate,
|
|
932
|
+
).join("\n");
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
public static getDateAsLocalFormattedString(
|
|
936
|
+
date: string | Date,
|
|
937
|
+
onlyShowDate?: boolean,
|
|
938
|
+
): string {
|
|
939
|
+
date = this.fromString(date);
|
|
940
|
+
|
|
941
|
+
let formatstring: string = "MMM DD YYYY, HH:mm";
|
|
942
|
+
|
|
943
|
+
if (onlyShowDate) {
|
|
944
|
+
formatstring = "MMM DD, YYYY";
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
const momentDate: moment.Moment = moment(date).local();
|
|
948
|
+
|
|
949
|
+
return (
|
|
950
|
+
momentDate.format(formatstring) +
|
|
951
|
+
" " +
|
|
952
|
+
(onlyShowDate ? "" : this.getCurrentTimezoneString())
|
|
953
|
+
).trim();
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
public static getDayInSeconds(days?: number | undefined): number {
|
|
957
|
+
if (!days) {
|
|
958
|
+
days = 1;
|
|
959
|
+
}
|
|
960
|
+
return 24 * 60 * 60 * days;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
public static getCurrentTimezoneString(): string {
|
|
964
|
+
return moment.tz(moment.tz.guess()).zoneAbbr();
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
public static getDateString(date: Date): string {
|
|
968
|
+
date = this.fromString(date);
|
|
969
|
+
return this.getDateAsLocalFormattedString(date, true);
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
public static isInThePast(date: string | Date): boolean {
|
|
973
|
+
date = this.fromString(date);
|
|
974
|
+
return moment(date).isBefore(new Date());
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
public static isInTheFuture(date: string | Date): boolean {
|
|
978
|
+
date = this.fromString(date);
|
|
979
|
+
return moment(date).isAfter(new Date());
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
public static fromString(date: string | JSONObject | Date): Date {
|
|
983
|
+
if (date instanceof Date) {
|
|
984
|
+
return date;
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
if (typeof date === "string") {
|
|
988
|
+
return moment(date).toDate();
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
if (
|
|
992
|
+
date &&
|
|
993
|
+
date["value"] &&
|
|
994
|
+
typeof date["value"] === "string" &&
|
|
995
|
+
date["_type"] &&
|
|
996
|
+
(date["_type"] === "Date" || date["_type"] === "DateTime")
|
|
997
|
+
) {
|
|
998
|
+
return moment(date["value"]).toDate();
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
throw new BadDataException("Invalid date");
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
public static asDateForDatabaseQuery(date: string | Date): string {
|
|
1005
|
+
date = this.fromString(date);
|
|
1006
|
+
const formatstring: string = "YYYY-MM-DD";
|
|
1007
|
+
return moment(date).local().format(formatstring);
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
public static asFilterDateForDatabaseQuery(date: string | Date): InBetween {
|
|
1011
|
+
date = this.fromString(date);
|
|
1012
|
+
const formattedDate: Date = moment(date).toDate();
|
|
1013
|
+
return new InBetween(
|
|
1014
|
+
OneUptimeDate.getStartOfDay(formattedDate),
|
|
1015
|
+
OneUptimeDate.getEndOfDay(formattedDate),
|
|
1016
|
+
);
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
public static getDateWithCustomTime(data: {
|
|
1020
|
+
hours: number;
|
|
1021
|
+
minutes: number;
|
|
1022
|
+
seconds: number;
|
|
1023
|
+
}): Date {
|
|
1024
|
+
const hour: number = data.hours;
|
|
1025
|
+
const minutes: number = data.minutes;
|
|
1026
|
+
const seconds: number = data.seconds;
|
|
832
1027
|
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
(onlyShowDate ? '' : this.getCurrentTimezoneString())
|
|
837
|
-
);
|
|
1028
|
+
//validate the hour
|
|
1029
|
+
if (hour < 0 || hour > 23) {
|
|
1030
|
+
throw new BadDataException("Invalid hour");
|
|
838
1031
|
}
|
|
839
1032
|
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
const minutes: number = moment(date).diff(moment(date2), 'minutes');
|
|
844
|
-
|
|
845
|
-
if (minutes < 0) {
|
|
846
|
-
return minutes * -1;
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
return minutes;
|
|
1033
|
+
//validate the minutes
|
|
1034
|
+
if (minutes < 0 || minutes > 59) {
|
|
1035
|
+
throw new BadDataException("Invalid minutes");
|
|
850
1036
|
}
|
|
851
1037
|
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
const days: number = Math.floor(minutes / (24 * 60));
|
|
856
|
-
const hours: number = Math.floor((minutes % (24 * 60)) / 60);
|
|
857
|
-
const mins: number = minutes % 60;
|
|
858
|
-
|
|
859
|
-
let formattedString: string = '';
|
|
860
|
-
|
|
861
|
-
if (days > 0) {
|
|
862
|
-
formattedString += days + ' days';
|
|
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;
|
|
1038
|
+
//validate the seconds
|
|
1039
|
+
if (seconds < 0 || seconds > 59) {
|
|
1040
|
+
throw new BadDataException("Invalid seconds");
|
|
882
1041
|
}
|
|
883
1042
|
|
|
884
|
-
|
|
885
|
-
date: string | Date,
|
|
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
|
-
}
|
|
1043
|
+
const date: Date = OneUptimeDate.getCurrentDate();
|
|
927
1044
|
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
): string {
|
|
932
|
-
return this.getDateAsFormattedArrayInMultipleTimezones(
|
|
933
|
-
date,
|
|
934
|
-
onlyShowDate
|
|
935
|
-
).join('<br/>');
|
|
936
|
-
}
|
|
1045
|
+
date.setHours(hour);
|
|
1046
|
+
date.setMinutes(minutes);
|
|
1047
|
+
date.setSeconds(seconds);
|
|
937
1048
|
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
onlyShowDate?: boolean
|
|
941
|
-
): string {
|
|
942
|
-
return this.getDateAsFormattedArrayInMultipleTimezones(
|
|
943
|
-
date,
|
|
944
|
-
onlyShowDate
|
|
945
|
-
).join('\n');
|
|
946
|
-
}
|
|
1049
|
+
return date;
|
|
1050
|
+
}
|
|
947
1051
|
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
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();
|
|
961
|
-
|
|
962
|
-
return (
|
|
963
|
-
momentDate.format(formatstring) +
|
|
964
|
-
' ' +
|
|
965
|
-
(onlyShowDate ? '' : this.getCurrentTimezoneString())
|
|
966
|
-
).trim();
|
|
967
|
-
}
|
|
968
|
-
|
|
969
|
-
public static getDayInSeconds(days?: number | undefined): number {
|
|
970
|
-
if (!days) {
|
|
971
|
-
days = 1;
|
|
972
|
-
}
|
|
973
|
-
return 24 * 60 * 60 * days;
|
|
974
|
-
}
|
|
975
|
-
|
|
976
|
-
public static getCurrentTimezoneString(): string {
|
|
977
|
-
return moment.tz(moment.tz.guess()).zoneAbbr();
|
|
978
|
-
}
|
|
979
|
-
|
|
980
|
-
public static getDateString(date: Date): string {
|
|
981
|
-
date = this.fromString(date);
|
|
982
|
-
return this.getDateAsLocalFormattedString(date, true);
|
|
983
|
-
}
|
|
984
|
-
|
|
985
|
-
public static isInThePast(date: string | Date): boolean {
|
|
986
|
-
date = this.fromString(date);
|
|
987
|
-
return moment(date).isBefore(new Date());
|
|
988
|
-
}
|
|
989
|
-
|
|
990
|
-
public static isInTheFuture(date: string | Date): boolean {
|
|
991
|
-
date = this.fromString(date);
|
|
992
|
-
return moment(date).isAfter(new Date());
|
|
993
|
-
}
|
|
994
|
-
|
|
995
|
-
public static fromString(date: string | JSONObject | Date): Date {
|
|
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
|
-
}
|
|
1016
|
-
|
|
1017
|
-
public static asDateForDatabaseQuery(date: string | Date): string {
|
|
1018
|
-
date = this.fromString(date);
|
|
1019
|
-
const formatstring: string = 'YYYY-MM-DD';
|
|
1020
|
-
return moment(date).local().format(formatstring);
|
|
1021
|
-
}
|
|
1022
|
-
|
|
1023
|
-
public static asFilterDateForDatabaseQuery(date: string | Date): InBetween {
|
|
1024
|
-
date = this.fromString(date);
|
|
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
|
-
}
|
|
1064
|
-
|
|
1065
|
-
public static toDatabaseDate(date: Date): string {
|
|
1066
|
-
date = this.fromString(date);
|
|
1067
|
-
return moment(date).format('YYYY-MM-DD HH:mm:ss');
|
|
1068
|
-
}
|
|
1052
|
+
public static toDatabaseDate(date: Date): string {
|
|
1053
|
+
date = this.fromString(date);
|
|
1054
|
+
return moment(date).format("YYYY-MM-DD HH:mm:ss");
|
|
1055
|
+
}
|
|
1069
1056
|
}
|