@futdevpro/fsm-dynamo 1.16.33 → 1.16.34

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