@futdevpro/fsm-dynamo 1.16.4 → 1.16.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (538) hide show
  1. package/.cursor/rules/__assistant_guide.mdc +30 -30
  2. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  3. package/.cursor/rules/_ag_backend.mdc +16 -16
  4. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  5. package/.cursor/rules/_ag_frontend.mdc +39 -39
  6. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  7. package/.cursor/rules/_ag_naming.mdc +115 -115
  8. package/.cursor/rules/_ag_should-be.mdc +6 -6
  9. package/.cursor/rules/ai_development_guide.md +60 -60
  10. package/.cursor/rules/cursor-rules.md +160 -160
  11. package/.cursor/rules/default-command.mdc +464 -464
  12. package/.cursor/rules/error_code_pattern.md +39 -39
  13. package/.cursor/rules/saved rule mcp server use.md +15 -15
  14. package/.dynamo/pipeline.cicd.config.json +18 -0
  15. package/.github/workflows/main.yml +433 -427
  16. package/.vscode/settings.json +11 -11
  17. package/LICENSE +21 -21
  18. package/build/_collections/utils/log.util.d.ts +8 -8
  19. package/build/_collections/utils/log.util.d.ts.map +1 -1
  20. package/build/_collections/utils/log.util.js +10 -18
  21. package/build/_collections/utils/log.util.js.map +1 -1
  22. package/build/_enums/error-status.enum.d.ts +28 -0
  23. package/build/_enums/error-status.enum.d.ts.map +1 -0
  24. package/build/_enums/error-status.enum.js +32 -0
  25. package/build/_enums/error-status.enum.js.map +1 -0
  26. package/build/_models/data-models/errors.data-model.d.ts +13 -0
  27. package/build/_models/data-models/errors.data-model.d.ts.map +1 -1
  28. package/build/_models/data-models/errors.data-model.js +13 -0
  29. package/build/_models/data-models/errors.data-model.js.map +1 -1
  30. package/build/_modules/socket/_models/sck-socket-event.control-model.js +1 -1
  31. package/build/index.d.ts +1 -0
  32. package/build/index.d.ts.map +1 -1
  33. package/build/index.js +1 -0
  34. package/build/index.js.map +1 -1
  35. package/eslint.config.js +4 -4
  36. package/nodemon.json +22 -22
  37. package/package.json +7 -3
  38. package/pnpm-workspace.yaml +2 -0
  39. package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
  40. package/scripts/crypto/README.md +113 -113
  41. package/scripts/crypto/demo-crypto-stability.js +120 -120
  42. package/scripts/crypto/stress-test-crypto.js +379 -379
  43. package/scripts/run-coverage-tests.js +24 -24
  44. package/spec/support/helpers/ts-node-helper.js +9 -9
  45. package/spec/support/jasmine.coverage.json +23 -23
  46. package/spec/support/jasmine.json +24 -24
  47. package/src/_collections/constants/data-sizes.const.ts +40 -40
  48. package/src/_collections/constants/error-defaults.const.ts +20 -20
  49. package/src/_collections/constants/global-settings.const.ts +24 -24
  50. package/src/_collections/constants/numbers.const.ts +40 -40
  51. package/src/_collections/constants/times.const.ts +45 -45
  52. package/src/_collections/utils/array.util.spec.ts +306 -306
  53. package/src/_collections/utils/array.util.ts +813 -813
  54. package/src/_collections/utils/async.util.spec.ts +354 -354
  55. package/src/_collections/utils/async.util.ts +197 -197
  56. package/src/_collections/utils/data.util.spec.ts +345 -345
  57. package/src/_collections/utils/data.util.ts +226 -226
  58. package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
  59. package/src/_collections/utils/json-error-helper.util.ts +301 -301
  60. package/src/_collections/utils/log.util.spec.ts +975 -975
  61. package/src/_collections/utils/log.util.ts +667 -665
  62. package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
  63. package/src/_collections/utils/math/box-bounds.util.ts +183 -183
  64. package/src/_collections/utils/math/math.util.spec.ts +94 -94
  65. package/src/_collections/utils/math/math.util.ts +141 -141
  66. package/src/_collections/utils/math/random.util.spec.ts +82 -82
  67. package/src/_collections/utils/math/random.util.ts +139 -139
  68. package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
  69. package/src/_collections/utils/math/trigonometry.util.ts +102 -102
  70. package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
  71. package/src/_collections/utils/math/vector2.util.ts +653 -653
  72. package/src/_collections/utils/object.util.spec.ts +646 -646
  73. package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
  74. package/src/_collections/utils/regex/password-regex.util.ts +65 -65
  75. package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
  76. package/src/_collections/utils/regex/regex.util.ts +6 -6
  77. package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
  78. package/src/_collections/utils/regex/username-regex.util.ts +35 -35
  79. package/src/_collections/utils/round-list.util.spec.ts +79 -79
  80. package/src/_collections/utils/round-list.util.ts +162 -162
  81. package/src/_collections/utils/stack.util.spec.ts +372 -372
  82. package/src/_collections/utils/stack.util.ts +164 -164
  83. package/src/_collections/utils/string-case.util.spec.ts +441 -441
  84. package/src/_collections/utils/string-case.util.ts +362 -362
  85. package/src/_collections/utils/string.util.spec.ts +975 -975
  86. package/src/_collections/utils/string.util.ts +449 -449
  87. package/src/_collections/utils/time.util.spec.ts +50 -50
  88. package/src/_collections/utils/time.util.ts +481 -481
  89. package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
  90. package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
  91. package/src/_collections/utils/utilities.util.spec.ts +201 -201
  92. package/src/_collections/utils/utilities.util.ts +68 -68
  93. package/src/_collections/utils/uuid.util.spec.ts +30 -30
  94. package/src/_collections/utils/uuid.util.ts +50 -50
  95. package/src/_enums/basic-property-type.enum.ts +20 -20
  96. package/src/_enums/data-model-type.enum.ts +29 -29
  97. package/src/_enums/environment-flag.enum.ts +28 -28
  98. package/src/_enums/error-level.enum.ts +43 -43
  99. package/src/_enums/error-status.enum.ts +30 -0
  100. package/src/_enums/http/http-call-type.enum.ts +43 -43
  101. package/src/_enums/http/http-event-type.enum.ts +40 -40
  102. package/src/_enums/http/http-response-type.enum.ts +18 -18
  103. package/src/_enums/log-style.enum.ts +44 -44
  104. package/src/_enums/server-connection-status.enum.ts +6 -6
  105. package/src/_enums/time/day-of-week.enum.ts +55 -55
  106. package/src/_enums/time/month.enum.ts +25 -25
  107. package/src/_enums/time/relative-date.enum.ts +24 -24
  108. package/src/_models/control-models/data-model-params.control-model.spec.ts +85 -85
  109. package/src/_models/control-models/data-model-params.control-model.ts +300 -300
  110. package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
  111. package/src/_models/control-models/data-property-params.control-model.ts +201 -201
  112. package/src/_models/control-models/error.control-model.spec.ts +912 -912
  113. package/src/_models/control-models/error.control-model.ts +1215 -1215
  114. package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
  115. package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
  116. package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
  117. package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
  118. package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
  119. package/src/_models/control-models/http/http-response.model-base.ts +57 -57
  120. package/src/_models/control-models/poll.control-model.spec.ts +63 -63
  121. package/src/_models/control-models/poll.control-model.ts +151 -151
  122. package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
  123. package/src/_models/control-models/range-value.control-model.ts +289 -289
  124. package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
  125. package/src/_models/control-models/server-status.control-model.ts +85 -85
  126. package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
  127. package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
  128. package/src/_models/data-models/errors.data-model.spec.ts +71 -71
  129. package/src/_models/data-models/errors.data-model.ts +175 -158
  130. package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
  131. package/src/_models/data-models/metadata.data-model.ts +128 -128
  132. package/src/_models/interfaces/box-bounds.interface.ts +7 -7
  133. package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
  134. package/src/_models/interfaces/environment/global-settings.interface.ts +47 -47
  135. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  136. package/src/_models/interfaces/paged.interface.ts +12 -12
  137. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  138. package/src/_models/interfaces/route-settings.interface.ts +15 -15
  139. package/src/_models/interfaces/search-query.interface.ts +23 -23
  140. package/src/_models/interfaces/search-result.interface.ts +5 -5
  141. package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
  142. package/src/_models/interfaces/vector2.interface.ts +20 -20
  143. package/src/_models/types/db-filter.type.ts +110 -110
  144. package/src/_models/types/db-sort.type.ts +4 -4
  145. package/src/_models/types/ds-filter.type.ts +68 -68
  146. package/src/_models/types/ds-sort.type.ts +21 -21
  147. package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
  148. package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
  149. package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
  150. package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
  151. package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
  152. package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
  153. package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
  154. package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
  155. package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
  156. package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
  157. package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
  158. package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
  159. package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
  160. package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
  161. package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
  162. package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
  163. package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
  164. package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
  165. package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
  166. package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
  167. package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
  168. package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
  169. package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +81 -81
  170. package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
  171. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
  172. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
  173. package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
  174. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
  175. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
  176. package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
  177. package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
  178. package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
  179. package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
  180. package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
  181. package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +34 -34
  182. package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
  183. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
  184. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
  185. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
  186. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
  187. package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
  188. package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +99 -99
  189. package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
  190. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
  191. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
  192. package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
  193. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
  194. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
  195. package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
  196. package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
  197. package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +53 -53
  198. package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
  199. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
  200. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
  201. package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
  202. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
  203. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
  204. package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
  205. package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
  206. package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +252 -252
  207. package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
  208. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
  209. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
  210. package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
  211. package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
  212. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
  213. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
  214. package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
  215. package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
  216. package/src/_modules/ai/index.ts +27 -27
  217. package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
  218. package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
  219. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
  220. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
  221. package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
  222. package/src/_modules/ci-tools/index.ts +8 -8
  223. package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
  224. package/src/_modules/crypto/index.ts +13 -13
  225. package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
  226. package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
  227. package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
  228. package/src/_modules/custom-data/index.ts +10 -10
  229. package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
  230. package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
  231. package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +445 -445
  232. package/src/_modules/data-handler/_models/data-handler.control-model.ts +459 -459
  233. package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
  234. package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
  235. package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
  236. package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
  237. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
  238. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
  239. package/src/_modules/data-handler/index.ts +6 -6
  240. package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
  241. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
  242. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
  243. package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
  244. package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
  245. package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
  246. package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
  247. package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
  248. package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
  249. package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
  250. package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
  251. package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
  252. package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
  253. package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
  254. package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
  255. package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
  256. package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
  257. package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
  258. package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
  259. package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
  260. package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
  261. package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
  262. package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
  263. package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
  264. package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
  265. package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
  266. package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
  267. package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
  268. package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
  269. package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
  270. package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
  271. package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
  272. package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
  273. package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
  274. package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
  275. package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
  276. package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
  277. package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
  278. package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
  279. package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
  280. package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
  281. package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
  282. package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
  283. package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
  284. package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
  285. package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
  286. package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
  287. package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
  288. package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
  289. package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
  290. package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
  291. package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
  292. package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
  293. package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
  294. package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
  295. package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
  296. package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
  297. package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
  298. package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
  299. package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
  300. package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
  301. package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
  302. package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
  303. package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
  304. package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
  305. package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
  306. package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
  307. package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
  308. package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
  309. package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
  310. package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
  311. package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
  312. package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
  313. package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
  314. package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
  315. package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
  316. package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
  317. package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
  318. package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
  319. package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
  320. package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
  321. package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
  322. package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
  323. package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
  324. package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
  325. package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
  326. package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
  327. package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
  328. package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
  329. package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
  330. package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
  331. package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
  332. package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
  333. package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
  334. package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
  335. package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
  336. package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
  337. package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
  338. package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
  339. package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
  340. package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
  341. package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
  342. package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
  343. package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
  344. package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
  345. package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
  346. package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
  347. package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
  348. package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
  349. package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
  350. package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
  351. package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
  352. package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
  353. package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
  354. package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
  355. package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
  356. package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
  357. package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
  358. package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
  359. package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
  360. package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
  361. package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
  362. package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
  363. package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
  364. package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
  365. package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
  366. package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
  367. package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
  368. package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
  369. package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
  370. package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
  371. package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
  372. package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
  373. package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
  374. package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
  375. package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
  376. package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
  377. package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
  378. package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
  379. package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
  380. package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
  381. package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
  382. package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
  383. package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
  384. package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
  385. package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
  386. package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
  387. package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
  388. package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
  389. package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
  390. package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
  391. package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
  392. package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
  393. package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
  394. package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
  395. package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
  396. package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
  397. package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
  398. package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
  399. package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
  400. package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
  401. package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
  402. package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
  403. package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
  404. package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
  405. package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
  406. package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
  407. package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
  408. package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
  409. package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
  410. package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
  411. package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
  412. package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
  413. package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
  414. package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
  415. package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
  416. package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
  417. package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
  418. package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
  419. package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
  420. package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
  421. package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
  422. package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
  423. package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
  424. package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
  425. package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
  426. package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
  427. package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
  428. package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
  429. package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
  430. package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
  431. package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
  432. package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
  433. package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
  434. package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
  435. package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
  436. package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
  437. package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
  438. package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
  439. package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
  440. package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
  441. package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
  442. package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
  443. package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
  444. package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
  445. package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
  446. package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
  447. package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
  448. package/src/_modules/location/_collections/loc.util.ts +74 -74
  449. package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
  450. package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
  451. package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
  452. package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
  453. package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
  454. package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
  455. package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
  456. package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
  457. package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
  458. package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
  459. package/src/_modules/location/index.ts +22 -22
  460. package/src/_modules/messaging/README.md +279 -279
  461. package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
  462. package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
  463. package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
  464. package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
  465. package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
  466. package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
  467. package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
  468. package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
  469. package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
  470. package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
  471. package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
  472. package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
  473. package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
  474. package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
  475. package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
  476. package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
  477. package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
  478. package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
  479. package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
  480. package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
  481. package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
  482. package/src/_modules/messaging/_modules/agent/index.ts +8 -8
  483. package/src/_modules/messaging/index.ts +28 -28
  484. package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
  485. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
  486. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
  487. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
  488. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
  489. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
  490. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
  491. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
  492. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
  493. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
  494. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
  495. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
  496. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
  497. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
  498. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
  499. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
  500. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
  501. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
  502. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
  503. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
  504. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
  505. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
  506. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
  507. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
  508. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
  509. package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
  510. package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
  511. package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
  512. package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
  513. package/src/_modules/pipe/index.ts +30 -30
  514. package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
  515. package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
  516. package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
  517. package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +66 -66
  518. package/src/_modules/socket/_models/sck-socket-event.control-model.ts +172 -172
  519. package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
  520. package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
  521. package/src/_modules/socket/index.ts +14 -14
  522. package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
  523. package/src/_modules/test/index.ts +5 -5
  524. package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
  525. package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
  526. package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
  527. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
  528. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
  529. package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
  530. package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
  531. package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
  532. package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
  533. package/src/_modules/usage/index.ts +11 -11
  534. package/src/index.ts +104 -103
  535. package/tsconfig.app.json +12 -12
  536. package/tsconfig.json +31 -31
  537. package/tsconfig.test.json +16 -16
  538. package/tslint.json +153 -153
@@ -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
+ }