@futdevpro/fsm-dynamo 1.15.17 → 1.15.20
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/.cursor/rules/__assistant_guide.mdc +30 -30
- package/.cursor/rules/_ag_backend-structure.mdc +85 -85
- package/.cursor/rules/_ag_backend.mdc +16 -16
- package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
- package/.cursor/rules/_ag_frontend.mdc +39 -39
- package/.cursor/rules/_ag_import-rules.mdc +44 -44
- package/.cursor/rules/_ag_naming.mdc +115 -115
- package/.cursor/rules/_ag_should-be.mdc +6 -6
- package/.cursor/rules/ai_development_guide.md +60 -60
- package/.cursor/rules/cursor-rules.md +160 -160
- package/.cursor/rules/default-command.mdc +464 -464
- package/.cursor/rules/error_code_pattern.md +39 -39
- package/.cursor/rules/saved rule mcp server use.md +15 -15
- package/.dynamo/pipeline.cicd.config.json +128 -128
- package/.github/workflows/main.yml +433 -433
- package/.vscode/settings.json +11 -11
- package/LICENSE +21 -21
- package/__documentations/2026-06-01-fr047-fc-foundation.md +48 -0
- package/build/_models/data-models/errors.data-model.d.ts +43 -0
- package/build/_models/data-models/errors.data-model.d.ts.map +1 -1
- package/build/_models/data-models/errors.data-model.js +30 -0
- package/build/_models/data-models/errors.data-model.js.map +1 -1
- package/build/_modules/ai/_models/ai-model-capabilities.interface.d.ts +8 -0
- package/build/_modules/ai/_models/ai-model-capabilities.interface.d.ts.map +1 -1
- package/build/_modules/ai/_modules/anthropic/_collections/aai-models.const.d.ts.map +1 -1
- package/build/_modules/ai/_modules/anthropic/_collections/aai-models.const.js +3 -0
- package/build/_modules/ai/_modules/anthropic/_collections/aai-models.const.js.map +1 -1
- package/build/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.d.ts.map +1 -1
- package/build/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.js +1 -0
- package/build/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.js.map +1 -1
- package/build/_modules/ai/_modules/google-ai/_collections/gai-models.const.d.ts.map +1 -1
- package/build/_modules/ai/_modules/google-ai/_collections/gai-models.const.js +4 -0
- package/build/_modules/ai/_modules/google-ai/_collections/gai-models.const.js.map +1 -1
- package/build/_modules/ai/_modules/local-ai/_collections/lai-models.const.d.ts.map +1 -1
- package/build/_modules/ai/_modules/local-ai/_collections/lai-models.const.js +2 -0
- package/build/_modules/ai/_modules/local-ai/_collections/lai-models.const.js.map +1 -1
- package/build/_modules/ai/_modules/open-ai/_collections/oai-models.const.d.ts.map +1 -1
- package/build/_modules/ai/_modules/open-ai/_collections/oai-models.const.js +11 -0
- package/build/_modules/ai/_modules/open-ai/_collections/oai-models.const.js.map +1 -1
- package/build/_modules/socket/_models/sck-socket-event.control-model.js +1 -1
- package/eslint.config.js +4 -4
- package/nodemon.json +22 -22
- package/package.json +11 -11
- package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
- package/scripts/crypto/README.md +113 -113
- package/scripts/crypto/demo-crypto-stability.js +120 -120
- package/scripts/crypto/stress-test-crypto.js +379 -379
- package/scripts/run-coverage-tests.js +24 -24
- package/spec/support/helpers/ts-node-helper.js +9 -9
- package/spec/support/jasmine.coverage.json +23 -23
- package/spec/support/jasmine.json +24 -24
- package/src/_collections/constants/data-sizes.const.ts +40 -40
- package/src/_collections/constants/error-defaults.const.ts +20 -20
- package/src/_collections/constants/global-settings.const.ts +24 -24
- package/src/_collections/constants/numbers.const.ts +40 -40
- package/src/_collections/constants/times.const.ts +45 -45
- package/src/_collections/utils/array.util.spec.ts +306 -306
- package/src/_collections/utils/array.util.ts +813 -813
- package/src/_collections/utils/async.util.spec.ts +354 -354
- package/src/_collections/utils/async.util.ts +197 -197
- package/src/_collections/utils/data.util.spec.ts +345 -345
- package/src/_collections/utils/data.util.ts +226 -226
- package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
- package/src/_collections/utils/json-error-helper.util.ts +301 -301
- package/src/_collections/utils/log.util.spec.ts +975 -975
- package/src/_collections/utils/log.util.ts +665 -665
- package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
- package/src/_collections/utils/math/box-bounds.util.ts +183 -183
- package/src/_collections/utils/math/math.util.spec.ts +94 -94
- package/src/_collections/utils/math/math.util.ts +141 -141
- package/src/_collections/utils/math/random.util.spec.ts +82 -82
- package/src/_collections/utils/math/random.util.ts +139 -139
- package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
- package/src/_collections/utils/math/trigonometry.util.ts +102 -102
- package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
- package/src/_collections/utils/math/vector2.util.ts +653 -653
- package/src/_collections/utils/object.util.spec.ts +646 -646
- package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
- package/src/_collections/utils/regex/password-regex.util.ts +65 -65
- package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
- package/src/_collections/utils/regex/regex.util.ts +6 -6
- package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
- package/src/_collections/utils/regex/username-regex.util.ts +35 -35
- package/src/_collections/utils/round-list.util.spec.ts +79 -79
- package/src/_collections/utils/round-list.util.ts +162 -162
- package/src/_collections/utils/stack.util.spec.ts +372 -372
- package/src/_collections/utils/stack.util.ts +164 -164
- package/src/_collections/utils/string-case.util.spec.ts +441 -441
- package/src/_collections/utils/string-case.util.ts +362 -362
- package/src/_collections/utils/string.util.spec.ts +975 -975
- package/src/_collections/utils/string.util.ts +449 -449
- package/src/_collections/utils/time.util.spec.ts +50 -50
- package/src/_collections/utils/time.util.ts +481 -481
- package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
- package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
- package/src/_collections/utils/utilities.util.spec.ts +201 -201
- package/src/_collections/utils/utilities.util.ts +68 -68
- package/src/_collections/utils/uuid.util.spec.ts +30 -30
- package/src/_collections/utils/uuid.util.ts +50 -50
- package/src/_enums/basic-property-type.enum.ts +20 -20
- package/src/_enums/data-model-type.enum.ts +29 -29
- package/src/_enums/environment-flag.enum.ts +28 -28
- package/src/_enums/error-level.enum.ts +28 -28
- package/src/_enums/http/http-call-type.enum.ts +43 -43
- package/src/_enums/http/http-event-type.enum.ts +40 -40
- package/src/_enums/http/http-response-type.enum.ts +18 -18
- package/src/_enums/log-style.enum.ts +44 -44
- package/src/_enums/server-connection-status.enum.ts +6 -6
- package/src/_enums/time/day-of-week.enum.ts +55 -55
- package/src/_enums/time/month.enum.ts +25 -25
- package/src/_enums/time/relative-date.enum.ts +24 -24
- package/src/_models/control-models/data-model-params.control-model.spec.ts +85 -85
- package/src/_models/control-models/data-model-params.control-model.ts +300 -300
- package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
- package/src/_models/control-models/data-property-params.control-model.ts +201 -201
- package/src/_models/control-models/error.control-model.spec.ts +912 -912
- package/src/_models/control-models/error.control-model.ts +1215 -1215
- package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
- package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
- package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
- package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
- package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
- package/src/_models/control-models/http/http-response.model-base.ts +57 -57
- package/src/_models/control-models/poll.control-model.spec.ts +63 -63
- package/src/_models/control-models/poll.control-model.ts +151 -151
- package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
- package/src/_models/control-models/range-value.control-model.ts +289 -289
- package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
- package/src/_models/control-models/server-status.control-model.ts +85 -85
- package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
- package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
- package/src/_models/data-models/errors.data-model.spec.ts +71 -71
- package/src/_models/data-models/errors.data-model.ts +148 -91
- package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
- package/src/_models/data-models/metadata.data-model.ts +128 -128
- package/src/_models/interfaces/box-bounds.interface.ts +7 -7
- package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
- package/src/_models/interfaces/environment/global-settings.interface.ts +47 -47
- package/src/_models/interfaces/error-defaults.interface.ts +11 -11
- package/src/_models/interfaces/paged.interface.ts +12 -12
- package/src/_models/interfaces/random-weight.interface.ts +7 -7
- package/src/_models/interfaces/route-settings.interface.ts +15 -15
- package/src/_models/interfaces/search-query.interface.ts +23 -23
- package/src/_models/interfaces/search-result.interface.ts +5 -5
- package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
- package/src/_models/interfaces/vector2.interface.ts +20 -20
- package/src/_models/types/db-filter.type.ts +110 -110
- package/src/_models/types/db-sort.type.ts +4 -4
- package/src/_models/types/ds-filter.type.ts +68 -68
- package/src/_models/types/ds-sort.type.ts +21 -21
- package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
- package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
- package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
- package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
- package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
- package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
- package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
- package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
- package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
- package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
- package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
- package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
- package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -27
- package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
- package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
- package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
- package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
- package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
- package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
- package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
- package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
- package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
- package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +81 -78
- package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
- package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
- package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
- package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
- package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
- package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
- package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
- package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
- package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
- package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +34 -33
- package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
- package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
- package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
- package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +99 -95
- package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
- package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
- package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
- package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
- package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
- package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
- package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +53 -51
- package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
- package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
- package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
- package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
- package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
- package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
- package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +252 -241
- package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
- package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
- package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
- package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
- package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
- package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
- package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
- package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
- package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
- package/src/_modules/ai/index.ts +27 -27
- package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
- package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
- package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
- package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
- package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
- package/src/_modules/ci-tools/index.ts +8 -8
- package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
- package/src/_modules/crypto/index.ts +13 -13
- package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
- package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
- package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
- package/src/_modules/custom-data/index.ts +10 -10
- package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
- package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
- package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +445 -445
- package/src/_modules/data-handler/_models/data-handler.control-model.ts +459 -459
- package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
- package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
- package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
- package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
- package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
- package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
- package/src/_modules/data-handler/index.ts +6 -6
- package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
- package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
- package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
- package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
- package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
- package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
- package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
- package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
- package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
- package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
- package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
- package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
- package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
- package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
- package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
- package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
- package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
- package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
- package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
- package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
- package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
- package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
- package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
- package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
- package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
- package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
- package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
- package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
- package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
- package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
- package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
- package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
- package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
- package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
- package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
- package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
- package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
- package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
- package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
- package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
- package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
- package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
- package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
- package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
- package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
- package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
- package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
- package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
- package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
- package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
- package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
- package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
- package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
- package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
- package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
- package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
- package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
- package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
- package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
- package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
- package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
- package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
- package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
- package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
- package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
- package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
- package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
- package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
- package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
- package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
- package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
- package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
- package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
- package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
- package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
- package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
- package/src/_modules/location/_collections/loc.util.ts +74 -74
- package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
- package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
- package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
- package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
- package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
- package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
- package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
- package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
- package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
- package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
- package/src/_modules/location/index.ts +22 -22
- package/src/_modules/messaging/README.md +279 -279
- package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
- package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
- package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
- package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
- package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
- package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
- package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
- package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
- package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
- package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
- package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
- package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
- package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
- package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
- package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
- package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
- package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
- package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
- package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
- package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
- package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
- package/src/_modules/messaging/_modules/agent/index.ts +8 -8
- package/src/_modules/messaging/index.ts +28 -28
- package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
- package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
- package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
- package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
- package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
- package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
- package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
- package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
- package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
- package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
- package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
- package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
- package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
- package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
- package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
- package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
- package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
- package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
- package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
- package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
- package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
- package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
- package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
- package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
- package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
- package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
- package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
- package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
- package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
- package/src/_modules/pipe/index.ts +30 -30
- package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
- package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
- package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
- package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +66 -66
- package/src/_modules/socket/_models/sck-socket-event.control-model.ts +172 -172
- package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
- package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
- package/src/_modules/socket/index.ts +14 -14
- package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
- package/src/_modules/test/index.ts +5 -5
- package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
- package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
- package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
- package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
- package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
- package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
- package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
- package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
- package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
- package/src/_modules/usage/index.ts +11 -11
- package/src/index.ts +102 -102
- package/tsconfig.app.json +12 -12
- package/tsconfig.json +31 -31
- package/tsconfig.test.json +16 -16
- package/tslint.json +153 -153
- package/pipeline.cicd.config.json +0 -128
|
@@ -1,481 +1,481 @@
|
|
|
1
|
-
|
|
2
|
-
import { day, hour, minute, month, second, week, year } from '../constants/times.const';
|
|
3
|
-
import { DyFM_Month } from '../../_enums/time/month.enum';
|
|
4
|
-
import { DyFM_DayOfWeek } from '../../_enums/time/day-of-week.enum';
|
|
5
|
-
import { DyFM_RelativeDate } from '../../_enums/time/relative-date.enum';
|
|
6
|
-
import { DyFM_Math } from './math/math.util';
|
|
7
|
-
|
|
8
|
-
/* export type DyFM_T = DyFM_Time; */
|
|
9
|
-
/**
|
|
10
|
-
* Time utility class
|
|
11
|
-
*/
|
|
12
|
-
export class DyFM_Time {
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* The number of milliseconds in a second
|
|
16
|
-
*/
|
|
17
|
-
static readonly second = second;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* The number of milliseconds in a minute
|
|
21
|
-
*/
|
|
22
|
-
static readonly minute = minute;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* The number of milliseconds in an hour
|
|
26
|
-
*/
|
|
27
|
-
static readonly hour = hour;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* The number of milliseconds in a day
|
|
31
|
-
*/
|
|
32
|
-
static readonly day = day;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* The number of milliseconds in a week
|
|
36
|
-
*/
|
|
37
|
-
static readonly week = week;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* The number of milliseconds in a month
|
|
41
|
-
*/
|
|
42
|
-
static readonly month = month;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* The number of milliseconds in a year
|
|
46
|
-
*/
|
|
47
|
-
static readonly year = year;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Get the age of a person
|
|
51
|
-
* @param birthDate - The birth date of the person
|
|
52
|
-
* @returns The age of the person
|
|
53
|
-
*
|
|
54
|
-
* @example
|
|
55
|
-
* ```ts
|
|
56
|
-
* const birthDate = new Date('1990-01-01');
|
|
57
|
-
* const age = DyFM_Time.getAge(birthDate);
|
|
58
|
-
* console.log(age); // 31
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
static getAge(birthDate: Date | number | string): number {
|
|
62
|
-
return this.getYear(+new Date() - +new Date(birthDate));
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* returns the date as a number of years
|
|
67
|
-
* @param date
|
|
68
|
-
* @returns
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* ```ts
|
|
72
|
-
* const date = new Date('2025-01-01');
|
|
73
|
-
* const year = DyFM_Time.getYear(date);
|
|
74
|
-
* console.log(year); // 2025
|
|
75
|
-
* ```
|
|
76
|
-
*/
|
|
77
|
-
static getYear(date: Date | number | string): number {
|
|
78
|
-
if (typeof date === 'string') {
|
|
79
|
-
date = new Date(date);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return (+date / year);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* returns the date as a number of hours
|
|
87
|
-
* @param date
|
|
88
|
-
* @returns
|
|
89
|
-
*
|
|
90
|
-
* @example
|
|
91
|
-
* ```ts
|
|
92
|
-
* const date = new Date('2025-01-01');
|
|
93
|
-
* const hour = DyFM_Time.getHour(date);
|
|
94
|
-
* console.log(hour); // 1
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
static getHour(date: Date | number | string): number {
|
|
98
|
-
if (typeof date === 'string') {
|
|
99
|
-
date = new Date(date);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return (+date / hour);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* calculates the birthdate from the age
|
|
107
|
-
* (with current date so this wont be accurate for days or months, only years)
|
|
108
|
-
* @param date
|
|
109
|
-
* @returns
|
|
110
|
-
*
|
|
111
|
-
* @example
|
|
112
|
-
* ```ts
|
|
113
|
-
* const age = 31;
|
|
114
|
-
* const date = DyFM_Time.getDateByAge(age);
|
|
115
|
-
* console.log(date); // 1990-01-01
|
|
116
|
-
* ```
|
|
117
|
-
*/
|
|
118
|
-
static getDateByAge(age: number): Date {
|
|
119
|
-
return new Date(+new Date() - (year * age));
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* returns the date x before the current date
|
|
124
|
-
* @param relativeDate
|
|
125
|
-
* @returns
|
|
126
|
-
*
|
|
127
|
-
* @example
|
|
128
|
-
* ```ts
|
|
129
|
-
* const date = DyFM_Time.getDateByRelativeDate(DyFM_RelativeDate.lastDay);
|
|
130
|
-
* ```
|
|
131
|
-
*/
|
|
132
|
-
static getDateByRelativeDate(
|
|
133
|
-
relativeDate: DyFM_RelativeDate,
|
|
134
|
-
comparedTo?: Date
|
|
135
|
-
): Date {
|
|
136
|
-
switch (relativeDate) {
|
|
137
|
-
case DyFM_RelativeDate.lastDay:
|
|
138
|
-
return this.oneDayAgo(comparedTo);
|
|
139
|
-
|
|
140
|
-
case DyFM_RelativeDate.lastWeek:
|
|
141
|
-
return this.oneWeekAgo(comparedTo);
|
|
142
|
-
|
|
143
|
-
case DyFM_RelativeDate.lastMonth:
|
|
144
|
-
return this.oneMonthAgo(comparedTo);
|
|
145
|
-
|
|
146
|
-
case DyFM_RelativeDate.lastYear:
|
|
147
|
-
return this.oneYearAgo(comparedTo);
|
|
148
|
-
|
|
149
|
-
case DyFM_RelativeDate.last10Years:
|
|
150
|
-
return this.tenYearsAgo(comparedTo);
|
|
151
|
-
|
|
152
|
-
case DyFM_RelativeDate.allTime:
|
|
153
|
-
return new Date(0);
|
|
154
|
-
|
|
155
|
-
default:
|
|
156
|
-
return new Date(0);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* returns the date one hour ago
|
|
162
|
-
* @returns
|
|
163
|
-
*
|
|
164
|
-
* @example
|
|
165
|
-
* ```ts
|
|
166
|
-
* const comparedTo = new Date('2025-01-01');
|
|
167
|
-
* const date = DyFM_Time.oneHourAgo(comparedTo);
|
|
168
|
-
* console.log(date); // 2024-12-31 23:00:00
|
|
169
|
-
* ```
|
|
170
|
-
*/
|
|
171
|
-
static oneHourAgo(comparedTo: Date = new Date()): Date {
|
|
172
|
-
return new Date(+comparedTo - hour);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* returns the date one day ago
|
|
177
|
-
* @returns
|
|
178
|
-
*
|
|
179
|
-
* @example
|
|
180
|
-
* ```ts
|
|
181
|
-
* const comparedTo = new Date('2025-01-01');
|
|
182
|
-
* const date = DyFM_Time.oneDayAgo(comparedTo);
|
|
183
|
-
* console.log(date); // 2024-12-31
|
|
184
|
-
* ```
|
|
185
|
-
*/
|
|
186
|
-
static oneDayAgo(comparedTo: Date = new Date()): Date {
|
|
187
|
-
return new Date(+comparedTo - day);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* returns the date one week ago
|
|
192
|
-
* @returns
|
|
193
|
-
*
|
|
194
|
-
* @example
|
|
195
|
-
* ```ts
|
|
196
|
-
* const comparedTo = new Date('2025-01-01');
|
|
197
|
-
* const date = DyFM_Time.oneWeekAgo(comparedTo);
|
|
198
|
-
* console.log(date); // 2024-12-25
|
|
199
|
-
* ```
|
|
200
|
-
*/
|
|
201
|
-
static oneWeekAgo(comparedTo: Date = new Date()): Date {
|
|
202
|
-
return new Date(+comparedTo - week);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* returns the date one month ago
|
|
207
|
-
* @returns
|
|
208
|
-
*
|
|
209
|
-
* @example
|
|
210
|
-
* ```ts
|
|
211
|
-
* const comparedTo = new Date('2025-01-01');
|
|
212
|
-
* const date = DyFM_Time.oneMonthAgo(comparedTo);
|
|
213
|
-
* console.log(date); // 2024-12-01
|
|
214
|
-
* ```
|
|
215
|
-
*/
|
|
216
|
-
static oneMonthAgo(comparedTo: Date = new Date()): Date {
|
|
217
|
-
return new Date(+comparedTo - month);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* returns the date one year ago
|
|
222
|
-
* @returns
|
|
223
|
-
*
|
|
224
|
-
* @example
|
|
225
|
-
* ```ts
|
|
226
|
-
* const comparedTo = new Date('2025-01-01');
|
|
227
|
-
* const date = DyFM_Time.oneYearAgo(comparedTo);
|
|
228
|
-
* console.log(date); // 2024-01-01
|
|
229
|
-
* ```
|
|
230
|
-
*/
|
|
231
|
-
static oneYearAgo(comparedTo: Date = new Date()): Date {
|
|
232
|
-
return new Date(+comparedTo - year);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* returns the date ten years ago
|
|
237
|
-
* @returns
|
|
238
|
-
*
|
|
239
|
-
* @example
|
|
240
|
-
* ```ts
|
|
241
|
-
* const comparedTo = new Date('2025-01-01');
|
|
242
|
-
* const date = DyFM_Time.tenYearsAgo(comparedTo);
|
|
243
|
-
* console.log(date); // 2015-01-01
|
|
244
|
-
* ```
|
|
245
|
-
*/
|
|
246
|
-
static tenYearsAgo(comparedTo: Date = new Date()): Date {
|
|
247
|
-
return new Date(+comparedTo - (10 * year));
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
/**
|
|
251
|
-
* returns the DyFM_DayOfWeek type of the current day
|
|
252
|
-
* @returns
|
|
253
|
-
*
|
|
254
|
-
* @example
|
|
255
|
-
* ```ts
|
|
256
|
-
* const today = DyFM_Time.getTodayOfWeek();
|
|
257
|
-
* console.log(today); // DyFM_DayOfWeek.monday
|
|
258
|
-
* ```
|
|
259
|
-
*/
|
|
260
|
-
static getTodayOfWeek(): DyFM_DayOfWeek {
|
|
261
|
-
return DyFM_DayOfWeek[
|
|
262
|
-
new Date().toLocaleString('en-us', { weekday: 'long' }).toLocaleLowerCase() as keyof typeof DyFM_DayOfWeek
|
|
263
|
-
];
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* returns the days of the week from today to the end of the week in DyFM_DayOfWeek format
|
|
268
|
-
* @returns
|
|
269
|
-
*
|
|
270
|
-
* @example
|
|
271
|
-
* ```ts
|
|
272
|
-
* const daysOfWeek = DyFM_Time.getDaysOfWeekFromToday();
|
|
273
|
-
* console.log(daysOfWeek); // [ DyFM_DayOfWeek.monday, DyFM_DayOfWeek.tuesday, DyFM_DayOfWeek.wednesday, DyFM_DayOfWeek.thursday, DyFM_DayOfWeek.friday, DyFM_DayOfWeek.saturday, DyFM_DayOfWeek.sunday ]
|
|
274
|
-
* ```
|
|
275
|
-
*/
|
|
276
|
-
static getDaysOfWeekFromToday(): DyFM_DayOfWeek[] {
|
|
277
|
-
const today: DyFM_DayOfWeek = this.getTodayOfWeek();
|
|
278
|
-
const daysOfWeek: DyFM_DayOfWeek[] = Object.values(DyFM_DayOfWeek);
|
|
279
|
-
const todayIndex: number = daysOfWeek.indexOf(today);
|
|
280
|
-
|
|
281
|
-
return daysOfWeek.slice(todayIndex).concat(daysOfWeek.slice(0, todayIndex));
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* returns the days of the week to today to the end of the week in DyFM_DayOfWeek format
|
|
286
|
-
* @returns
|
|
287
|
-
*
|
|
288
|
-
* @example
|
|
289
|
-
* ```ts
|
|
290
|
-
* const daysOfWeek = DyFM_Time.getDaysOfWeekToToday();
|
|
291
|
-
* console.log(daysOfWeek); // [ DyFM_DayOfWeek.sunday, DyFM_DayOfWeek.saturday, DyFM_DayOfWeek.friday, DyFM_DayOfWeek.thursday, DyFM_DayOfWeek.wednesday, DyFM_DayOfWeek.tuesday, DyFM_DayOfWeek.monday ]
|
|
292
|
-
* ```
|
|
293
|
-
*/
|
|
294
|
-
static getDaysOfWeekToToday(): DyFM_DayOfWeek[] {
|
|
295
|
-
const today: DyFM_DayOfWeek = this.getTodayOfWeek();
|
|
296
|
-
const daysOfWeek: DyFM_DayOfWeek[] = Object.values(DyFM_DayOfWeek);
|
|
297
|
-
const todayIndex: number = daysOfWeek.indexOf(today);
|
|
298
|
-
|
|
299
|
-
return daysOfWeek.slice(0, todayIndex).reverse().concat(daysOfWeek.slice(todayIndex).reverse());
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
/**
|
|
303
|
-
* returns the DyFM_Month type of the current month
|
|
304
|
-
* @returns
|
|
305
|
-
*
|
|
306
|
-
* @example
|
|
307
|
-
* ```ts
|
|
308
|
-
* const month = DyFM_Time.getCurrentMonth();
|
|
309
|
-
* console.log(month); // DyFM_Month.january
|
|
310
|
-
* ```
|
|
311
|
-
*/
|
|
312
|
-
static getCurrentMonth(): DyFM_Month {
|
|
313
|
-
return DyFM_Month[
|
|
314
|
-
new Date().toLocaleString('en-us', { month: 'long' }).toLocaleLowerCase() as keyof typeof DyFM_Month
|
|
315
|
-
];
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* returns the number of days in the month
|
|
320
|
-
* @param inYear this value is important for february if you want to know if it is a leap year
|
|
321
|
-
* @returns
|
|
322
|
-
*
|
|
323
|
-
* @example
|
|
324
|
-
* ```ts
|
|
325
|
-
* const monthLength = DyFM_Time.getMonthLength(DyFM_Month.january);
|
|
326
|
-
* console.log(monthLength); // 31
|
|
327
|
-
* ```
|
|
328
|
-
*/
|
|
329
|
-
static getMonthLength(month: DyFM_Month, inYear?: number): number {
|
|
330
|
-
switch (month) {
|
|
331
|
-
case DyFM_Month.january:
|
|
332
|
-
case DyFM_Month.march:
|
|
333
|
-
case DyFM_Month.may:
|
|
334
|
-
case DyFM_Month.june:
|
|
335
|
-
case DyFM_Month.august:
|
|
336
|
-
case DyFM_Month.october:
|
|
337
|
-
return 31;
|
|
338
|
-
|
|
339
|
-
case DyFM_Month.april:
|
|
340
|
-
case DyFM_Month.july:
|
|
341
|
-
case DyFM_Month.september:
|
|
342
|
-
case DyFM_Month.november:
|
|
343
|
-
case DyFM_Month.december:
|
|
344
|
-
return 30;
|
|
345
|
-
|
|
346
|
-
case DyFM_Month.february:
|
|
347
|
-
return this.isLeapYear(inYear ?? new Date().getFullYear()) ? 29 : 28;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* returns year is leap or not
|
|
353
|
-
* @param year
|
|
354
|
-
* @returns
|
|
355
|
-
*
|
|
356
|
-
* @example
|
|
357
|
-
* ```ts
|
|
358
|
-
* const isLeapYear = DyFM_Time.isLeapYear(2024);
|
|
359
|
-
* console.log(isLeapYear); // true
|
|
360
|
-
* ```
|
|
361
|
-
*/
|
|
362
|
-
static isLeapYear(year: number): boolean {
|
|
363
|
-
return year % 4 === 0;
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
/**
|
|
367
|
-
* returns the duration string
|
|
368
|
-
* @param duration
|
|
369
|
-
* @param full
|
|
370
|
-
* @returns
|
|
371
|
-
*
|
|
372
|
-
* @example
|
|
373
|
-
* ```ts
|
|
374
|
-
* const duration = 1000;
|
|
375
|
-
* const durationString = DyFM_Time.getDurationString(duration);
|
|
376
|
-
* console.log(durationString); // 1s
|
|
377
|
-
* ```
|
|
378
|
-
*/
|
|
379
|
-
static getDurationString(duration: number, full?: boolean): string {
|
|
380
|
-
// Ha 0ms az idő, akkor rögtön visszaadjuk
|
|
381
|
-
if (duration === 0) {
|
|
382
|
-
return '0ms';
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
if (!duration) {
|
|
386
|
-
return 'N/A';
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
// Nagyon rövid idő: < 100ms → ms-ben mutatjuk
|
|
390
|
-
if (duration < (second / 10)) {
|
|
391
|
-
return `${duration}ms`;
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
// < 1s → másodperc két tizedesjeggyel (jobb olvashatóság)
|
|
395
|
-
if (duration < second) {
|
|
396
|
-
return `${DyFM_Math.round(duration / second, 2)}s`;
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
// < 1m → csak másodperc (és opcionálisan ms, ha full=true)
|
|
400
|
-
if (duration < minute) {
|
|
401
|
-
const secondsWhole: number = DyFM_Math.round(duration / second, 0);
|
|
402
|
-
if (full) {
|
|
403
|
-
const remainingMs: number = duration % second;
|
|
404
|
-
return `${secondsWhole}s ${remainingMs}ms`;
|
|
405
|
-
}
|
|
406
|
-
return `${secondsWhole}s`;
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
// < 1h → perc + másodperc (helyes egység-átváltással)
|
|
410
|
-
if (duration < hour) {
|
|
411
|
-
const minutesWhole: number = DyFM_Math.round(duration / minute, 0);
|
|
412
|
-
const remainingSeconds: number = DyFM_Math.round((duration % minute) / second, 0);
|
|
413
|
-
return `${minutesWhole}m ${remainingSeconds}s`;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
// < 1d → óra + perc
|
|
417
|
-
if (duration < day) {
|
|
418
|
-
const hoursWhole: number = DyFM_Math.round(duration / hour, 0);
|
|
419
|
-
const remainingMinutes: number = DyFM_Math.round((duration % hour) / minute, 0);
|
|
420
|
-
return `${hoursWhole}h ${remainingMinutes}m`;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
// < 1w → nap + óra
|
|
424
|
-
if (duration < week) {
|
|
425
|
-
const daysWhole: number = DyFM_Math.round(duration / day, 0);
|
|
426
|
-
const remainingHours: number = DyFM_Math.round((duration % day) / hour, 0);
|
|
427
|
-
return `${daysWhole}d ${remainingHours}h`;
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
// < 1 month → hét + nap
|
|
431
|
-
if (duration < month) {
|
|
432
|
-
const weeksWhole: number = DyFM_Math.round(duration / week, 0);
|
|
433
|
-
const remainingDays: number = DyFM_Math.round((duration % week) / day, 0);
|
|
434
|
-
return `${weeksWhole}w ${remainingDays}d`;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
// < 1y → month + hét
|
|
438
|
-
if (duration < year) {
|
|
439
|
-
const monthsWhole: number = DyFM_Math.round(duration / month, 0);
|
|
440
|
-
const remainingWeeks: number = DyFM_Math.round((duration % month) / week, 0);
|
|
441
|
-
return `${monthsWhole}m ${remainingWeeks}w`;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
// ≥ 1y → év + hónap
|
|
445
|
-
const yearsWhole: number = DyFM_Math.round(duration / year, 0);
|
|
446
|
-
const remainingMonths: number = DyFM_Math.round((duration % year) / month, 0);
|
|
447
|
-
return `${yearsWhole}y ${remainingMonths}m`;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
/**
|
|
451
|
-
* returns the time in the shortest string
|
|
452
|
-
* @param time
|
|
453
|
-
* @returns
|
|
454
|
-
*
|
|
455
|
-
* @example
|
|
456
|
-
* ```ts
|
|
457
|
-
* const time = 345;
|
|
458
|
-
* const timeString = DyFM_Time.getTimeInShortestString(time);
|
|
459
|
-
* console.log(timeString); // 345ms
|
|
460
|
-
* ```
|
|
461
|
-
*/
|
|
462
|
-
static getTimeInShortestString(time: number): string {
|
|
463
|
-
if (time % year === 0) {
|
|
464
|
-
return `${time / year}y`;
|
|
465
|
-
} else if (time % month === 0) {
|
|
466
|
-
return `${time / month}m`;
|
|
467
|
-
} else if (time % week === 0) {
|
|
468
|
-
return `${time / week}w`;
|
|
469
|
-
} else if (time % day === 0) {
|
|
470
|
-
return `${time / day}d`;
|
|
471
|
-
} else if (time % hour === 0) {
|
|
472
|
-
return `${time / hour}h`;
|
|
473
|
-
} else if (time % minute === 0) {
|
|
474
|
-
return `${time / minute}m`;
|
|
475
|
-
} else if (time % second === 0) {
|
|
476
|
-
return `${time / second}s`;
|
|
477
|
-
} else {
|
|
478
|
-
return `${time}ms`;
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
}
|
|
1
|
+
|
|
2
|
+
import { day, hour, minute, month, second, week, year } from '../constants/times.const';
|
|
3
|
+
import { DyFM_Month } from '../../_enums/time/month.enum';
|
|
4
|
+
import { DyFM_DayOfWeek } from '../../_enums/time/day-of-week.enum';
|
|
5
|
+
import { DyFM_RelativeDate } from '../../_enums/time/relative-date.enum';
|
|
6
|
+
import { DyFM_Math } from './math/math.util';
|
|
7
|
+
|
|
8
|
+
/* export type DyFM_T = DyFM_Time; */
|
|
9
|
+
/**
|
|
10
|
+
* Time utility class
|
|
11
|
+
*/
|
|
12
|
+
export class DyFM_Time {
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The number of milliseconds in a second
|
|
16
|
+
*/
|
|
17
|
+
static readonly second = second;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The number of milliseconds in a minute
|
|
21
|
+
*/
|
|
22
|
+
static readonly minute = minute;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The number of milliseconds in an hour
|
|
26
|
+
*/
|
|
27
|
+
static readonly hour = hour;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The number of milliseconds in a day
|
|
31
|
+
*/
|
|
32
|
+
static readonly day = day;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The number of milliseconds in a week
|
|
36
|
+
*/
|
|
37
|
+
static readonly week = week;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The number of milliseconds in a month
|
|
41
|
+
*/
|
|
42
|
+
static readonly month = month;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The number of milliseconds in a year
|
|
46
|
+
*/
|
|
47
|
+
static readonly year = year;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Get the age of a person
|
|
51
|
+
* @param birthDate - The birth date of the person
|
|
52
|
+
* @returns The age of the person
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* const birthDate = new Date('1990-01-01');
|
|
57
|
+
* const age = DyFM_Time.getAge(birthDate);
|
|
58
|
+
* console.log(age); // 31
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
static getAge(birthDate: Date | number | string): number {
|
|
62
|
+
return this.getYear(+new Date() - +new Date(birthDate));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* returns the date as a number of years
|
|
67
|
+
* @param date
|
|
68
|
+
* @returns
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* const date = new Date('2025-01-01');
|
|
73
|
+
* const year = DyFM_Time.getYear(date);
|
|
74
|
+
* console.log(year); // 2025
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
static getYear(date: Date | number | string): number {
|
|
78
|
+
if (typeof date === 'string') {
|
|
79
|
+
date = new Date(date);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return (+date / year);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* returns the date as a number of hours
|
|
87
|
+
* @param date
|
|
88
|
+
* @returns
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* const date = new Date('2025-01-01');
|
|
93
|
+
* const hour = DyFM_Time.getHour(date);
|
|
94
|
+
* console.log(hour); // 1
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
static getHour(date: Date | number | string): number {
|
|
98
|
+
if (typeof date === 'string') {
|
|
99
|
+
date = new Date(date);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return (+date / hour);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* calculates the birthdate from the age
|
|
107
|
+
* (with current date so this wont be accurate for days or months, only years)
|
|
108
|
+
* @param date
|
|
109
|
+
* @returns
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* const age = 31;
|
|
114
|
+
* const date = DyFM_Time.getDateByAge(age);
|
|
115
|
+
* console.log(date); // 1990-01-01
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
static getDateByAge(age: number): Date {
|
|
119
|
+
return new Date(+new Date() - (year * age));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* returns the date x before the current date
|
|
124
|
+
* @param relativeDate
|
|
125
|
+
* @returns
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* const date = DyFM_Time.getDateByRelativeDate(DyFM_RelativeDate.lastDay);
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
static getDateByRelativeDate(
|
|
133
|
+
relativeDate: DyFM_RelativeDate,
|
|
134
|
+
comparedTo?: Date
|
|
135
|
+
): Date {
|
|
136
|
+
switch (relativeDate) {
|
|
137
|
+
case DyFM_RelativeDate.lastDay:
|
|
138
|
+
return this.oneDayAgo(comparedTo);
|
|
139
|
+
|
|
140
|
+
case DyFM_RelativeDate.lastWeek:
|
|
141
|
+
return this.oneWeekAgo(comparedTo);
|
|
142
|
+
|
|
143
|
+
case DyFM_RelativeDate.lastMonth:
|
|
144
|
+
return this.oneMonthAgo(comparedTo);
|
|
145
|
+
|
|
146
|
+
case DyFM_RelativeDate.lastYear:
|
|
147
|
+
return this.oneYearAgo(comparedTo);
|
|
148
|
+
|
|
149
|
+
case DyFM_RelativeDate.last10Years:
|
|
150
|
+
return this.tenYearsAgo(comparedTo);
|
|
151
|
+
|
|
152
|
+
case DyFM_RelativeDate.allTime:
|
|
153
|
+
return new Date(0);
|
|
154
|
+
|
|
155
|
+
default:
|
|
156
|
+
return new Date(0);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* returns the date one hour ago
|
|
162
|
+
* @returns
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```ts
|
|
166
|
+
* const comparedTo = new Date('2025-01-01');
|
|
167
|
+
* const date = DyFM_Time.oneHourAgo(comparedTo);
|
|
168
|
+
* console.log(date); // 2024-12-31 23:00:00
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
static oneHourAgo(comparedTo: Date = new Date()): Date {
|
|
172
|
+
return new Date(+comparedTo - hour);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* returns the date one day ago
|
|
177
|
+
* @returns
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```ts
|
|
181
|
+
* const comparedTo = new Date('2025-01-01');
|
|
182
|
+
* const date = DyFM_Time.oneDayAgo(comparedTo);
|
|
183
|
+
* console.log(date); // 2024-12-31
|
|
184
|
+
* ```
|
|
185
|
+
*/
|
|
186
|
+
static oneDayAgo(comparedTo: Date = new Date()): Date {
|
|
187
|
+
return new Date(+comparedTo - day);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* returns the date one week ago
|
|
192
|
+
* @returns
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```ts
|
|
196
|
+
* const comparedTo = new Date('2025-01-01');
|
|
197
|
+
* const date = DyFM_Time.oneWeekAgo(comparedTo);
|
|
198
|
+
* console.log(date); // 2024-12-25
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
static oneWeekAgo(comparedTo: Date = new Date()): Date {
|
|
202
|
+
return new Date(+comparedTo - week);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* returns the date one month ago
|
|
207
|
+
* @returns
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```ts
|
|
211
|
+
* const comparedTo = new Date('2025-01-01');
|
|
212
|
+
* const date = DyFM_Time.oneMonthAgo(comparedTo);
|
|
213
|
+
* console.log(date); // 2024-12-01
|
|
214
|
+
* ```
|
|
215
|
+
*/
|
|
216
|
+
static oneMonthAgo(comparedTo: Date = new Date()): Date {
|
|
217
|
+
return new Date(+comparedTo - month);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* returns the date one year ago
|
|
222
|
+
* @returns
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```ts
|
|
226
|
+
* const comparedTo = new Date('2025-01-01');
|
|
227
|
+
* const date = DyFM_Time.oneYearAgo(comparedTo);
|
|
228
|
+
* console.log(date); // 2024-01-01
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
static oneYearAgo(comparedTo: Date = new Date()): Date {
|
|
232
|
+
return new Date(+comparedTo - year);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* returns the date ten years ago
|
|
237
|
+
* @returns
|
|
238
|
+
*
|
|
239
|
+
* @example
|
|
240
|
+
* ```ts
|
|
241
|
+
* const comparedTo = new Date('2025-01-01');
|
|
242
|
+
* const date = DyFM_Time.tenYearsAgo(comparedTo);
|
|
243
|
+
* console.log(date); // 2015-01-01
|
|
244
|
+
* ```
|
|
245
|
+
*/
|
|
246
|
+
static tenYearsAgo(comparedTo: Date = new Date()): Date {
|
|
247
|
+
return new Date(+comparedTo - (10 * year));
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* returns the DyFM_DayOfWeek type of the current day
|
|
252
|
+
* @returns
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```ts
|
|
256
|
+
* const today = DyFM_Time.getTodayOfWeek();
|
|
257
|
+
* console.log(today); // DyFM_DayOfWeek.monday
|
|
258
|
+
* ```
|
|
259
|
+
*/
|
|
260
|
+
static getTodayOfWeek(): DyFM_DayOfWeek {
|
|
261
|
+
return DyFM_DayOfWeek[
|
|
262
|
+
new Date().toLocaleString('en-us', { weekday: 'long' }).toLocaleLowerCase() as keyof typeof DyFM_DayOfWeek
|
|
263
|
+
];
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* returns the days of the week from today to the end of the week in DyFM_DayOfWeek format
|
|
268
|
+
* @returns
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```ts
|
|
272
|
+
* const daysOfWeek = DyFM_Time.getDaysOfWeekFromToday();
|
|
273
|
+
* console.log(daysOfWeek); // [ DyFM_DayOfWeek.monday, DyFM_DayOfWeek.tuesday, DyFM_DayOfWeek.wednesday, DyFM_DayOfWeek.thursday, DyFM_DayOfWeek.friday, DyFM_DayOfWeek.saturday, DyFM_DayOfWeek.sunday ]
|
|
274
|
+
* ```
|
|
275
|
+
*/
|
|
276
|
+
static getDaysOfWeekFromToday(): DyFM_DayOfWeek[] {
|
|
277
|
+
const today: DyFM_DayOfWeek = this.getTodayOfWeek();
|
|
278
|
+
const daysOfWeek: DyFM_DayOfWeek[] = Object.values(DyFM_DayOfWeek);
|
|
279
|
+
const todayIndex: number = daysOfWeek.indexOf(today);
|
|
280
|
+
|
|
281
|
+
return daysOfWeek.slice(todayIndex).concat(daysOfWeek.slice(0, todayIndex));
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* returns the days of the week to today to the end of the week in DyFM_DayOfWeek format
|
|
286
|
+
* @returns
|
|
287
|
+
*
|
|
288
|
+
* @example
|
|
289
|
+
* ```ts
|
|
290
|
+
* const daysOfWeek = DyFM_Time.getDaysOfWeekToToday();
|
|
291
|
+
* console.log(daysOfWeek); // [ DyFM_DayOfWeek.sunday, DyFM_DayOfWeek.saturday, DyFM_DayOfWeek.friday, DyFM_DayOfWeek.thursday, DyFM_DayOfWeek.wednesday, DyFM_DayOfWeek.tuesday, DyFM_DayOfWeek.monday ]
|
|
292
|
+
* ```
|
|
293
|
+
*/
|
|
294
|
+
static getDaysOfWeekToToday(): DyFM_DayOfWeek[] {
|
|
295
|
+
const today: DyFM_DayOfWeek = this.getTodayOfWeek();
|
|
296
|
+
const daysOfWeek: DyFM_DayOfWeek[] = Object.values(DyFM_DayOfWeek);
|
|
297
|
+
const todayIndex: number = daysOfWeek.indexOf(today);
|
|
298
|
+
|
|
299
|
+
return daysOfWeek.slice(0, todayIndex).reverse().concat(daysOfWeek.slice(todayIndex).reverse());
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* returns the DyFM_Month type of the current month
|
|
304
|
+
* @returns
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* ```ts
|
|
308
|
+
* const month = DyFM_Time.getCurrentMonth();
|
|
309
|
+
* console.log(month); // DyFM_Month.january
|
|
310
|
+
* ```
|
|
311
|
+
*/
|
|
312
|
+
static getCurrentMonth(): DyFM_Month {
|
|
313
|
+
return DyFM_Month[
|
|
314
|
+
new Date().toLocaleString('en-us', { month: 'long' }).toLocaleLowerCase() as keyof typeof DyFM_Month
|
|
315
|
+
];
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* returns the number of days in the month
|
|
320
|
+
* @param inYear this value is important for february if you want to know if it is a leap year
|
|
321
|
+
* @returns
|
|
322
|
+
*
|
|
323
|
+
* @example
|
|
324
|
+
* ```ts
|
|
325
|
+
* const monthLength = DyFM_Time.getMonthLength(DyFM_Month.january);
|
|
326
|
+
* console.log(monthLength); // 31
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
static getMonthLength(month: DyFM_Month, inYear?: number): number {
|
|
330
|
+
switch (month) {
|
|
331
|
+
case DyFM_Month.january:
|
|
332
|
+
case DyFM_Month.march:
|
|
333
|
+
case DyFM_Month.may:
|
|
334
|
+
case DyFM_Month.june:
|
|
335
|
+
case DyFM_Month.august:
|
|
336
|
+
case DyFM_Month.october:
|
|
337
|
+
return 31;
|
|
338
|
+
|
|
339
|
+
case DyFM_Month.april:
|
|
340
|
+
case DyFM_Month.july:
|
|
341
|
+
case DyFM_Month.september:
|
|
342
|
+
case DyFM_Month.november:
|
|
343
|
+
case DyFM_Month.december:
|
|
344
|
+
return 30;
|
|
345
|
+
|
|
346
|
+
case DyFM_Month.february:
|
|
347
|
+
return this.isLeapYear(inYear ?? new Date().getFullYear()) ? 29 : 28;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* returns year is leap or not
|
|
353
|
+
* @param year
|
|
354
|
+
* @returns
|
|
355
|
+
*
|
|
356
|
+
* @example
|
|
357
|
+
* ```ts
|
|
358
|
+
* const isLeapYear = DyFM_Time.isLeapYear(2024);
|
|
359
|
+
* console.log(isLeapYear); // true
|
|
360
|
+
* ```
|
|
361
|
+
*/
|
|
362
|
+
static isLeapYear(year: number): boolean {
|
|
363
|
+
return year % 4 === 0;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* returns the duration string
|
|
368
|
+
* @param duration
|
|
369
|
+
* @param full
|
|
370
|
+
* @returns
|
|
371
|
+
*
|
|
372
|
+
* @example
|
|
373
|
+
* ```ts
|
|
374
|
+
* const duration = 1000;
|
|
375
|
+
* const durationString = DyFM_Time.getDurationString(duration);
|
|
376
|
+
* console.log(durationString); // 1s
|
|
377
|
+
* ```
|
|
378
|
+
*/
|
|
379
|
+
static getDurationString(duration: number, full?: boolean): string {
|
|
380
|
+
// Ha 0ms az idő, akkor rögtön visszaadjuk
|
|
381
|
+
if (duration === 0) {
|
|
382
|
+
return '0ms';
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
if (!duration) {
|
|
386
|
+
return 'N/A';
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
// Nagyon rövid idő: < 100ms → ms-ben mutatjuk
|
|
390
|
+
if (duration < (second / 10)) {
|
|
391
|
+
return `${duration}ms`;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
// < 1s → másodperc két tizedesjeggyel (jobb olvashatóság)
|
|
395
|
+
if (duration < second) {
|
|
396
|
+
return `${DyFM_Math.round(duration / second, 2)}s`;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// < 1m → csak másodperc (és opcionálisan ms, ha full=true)
|
|
400
|
+
if (duration < minute) {
|
|
401
|
+
const secondsWhole: number = DyFM_Math.round(duration / second, 0);
|
|
402
|
+
if (full) {
|
|
403
|
+
const remainingMs: number = duration % second;
|
|
404
|
+
return `${secondsWhole}s ${remainingMs}ms`;
|
|
405
|
+
}
|
|
406
|
+
return `${secondsWhole}s`;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// < 1h → perc + másodperc (helyes egység-átváltással)
|
|
410
|
+
if (duration < hour) {
|
|
411
|
+
const minutesWhole: number = DyFM_Math.round(duration / minute, 0);
|
|
412
|
+
const remainingSeconds: number = DyFM_Math.round((duration % minute) / second, 0);
|
|
413
|
+
return `${minutesWhole}m ${remainingSeconds}s`;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
// < 1d → óra + perc
|
|
417
|
+
if (duration < day) {
|
|
418
|
+
const hoursWhole: number = DyFM_Math.round(duration / hour, 0);
|
|
419
|
+
const remainingMinutes: number = DyFM_Math.round((duration % hour) / minute, 0);
|
|
420
|
+
return `${hoursWhole}h ${remainingMinutes}m`;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
// < 1w → nap + óra
|
|
424
|
+
if (duration < week) {
|
|
425
|
+
const daysWhole: number = DyFM_Math.round(duration / day, 0);
|
|
426
|
+
const remainingHours: number = DyFM_Math.round((duration % day) / hour, 0);
|
|
427
|
+
return `${daysWhole}d ${remainingHours}h`;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
// < 1 month → hét + nap
|
|
431
|
+
if (duration < month) {
|
|
432
|
+
const weeksWhole: number = DyFM_Math.round(duration / week, 0);
|
|
433
|
+
const remainingDays: number = DyFM_Math.round((duration % week) / day, 0);
|
|
434
|
+
return `${weeksWhole}w ${remainingDays}d`;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
// < 1y → month + hét
|
|
438
|
+
if (duration < year) {
|
|
439
|
+
const monthsWhole: number = DyFM_Math.round(duration / month, 0);
|
|
440
|
+
const remainingWeeks: number = DyFM_Math.round((duration % month) / week, 0);
|
|
441
|
+
return `${monthsWhole}m ${remainingWeeks}w`;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
// ≥ 1y → év + hónap
|
|
445
|
+
const yearsWhole: number = DyFM_Math.round(duration / year, 0);
|
|
446
|
+
const remainingMonths: number = DyFM_Math.round((duration % year) / month, 0);
|
|
447
|
+
return `${yearsWhole}y ${remainingMonths}m`;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* returns the time in the shortest string
|
|
452
|
+
* @param time
|
|
453
|
+
* @returns
|
|
454
|
+
*
|
|
455
|
+
* @example
|
|
456
|
+
* ```ts
|
|
457
|
+
* const time = 345;
|
|
458
|
+
* const timeString = DyFM_Time.getTimeInShortestString(time);
|
|
459
|
+
* console.log(timeString); // 345ms
|
|
460
|
+
* ```
|
|
461
|
+
*/
|
|
462
|
+
static getTimeInShortestString(time: number): string {
|
|
463
|
+
if (time % year === 0) {
|
|
464
|
+
return `${time / year}y`;
|
|
465
|
+
} else if (time % month === 0) {
|
|
466
|
+
return `${time / month}m`;
|
|
467
|
+
} else if (time % week === 0) {
|
|
468
|
+
return `${time / week}w`;
|
|
469
|
+
} else if (time % day === 0) {
|
|
470
|
+
return `${time / day}d`;
|
|
471
|
+
} else if (time % hour === 0) {
|
|
472
|
+
return `${time / hour}h`;
|
|
473
|
+
} else if (time % minute === 0) {
|
|
474
|
+
return `${time / minute}m`;
|
|
475
|
+
} else if (time % second === 0) {
|
|
476
|
+
return `${time / second}s`;
|
|
477
|
+
} else {
|
|
478
|
+
return `${time}ms`;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
}
|