@futdevpro/fsm-dynamo 1.15.17 → 1.15.20

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