@futdevpro/fsm-dynamo 1.16.7 → 1.16.10

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 (536) 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/.vscode/settings.json +11 -11
  15. package/LICENSE +21 -21
  16. package/__documentations/2026-06-22-dyfm-error-extends-error.md +109 -0
  17. package/build/_collections/utils/log.util.d.ts +8 -8
  18. package/build/_collections/utils/log.util.d.ts.map +1 -1
  19. package/build/_collections/utils/log.util.js +18 -10
  20. package/build/_collections/utils/log.util.js.map +1 -1
  21. package/build/_models/control-models/data-model-params.control-model.d.ts +41 -0
  22. package/build/_models/control-models/data-model-params.control-model.d.ts.map +1 -1
  23. package/build/_models/control-models/data-model-params.control-model.js +26 -0
  24. package/build/_models/control-models/data-model-params.control-model.js.map +1 -1
  25. package/build/_models/control-models/error.control-model.d.ts +11 -2
  26. package/build/_models/control-models/error.control-model.d.ts.map +1 -1
  27. package/build/_models/control-models/error.control-model.js +56 -3
  28. package/build/_models/control-models/error.control-model.js.map +1 -1
  29. package/build/_models/data-models/metadata.data-model.d.ts +16 -0
  30. package/build/_models/data-models/metadata.data-model.d.ts.map +1 -1
  31. package/build/_models/data-models/metadata.data-model.js +37 -20
  32. package/build/_models/data-models/metadata.data-model.js.map +1 -1
  33. package/build/_modules/socket/_models/sck-socket-event.control-model.js +1 -1
  34. package/eslint.config.js +4 -4
  35. package/nodemon.json +22 -22
  36. package/package.json +1 -1
  37. package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
  38. package/scripts/crypto/README.md +113 -113
  39. package/scripts/crypto/demo-crypto-stability.js +120 -120
  40. package/scripts/crypto/stress-test-crypto.js +379 -379
  41. package/scripts/run-coverage-tests.js +24 -24
  42. package/spec/support/helpers/ts-node-helper.js +9 -9
  43. package/spec/support/jasmine.coverage.json +23 -23
  44. package/spec/support/jasmine.json +24 -24
  45. package/src/_collections/constants/data-sizes.const.ts +40 -40
  46. package/src/_collections/constants/error-defaults.const.ts +20 -20
  47. package/src/_collections/constants/global-settings.const.ts +24 -24
  48. package/src/_collections/constants/numbers.const.ts +40 -40
  49. package/src/_collections/constants/times.const.ts +45 -45
  50. package/src/_collections/utils/array.util.spec.ts +306 -306
  51. package/src/_collections/utils/array.util.ts +813 -813
  52. package/src/_collections/utils/async.util.spec.ts +354 -354
  53. package/src/_collections/utils/async.util.ts +197 -197
  54. package/src/_collections/utils/data.util.spec.ts +345 -345
  55. package/src/_collections/utils/data.util.ts +226 -226
  56. package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
  57. package/src/_collections/utils/json-error-helper.util.ts +301 -301
  58. package/src/_collections/utils/log.util.spec.ts +975 -975
  59. package/src/_collections/utils/log.util.ts +665 -667
  60. package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
  61. package/src/_collections/utils/math/box-bounds.util.ts +183 -183
  62. package/src/_collections/utils/math/math.util.spec.ts +94 -94
  63. package/src/_collections/utils/math/math.util.ts +141 -141
  64. package/src/_collections/utils/math/random.util.spec.ts +82 -82
  65. package/src/_collections/utils/math/random.util.ts +139 -139
  66. package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
  67. package/src/_collections/utils/math/trigonometry.util.ts +102 -102
  68. package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
  69. package/src/_collections/utils/math/vector2.util.ts +653 -653
  70. package/src/_collections/utils/object.util.spec.ts +646 -646
  71. package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
  72. package/src/_collections/utils/regex/password-regex.util.ts +65 -65
  73. package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
  74. package/src/_collections/utils/regex/regex.util.ts +6 -6
  75. package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
  76. package/src/_collections/utils/regex/username-regex.util.ts +35 -35
  77. package/src/_collections/utils/round-list.util.spec.ts +79 -79
  78. package/src/_collections/utils/round-list.util.ts +162 -162
  79. package/src/_collections/utils/stack.util.spec.ts +372 -372
  80. package/src/_collections/utils/stack.util.ts +164 -164
  81. package/src/_collections/utils/string-case.util.spec.ts +441 -441
  82. package/src/_collections/utils/string-case.util.ts +362 -362
  83. package/src/_collections/utils/string.util.spec.ts +975 -975
  84. package/src/_collections/utils/string.util.ts +449 -449
  85. package/src/_collections/utils/time.util.spec.ts +50 -50
  86. package/src/_collections/utils/time.util.ts +481 -481
  87. package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
  88. package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
  89. package/src/_collections/utils/utilities.util.spec.ts +201 -201
  90. package/src/_collections/utils/utilities.util.ts +68 -68
  91. package/src/_collections/utils/uuid.util.spec.ts +30 -30
  92. package/src/_collections/utils/uuid.util.ts +50 -50
  93. package/src/_enums/basic-property-type.enum.ts +20 -20
  94. package/src/_enums/data-model-type.enum.ts +29 -29
  95. package/src/_enums/environment-flag.enum.ts +28 -28
  96. package/src/_enums/error-level.enum.ts +43 -43
  97. package/src/_enums/http/http-call-type.enum.ts +43 -43
  98. package/src/_enums/http/http-event-type.enum.ts +40 -40
  99. package/src/_enums/http/http-response-type.enum.ts +18 -18
  100. package/src/_enums/log-style.enum.ts +44 -44
  101. package/src/_enums/server-connection-status.enum.ts +6 -6
  102. package/src/_enums/time/day-of-week.enum.ts +55 -55
  103. package/src/_enums/time/month.enum.ts +25 -25
  104. package/src/_enums/time/relative-date.enum.ts +24 -24
  105. package/src/_models/control-models/data-model-params.control-model.spec.ts +133 -85
  106. package/src/_models/control-models/data-model-params.control-model.ts +352 -300
  107. package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
  108. package/src/_models/control-models/data-property-params.control-model.ts +201 -201
  109. package/src/_models/control-models/error.control-model.spec.ts +912 -912
  110. package/src/_models/control-models/error.control-model.ts +1274 -1215
  111. package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
  112. package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
  113. package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
  114. package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
  115. package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
  116. package/src/_models/control-models/http/http-response.model-base.ts +57 -57
  117. package/src/_models/control-models/poll.control-model.spec.ts +63 -63
  118. package/src/_models/control-models/poll.control-model.ts +151 -151
  119. package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
  120. package/src/_models/control-models/range-value.control-model.ts +289 -289
  121. package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
  122. package/src/_models/control-models/server-status.control-model.ts +85 -85
  123. package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
  124. package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
  125. package/src/_models/data-models/errors.data-model.spec.ts +71 -71
  126. package/src/_models/data-models/errors.data-model.ts +175 -175
  127. package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
  128. package/src/_models/data-models/metadata.data-model.ts +153 -128
  129. package/src/_models/interfaces/box-bounds.interface.ts +7 -7
  130. package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
  131. package/src/_models/interfaces/environment/global-settings.interface.ts +47 -47
  132. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  133. package/src/_models/interfaces/paged.interface.ts +12 -12
  134. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  135. package/src/_models/interfaces/route-settings.interface.ts +15 -15
  136. package/src/_models/interfaces/search-query.interface.ts +23 -23
  137. package/src/_models/interfaces/search-result.interface.ts +5 -5
  138. package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
  139. package/src/_models/interfaces/vector2.interface.ts +20 -20
  140. package/src/_models/types/db-filter.type.ts +110 -110
  141. package/src/_models/types/db-sort.type.ts +4 -4
  142. package/src/_models/types/ds-filter.type.ts +68 -68
  143. package/src/_models/types/ds-sort.type.ts +21 -21
  144. package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
  145. package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
  146. package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
  147. package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
  148. package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
  149. package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
  150. package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
  151. package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
  152. package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
  153. package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
  154. package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
  155. package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
  156. package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
  157. package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
  158. package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
  159. package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
  160. package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
  161. package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
  162. package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
  163. package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
  164. package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
  165. package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
  166. package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +81 -81
  167. package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
  168. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
  169. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
  170. package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
  171. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
  172. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
  173. package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
  174. package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
  175. package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
  176. package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
  177. package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
  178. package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +34 -34
  179. package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
  180. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
  181. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
  182. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
  183. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
  184. package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
  185. package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +99 -99
  186. package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
  187. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
  188. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
  189. package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
  190. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
  191. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
  192. package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
  193. package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
  194. package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +53 -53
  195. package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
  196. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
  197. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
  198. package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
  199. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
  200. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
  201. package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
  202. package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
  203. package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +252 -252
  204. package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
  205. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
  206. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
  207. package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
  208. package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
  209. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
  210. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
  211. package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
  212. package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
  213. package/src/_modules/ai/index.ts +27 -27
  214. package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
  215. package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
  216. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
  217. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
  218. package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
  219. package/src/_modules/ci-tools/index.ts +8 -8
  220. package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
  221. package/src/_modules/crypto/index.ts +13 -13
  222. package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
  223. package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
  224. package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
  225. package/src/_modules/custom-data/index.ts +10 -10
  226. package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
  227. package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
  228. package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +445 -445
  229. package/src/_modules/data-handler/_models/data-handler.control-model.ts +459 -459
  230. package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
  231. package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
  232. package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
  233. package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
  234. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
  235. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
  236. package/src/_modules/data-handler/index.ts +6 -6
  237. package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
  238. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
  239. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
  240. package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
  241. package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
  242. package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
  243. package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
  244. package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
  245. package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
  246. package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
  247. package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
  248. package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
  249. package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
  250. package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
  251. package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
  252. package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
  253. package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
  254. package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
  255. package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
  256. package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
  257. package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
  258. package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
  259. package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
  260. package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
  261. package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
  262. package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
  263. package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
  264. package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
  265. package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
  266. package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
  267. package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
  268. package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
  269. package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
  270. package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
  271. package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
  272. package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
  273. package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
  274. package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
  275. package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
  276. package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
  277. package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
  278. package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
  279. package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
  280. package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
  281. package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
  282. package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
  283. package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
  284. package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
  285. package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
  286. package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
  287. package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
  288. package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
  289. package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
  290. package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
  291. package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
  292. package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
  293. package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
  294. package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
  295. package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
  296. package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
  297. package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
  298. package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
  299. package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
  300. package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
  301. package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
  302. package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
  303. package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
  304. package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
  305. package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
  306. package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
  307. package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
  308. package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
  309. package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
  310. package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
  311. package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
  312. package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
  313. package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
  314. package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
  315. package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
  316. package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
  317. package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
  318. package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
  319. package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
  320. package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
  321. package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
  322. package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
  323. package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
  324. package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
  325. package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
  326. package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
  327. package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
  328. package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
  329. package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
  330. package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
  331. package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
  332. package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
  333. package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
  334. package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
  335. package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
  336. package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
  337. package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
  338. package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
  339. package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
  340. package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
  341. package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
  342. package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
  343. package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
  344. package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
  345. package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
  346. package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
  347. package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
  348. package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
  349. package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
  350. package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
  351. package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
  352. package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
  353. package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
  354. package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
  355. package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
  356. package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
  357. package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
  358. package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
  359. package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
  360. package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
  361. package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
  362. package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
  363. package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
  364. package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
  365. package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
  366. package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
  367. package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
  368. package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
  369. package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
  370. package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
  371. package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
  372. package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
  373. package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
  374. package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
  375. package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
  376. package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
  377. package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
  378. package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
  379. package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
  380. package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
  381. package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
  382. package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
  383. package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
  384. package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
  385. package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
  386. package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
  387. package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
  388. package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
  389. package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
  390. package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
  391. package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
  392. package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
  393. package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
  394. package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
  395. package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
  396. package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
  397. package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
  398. package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
  399. package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
  400. package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
  401. package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
  402. package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
  403. package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
  404. package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
  405. package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
  406. package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
  407. package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
  408. package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
  409. package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
  410. package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
  411. package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
  412. package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
  413. package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
  414. package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
  415. package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
  416. package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
  417. package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
  418. package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
  419. package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
  420. package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
  421. package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
  422. package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
  423. package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
  424. package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
  425. package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
  426. package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
  427. package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
  428. package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
  429. package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
  430. package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
  431. package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
  432. package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
  433. package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
  434. package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
  435. package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
  436. package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
  437. package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
  438. package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
  439. package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
  440. package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
  441. package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
  442. package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
  443. package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
  444. package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
  445. package/src/_modules/location/_collections/loc.util.ts +74 -74
  446. package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
  447. package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
  448. package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
  449. package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
  450. package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
  451. package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
  452. package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
  453. package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
  454. package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
  455. package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
  456. package/src/_modules/location/index.ts +22 -22
  457. package/src/_modules/messaging/README.md +279 -279
  458. package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
  459. package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
  460. package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
  461. package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
  462. package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
  463. package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
  464. package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
  465. package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
  466. package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
  467. package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
  468. package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
  469. package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
  470. package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
  471. package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
  472. package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
  473. package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
  474. package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
  475. package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
  476. package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
  477. package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
  478. package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
  479. package/src/_modules/messaging/_modules/agent/index.ts +8 -8
  480. package/src/_modules/messaging/index.ts +28 -28
  481. package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
  482. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
  483. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
  484. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
  485. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
  486. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
  487. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
  488. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
  489. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
  490. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
  491. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
  492. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
  493. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
  494. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
  495. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
  496. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
  497. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
  498. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
  499. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
  500. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
  501. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
  502. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
  503. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
  504. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
  505. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
  506. package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
  507. package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
  508. package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
  509. package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
  510. package/src/_modules/pipe/index.ts +30 -30
  511. package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
  512. package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
  513. package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
  514. package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +66 -66
  515. package/src/_modules/socket/_models/sck-socket-event.control-model.ts +172 -172
  516. package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
  517. package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
  518. package/src/_modules/socket/index.ts +14 -14
  519. package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
  520. package/src/_modules/test/index.ts +5 -5
  521. package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
  522. package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
  523. package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
  524. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
  525. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
  526. package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
  527. package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
  528. package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
  529. package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
  530. package/src/_modules/usage/index.ts +11 -11
  531. package/src/index.ts +104 -104
  532. package/tsconfig.app.json +12 -12
  533. package/tsconfig.json +31 -31
  534. package/tsconfig.test.json +16 -16
  535. package/tslint.json +153 -153
  536. package/pnpm-workspace.yaml +0 -2
@@ -1,1215 +1,1274 @@
1
- import { DyFM_error_defaults } from '../../_collections/constants/error-defaults.const';
2
- import { DyFM_Log } from '../../_collections/utils/log.util';
3
- import { DyFM_Object } from '../../_collections/utils/object.util';
4
- import { DyFM_getLocalStackLocation } from '../../_collections/utils/stack.util';
5
- import { DyFM_ErrorLevel } from '../../_enums/error-level.enum';
6
- import { DyFM_LogStyle } from '../../_enums/log-style.enum';
7
- import { DyFM_Metadata } from '../data-models/metadata.data-model';
8
- import { DyFM_HttpErrorResponse, DyFM_httpErrorResponse_name } from './http/http-error-response.control-model';
9
-
10
- export const DyFM_errorFlag = 'DYNAMO-ERROR-OBJECT';
11
- export const DyFM_errorĐFlagParts= [
12
- 'DyNTS-',
13
- 'DyFM-',
14
- 'DyNX_',
15
- 'DyNM_',
16
- 'DyBu_',
17
- 'DyCLI_',
18
- ]
19
-
20
- export interface DyFM_ValidationError {
21
- message: string;
22
- /** @deprecated use message instead */
23
- userMessage?: string;
24
- code: string;
25
- }
26
-
27
- export type DyFM_ValidationErrors = {
28
- [key: string]: DyFM_ValidationError;
29
- }
30
-
31
- export type DyFM_AnyError = DyFM_Error | DyFM_HttpErrorResponse | Error | any | unknown;
32
- export type DyFM_NonHttpError = DyFM_Error | Error;
33
-
34
- export interface DyFM_Error_Settings {
35
- _id?: string;
36
-
37
- handled?: boolean;
38
- status?: number;
39
-
40
- errorCode?: string;
41
- message?: string;
42
- /** @deprecated use message instead */
43
- userMessage?: string;
44
- /** message translation code */
45
- userMessageTranslateCode?: string;
46
- addECToUserMsg?: boolean;
47
-
48
- error?: DyFM_AnyError;
49
- errors?: DyFM_AnyError[];
50
- validationErrors?: DyFM_ValidationErrors;
51
-
52
- issuer?: string;
53
- issuerSystem?: string;
54
- issuerService?: string;
55
- systemVersion?: string;
56
-
57
- level?: DyFM_ErrorLevel;
58
-
59
- levelUpThis?: boolean;
60
- additionalContent?: any;
61
- confidentialContent?: any;
62
- stack?: string;
63
-
64
- allowCircular?: boolean;
65
- modestLog?: boolean;
66
- log?: boolean;
67
-
68
- __localStack?: string;
69
- __created?: Date;
70
- __createdBy?: string;
71
- __lastModified?: Date;
72
- __lastModifiedBy?: string;
73
- __v?: number;
74
- }
75
-
76
- export class DyFM_Error extends DyFM_Metadata {
77
- readonly flag = DyFM_errorFlag + '-v2';
78
-
79
- _errorCode?: string;
80
- _errorCodes?: string[] = [];
81
-
82
- /** contains all sub error messages, in reversed order */
83
- _message?: string;
84
- _messages?: string[] = [];
85
-
86
- /** @deprecated use _message instead */
87
- __userMessage?: string;
88
- /** contains all sub error messages, in reversed order
89
- * @deprecated use _messages instead
90
- */
91
- __userMessages?: string[] = [];
92
- /** message translation code */
93
- __userMessageTranslateCode?: string;
94
-
95
- ___handled?: boolean;
96
- ___logged?: boolean;
97
- ___status?: number;
98
-
99
- ___issuer?: string;
100
- ___issuerSystem?: string;
101
- ___issuerService?: string;
102
- ___systemVersion?: string;
103
-
104
- error?: DyFM_AnyError;
105
- errors?: DyFM_AnyError[] = [];
106
- validationErrors?: DyFM_ValidationErrors;
107
-
108
- stack?: string;
109
- __localStack?: string;
110
-
111
- level?: DyFM_ErrorLevel;
112
-
113
- levelUpThis?: boolean;
114
- additionalContent?: any = {};
115
- confidentialContent?: any = {};
116
-
117
- constructor(
118
- set?: DyFM_Error_Settings
119
- ) {
120
- super(
121
- set,
122
- {
123
- issuer: set?.issuerService ??
124
- (set?.error as DyFM_Error)?.___issuerService ??
125
- DyFM_error_defaults.issuerService,
126
- }
127
- );
128
-
129
- try {
130
- if (!set) {
131
- set = {};
132
- }
133
-
134
- /** set simple properties */
135
- this.___handled = Boolean(set.handled ?? (set.error as DyFM_Error)?.___handled);
136
- this.___status = set.status ?? (set.error as DyFM_Error)?.___status;
137
- this.___issuer = set.issuer ??
138
- (set.error as DyFM_Error)?.___issuer ??
139
- DyFM_error_defaults.issuer;
140
- this.___issuerSystem = set.issuerSystem ??
141
- (set.error as DyFM_Error)?.___issuerSystem ??
142
- DyFM_error_defaults.issuerSystem;
143
- this.___issuerService = set.issuerService ??
144
- (set.error as DyFM_Error)?.___issuerService ??
145
- DyFM_error_defaults.issuerService;
146
- this.___systemVersion = set.systemVersion ??
147
- (set.error as DyFM_Error)?.___systemVersion ??
148
- DyFM_error_defaults.systemVersion;
149
- this.__localStack = (set as DyFM_Error)?.__localStack ??
150
- (set.error as DyFM_Error)?.__localStack ??
151
- DyFM_getLocalStackLocation();
152
-
153
- this.validationErrors = set.validationErrors ?? (set.error as DyFM_Error)?.validationErrors;
154
-
155
- this.level = set.level ?? (set.error as DyFM_Error)?.level ?? DyFM_ErrorLevel.error;
156
-
157
- this.levelUpThis = set.levelUpThis;
158
-
159
- set.allowCircular = set.allowCircular ??
160
- set.additionalContent?.allowCircular ??
161
- (set.error as DyFM_Error)?.additionalContent?.allowCircular ??
162
- false;
163
-
164
- if (set.allowCircular) {
165
- this.additionalContent.allowCircular = true;
166
- }
167
-
168
- if (((set as DyFM_Error)?.error as DyFM_Error)?.___logged) {
169
- this.___logged = true;
170
- }
171
-
172
- if (
173
- !set.allowCircular &&
174
- set.additionalContent &&
175
- Object.keys(set.additionalContent)?.length
176
- ) {
177
- try {
178
- JSON.stringify(set.additionalContent);
179
- } catch {
180
- DyFM_Log.error(
181
- 'Internal Dynamo ERROR: additionalContent is not JSON.stringifyable... ' +
182
- '(it will be removed!)',
183
- '\nerrorCode:', set.errorCode,
184
- /* 'additionalContent:', set.additionalContent, */
185
- );
186
- delete set.additionalContent;
187
- }
188
- }
189
-
190
- if (
191
- !set.allowCircular &&
192
- !set.additionalContent?.allowCircular &&
193
- (set.error as DyFM_Error)?.additionalContent &&
194
- !(set.error as DyFM_Error)?.additionalContent?.allowCircular &&
195
- Object.keys((set.error as DyFM_Error)?.additionalContent)?.length
196
- ) {
197
- try {
198
- JSON.stringify((set.error as DyFM_Error)?.additionalContent);
199
- } catch {
200
- DyFM_Log.error(
201
- 'Internal Dynamo ERROR: additionalContent is not JSON.stringifyable... ' +
202
- '(it will be removed!)',
203
- '\nerrorCode:', set.errorCode,
204
- /* 'additionalContent:', (set.error as DyFM_Error)?.additionalContent, */
205
- );
206
- delete (set.error as DyFM_Error)?.additionalContent;
207
- }
208
- }
209
-
210
- // ADDITIONAL CONTENT
211
- if ((set.error as DyFM_Error)?.additionalContent) {
212
- Object.assign(this.additionalContent, (set.error as DyFM_Error)?.additionalContent);
213
- }
214
-
215
- if (set.additionalContent) {
216
- Object.assign(this.additionalContent, set.additionalContent);
217
- }
218
-
219
- // CONFIDENTIAL CONTENT
220
- if ((set.error as DyFM_Error)?.confidentialContent) {
221
- Object.assign(this.confidentialContent, (set.error as DyFM_Error)?.confidentialContent);
222
- }
223
-
224
- if (set.confidentialContent) {
225
- Object.assign(this.confidentialContent, set.confidentialContent);
226
- }
227
-
228
- // ERROR CODE
229
- if (!set.errorCode) {
230
- set.errorCode = DyFM_error_defaults.errorCode;
231
- }
232
-
233
- /** set default error (self defined) */
234
- if (!set.error) {
235
- set.error = new Error();
236
- const errorStack: string[] = set.error.stack?.split('\n');
237
-
238
- errorStack.splice(1, 1);
239
- set.error.stack = errorStack.join('\n');
240
- }
241
-
242
- if ((set as DyFM_NonHttpError)?.stack) {
243
- this.stack = (set as DyFM_NonHttpError)?.stack;
244
- } else if ((set.error as DyFM_NonHttpError)?.stack) {
245
- this.stack = (set.error as DyFM_NonHttpError)?.stack;
246
- } else if (
247
- (set.error as DyFM_HttpErrorResponse)?.name === DyFM_httpErrorResponse_name &&
248
- (set.error as DyFM_HttpErrorResponse)?.error?.stack
249
- ) {
250
- this.stack = (set.error as DyFM_HttpErrorResponse)?.error?.stack;
251
- } else {
252
- this.stack = new Error().stack;
253
- }
254
-
255
- /** set errorCodes */
256
- let previousErrorCodes: string[] = [];
257
-
258
- if ((set.error as DyFM_Error)?._errorCodes) {
259
- previousErrorCodes.push(...((set.error as DyFM_Error)?._errorCodes ?? []));
260
- }
261
-
262
- if (!set.errorCode) {
263
- set.errorCode = DyFM_error_defaults.errorCode;
264
- }
265
- previousErrorCodes = previousErrorCodes.filter(
266
- (code: string): boolean => code !== set.errorCode
267
- );
268
- this._errorCodes = [ ...previousErrorCodes, set.errorCode ].filter(Boolean);
269
-
270
- /** bring up non NTS and non default first error */
271
- const filteredErrorCodes: string[] = this._errorCodes.filter(
272
- (code: string): boolean =>
273
- code && code !== DyFM_error_defaults.errorCode &&
274
- !DyFM_errorĐFlagParts.some((part: string): boolean => code.includes(part))
275
- );
276
-
277
- this._errorCode = filteredErrorCodes[0] ?? this._errorCodes?.[0];
278
- const highlightedErrorCodeIndex: number = this._errorCodes.findIndex(
279
- (code: string): boolean => code === filteredErrorCodes?.[0]
280
- );
281
-
282
- /** set message */
283
- if (!set.message) {
284
- if (typeof set.error === 'string') {
285
- /** string error */
286
- set.message = set.error;
287
- } else if (
288
- !(set.error as DyFM_Error)?.flag?.includes('DYNAMO') &&
289
- (set.error as Error)?.message
290
- ) {
291
- /** simple - non-dynamo - error */
292
- set.message = (set.error as Error)?.message;
293
- } else if ((set.error as Error).stack) {
294
- /** error not defined - self defining */
295
- const posFull: string[] = (set.error as Error).stack?.split('\n')?.[1]?.split('\\');
296
-
297
- if (posFull?.[posFull?.length - 1]) {
298
- set.message = DyFM_error_defaults.message + '; ' + posFull[posFull.length - 1];
299
- } else {
300
- set.message = DyFM_error_defaults.message;
301
- }
302
- }
303
- }
304
- /** set messages */
305
- let previousMessages: string[] = [];
306
-
307
- if ((set.error as DyFM_Error)?._messages) {
308
- previousMessages.push(...((set.error as DyFM_Error)?._messages ?? []));
309
- } else if ((set.error as Error)?.message) {
310
- previousErrorCodes.push((set.error as Error)?.message);
311
- }
312
- previousMessages = previousMessages.filter(
313
- (msg: string): boolean => msg !== set.message
314
- );
315
- this._messages = [ ...previousMessages, set.message ].filter(Boolean);
316
-
317
- if (
318
- -1 < highlightedErrorCodeIndex &&
319
- this._messages[highlightedErrorCodeIndex] &&
320
- this._messages[highlightedErrorCodeIndex] !== DyFM_error_defaults.message
321
- ) {
322
- this._message = this._messages[highlightedErrorCodeIndex];
323
- } else {
324
- this._message = this._messages?.[0];
325
- }
326
-
327
- /** @deprecated use _messages instead */
328
- let previousUserMessages: string[] = [];
329
-
330
- if ((set.error as DyFM_Error)?.__userMessages) {
331
- previousUserMessages.push(...((set.error as DyFM_Error)?.__userMessages ?? []));
332
- }
333
-
334
- if (!set.userMessage) {
335
- set.userMessage = DyFM_error_defaults.userMessage;
336
- }
337
-
338
- if (
339
- set.addECToUserMsg &&
340
- set.userMessage !== DyFM_error_defaults.userMessage &&
341
- set.errorCode
342
- ) {
343
- set.userMessage += `\n ErrorCode: ${set.errorCode}`;
344
- }
345
- previousUserMessages = previousUserMessages.filter(
346
- (msg: string): boolean => msg !== set.userMessage
347
- );
348
- this.__userMessages = [ ...previousUserMessages, set.userMessage ].filter(Boolean);
349
-
350
- if (
351
- -1 < highlightedErrorCodeIndex &&
352
- this.__userMessages[highlightedErrorCodeIndex] &&
353
- this.__userMessages[highlightedErrorCodeIndex] !== DyFM_error_defaults.userMessage
354
- ) {
355
- this.__userMessage = this.__userMessages[highlightedErrorCodeIndex];
356
- } else {
357
- this.__userMessage = this.__userMessages.filter(
358
- (msg: string): boolean => msg && msg !== DyFM_error_defaults.userMessage
359
- )?.[0];
360
- }
361
-
362
- /** set userMessageTranslateCode */
363
- set.userMessageTranslateCode =
364
- set.userMessageTranslateCode ??
365
- (set.error as DyFM_Error)?.__userMessageTranslateCode;
366
-
367
- /** set errors */
368
- let previousErrors: DyFM_AnyError[] = [];
369
-
370
- if ((set.error as DyFM_Error)?.errors?.length) {
371
- previousErrors.push(...(set.error as DyFM_Error).errors);
372
- } else if (typeof (set.error as DyFM_Error)?.errors == 'object') {
373
- this.additionalContent.errors = (set.error as DyFM_Error).errors;
374
- }
375
- previousErrors = previousErrors.filter(
376
- (error: DyFM_AnyError): boolean => error !== set.error
377
- );
378
- this.errors = [ ...previousErrors, set.error ].filter(Boolean);
379
-
380
- if (set.errors) {
381
- if (0 < this.errors.length) {
382
- this.errors.push(...(set.errors ?? []));
383
- } else {
384
- this.errors.push(
385
- new Error('there are multiple errors. check errors after this one'),
386
- ...(set.errors ?? []),
387
- );
388
- }
389
- }
390
- this.error = this.errors?.[0];
391
- this.errors = this.errors.map((subError: DyFM_AnyError): any => {
392
- if ((subError as DyFM_Error)?.errors) {
393
- subError = { ...subError } as DyFM_Error;
394
- delete subError.errors;
395
- delete subError.additionalContent;
396
- }
397
-
398
- if (((subError as DyFM_Error).error as DyFM_Error)?.errors) {
399
- (subError as DyFM_Error).error = { ...(subError as DyFM_Error).error } as DyFM_Error;
400
- delete ((subError as DyFM_Error).error as DyFM_Error).errors;
401
- delete ((subError as DyFM_Error).error as DyFM_Error).additionalContent;
402
- }
403
-
404
- return subError;
405
- });
406
-
407
- this.errors = this.errors.filter((error: DyFM_AnyError): boolean =>
408
- Boolean(error) && (error instanceof Error || Boolean(Object.keys(error).length))
409
- );
410
-
411
- DyFM_Object.safeCleanObject(this);
412
-
413
- if (!set.allowCircular) {
414
- this.errors = this.errors.filter((subError: DyFM_AnyError): boolean => {
415
- if (subError instanceof Error) {
416
- return true;
417
- }
418
-
419
- try {
420
- JSON.stringify(subError);
421
-
422
- return true;
423
- } catch (error) {
424
- DyFM_Log.error(
425
- 'Internal Dynamo ERROR: error is not JSON.stringifyable... ' +
426
- '(it will be removed!)',
427
- '\nerrorCode:', (subError as DyFM_Error)?._errorCode,
428
- );
429
-
430
- return false;
431
- }
432
- });
433
- }
434
-
435
-
436
-
437
- if (set.modestLog) {
438
- console.error(this._message ?? this.__userMessage ?? this.error);
439
- }
440
-
441
- if (set.log) {
442
- console.error(this);
443
- }
444
- } catch (error) {
445
- DyFM_Log.H_error(
446
- 'Internal Dynamo ERROR: Failed to create DyFM_Error...' +
447
- 'error:\n', error,
448
- 'stack:', new Error().stack,
449
- 'set:', set
450
- );
451
- }
452
- }
453
-
454
- getErrorSimplified(): DyFM_Error_Settings {
455
- return {
456
- errorCode: this._errorCode,
457
- message: this._message,
458
- userMessage: this.__userMessage,
459
- stack: this.stack,
460
- };
461
- }
462
-
463
- getErrorsFlat(): DyFM_Error {
464
- const error: any = { ...this };
465
-
466
- if ((error.error as DyFM_Error)?.error) {
467
- delete (error.error as DyFM_Error).error;
468
- }
469
-
470
- if ((error.error as DyFM_Error)?.errors) {
471
- delete (error.error as DyFM_Error).errors;
472
- }
473
-
474
- error.errors = error.errors.map(
475
- (subError: DyFM_Error): Partial<DyFM_Error> =>
476
- error instanceof Error ? error : ({ ...subError })
477
- );
478
-
479
- error.errors.forEach((subError: DyFM_Error): void => {
480
- if (subError.errors) {
481
- delete subError.errors;
482
- }
483
-
484
- if ((subError.error as DyFM_Error)?.errors) {
485
- delete (subError.error as DyFM_Error).errors;
486
- }
487
-
488
- if ((subError.error as DyFM_Error)?.error) {
489
- delete (subError.error as DyFM_Error).error;
490
- }
491
-
492
- if (subError.additionalContent) {
493
- delete subError.additionalContent;
494
- }
495
- });
496
-
497
- return error;
498
- }
499
-
500
- logShort(
501
- title: string,
502
- setLog?: boolean,
503
- forceLog?: boolean,
504
- /* logType?: DyFM_Log_Type, */
505
- ): void {
506
- if (this.___logged && !forceLog) {
507
- DyFM_Log.warn(`logShort: already logged (${this._errorCode})`);
508
- return;
509
- }
510
-
511
- /* switch (logType) { */
512
- DyFM_Log.testError(
513
- title,
514
- '\n ErrorCode:', this._errorCode,
515
- '\n Message:', this._message?.replaceAll?.('\n', '\n '),
516
- );
517
-
518
- if (setLog) {
519
- this.___logged = true;
520
- }
521
- }
522
-
523
- warnShort(
524
- title: string,
525
- setLog?: boolean,
526
- forceLog?: boolean,
527
- ): void {
528
- if (this.___logged && !forceLog) {
529
- DyFM_Log.warn(`warnShort: already logged (${this._errorCode})`);
530
- return;
531
- }
532
-
533
- DyFM_Log.testWarn(
534
- title,
535
- '\n ErrorCode:', this._errorCode,
536
- '\n Message:', this._message?.replaceAll?.('\n', '\n '),
537
- );
538
-
539
- if (setLog) {
540
- this.___logged = true;
541
- }
542
- }
543
-
544
- logSimple(
545
- title: string,
546
- logAdditionalContent?: boolean,
547
- forceLog?: boolean,
548
- logNodeModules?: boolean
549
- ): void {
550
- if (this.___logged && !forceLog) {
551
- DyFM_Log.warn(`logSimple: already logged ${title} (${this._message}; ${this._errorCode})`);
552
- return;
553
- }
554
-
555
- // remove node_modules from stack and replace with '...'
556
- /* const stack: string = this.stack?.split?.('\n').map((line: string): string => {
557
- if (line.includes('node_modules')) {
558
- return '...';
559
- }
560
- return line;
561
- }).filter((line: string, index: number, array: string[]): boolean => {
562
- if (line === '...' && index < array.length - 1 && array[index + 1] === '...') {
563
- return false;
564
- }
565
- return true;
566
- }).join('\n'); */
567
-
568
- DyFM_Log.H_error(
569
- title,
570
- `\n${DyFM_Log.errorStyle}ErrorCode:`, this._errorCode,
571
- `\n${DyFM_Log.errorStyle}${DyFM_LogStyle.bold}Message:`,
572
- this._message?.replaceAll?.('\n', '\n '),
573
- `\n\n${DyFM_LogStyle.reset}${DyFM_Log.errorStyle}UserMessage:`,
574
- this.__userMessage?.replaceAll?.('\n', '\n '),
575
- this.__localStack ?
576
- `\n${DyFM_Log.errorStyle}LocalStack:\n ` + this.__localStack : '',
577
- `\n\n${DyFM_Log.errorStyle}Stack:`, this.stack?.replaceAll?.('\n', '\n '),
578
- logAdditionalContent && this.additionalContent ?
579
- `\n\n${DyFM_Log.errorStyle}AdditionalContent:\n` + this.additionalContent : '',
580
- );
581
-
582
- this.___logged = true;
583
- }
584
-
585
- /* static getSimpleLogContent(error: DyFM_Error): string {
586
- return `\n${DyFM_Log.errorStyle}ErrorCode:`, this._errorCode,
587
- `\n${DyFM_Log.errorStyle}${DyFM_LogStyle.bold}Message:`,
588
- this._message?.replaceAll?.('\n', '\n '),
589
- `\n\n${DyFM_LogStyle.reset}${DyFM_Log.errorStyle}UserMessage:`,
590
- this.__userMessage?.replaceAll?.('\n', '\n '),
591
- this.__localStack ?
592
- `\n${DyFM_Log.errorStyle}LocalStack:\n ` + this.__localStack : '',
593
- `\n\n${DyFM_Log.errorStyle}Stack:`, this.stack?.replaceAll?.('\n', '\n '),
594
- logAdditionalContent && this.additionalContent ?
595
- `\n\n${DyFM_Log.errorStyle}AdditionalContent:\n` + this.additionalContent : '' */
596
-
597
- /**
598
- * Checks if the error is parsable,
599
- * simplifies the error,
600
- * and returns the error as a string.
601
- */
602
- getParsable(): string {
603
- try {
604
- const flat = this.getErrorsFlat();
605
- return JSON.stringify(flat);
606
- } catch (error) {
607
- DyFM_Log.error('Error getting parsable error', error);
608
- return JSON.stringify(this.getErrorSimplified());
609
- }
610
- }
611
-
612
- static logSimple(message: string, error: DyFM_AnyError): void {
613
- if (error instanceof DyFM_Error) {
614
- error.logSimple(message);
615
- } else {
616
- DyFM_Log.T_error(message, error);
617
- }
618
- }
619
-
620
- static getErrorMessage(error: DyFM_AnyError): string {
621
- return (error as DyFM_Error)?._message ??
622
- (error as Error)?.message ??
623
- ((error as DyFM_HttpErrorResponse)?.error as DyFM_Error)?._message ??
624
- ((error as DyFM_HttpErrorResponse)?.error as Error)?.message;
625
- }
626
-
627
- /**
628
- * Returns the message of the error.
629
- * Returns the userMessage if the message is not set.
630
- * (prioritizes the message over the userMessage)
631
- */
632
- static getAnyMessage(error: DyFM_AnyError): string {
633
- return this.getErrorMessage(error) ?? this.getUserMessage(error);
634
- }
635
-
636
- static getUserMessage(error: DyFM_AnyError): string {
637
- return (error as DyFM_Error)?.__userMessage ??
638
- ((error as DyFM_HttpErrorResponse)?.error as DyFM_Error)?.__userMessage ??
639
- (error as DyFM_Error_Settings)?.userMessage;
640
- }
641
-
642
- /**
643
- * Returns the user message of the error.
644
- * Returns the message if the userMessage is not set.
645
- * (prioritizes the userMessage over the message)
646
- */
647
- static getAnyUserMessage(error: DyFM_AnyError): string {
648
- return this.getUserMessage(error) ?? this.getErrorMessage(error);
649
- }
650
-
651
- /**
652
- * A hiba szemantikus szöveges változata: saját üzenet + zárójelben a _messages lista első eleme
653
- * (gyökér Dynamo Error üzenete), ha van lánc. Nem az object láncon járunk végig, a _messages-t használjuk.
654
- */
655
- static getSemanticMessage(error: DyFM_AnyError): string {
656
- const ourMessage: string = this.getErrorMessage(error);
657
- if (!this.isDyFMError(error)) {
658
- return ourMessage;
659
- }
660
- const messages: string[] | undefined = (error as DyFM_Error)._messages;
661
- const firstMessage: string | undefined =
662
- messages && messages.length > 1 ? messages[0] : undefined;
663
- if (firstMessage && firstMessage !== ourMessage) {
664
- return `${ourMessage} (${firstMessage})`;
665
- }
666
- return ourMessage;
667
- }
668
-
669
- static getErrorStatus(error: DyFM_AnyError): number {
670
- return (error as DyFM_Error)?.___status ??
671
- (error as DyFM_HttpErrorResponse)?.status ??
672
- ((error as DyFM_HttpErrorResponse)?.error as DyFM_Error)?.___status ?? 500;
673
- }
674
-
675
- static getErrorCode(error: DyFM_AnyError): string {
676
- return (error as DyFM_Error)?._errorCode ??
677
- ((error as DyFM_HttpErrorResponse)?.error as DyFM_Error)?._errorCode ??
678
- (error as any)?.errorCode ??
679
- (error as any)?.error?.errorCode ??
680
- (error as any)?.code ??
681
- (error as any)?.error?.code;
682
- }
683
-
684
- static getErrorStack(error: DyFM_AnyError): string {
685
- return (error as DyFM_Error)?.stack ??
686
- ((error as DyFM_HttpErrorResponse)?.error as DyFM_NonHttpError)?.stack;
687
- }
688
-
689
- static isDyFMError(error: any): error is DyFM_Error {
690
- return (error as DyFM_Error)?.flag?.includes('DYNAMO');
691
- }
692
-
693
- static isAnyDyFMError(error: any): error is DyFM_AnyError {
694
- return this.isDyFMError(error) ||
695
- (error as DyFM_HttpErrorResponse)?.name === DyFM_httpErrorResponse_name ||
696
- error instanceof Error;
697
- }
698
-
699
- static deleteErrorContent(error: DyFM_Error): void {
700
- delete error.confidentialContent;
701
- delete error.additionalContent;
702
- delete error.error;
703
- delete error.errors;
704
- delete error.stack;
705
- }
706
-
707
- static getStatusText(status: number): string {
708
- switch (status) {
709
- case 100:
710
- return 'Continue';
711
- case 101:
712
- return 'Switching Protocols';
713
- case 102:
714
- return 'Processing';
715
- case 103:
716
- return 'Early Hints';
717
-
718
- case 200:
719
- return 'OK';
720
- case 201:
721
- return 'Created';
722
- case 202:
723
- return 'Accepted';
724
- case 203:
725
- return 'Non-Authoritative Information';
726
- case 204:
727
- return 'No Content';
728
- case 205:
729
- return 'Reset Content';
730
- case 206:
731
- return 'Partial Content';
732
- case 207:
733
- return 'Multi-Status';
734
- case 208:
735
- return 'Already Reported';
736
- case 226:
737
- return 'IM Used';
738
-
739
- case 300:
740
- return 'Multiple Choices';
741
- case 301:
742
- return 'Moved Permanently';
743
- case 302:
744
- return 'Found';
745
- case 303:
746
- return 'See Other';
747
- case 304:
748
- return 'Not Modified';
749
- case 305:
750
- return 'Use Proxy';
751
- case 306:
752
- return 'Switch Proxy';
753
- case 307:
754
- return 'Temporary Redirect';
755
- case 308:
756
- return 'Permanent Redirect';
757
-
758
- case 400:
759
- return 'Bad Request';
760
- case 401:
761
- return 'Unauthorized';
762
- case 402:
763
- return 'Payment Required';
764
- case 403:
765
- return 'Forbidden';
766
- case 404:
767
- return 'Not Found';
768
- case 405:
769
- return 'Method Not Allowed';
770
- case 406:
771
- return 'Not Acceptable';
772
- case 407:
773
- return 'Proxy Authentication Required';
774
- case 408:
775
- return 'Request Timeout';
776
- case 409:
777
- return 'Conflict';
778
- case 410:
779
- return 'Gone';
780
- case 411:
781
- return 'Length Required';
782
- case 412:
783
- return 'Precondition Failed';
784
- case 413:
785
- return 'Payload Too Large';
786
- case 414:
787
- return 'URI Too Long';
788
- case 415:
789
- return 'Unsupported Media Type';
790
- case 416:
791
- return 'Range Not Satisfiable';
792
- case 417:
793
- return 'Expectation Failed';
794
- case 418:
795
- return "I'm a teapot";
796
- case 421:
797
- return 'Misdirected Request';
798
- case 422:
799
- return 'Unprocessable Entity';
800
- case 423:
801
- return 'Locked';
802
- case 424:
803
- return 'Failed Dependency';
804
- case 425:
805
- return 'Too Early';
806
- case 426:
807
- return 'Upgrade Required';
808
- case 428:
809
- return 'Precondition Required';
810
- case 429:
811
- return 'Too Many Requests';
812
- case 431:
813
- return 'Request Header Fields Too Large';
814
- case 451:
815
- return 'Unavailable For Legal Reasons';
816
-
817
- case 500:
818
- return 'Internal Server Error';
819
- case 501:
820
- return 'Not Implemented';
821
- case 502:
822
- return 'Bad Gateway';
823
- case 503:
824
- return 'Service Unavailable';
825
- case 504:
826
- return 'Gateway Timeout';
827
- case 505:
828
- return 'HTTP Version Not Supported';
829
- case 506:
830
- return 'Variant Also Negotiates';
831
- case 507:
832
- return 'Insufficient Storage';
833
- case 508:
834
- return 'Loop Detected';
835
- case 510:
836
- return 'Not Extended';
837
- case 511:
838
- return 'Network Authentication Required';
839
-
840
- default:
841
- return 'Unknown';
842
- }
843
- }
844
- }
845
-
846
- /*
847
-
848
- // //
849
- // RESPONSE STATUS //
850
- // //
851
-
852
- 1XX informational response
853
-
854
- 100 Continue
855
- 101 Switching Protocols
856
- 102 Processing
857
- 103 Early Hints
858
-
859
-
860
- 2XX success
861
-
862
- 200 OK
863
- 201 Created
864
- 202 Accepted
865
- 203 Non-Authoritative Information
866
- 204 No Content
867
- 205 Reset Content
868
- 206 Partial Content
869
- 207 Multi-Status
870
- 208 Already Reported
871
- 226 IM Used
872
-
873
-
874
- 3XX redirection
875
-
876
- 300 Multiple Choices
877
- 301 Moved Permanently
878
- 302 Found
879
- 303 See Other
880
- 304 Not Modified
881
- 305 Use Proxy
882
- 306 Switch Proxy
883
- 307 Temporary Redirect
884
- 308 Permanent Redirect
885
-
886
-
887
- 4XX client n network errors
888
-
889
- 400 Bad Request
890
- 401 Unauthorized
891
- 402 Payment Required
892
- 403 Forbidden
893
- 404 Not Found
894
- 405 Method Not Allowed
895
- 406 Not Acceptable
896
- 407 Proxy Authentication Required
897
- 408 Request Timeout
898
- 409 Conflict
899
- 410 Gone
900
- 411 Length Required
901
- 412 Precondition Failed
902
- 413 Payload Too Large
903
- 414 URI Too Long
904
- 415 Unsupported Media Type
905
- 416 Range Not Satisfiable
906
- 417 Expectation Failed
907
- 418 I'm a teapot
908
- 421 Misdirected Request
909
- 422 Unprocessable Entity
910
- 423 Locked
911
- 424 Failed Dependency
912
- 425 Too Early
913
- 426 Upgrade Required
914
- 428 Precondition Required
915
- 429 Too Many Requests
916
- 431 Request Header Fields Too Large
917
- 451 Unavailable For Legal Reasons
918
-
919
-
920
- 5XX server errors
921
-
922
- 500 Internal Server Error
923
- 501 Not Implemented
924
- 502 Bad Gateway
925
- 503 Service Unavailable
926
- 504 Gateway Timeout
927
- 505 HTTP Version Not Supported
928
- 506 Variant Also Negotiates
929
- 507 Insufficient Storage
930
- 508 Loop Detected
931
- 510 Not Extended
932
- 511 Network Authentication Required
933
-
934
-
935
- Unofficial codes
936
-
937
- 103 Checkpoint
938
-
939
- 218 This is fine (Apache Web Server)
940
-
941
- 419 Page Expired (Laravel Framework)
942
- 420 Enhance Your Calm (Twitter)
943
- 430 Request Header Fields Too Large (Shopify)
944
- 440 Login Time-out
945
- 444 No Response
946
- 449 Retry With
947
- 450 Blocked by Windows Parental Controls (Microsoft)
948
- 451 Redirect
949
- 494 Request header too large
950
- 495 SSL Certificate Error
951
- 496 SSL Certificate Required
952
- 497 HTTP Request Sent to HTTPS Port
953
- 498 Invalid Token (Esri)
954
- 499 Client Closed Request
955
- 499 Token Required (Esri)
956
-
957
- 509 Bandwidth Limit Exceeded (Apache Web Server/cPanel)
958
- 520 Web Server Returned an any Error
959
- 521 Web Server Is Down
960
- 522 Connection Timed Out
961
- 523 Origin Is Unreachable
962
- 524 A Timeout Occurred
963
- 525 SSL Handshake Failed
964
- 526 Invalid SSL Certificate
965
- 527 Railgun Error
966
- 529 Site is overloaded
967
- 530 Site is frozen
968
- 598 (Informal convention) Network read timeout error
969
-
970
-
971
-
972
- 530
973
-
974
- 460
975
- 463
976
-
977
- */
978
-
979
-
980
-
981
-
982
- /**
983
- * Returns the average of two numbers.
984
- *
985
- * @remarks
986
- * This method is part of the {@link core-library#Statistics | Statistics subsystem}.
987
- *
988
- * @param x - The first input number
989
- * @param y - The second input number
990
- * @returns The arithmetic mean of `x` and `y`
991
- *
992
- * @beta
993
- * @returns true if the specified tag is surrounded with `{`
994
- * and `}` characters.
995
- *
996
- * @example
997
- * Prints "true" for `{@link}` but "false" for `@internal`:
998
- * ```ts
999
- * console.log(isInlineTag('{@link}'));
1000
- * console.log(isInlineTag('@internal'));
1001
- * ```
1002
- *
1003
- *
1004
- * @alpha
1005
- * v
1006
- * sadfas d
1007
- * fs
1008
- * daf
1009
- * d as
1010
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1011
- * a
1012
- * @beta
1013
- * v
1014
- * sadfas d
1015
- * fs
1016
- * daf
1017
- * d as
1018
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1019
- * b
1020
- * @decorator
1021
- * v
1022
- * sadfas d
1023
- * fs
1024
- * daf
1025
- * d as
1026
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1027
- * dc
1028
- * @deprecated
1029
- * v
1030
- * sadfas d
1031
- * fs
1032
- * daf
1033
- * d as
1034
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1035
- * dp
1036
- * @defaultValue
1037
- * v
1038
- * sadfas d
1039
- * fs
1040
- * daf
1041
- * d as
1042
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1043
- * dv
1044
- * @eventProperty
1045
- * v
1046
- * sadfas d
1047
- * fs
1048
- * daf
1049
- * d as
1050
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1051
- * ep
1052
- * @example
1053
- * v
1054
- * sadfas d
1055
- * fs
1056
- * daf
1057
- * d as
1058
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1059
- * ex
1060
- * @experimental
1061
- * v
1062
- * sadfas d
1063
- * fs
1064
- * daf
1065
- * d as
1066
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1067
- * exp
1068
- * @inheritDoc
1069
- * v
1070
- * sadfas d
1071
- * fs
1072
- * daf
1073
- * d as
1074
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1075
- * in
1076
- * @internal
1077
- * v
1078
- * sadfas d
1079
- * fs
1080
- * daf
1081
- * d as
1082
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1083
- * int
1084
- * @label
1085
- * v
1086
- * sadfas d
1087
- * fs
1088
- * daf
1089
- * d as
1090
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1091
- * lab
1092
- * @link
1093
- * v
1094
- * sadfas d
1095
- * fs
1096
- * daf
1097
- * d as
1098
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1099
- * li
1100
- * @override
1101
- * v
1102
- * sadfas d
1103
- * fs
1104
- * daf
1105
- * d as
1106
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1107
- * v
1108
- * sadfas d
1109
- * fs
1110
- * daf
1111
- * d as
1112
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1113
- * ov
1114
- * @packageDocumentation
1115
- * v
1116
- * sadfas d
1117
- * fs
1118
- * daf
1119
- * d as
1120
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1121
- * pad
1122
- * @param
1123
- * v
1124
- * sadfas d
1125
- * fs
1126
- * daf
1127
- * d as
1128
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1129
- * par
1130
- * @privateRemarks
1131
- * v
1132
- * sadfas d
1133
- * fs
1134
- * daf
1135
- * d as
1136
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1137
- * pr
1138
- * @public
1139
- * v
1140
- * sadfas d
1141
- * fs
1142
- * daf
1143
- * d as
1144
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1145
- * p
1146
- * @readonly
1147
- * v
1148
- * sadfas d
1149
- * fs
1150
- * daf
1151
- * d as
1152
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1153
- * re
1154
- * @remarks
1155
- * v
1156
- * sadfas d
1157
- * fs
1158
- * daf
1159
- * d as
1160
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1161
- * rem
1162
- * @returns
1163
- * v
1164
- * sadfas d
1165
- * fs
1166
- * daf
1167
- * d as
1168
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1169
- * ret
1170
- * @sealed
1171
- * v
1172
- * sadfas d
1173
- * fs
1174
- * daf
1175
- * d as
1176
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1177
- * sea
1178
- * @see
1179
- * v
1180
- * sadfas d
1181
- * fs
1182
- * daf
1183
- * d as
1184
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1185
- * see
1186
- * @throws
1187
- * v
1188
- * sadfas d
1189
- * fs
1190
- * daf
1191
- * d as
1192
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1193
- * th
1194
- * @typeParam
1195
- * v
1196
- * sadfas d
1197
- * fs
1198
- * daf
1199
- * d as
1200
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1201
- * typ
1202
- * @virtual
1203
- * v
1204
- * sadfas d
1205
- * fs
1206
- * daf
1207
- * d as
1208
- * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1209
- *
1210
- *
1211
- * @see {@link http://example.com/@internal LINK}
1212
- * @see {@link http://example.com/@internal http://example.com/@internal}
1213
- */
1214
- export interface TestDocumentationComments {}
1215
-
1
+ import { DyFM_error_defaults } from '../../_collections/constants/error-defaults.const';
2
+ import { DyFM_Log } from '../../_collections/utils/log.util';
3
+ import { DyFM_Object } from '../../_collections/utils/object.util';
4
+ import { DyFM_getLocalStackLocation } from '../../_collections/utils/stack.util';
5
+ import { DyFM_ErrorLevel } from '../../_enums/error-level.enum';
6
+ import { DyFM_LogStyle } from '../../_enums/log-style.enum';
7
+ import { DyFM_Metadata } from '../data-models/metadata.data-model';
8
+ import { DyFM_HttpErrorResponse, DyFM_httpErrorResponse_name } from './http/http-error-response.control-model';
9
+
10
+ export const DyFM_errorFlag = 'DYNAMO-ERROR-OBJECT';
11
+ export const DyFM_errorĐFlagParts= [
12
+ 'DyNTS-',
13
+ 'DyFM-',
14
+ 'DyNX_',
15
+ 'DyNM_',
16
+ 'DyBu_',
17
+ 'DyCLI_',
18
+ ]
19
+
20
+ export interface DyFM_ValidationError {
21
+ message: string;
22
+ /** @deprecated use message instead */
23
+ userMessage?: string;
24
+ code: string;
25
+ }
26
+
27
+ export type DyFM_ValidationErrors = {
28
+ [key: string]: DyFM_ValidationError;
29
+ }
30
+
31
+ export type DyFM_AnyError = DyFM_Error | DyFM_HttpErrorResponse | Error | any | unknown;
32
+ export type DyFM_NonHttpError = DyFM_Error | Error;
33
+
34
+ export interface DyFM_Error_Settings {
35
+ _id?: string;
36
+
37
+ handled?: boolean;
38
+ status?: number;
39
+
40
+ errorCode?: string;
41
+ message?: string;
42
+ /** @deprecated use message instead */
43
+ userMessage?: string;
44
+ /** message translation code */
45
+ userMessageTranslateCode?: string;
46
+ addECToUserMsg?: boolean;
47
+
48
+ error?: DyFM_AnyError;
49
+ errors?: DyFM_AnyError[];
50
+ validationErrors?: DyFM_ValidationErrors;
51
+
52
+ issuer?: string;
53
+ issuerSystem?: string;
54
+ issuerService?: string;
55
+ systemVersion?: string;
56
+
57
+ level?: DyFM_ErrorLevel;
58
+
59
+ levelUpThis?: boolean;
60
+ additionalContent?: any;
61
+ confidentialContent?: any;
62
+ stack?: string;
63
+
64
+ allowCircular?: boolean;
65
+ modestLog?: boolean;
66
+ log?: boolean;
67
+
68
+ __localStack?: string;
69
+ __created?: Date;
70
+ __createdBy?: string;
71
+ __lastModified?: Date;
72
+ __lastModifiedBy?: string;
73
+ __v?: number;
74
+ }
75
+
76
+ export class DyFM_Error extends Error implements DyFM_Metadata {
77
+ readonly flag = DyFM_errorFlag + '-v2';
78
+
79
+ // ─── DyFM_Metadata mezok (implements DyFM_Metadata) ─────────────────────────
80
+ // A DyFM_Error mostantol `extends Error` — igy `err instanceof Error === true`, es a
81
+ // Node 22 strict unhandled-rejection riport a VALODI throw-site stacket mutatja (a korabbi
82
+ // `extends DyFM_Metadata` mellett a bare-object Promise rejection veletlen specet blame-elt).
83
+ // A metadata-orokles helyett strukturalisan IMPLEMENTALJUK a DyFM_Metadata-t: a mezoket itt
84
+ // deklaraljuk, az init-logikat a constructorban a DyFM_Metadata.applyMetadata statikus vegzi.
85
+ _id?: string;
86
+ __created?: Date;
87
+ __createdBy?: string;
88
+ __lastModified?: Date;
89
+ __lastModifiedBy?: string;
90
+ __v?: number;
91
+ _deleted?: Date;
92
+ _deletedBy?: string;
93
+ _archived?: Date;
94
+ _originalId?: string;
95
+
96
+ _errorCode?: string;
97
+ _errorCodes?: string[] = [];
98
+
99
+ /** contains all sub error messages, in reversed order */
100
+ _message?: string;
101
+ _messages?: string[] = [];
102
+
103
+ /** @deprecated use _message instead */
104
+ __userMessage?: string;
105
+ /** contains all sub error messages, in reversed order
106
+ * @deprecated use _messages instead
107
+ */
108
+ __userMessages?: string[] = [];
109
+ /** message translation code */
110
+ __userMessageTranslateCode?: string;
111
+
112
+ ___handled?: boolean;
113
+ ___logged?: boolean;
114
+ ___status?: number;
115
+
116
+ ___issuer?: string;
117
+ ___issuerSystem?: string;
118
+ ___issuerService?: string;
119
+ ___systemVersion?: string;
120
+
121
+ error?: DyFM_AnyError;
122
+ errors?: DyFM_AnyError[] = [];
123
+ validationErrors?: DyFM_ValidationErrors;
124
+
125
+ // `stack` az Error-bol jon (`extends Error`) — itt NEM deklaraljuk ujra, kulonben a
126
+ // class-field-init undefined-dal felulirna a natancsolt stacket a super() utan.
127
+ __localStack?: string;
128
+
129
+ level?: DyFM_ErrorLevel;
130
+
131
+ levelUpThis?: boolean;
132
+ additionalContent?: any = {};
133
+ confidentialContent?: any = {};
134
+
135
+ constructor(
136
+ set?: DyFM_Error_Settings
137
+ ) {
138
+ // az Error-constructort a nyers input-message-dzsel hivjuk (a vegleges _message kesobb all
139
+ // ossze; a natancsolt Error.message-et a constructor vegen allitjuk ra) — super() KOTELEZOEN
140
+ // az elso utasitas, a this- erintese elott.
141
+ super(set?.message);
142
+
143
+ // a natancsolt Error.name -> 'DyFM_Error' (non-enumerable, hogy a szerializalt shape ne
144
+ // valtozzon): igy a logok / Node-riport "DyFM_Error: ..."-kent jelennek meg, nem "Error: ...".
145
+ Object.defineProperty(this, 'name', {
146
+ value: 'DyFM_Error',
147
+ enumerable: false,
148
+ writable: true,
149
+ configurable: true,
150
+ });
151
+
152
+ // metadata-init: a korabbi `super(set, { issuer })` helyett (a super most az Error),
153
+ // target-alapon a DyFM_Metadata.applyMetadata statikuson at.
154
+ DyFM_Metadata.applyMetadata(
155
+ this,
156
+ set,
157
+ {
158
+ issuer: set?.issuerService ??
159
+ (set?.error as DyFM_Error)?.___issuerService ??
160
+ DyFM_error_defaults.issuerService,
161
+ }
162
+ );
163
+
164
+ try {
165
+ if (!set) {
166
+ set = {};
167
+ }
168
+
169
+ /** set simple properties */
170
+ this.___handled = Boolean(set.handled ?? (set.error as DyFM_Error)?.___handled);
171
+ this.___status = set.status ?? (set.error as DyFM_Error)?.___status;
172
+ this.___issuer = set.issuer ??
173
+ (set.error as DyFM_Error)?.___issuer ??
174
+ DyFM_error_defaults.issuer;
175
+ this.___issuerSystem = set.issuerSystem ??
176
+ (set.error as DyFM_Error)?.___issuerSystem ??
177
+ DyFM_error_defaults.issuerSystem;
178
+ this.___issuerService = set.issuerService ??
179
+ (set.error as DyFM_Error)?.___issuerService ??
180
+ DyFM_error_defaults.issuerService;
181
+ this.___systemVersion = set.systemVersion ??
182
+ (set.error as DyFM_Error)?.___systemVersion ??
183
+ DyFM_error_defaults.systemVersion;
184
+ this.__localStack = (set as DyFM_Error)?.__localStack ??
185
+ (set.error as DyFM_Error)?.__localStack ??
186
+ DyFM_getLocalStackLocation();
187
+
188
+ this.validationErrors = set.validationErrors ?? (set.error as DyFM_Error)?.validationErrors;
189
+
190
+ this.level = set.level ?? (set.error as DyFM_Error)?.level ?? DyFM_ErrorLevel.error;
191
+
192
+ this.levelUpThis = set.levelUpThis;
193
+
194
+ set.allowCircular = set.allowCircular ??
195
+ set.additionalContent?.allowCircular ??
196
+ (set.error as DyFM_Error)?.additionalContent?.allowCircular ??
197
+ false;
198
+
199
+ if (set.allowCircular) {
200
+ this.additionalContent.allowCircular = true;
201
+ }
202
+
203
+ if (((set as DyFM_Error)?.error as DyFM_Error)?.___logged) {
204
+ this.___logged = true;
205
+ }
206
+
207
+ if (
208
+ !set.allowCircular &&
209
+ set.additionalContent &&
210
+ Object.keys(set.additionalContent)?.length
211
+ ) {
212
+ try {
213
+ JSON.stringify(set.additionalContent);
214
+ } catch {
215
+ DyFM_Log.error(
216
+ 'Internal Dynamo ERROR: additionalContent is not JSON.stringifyable... ' +
217
+ '(it will be removed!)',
218
+ '\nerrorCode:', set.errorCode,
219
+ /* 'additionalContent:', set.additionalContent, */
220
+ );
221
+ delete set.additionalContent;
222
+ }
223
+ }
224
+
225
+ if (
226
+ !set.allowCircular &&
227
+ !set.additionalContent?.allowCircular &&
228
+ (set.error as DyFM_Error)?.additionalContent &&
229
+ !(set.error as DyFM_Error)?.additionalContent?.allowCircular &&
230
+ Object.keys((set.error as DyFM_Error)?.additionalContent)?.length
231
+ ) {
232
+ try {
233
+ JSON.stringify((set.error as DyFM_Error)?.additionalContent);
234
+ } catch {
235
+ DyFM_Log.error(
236
+ 'Internal Dynamo ERROR: additionalContent is not JSON.stringifyable... ' +
237
+ '(it will be removed!)',
238
+ '\nerrorCode:', set.errorCode,
239
+ /* 'additionalContent:', (set.error as DyFM_Error)?.additionalContent, */
240
+ );
241
+ delete (set.error as DyFM_Error)?.additionalContent;
242
+ }
243
+ }
244
+
245
+ // ADDITIONAL CONTENT
246
+ if ((set.error as DyFM_Error)?.additionalContent) {
247
+ Object.assign(this.additionalContent, (set.error as DyFM_Error)?.additionalContent);
248
+ }
249
+
250
+ if (set.additionalContent) {
251
+ Object.assign(this.additionalContent, set.additionalContent);
252
+ }
253
+
254
+ // CONFIDENTIAL CONTENT
255
+ if ((set.error as DyFM_Error)?.confidentialContent) {
256
+ Object.assign(this.confidentialContent, (set.error as DyFM_Error)?.confidentialContent);
257
+ }
258
+
259
+ if (set.confidentialContent) {
260
+ Object.assign(this.confidentialContent, set.confidentialContent);
261
+ }
262
+
263
+ // ERROR CODE
264
+ if (!set.errorCode) {
265
+ set.errorCode = DyFM_error_defaults.errorCode;
266
+ }
267
+
268
+ /** set default error (self defined) */
269
+ if (!set.error) {
270
+ set.error = new Error();
271
+ const errorStack: string[] = set.error.stack?.split('\n');
272
+
273
+ errorStack.splice(1, 1);
274
+ set.error.stack = errorStack.join('\n');
275
+ }
276
+
277
+ if ((set as DyFM_NonHttpError)?.stack) {
278
+ this.stack = (set as DyFM_NonHttpError)?.stack;
279
+ } else if ((set.error as DyFM_NonHttpError)?.stack) {
280
+ this.stack = (set.error as DyFM_NonHttpError)?.stack;
281
+ } else if (
282
+ (set.error as DyFM_HttpErrorResponse)?.name === DyFM_httpErrorResponse_name &&
283
+ (set.error as DyFM_HttpErrorResponse)?.error?.stack
284
+ ) {
285
+ this.stack = (set.error as DyFM_HttpErrorResponse)?.error?.stack;
286
+ } else {
287
+ this.stack = new Error().stack;
288
+ }
289
+
290
+ /** set errorCodes */
291
+ let previousErrorCodes: string[] = [];
292
+
293
+ if ((set.error as DyFM_Error)?._errorCodes) {
294
+ previousErrorCodes.push(...((set.error as DyFM_Error)?._errorCodes ?? []));
295
+ }
296
+
297
+ if (!set.errorCode) {
298
+ set.errorCode = DyFM_error_defaults.errorCode;
299
+ }
300
+ previousErrorCodes = previousErrorCodes.filter(
301
+ (code: string): boolean => code !== set.errorCode
302
+ );
303
+ this._errorCodes = [ ...previousErrorCodes, set.errorCode ].filter(Boolean);
304
+
305
+ /** bring up non NTS and non default first error */
306
+ const filteredErrorCodes: string[] = this._errorCodes.filter(
307
+ (code: string): boolean =>
308
+ code && code !== DyFM_error_defaults.errorCode &&
309
+ !DyFM_errorĐFlagParts.some((part: string): boolean => code.includes(part))
310
+ );
311
+
312
+ this._errorCode = filteredErrorCodes[0] ?? this._errorCodes?.[0];
313
+ const highlightedErrorCodeIndex: number = this._errorCodes.findIndex(
314
+ (code: string): boolean => code === filteredErrorCodes?.[0]
315
+ );
316
+
317
+ /** set message */
318
+ if (!set.message) {
319
+ if (typeof set.error === 'string') {
320
+ /** string error */
321
+ set.message = set.error;
322
+ } else if (
323
+ !(set.error as DyFM_Error)?.flag?.includes('DYNAMO') &&
324
+ (set.error as Error)?.message
325
+ ) {
326
+ /** simple - non-dynamo - error */
327
+ set.message = (set.error as Error)?.message;
328
+ } else if ((set.error as Error).stack) {
329
+ /** error not defined - self defining */
330
+ const posFull: string[] = (set.error as Error).stack?.split('\n')?.[1]?.split('\\');
331
+
332
+ if (posFull?.[posFull?.length - 1]) {
333
+ set.message = DyFM_error_defaults.message + '; ' + posFull[posFull.length - 1];
334
+ } else {
335
+ set.message = DyFM_error_defaults.message;
336
+ }
337
+ }
338
+ }
339
+ /** set messages */
340
+ let previousMessages: string[] = [];
341
+
342
+ if ((set.error as DyFM_Error)?._messages) {
343
+ previousMessages.push(...((set.error as DyFM_Error)?._messages ?? []));
344
+ } else if ((set.error as Error)?.message) {
345
+ previousErrorCodes.push((set.error as Error)?.message);
346
+ }
347
+ previousMessages = previousMessages.filter(
348
+ (msg: string): boolean => msg !== set.message
349
+ );
350
+ this._messages = [ ...previousMessages, set.message ].filter(Boolean);
351
+
352
+ if (
353
+ -1 < highlightedErrorCodeIndex &&
354
+ this._messages[highlightedErrorCodeIndex] &&
355
+ this._messages[highlightedErrorCodeIndex] !== DyFM_error_defaults.message
356
+ ) {
357
+ this._message = this._messages[highlightedErrorCodeIndex];
358
+ } else {
359
+ this._message = this._messages?.[0];
360
+ }
361
+
362
+ /** @deprecated use _messages instead */
363
+ let previousUserMessages: string[] = [];
364
+
365
+ if ((set.error as DyFM_Error)?.__userMessages) {
366
+ previousUserMessages.push(...((set.error as DyFM_Error)?.__userMessages ?? []));
367
+ }
368
+
369
+ if (!set.userMessage) {
370
+ set.userMessage = DyFM_error_defaults.userMessage;
371
+ }
372
+
373
+ if (
374
+ set.addECToUserMsg &&
375
+ set.userMessage !== DyFM_error_defaults.userMessage &&
376
+ set.errorCode
377
+ ) {
378
+ set.userMessage += `\n ErrorCode: ${set.errorCode}`;
379
+ }
380
+ previousUserMessages = previousUserMessages.filter(
381
+ (msg: string): boolean => msg !== set.userMessage
382
+ );
383
+ this.__userMessages = [ ...previousUserMessages, set.userMessage ].filter(Boolean);
384
+
385
+ if (
386
+ -1 < highlightedErrorCodeIndex &&
387
+ this.__userMessages[highlightedErrorCodeIndex] &&
388
+ this.__userMessages[highlightedErrorCodeIndex] !== DyFM_error_defaults.userMessage
389
+ ) {
390
+ this.__userMessage = this.__userMessages[highlightedErrorCodeIndex];
391
+ } else {
392
+ this.__userMessage = this.__userMessages.filter(
393
+ (msg: string): boolean => msg && msg !== DyFM_error_defaults.userMessage
394
+ )?.[0];
395
+ }
396
+
397
+ /** set userMessageTranslateCode */
398
+ set.userMessageTranslateCode =
399
+ set.userMessageTranslateCode ??
400
+ (set.error as DyFM_Error)?.__userMessageTranslateCode;
401
+
402
+ /** set errors */
403
+ let previousErrors: DyFM_AnyError[] = [];
404
+
405
+ if ((set.error as DyFM_Error)?.errors?.length) {
406
+ previousErrors.push(...(set.error as DyFM_Error).errors);
407
+ } else if (typeof (set.error as DyFM_Error)?.errors == 'object') {
408
+ this.additionalContent.errors = (set.error as DyFM_Error).errors;
409
+ }
410
+ previousErrors = previousErrors.filter(
411
+ (error: DyFM_AnyError): boolean => error !== set.error
412
+ );
413
+ this.errors = [ ...previousErrors, set.error ].filter(Boolean);
414
+
415
+ if (set.errors) {
416
+ if (0 < this.errors.length) {
417
+ this.errors.push(...(set.errors ?? []));
418
+ } else {
419
+ this.errors.push(
420
+ new Error('there are multiple errors. check errors after this one'),
421
+ ...(set.errors ?? []),
422
+ );
423
+ }
424
+ }
425
+ this.error = this.errors?.[0];
426
+ this.errors = this.errors.map((subError: DyFM_AnyError): any => {
427
+ if ((subError as DyFM_Error)?.errors) {
428
+ subError = { ...subError } as DyFM_Error;
429
+ delete subError.errors;
430
+ delete subError.additionalContent;
431
+ }
432
+
433
+ if (((subError as DyFM_Error).error as DyFM_Error)?.errors) {
434
+ (subError as DyFM_Error).error = { ...(subError as DyFM_Error).error } as DyFM_Error;
435
+ delete ((subError as DyFM_Error).error as DyFM_Error).errors;
436
+ delete ((subError as DyFM_Error).error as DyFM_Error).additionalContent;
437
+ }
438
+
439
+ return subError;
440
+ });
441
+
442
+ this.errors = this.errors.filter((error: DyFM_AnyError): boolean =>
443
+ Boolean(error) && (error instanceof Error || Boolean(Object.keys(error).length))
444
+ );
445
+
446
+ // ─── `extends Error` szerializacios igazitasok ─────────────────────────
447
+ // A natancsolt Error a stacket NON-ENUMERABLE own-property-kent kezeli, igy a
448
+ // `{ ...this }` spread (getErrorsFlat) es a JSON.stringify (getParsable / perzisztalas)
449
+ // elejtene. Enumerable-kent ujradefinialjuk, hogy a szerializacios utak megtartsak.
450
+ if (this.stack !== undefined) {
451
+ Object.defineProperty(this, 'stack', {
452
+ value: this.stack,
453
+ enumerable: true,
454
+ writable: true,
455
+ configurable: true,
456
+ });
457
+ }
458
+
459
+ // A natancsolt Error.message-et a sajat _message-unkre allitjuk (NON-enumerable marad,
460
+ // hogy a szerializalt shape valtozatlan legyen — a forras tovabbra is a _message): igy a
461
+ // `(err as Error).message` fogyasztok ES a Node 22 unhandled-rejection printer a valodi
462
+ // uzenetet latjak, nem ures stringet.
463
+ Object.defineProperty(this, 'message', {
464
+ value: this._message ?? this.__userMessage ?? '',
465
+ enumerable: false,
466
+ writable: true,
467
+ configurable: true,
468
+ });
469
+
470
+ DyFM_Object.safeCleanObject(this);
471
+
472
+ if (!set.allowCircular) {
473
+ this.errors = this.errors.filter((subError: DyFM_AnyError): boolean => {
474
+ if (subError instanceof Error) {
475
+ return true;
476
+ }
477
+
478
+ try {
479
+ JSON.stringify(subError);
480
+
481
+ return true;
482
+ } catch (error) {
483
+ DyFM_Log.error(
484
+ 'Internal Dynamo ERROR: error is not JSON.stringifyable... ' +
485
+ '(it will be removed!)',
486
+ '\nerrorCode:', (subError as DyFM_Error)?._errorCode,
487
+ );
488
+
489
+ return false;
490
+ }
491
+ });
492
+ }
493
+
494
+
495
+
496
+ if (set.modestLog) {
497
+ console.error(this._message ?? this.__userMessage ?? this.error);
498
+ }
499
+
500
+ if (set.log) {
501
+ console.error(this);
502
+ }
503
+ } catch (error) {
504
+ DyFM_Log.H_error(
505
+ 'Internal Dynamo ERROR: Failed to create DyFM_Error...' +
506
+ 'error:\n', error,
507
+ 'stack:', new Error().stack,
508
+ 'set:', set
509
+ );
510
+ }
511
+ }
512
+
513
+ getErrorSimplified(): DyFM_Error_Settings {
514
+ return {
515
+ errorCode: this._errorCode,
516
+ message: this._message,
517
+ userMessage: this.__userMessage,
518
+ stack: this.stack,
519
+ };
520
+ }
521
+
522
+ getErrorsFlat(): DyFM_Error {
523
+ const error: any = { ...this };
524
+
525
+ if ((error.error as DyFM_Error)?.error) {
526
+ delete (error.error as DyFM_Error).error;
527
+ }
528
+
529
+ if ((error.error as DyFM_Error)?.errors) {
530
+ delete (error.error as DyFM_Error).errors;
531
+ }
532
+
533
+ error.errors = error.errors.map(
534
+ (subError: DyFM_Error): Partial<DyFM_Error> =>
535
+ error instanceof Error ? error : ({ ...subError })
536
+ );
537
+
538
+ error.errors.forEach((subError: DyFM_Error): void => {
539
+ if (subError.errors) {
540
+ delete subError.errors;
541
+ }
542
+
543
+ if ((subError.error as DyFM_Error)?.errors) {
544
+ delete (subError.error as DyFM_Error).errors;
545
+ }
546
+
547
+ if ((subError.error as DyFM_Error)?.error) {
548
+ delete (subError.error as DyFM_Error).error;
549
+ }
550
+
551
+ if (subError.additionalContent) {
552
+ delete subError.additionalContent;
553
+ }
554
+ });
555
+
556
+ return error;
557
+ }
558
+
559
+ logShort(
560
+ title: string,
561
+ setLog?: boolean,
562
+ forceLog?: boolean,
563
+ /* logType?: DyFM_Log_Type, */
564
+ ): void {
565
+ if (this.___logged && !forceLog) {
566
+ DyFM_Log.warn(`logShort: already logged (${this._errorCode})`);
567
+ return;
568
+ }
569
+
570
+ /* switch (logType) { */
571
+ DyFM_Log.testError(
572
+ title,
573
+ '\n ErrorCode:', this._errorCode,
574
+ '\n Message:', this._message?.replaceAll?.('\n', '\n '),
575
+ );
576
+
577
+ if (setLog) {
578
+ this.___logged = true;
579
+ }
580
+ }
581
+
582
+ warnShort(
583
+ title: string,
584
+ setLog?: boolean,
585
+ forceLog?: boolean,
586
+ ): void {
587
+ if (this.___logged && !forceLog) {
588
+ DyFM_Log.warn(`warnShort: already logged (${this._errorCode})`);
589
+ return;
590
+ }
591
+
592
+ DyFM_Log.testWarn(
593
+ title,
594
+ '\n ErrorCode:', this._errorCode,
595
+ '\n Message:', this._message?.replaceAll?.('\n', '\n '),
596
+ );
597
+
598
+ if (setLog) {
599
+ this.___logged = true;
600
+ }
601
+ }
602
+
603
+ logSimple(
604
+ title: string,
605
+ logAdditionalContent?: boolean,
606
+ forceLog?: boolean,
607
+ logNodeModules?: boolean
608
+ ): void {
609
+ if (this.___logged && !forceLog) {
610
+ DyFM_Log.warn(`logSimple: already logged ${title} (${this._message}; ${this._errorCode})`);
611
+ return;
612
+ }
613
+
614
+ // remove node_modules from stack and replace with '...'
615
+ /* const stack: string = this.stack?.split?.('\n').map((line: string): string => {
616
+ if (line.includes('node_modules')) {
617
+ return '...';
618
+ }
619
+ return line;
620
+ }).filter((line: string, index: number, array: string[]): boolean => {
621
+ if (line === '...' && index < array.length - 1 && array[index + 1] === '...') {
622
+ return false;
623
+ }
624
+ return true;
625
+ }).join('\n'); */
626
+
627
+ DyFM_Log.H_error(
628
+ title,
629
+ `\n${DyFM_Log.errorStyle}ErrorCode:`, this._errorCode,
630
+ `\n${DyFM_Log.errorStyle}${DyFM_LogStyle.bold}Message:`,
631
+ this._message?.replaceAll?.('\n', '\n '),
632
+ `\n\n${DyFM_LogStyle.reset}${DyFM_Log.errorStyle}UserMessage:`,
633
+ this.__userMessage?.replaceAll?.('\n', '\n '),
634
+ this.__localStack ?
635
+ `\n${DyFM_Log.errorStyle}LocalStack:\n ` + this.__localStack : '',
636
+ `\n\n${DyFM_Log.errorStyle}Stack:`, this.stack?.replaceAll?.('\n', '\n '),
637
+ logAdditionalContent && this.additionalContent ?
638
+ `\n\n${DyFM_Log.errorStyle}AdditionalContent:\n` + this.additionalContent : '',
639
+ );
640
+
641
+ this.___logged = true;
642
+ }
643
+
644
+ /* static getSimpleLogContent(error: DyFM_Error): string {
645
+ return `\n${DyFM_Log.errorStyle}ErrorCode:`, this._errorCode,
646
+ `\n${DyFM_Log.errorStyle}${DyFM_LogStyle.bold}Message:`,
647
+ this._message?.replaceAll?.('\n', '\n '),
648
+ `\n\n${DyFM_LogStyle.reset}${DyFM_Log.errorStyle}UserMessage:`,
649
+ this.__userMessage?.replaceAll?.('\n', '\n '),
650
+ this.__localStack ?
651
+ `\n${DyFM_Log.errorStyle}LocalStack:\n ` + this.__localStack : '',
652
+ `\n\n${DyFM_Log.errorStyle}Stack:`, this.stack?.replaceAll?.('\n', '\n '),
653
+ logAdditionalContent && this.additionalContent ?
654
+ `\n\n${DyFM_Log.errorStyle}AdditionalContent:\n` + this.additionalContent : '' */
655
+
656
+ /**
657
+ * Checks if the error is parsable,
658
+ * simplifies the error,
659
+ * and returns the error as a string.
660
+ */
661
+ getParsable(): string {
662
+ try {
663
+ const flat = this.getErrorsFlat();
664
+ return JSON.stringify(flat);
665
+ } catch (error) {
666
+ DyFM_Log.error('Error getting parsable error', error);
667
+ return JSON.stringify(this.getErrorSimplified());
668
+ }
669
+ }
670
+
671
+ static logSimple(message: string, error: DyFM_AnyError): void {
672
+ if (error instanceof DyFM_Error) {
673
+ error.logSimple(message);
674
+ } else {
675
+ DyFM_Log.T_error(message, error);
676
+ }
677
+ }
678
+
679
+ static getErrorMessage(error: DyFM_AnyError): string {
680
+ return (error as DyFM_Error)?._message ??
681
+ (error as Error)?.message ??
682
+ ((error as DyFM_HttpErrorResponse)?.error as DyFM_Error)?._message ??
683
+ ((error as DyFM_HttpErrorResponse)?.error as Error)?.message;
684
+ }
685
+
686
+ /**
687
+ * Returns the message of the error.
688
+ * Returns the userMessage if the message is not set.
689
+ * (prioritizes the message over the userMessage)
690
+ */
691
+ static getAnyMessage(error: DyFM_AnyError): string {
692
+ return this.getErrorMessage(error) ?? this.getUserMessage(error);
693
+ }
694
+
695
+ static getUserMessage(error: DyFM_AnyError): string {
696
+ return (error as DyFM_Error)?.__userMessage ??
697
+ ((error as DyFM_HttpErrorResponse)?.error as DyFM_Error)?.__userMessage ??
698
+ (error as DyFM_Error_Settings)?.userMessage;
699
+ }
700
+
701
+ /**
702
+ * Returns the user message of the error.
703
+ * Returns the message if the userMessage is not set.
704
+ * (prioritizes the userMessage over the message)
705
+ */
706
+ static getAnyUserMessage(error: DyFM_AnyError): string {
707
+ return this.getUserMessage(error) ?? this.getErrorMessage(error);
708
+ }
709
+
710
+ /**
711
+ * A hiba szemantikus szöveges változata: saját üzenet + zárójelben a _messages lista első eleme
712
+ * (gyökér Dynamo Error üzenete), ha van lánc. Nem az object láncon járunk végig, a _messages-t használjuk.
713
+ */
714
+ static getSemanticMessage(error: DyFM_AnyError): string {
715
+ const ourMessage: string = this.getErrorMessage(error);
716
+ if (!this.isDyFMError(error)) {
717
+ return ourMessage;
718
+ }
719
+ const messages: string[] | undefined = (error as DyFM_Error)._messages;
720
+ const firstMessage: string | undefined =
721
+ messages && messages.length > 1 ? messages[0] : undefined;
722
+ if (firstMessage && firstMessage !== ourMessage) {
723
+ return `${ourMessage} (${firstMessage})`;
724
+ }
725
+ return ourMessage;
726
+ }
727
+
728
+ static getErrorStatus(error: DyFM_AnyError): number {
729
+ return (error as DyFM_Error)?.___status ??
730
+ (error as DyFM_HttpErrorResponse)?.status ??
731
+ ((error as DyFM_HttpErrorResponse)?.error as DyFM_Error)?.___status ?? 500;
732
+ }
733
+
734
+ static getErrorCode(error: DyFM_AnyError): string {
735
+ return (error as DyFM_Error)?._errorCode ??
736
+ ((error as DyFM_HttpErrorResponse)?.error as DyFM_Error)?._errorCode ??
737
+ (error as any)?.errorCode ??
738
+ (error as any)?.error?.errorCode ??
739
+ (error as any)?.code ??
740
+ (error as any)?.error?.code;
741
+ }
742
+
743
+ static getErrorStack(error: DyFM_AnyError): string {
744
+ return (error as DyFM_Error)?.stack ??
745
+ ((error as DyFM_HttpErrorResponse)?.error as DyFM_NonHttpError)?.stack;
746
+ }
747
+
748
+ static isDyFMError(error: any): error is DyFM_Error {
749
+ return (error as DyFM_Error)?.flag?.includes('DYNAMO');
750
+ }
751
+
752
+ static isAnyDyFMError(error: any): error is DyFM_AnyError {
753
+ return this.isDyFMError(error) ||
754
+ (error as DyFM_HttpErrorResponse)?.name === DyFM_httpErrorResponse_name ||
755
+ error instanceof Error;
756
+ }
757
+
758
+ static deleteErrorContent(error: DyFM_Error): void {
759
+ delete error.confidentialContent;
760
+ delete error.additionalContent;
761
+ delete error.error;
762
+ delete error.errors;
763
+ delete error.stack;
764
+ }
765
+
766
+ static getStatusText(status: number): string {
767
+ switch (status) {
768
+ case 100:
769
+ return 'Continue';
770
+ case 101:
771
+ return 'Switching Protocols';
772
+ case 102:
773
+ return 'Processing';
774
+ case 103:
775
+ return 'Early Hints';
776
+
777
+ case 200:
778
+ return 'OK';
779
+ case 201:
780
+ return 'Created';
781
+ case 202:
782
+ return 'Accepted';
783
+ case 203:
784
+ return 'Non-Authoritative Information';
785
+ case 204:
786
+ return 'No Content';
787
+ case 205:
788
+ return 'Reset Content';
789
+ case 206:
790
+ return 'Partial Content';
791
+ case 207:
792
+ return 'Multi-Status';
793
+ case 208:
794
+ return 'Already Reported';
795
+ case 226:
796
+ return 'IM Used';
797
+
798
+ case 300:
799
+ return 'Multiple Choices';
800
+ case 301:
801
+ return 'Moved Permanently';
802
+ case 302:
803
+ return 'Found';
804
+ case 303:
805
+ return 'See Other';
806
+ case 304:
807
+ return 'Not Modified';
808
+ case 305:
809
+ return 'Use Proxy';
810
+ case 306:
811
+ return 'Switch Proxy';
812
+ case 307:
813
+ return 'Temporary Redirect';
814
+ case 308:
815
+ return 'Permanent Redirect';
816
+
817
+ case 400:
818
+ return 'Bad Request';
819
+ case 401:
820
+ return 'Unauthorized';
821
+ case 402:
822
+ return 'Payment Required';
823
+ case 403:
824
+ return 'Forbidden';
825
+ case 404:
826
+ return 'Not Found';
827
+ case 405:
828
+ return 'Method Not Allowed';
829
+ case 406:
830
+ return 'Not Acceptable';
831
+ case 407:
832
+ return 'Proxy Authentication Required';
833
+ case 408:
834
+ return 'Request Timeout';
835
+ case 409:
836
+ return 'Conflict';
837
+ case 410:
838
+ return 'Gone';
839
+ case 411:
840
+ return 'Length Required';
841
+ case 412:
842
+ return 'Precondition Failed';
843
+ case 413:
844
+ return 'Payload Too Large';
845
+ case 414:
846
+ return 'URI Too Long';
847
+ case 415:
848
+ return 'Unsupported Media Type';
849
+ case 416:
850
+ return 'Range Not Satisfiable';
851
+ case 417:
852
+ return 'Expectation Failed';
853
+ case 418:
854
+ return "I'm a teapot";
855
+ case 421:
856
+ return 'Misdirected Request';
857
+ case 422:
858
+ return 'Unprocessable Entity';
859
+ case 423:
860
+ return 'Locked';
861
+ case 424:
862
+ return 'Failed Dependency';
863
+ case 425:
864
+ return 'Too Early';
865
+ case 426:
866
+ return 'Upgrade Required';
867
+ case 428:
868
+ return 'Precondition Required';
869
+ case 429:
870
+ return 'Too Many Requests';
871
+ case 431:
872
+ return 'Request Header Fields Too Large';
873
+ case 451:
874
+ return 'Unavailable For Legal Reasons';
875
+
876
+ case 500:
877
+ return 'Internal Server Error';
878
+ case 501:
879
+ return 'Not Implemented';
880
+ case 502:
881
+ return 'Bad Gateway';
882
+ case 503:
883
+ return 'Service Unavailable';
884
+ case 504:
885
+ return 'Gateway Timeout';
886
+ case 505:
887
+ return 'HTTP Version Not Supported';
888
+ case 506:
889
+ return 'Variant Also Negotiates';
890
+ case 507:
891
+ return 'Insufficient Storage';
892
+ case 508:
893
+ return 'Loop Detected';
894
+ case 510:
895
+ return 'Not Extended';
896
+ case 511:
897
+ return 'Network Authentication Required';
898
+
899
+ default:
900
+ return 'Unknown';
901
+ }
902
+ }
903
+ }
904
+
905
+ /*
906
+
907
+ // //
908
+ // RESPONSE STATUS //
909
+ // //
910
+
911
+ 1XX informational response
912
+
913
+ 100 Continue
914
+ 101 Switching Protocols
915
+ 102 Processing
916
+ 103 Early Hints
917
+
918
+
919
+ 2XX success
920
+
921
+ 200 OK
922
+ 201 Created
923
+ 202 Accepted
924
+ 203 Non-Authoritative Information
925
+ 204 No Content
926
+ 205 Reset Content
927
+ 206 Partial Content
928
+ 207 Multi-Status
929
+ 208 Already Reported
930
+ 226 IM Used
931
+
932
+
933
+ 3XX redirection
934
+
935
+ 300 Multiple Choices
936
+ 301 Moved Permanently
937
+ 302 Found
938
+ 303 See Other
939
+ 304 Not Modified
940
+ 305 Use Proxy
941
+ 306 Switch Proxy
942
+ 307 Temporary Redirect
943
+ 308 Permanent Redirect
944
+
945
+
946
+ 4XX client n network errors
947
+
948
+ 400 Bad Request
949
+ 401 Unauthorized
950
+ 402 Payment Required
951
+ 403 Forbidden
952
+ 404 Not Found
953
+ 405 Method Not Allowed
954
+ 406 Not Acceptable
955
+ 407 Proxy Authentication Required
956
+ 408 Request Timeout
957
+ 409 Conflict
958
+ 410 Gone
959
+ 411 Length Required
960
+ 412 Precondition Failed
961
+ 413 Payload Too Large
962
+ 414 URI Too Long
963
+ 415 Unsupported Media Type
964
+ 416 Range Not Satisfiable
965
+ 417 Expectation Failed
966
+ 418 I'm a teapot
967
+ 421 Misdirected Request
968
+ 422 Unprocessable Entity
969
+ 423 Locked
970
+ 424 Failed Dependency
971
+ 425 Too Early
972
+ 426 Upgrade Required
973
+ 428 Precondition Required
974
+ 429 Too Many Requests
975
+ 431 Request Header Fields Too Large
976
+ 451 Unavailable For Legal Reasons
977
+
978
+
979
+ 5XX server errors
980
+
981
+ 500 Internal Server Error
982
+ 501 Not Implemented
983
+ 502 Bad Gateway
984
+ 503 Service Unavailable
985
+ 504 Gateway Timeout
986
+ 505 HTTP Version Not Supported
987
+ 506 Variant Also Negotiates
988
+ 507 Insufficient Storage
989
+ 508 Loop Detected
990
+ 510 Not Extended
991
+ 511 Network Authentication Required
992
+
993
+
994
+ Unofficial codes
995
+
996
+ 103 Checkpoint
997
+
998
+ 218 This is fine (Apache Web Server)
999
+
1000
+ 419 Page Expired (Laravel Framework)
1001
+ 420 Enhance Your Calm (Twitter)
1002
+ 430 Request Header Fields Too Large (Shopify)
1003
+ 440 Login Time-out
1004
+ 444 No Response
1005
+ 449 Retry With
1006
+ 450 Blocked by Windows Parental Controls (Microsoft)
1007
+ 451 Redirect
1008
+ 494 Request header too large
1009
+ 495 SSL Certificate Error
1010
+ 496 SSL Certificate Required
1011
+ 497 HTTP Request Sent to HTTPS Port
1012
+ 498 Invalid Token (Esri)
1013
+ 499 Client Closed Request
1014
+ 499 Token Required (Esri)
1015
+
1016
+ 509 Bandwidth Limit Exceeded (Apache Web Server/cPanel)
1017
+ 520 Web Server Returned an any Error
1018
+ 521 Web Server Is Down
1019
+ 522 Connection Timed Out
1020
+ 523 Origin Is Unreachable
1021
+ 524 A Timeout Occurred
1022
+ 525 SSL Handshake Failed
1023
+ 526 Invalid SSL Certificate
1024
+ 527 Railgun Error
1025
+ 529 Site is overloaded
1026
+ 530 Site is frozen
1027
+ 598 (Informal convention) Network read timeout error
1028
+
1029
+
1030
+
1031
+ 530
1032
+
1033
+ 460
1034
+ 463
1035
+
1036
+ */
1037
+
1038
+
1039
+
1040
+
1041
+ /**
1042
+ * Returns the average of two numbers.
1043
+ *
1044
+ * @remarks
1045
+ * This method is part of the {@link core-library#Statistics | Statistics subsystem}.
1046
+ *
1047
+ * @param x - The first input number
1048
+ * @param y - The second input number
1049
+ * @returns The arithmetic mean of `x` and `y`
1050
+ *
1051
+ * @beta
1052
+ * @returns true if the specified tag is surrounded with `{`
1053
+ * and `}` characters.
1054
+ *
1055
+ * @example
1056
+ * Prints "true" for `{@link}` but "false" for `@internal`:
1057
+ * ```ts
1058
+ * console.log(isInlineTag('{@link}'));
1059
+ * console.log(isInlineTag('@internal'));
1060
+ * ```
1061
+ *
1062
+ *
1063
+ * @alpha
1064
+ * v
1065
+ * sadfas d
1066
+ * fs
1067
+ * daf
1068
+ * d as
1069
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1070
+ * a
1071
+ * @beta
1072
+ * v
1073
+ * sadfas d
1074
+ * fs
1075
+ * daf
1076
+ * d as
1077
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1078
+ * b
1079
+ * @decorator
1080
+ * v
1081
+ * sadfas d
1082
+ * fs
1083
+ * daf
1084
+ * d as
1085
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1086
+ * dc
1087
+ * @deprecated
1088
+ * v
1089
+ * sadfas d
1090
+ * fs
1091
+ * daf
1092
+ * d as
1093
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1094
+ * dp
1095
+ * @defaultValue
1096
+ * v
1097
+ * sadfas d
1098
+ * fs
1099
+ * daf
1100
+ * d as
1101
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1102
+ * dv
1103
+ * @eventProperty
1104
+ * v
1105
+ * sadfas d
1106
+ * fs
1107
+ * daf
1108
+ * d as
1109
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1110
+ * ep
1111
+ * @example
1112
+ * v
1113
+ * sadfas d
1114
+ * fs
1115
+ * daf
1116
+ * d as
1117
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1118
+ * ex
1119
+ * @experimental
1120
+ * v
1121
+ * sadfas d
1122
+ * fs
1123
+ * daf
1124
+ * d as
1125
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1126
+ * exp
1127
+ * @inheritDoc
1128
+ * v
1129
+ * sadfas d
1130
+ * fs
1131
+ * daf
1132
+ * d as
1133
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1134
+ * in
1135
+ * @internal
1136
+ * v
1137
+ * sadfas d
1138
+ * fs
1139
+ * daf
1140
+ * d as
1141
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1142
+ * int
1143
+ * @label
1144
+ * v
1145
+ * sadfas d
1146
+ * fs
1147
+ * daf
1148
+ * d as
1149
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1150
+ * lab
1151
+ * @link
1152
+ * v
1153
+ * sadfas d
1154
+ * fs
1155
+ * daf
1156
+ * d as
1157
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1158
+ * li
1159
+ * @override
1160
+ * v
1161
+ * sadfas d
1162
+ * fs
1163
+ * daf
1164
+ * d as
1165
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1166
+ * v
1167
+ * sadfas d
1168
+ * fs
1169
+ * daf
1170
+ * d as
1171
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1172
+ * ov
1173
+ * @packageDocumentation
1174
+ * v
1175
+ * sadfas d
1176
+ * fs
1177
+ * daf
1178
+ * d as
1179
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1180
+ * pad
1181
+ * @param
1182
+ * v
1183
+ * sadfas d
1184
+ * fs
1185
+ * daf
1186
+ * d as
1187
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1188
+ * par
1189
+ * @privateRemarks
1190
+ * v
1191
+ * sadfas d
1192
+ * fs
1193
+ * daf
1194
+ * d as
1195
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1196
+ * pr
1197
+ * @public
1198
+ * v
1199
+ * sadfas d
1200
+ * fs
1201
+ * daf
1202
+ * d as
1203
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1204
+ * p
1205
+ * @readonly
1206
+ * v
1207
+ * sadfas d
1208
+ * fs
1209
+ * daf
1210
+ * d as
1211
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1212
+ * re
1213
+ * @remarks
1214
+ * v
1215
+ * sadfas d
1216
+ * fs
1217
+ * daf
1218
+ * d as
1219
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1220
+ * rem
1221
+ * @returns
1222
+ * v
1223
+ * sadfas d
1224
+ * fs
1225
+ * daf
1226
+ * d as
1227
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1228
+ * ret
1229
+ * @sealed
1230
+ * v
1231
+ * sadfas d
1232
+ * fs
1233
+ * daf
1234
+ * d as
1235
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1236
+ * sea
1237
+ * @see
1238
+ * v
1239
+ * sadfas d
1240
+ * fs
1241
+ * daf
1242
+ * d as
1243
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1244
+ * see
1245
+ * @throws
1246
+ * v
1247
+ * sadfas d
1248
+ * fs
1249
+ * daf
1250
+ * d as
1251
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1252
+ * th
1253
+ * @typeParam
1254
+ * v
1255
+ * sadfas d
1256
+ * fs
1257
+ * daf
1258
+ * d as
1259
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1260
+ * typ
1261
+ * @virtual
1262
+ * v
1263
+ * sadfas d
1264
+ * fs
1265
+ * daf
1266
+ * d as
1267
+ * dafs // asd"" sa `sadf ` sadf asd******* asdf asd"" f asd
1268
+ *
1269
+ *
1270
+ * @see {@link http://example.com/@internal LINK}
1271
+ * @see {@link http://example.com/@internal http://example.com/@internal}
1272
+ */
1273
+ export interface TestDocumentationComments {}
1274
+