@futdevpro/fsm-dynamo 1.16.38 → 1.16.40

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 (707) hide show
  1. package/.c8rc.json +26 -26
  2. package/.cursor/rules/__assistant_guide.mdc +30 -30
  3. package/.cursor/rules/__main.mdc +64 -64
  4. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  5. package/.cursor/rules/_ag_backend.mdc +16 -16
  6. package/.cursor/rules/_ag_debug.mdc +7 -7
  7. package/.cursor/rules/_ag_documentation_writing_rules.mdc +372 -372
  8. package/.cursor/rules/_ag_file-refactoring.mdc +113 -113
  9. package/.cursor/rules/_ag_fixes_rules.mdc +5 -5
  10. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  11. package/.cursor/rules/_ag_frontend.mdc +39 -39
  12. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  13. package/.cursor/rules/_ag_naming.mdc +115 -115
  14. package/.cursor/rules/_ag_running_commands.mdc +4 -4
  15. package/.cursor/rules/_ag_server-controller.mdc +5 -5
  16. package/.cursor/rules/_ag_should-be.mdc +6 -6
  17. package/.cursor/rules/_ag_swearing.mdc +47 -47
  18. package/.cursor/rules/ai_development_guide.md +60 -60
  19. package/.cursor/rules/ai_directives.md +114 -114
  20. package/.cursor/rules/cursor-rules.md +160 -160
  21. package/.cursor/rules/default-command.mdc +464 -464
  22. package/.cursor/rules/error_code_pattern.md +39 -39
  23. package/.cursor/rules/saved rule mcp server use.md +15 -15
  24. package/.dynamo/pipeline.cicd.config.json +157 -157
  25. package/.dynamo/version-bump.config.json +5 -5
  26. package/.github/workflows/main.yml +439 -439
  27. package/.husky/pre-commit +2 -2
  28. package/.vscode/settings.json +11 -11
  29. package/LICENSE +21 -21
  30. package/README.md +701 -693
  31. package/__documentations/2026-05-17-oai-compatible-providers-howto.md +282 -282
  32. package/__documentations/2026-06-01-fr047-fc-foundation.md +48 -48
  33. package/__documentations/2026-06-01-fr047-fr048-code-review.md +153 -153
  34. package/__documentations/2026-06-01-fr047-p1-function-calling-vocabulary.md +75 -75
  35. package/__documentations/2026-06-05-secret-mask-url-cred-any-scheme.md +37 -37
  36. package/__documentations/2026-06-06-ngx-models-merge-completion.md +100 -100
  37. package/__documentations/2026-06-22-dyfm-error-extends-error.md +109 -109
  38. package/__documentations/plans/00-MASTER-ngx-models-fsm-merge.md +75 -75
  39. package/__documentations/plans/01-naming-convention-DyNM-to-DyFM.md +103 -103
  40. package/__documentations/plans/02-consumer-rollout.md +84 -84
  41. package/_specifications/BACKLOG.md +43 -43
  42. package/build/_modules/crypto/_models/artifact-signature.interface.d.ts +37 -0
  43. package/build/_modules/crypto/_models/artifact-signature.interface.d.ts.map +1 -0
  44. package/build/_modules/crypto/_models/artifact-signature.interface.js +3 -0
  45. package/build/_modules/crypto/_models/artifact-signature.interface.js.map +1 -0
  46. package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts +24 -0
  47. package/build/_modules/crypto/_services/artifact-signature.control-service.d.ts.map +1 -0
  48. package/build/_modules/crypto/_services/artifact-signature.control-service.js +281 -0
  49. package/build/_modules/crypto/_services/artifact-signature.control-service.js.map +1 -0
  50. package/build/_modules/crypto/index.d.ts +2 -0
  51. package/build/_modules/crypto/index.d.ts.map +1 -1
  52. package/build/_modules/crypto/index.js +2 -0
  53. package/build/_modules/crypto/index.js.map +1 -1
  54. package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts +4 -6
  55. package/build/_modules/socket/_models/sck-socket-event.control-model.d.ts.map +1 -1
  56. package/build/_modules/socket/_models/sck-socket-event.control-model.js +9 -7
  57. package/build/_modules/socket/_models/sck-socket-event.control-model.js.map +1 -1
  58. package/eslint.config.js +4 -4
  59. package/nodemon.json +22 -22
  60. package/package.json +306 -306
  61. package/pnpm-workspace.yaml +2 -2
  62. package/scripts/_capture-out/ai-error-capture.json +398 -398
  63. package/scripts/ai-error-capture.js +171 -171
  64. package/scripts/ai-model-registry-check.js +132 -132
  65. package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
  66. package/scripts/crypto/README.md +113 -113
  67. package/scripts/crypto/demo-crypto-stability.js +120 -120
  68. package/scripts/crypto/stress-test-crypto.js +379 -379
  69. package/scripts/run-coverage-tests.js +24 -24
  70. package/scripts/verify-build-completeness.js +62 -62
  71. package/spec/support/helpers/ts-node-helper.js +9 -9
  72. package/spec/support/jasmine.coverage.json +23 -23
  73. package/spec/support/jasmine.json +24 -24
  74. package/src/_collections/constants/data-sizes.const.ts +40 -40
  75. package/src/_collections/constants/error-defaults.const.ts +20 -20
  76. package/src/_collections/constants/global-settings.const.spec.ts +32 -32
  77. package/src/_collections/constants/global-settings.const.ts +29 -29
  78. package/src/_collections/constants/numbers.const.ts +40 -40
  79. package/src/_collections/constants/times.const.ts +45 -45
  80. package/src/_collections/utils/array.util.spec.ts +306 -306
  81. package/src/_collections/utils/array.util.ts +813 -813
  82. package/src/_collections/utils/async.util.spec.ts +398 -398
  83. package/src/_collections/utils/async.util.ts +208 -208
  84. package/src/_collections/utils/data.util.spec.ts +345 -345
  85. package/src/_collections/utils/data.util.ts +226 -226
  86. package/src/_collections/utils/extract-error-message.util.spec.ts +204 -204
  87. package/src/_collections/utils/extract-error-message.util.ts +223 -223
  88. package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
  89. package/src/_collections/utils/json-error-helper.util.ts +301 -301
  90. package/src/_collections/utils/log.util.spec.ts +975 -975
  91. package/src/_collections/utils/log.util.ts +667 -667
  92. package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
  93. package/src/_collections/utils/math/box-bounds.util.ts +183 -183
  94. package/src/_collections/utils/math/math.util.spec.ts +94 -94
  95. package/src/_collections/utils/math/math.util.ts +141 -141
  96. package/src/_collections/utils/math/random.util.spec.ts +82 -82
  97. package/src/_collections/utils/math/random.util.ts +139 -139
  98. package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
  99. package/src/_collections/utils/math/trigonometry.util.ts +102 -102
  100. package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
  101. package/src/_collections/utils/math/vector2.util.ts +653 -653
  102. package/src/_collections/utils/object.util.spec.ts +646 -646
  103. package/src/_collections/utils/object.util.ts +739 -739
  104. package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
  105. package/src/_collections/utils/regex/password-regex.util.ts +65 -65
  106. package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
  107. package/src/_collections/utils/regex/regex.util.ts +6 -6
  108. package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
  109. package/src/_collections/utils/regex/username-regex.util.ts +35 -35
  110. package/src/_collections/utils/require-env.util.spec.ts +231 -231
  111. package/src/_collections/utils/require-env.util.ts +138 -138
  112. package/src/_collections/utils/round-list.util.spec.ts +79 -79
  113. package/src/_collections/utils/round-list.util.ts +162 -162
  114. package/src/_collections/utils/secret-mask.util.spec.ts +66 -66
  115. package/src/_collections/utils/secret-mask.util.ts +262 -262
  116. package/src/_collections/utils/stack.util.spec.ts +372 -372
  117. package/src/_collections/utils/stack.util.ts +164 -164
  118. package/src/_collections/utils/string-case.util.spec.ts +441 -441
  119. package/src/_collections/utils/string-case.util.ts +362 -362
  120. package/src/_collections/utils/string.util.spec.ts +975 -975
  121. package/src/_collections/utils/string.util.ts +449 -449
  122. package/src/_collections/utils/time.util.spec.ts +50 -50
  123. package/src/_collections/utils/time.util.ts +481 -481
  124. package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
  125. package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
  126. package/src/_collections/utils/utilities.util.spec.ts +201 -201
  127. package/src/_collections/utils/utilities.util.ts +68 -68
  128. package/src/_collections/utils/uuid.util.spec.ts +30 -30
  129. package/src/_collections/utils/uuid.util.ts +50 -50
  130. package/src/_enums/basic-property-type.enum.ts +20 -20
  131. package/src/_enums/data-model-type.enum.ts +29 -29
  132. package/src/_enums/environment-flag.enum.ts +28 -28
  133. package/src/_enums/error-level.enum.ts +43 -43
  134. package/src/_enums/error-status.enum.ts +30 -30
  135. package/src/_enums/http/http-call-type.enum.ts +43 -43
  136. package/src/_enums/http/http-event-type.enum.ts +40 -40
  137. package/src/_enums/http/http-response-type.enum.ts +18 -18
  138. package/src/_enums/log-style.enum.ts +44 -44
  139. package/src/_enums/server-connection-status.enum.ts +6 -6
  140. package/src/_enums/time/day-of-week.enum.ts +55 -55
  141. package/src/_enums/time/month.enum.ts +25 -25
  142. package/src/_enums/time/relative-date.enum.ts +24 -24
  143. package/src/_models/control-models/data-model-params.control-model.spec.ts +156 -156
  144. package/src/_models/control-models/data-model-params.control-model.ts +362 -362
  145. package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
  146. package/src/_models/control-models/data-property-params.control-model.ts +210 -210
  147. package/src/_models/control-models/error.control-model.spec.ts +975 -975
  148. package/src/_models/control-models/error.control-model.ts +1280 -1280
  149. package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
  150. package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
  151. package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
  152. package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
  153. package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
  154. package/src/_models/control-models/http/http-response.model-base.ts +57 -57
  155. package/src/_models/control-models/poll.control-model.spec.ts +63 -63
  156. package/src/_models/control-models/poll.control-model.ts +151 -151
  157. package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
  158. package/src/_models/control-models/range-value.control-model.ts +289 -289
  159. package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
  160. package/src/_models/control-models/server-status.control-model.ts +94 -94
  161. package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
  162. package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
  163. package/src/_models/data-models/errors.data-model.spec.ts +71 -71
  164. package/src/_models/data-models/errors.data-model.ts +200 -200
  165. package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
  166. package/src/_models/data-models/metadata.data-model.ts +153 -153
  167. package/src/_models/interfaces/box-bounds.interface.ts +7 -7
  168. package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
  169. package/src/_models/interfaces/environment/global-settings.interface.ts +69 -69
  170. package/src/_models/interfaces/error-defaults.interface.ts +18 -18
  171. package/src/_models/interfaces/paged.interface.ts +12 -12
  172. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  173. package/src/_models/interfaces/route-settings.interface.ts +15 -15
  174. package/src/_models/interfaces/search-query.interface.ts +23 -23
  175. package/src/_models/interfaces/search-result.interface.ts +5 -5
  176. package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
  177. package/src/_models/interfaces/vector2.interface.ts +20 -20
  178. package/src/_models/types/db-filter.type.ts +110 -110
  179. package/src/_models/types/db-sort.type.ts +4 -4
  180. package/src/_models/types/ds-filter.type.ts +68 -68
  181. package/src/_models/types/ds-sort.type.ts +21 -21
  182. package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
  183. package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
  184. package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
  185. package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
  186. package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
  187. package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
  188. package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
  189. package/src/_modules/ai/_models/ai-config.interface.ts +14 -14
  190. package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
  191. package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
  192. package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
  193. package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
  194. package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
  195. package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
  196. package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
  197. package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
  198. package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
  199. package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
  200. package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
  201. package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
  202. package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
  203. package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
  204. package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
  205. package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +135 -135
  206. package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
  207. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
  208. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
  209. package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
  210. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
  211. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
  212. package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
  213. package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
  214. package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
  215. package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
  216. package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
  217. package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +40 -40
  218. package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
  219. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
  220. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
  221. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
  222. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
  223. package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
  224. package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +161 -161
  225. package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
  226. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
  227. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
  228. package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
  229. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
  230. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
  231. package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
  232. package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
  233. package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +59 -59
  234. package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
  235. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
  236. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
  237. package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
  238. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
  239. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
  240. package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
  241. package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
  242. package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +404 -404
  243. package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
  244. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
  245. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
  246. package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
  247. package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
  248. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
  249. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
  250. package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
  251. package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
  252. package/src/_modules/ai/index.ts +27 -27
  253. package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
  254. package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
  255. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
  256. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
  257. package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
  258. package/src/_modules/ci-tools/index.ts +8 -8
  259. package/src/_modules/crypto/_collections/crypto-v1.util.ts +225 -225
  260. package/src/_modules/crypto/_collections/crypto-v2.util.ts +331 -331
  261. package/src/_modules/crypto/_collections/crypto-v4.util.ts +702 -702
  262. package/src/_modules/crypto/_collections/crypto.util.db-envelope.spec.ts +51 -51
  263. package/src/_modules/crypto/_collections/crypto.util.edge.spec.ts +605 -605
  264. package/src/_modules/crypto/_collections/crypto.util.extra.spec.ts +642 -642
  265. package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
  266. package/src/_modules/crypto/_collections/crypto.util.ts +748 -748
  267. package/src/_modules/crypto/_models/artifact-signature.interface.ts +39 -0
  268. package/src/_modules/crypto/_services/artifact-signature.control-service.spec.ts +223 -0
  269. package/src/_modules/crypto/_services/artifact-signature.control-service.ts +395 -0
  270. package/src/_modules/crypto/index.ts +16 -14
  271. package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
  272. package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
  273. package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
  274. package/src/_modules/custom-data/index.ts +10 -10
  275. package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
  276. package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
  277. package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +473 -473
  278. package/src/_modules/data-handler/_models/data-handler.control-model.ts +486 -486
  279. package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
  280. package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
  281. package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
  282. package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
  283. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
  284. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
  285. package/src/_modules/data-handler/index.ts +6 -6
  286. package/src/_modules/game/_collections/audio-mixer.util.spec.ts +198 -198
  287. package/src/_modules/game/_collections/audio-mixer.util.ts +143 -143
  288. package/src/_modules/game/_collections/audio-scale.util.spec.ts +140 -140
  289. package/src/_modules/game/_collections/audio-scale.util.ts +129 -129
  290. package/src/_modules/game/_enums/audio-channel.enum.ts +22 -22
  291. package/src/_modules/game/_models/audio-mixer-config.interface.ts +53 -53
  292. package/src/_modules/game/_models/audio-mixer-settings.interface.ts +38 -38
  293. package/src/_modules/game/_models/audio-mixer-state.interface.ts +36 -36
  294. package/src/_modules/game/_models/audio-mixer.control-model.spec.ts +376 -376
  295. package/src/_modules/game/_models/audio-mixer.control-model.ts +419 -419
  296. package/src/_modules/game/_models/audio-scale.interface.ts +21 -21
  297. package/src/_modules/game/_models/seeded-random-state.interface.ts +21 -21
  298. package/src/_modules/game/_models/seeded-random.control-model.spec.ts +290 -290
  299. package/src/_modules/game/_models/seeded-random.control-model.ts +311 -311
  300. package/src/_modules/game/index.ts +15 -15
  301. package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
  302. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
  303. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
  304. package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
  305. package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
  306. package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
  307. package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
  308. package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
  309. package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
  310. package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
  311. package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
  312. package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
  313. package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
  314. package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
  315. package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
  316. package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
  317. package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
  318. package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
  319. package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
  320. package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
  321. package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
  322. package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
  323. package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
  324. package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
  325. package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
  326. package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
  327. package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
  328. package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
  329. package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
  330. package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
  331. package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
  332. package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
  333. package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
  334. package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
  335. package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
  336. package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
  337. package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
  338. package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
  339. package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
  340. package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
  341. package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
  342. package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
  343. package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
  344. package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
  345. package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
  346. package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
  347. package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
  348. package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
  349. package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
  350. package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
  351. package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
  352. package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
  353. package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
  354. package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
  355. package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
  356. package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
  357. package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
  358. package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
  359. package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
  360. package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
  361. package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
  362. package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
  363. package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
  364. package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
  365. package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
  366. package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
  367. package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
  368. package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
  369. package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
  370. package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
  371. package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
  372. package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
  373. package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
  374. package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
  375. package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
  376. package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
  377. package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
  378. package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
  379. package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
  380. package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
  381. package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
  382. package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
  383. package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
  384. package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
  385. package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
  386. package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
  387. package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
  388. package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
  389. package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
  390. package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
  391. package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
  392. package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
  393. package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
  394. package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
  395. package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
  396. package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
  397. package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
  398. package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
  399. package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
  400. package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
  401. package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
  402. package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
  403. package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
  404. package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
  405. package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
  406. package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
  407. package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
  408. package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
  409. package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
  410. package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
  411. package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
  412. package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
  413. package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
  414. package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
  415. package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
  416. package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
  417. package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
  418. package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
  419. package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
  420. package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
  421. package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
  422. package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
  423. package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
  424. package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
  425. package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
  426. package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
  427. package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
  428. package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
  429. package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
  430. package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
  431. package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
  432. package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
  433. package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
  434. package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
  435. package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
  436. package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
  437. package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
  438. package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
  439. package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
  440. package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
  441. package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
  442. package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
  443. package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
  444. package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
  445. package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
  446. package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
  447. package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
  448. package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
  449. package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
  450. package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
  451. package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
  452. package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
  453. package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
  454. package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
  455. package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
  456. package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
  457. package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
  458. package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
  459. package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
  460. package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
  461. package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
  462. package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
  463. package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
  464. package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
  465. package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
  466. package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
  467. package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
  468. package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
  469. package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
  470. package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
  471. package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
  472. package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
  473. package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
  474. package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
  475. package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
  476. package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
  477. package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
  478. package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
  479. package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
  480. package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
  481. package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
  482. package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
  483. package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
  484. package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
  485. package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
  486. package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
  487. package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
  488. package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
  489. package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
  490. package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
  491. package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
  492. package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
  493. package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
  494. package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
  495. package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
  496. package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
  497. package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
  498. package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
  499. package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
  500. package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
  501. package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
  502. package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
  503. package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
  504. package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
  505. package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
  506. package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
  507. package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
  508. package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
  509. package/src/_modules/location/_collections/loc.util.ts +74 -74
  510. package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
  511. package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
  512. package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
  513. package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
  514. package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
  515. package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
  516. package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
  517. package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
  518. package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
  519. package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
  520. package/src/_modules/location/index.ts +22 -22
  521. package/src/_modules/messaging/README.md +279 -279
  522. package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
  523. package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
  524. package/src/_modules/messaging/_enums/msg-conversation-type.enum.ts +20 -20
  525. package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
  526. package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
  527. package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
  528. package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
  529. package/src/_modules/messaging/_enums/msg-status.enum.ts +26 -26
  530. package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
  531. package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
  532. package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
  533. package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
  534. package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
  535. package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
  536. package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
  537. package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
  538. package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
  539. package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
  540. package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
  541. package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
  542. package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
  543. package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
  544. package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
  545. package/src/_modules/messaging/_modules/agent/index.ts +8 -8
  546. package/src/_modules/messaging/index.ts +28 -28
  547. package/src/_modules/ngx-models/_collections/angular-placeholders.ts +34 -34
  548. package/src/_modules/ngx-models/_collections/button-new-style-settings-presets.const.ts +181 -181
  549. package/src/_modules/ngx-models/_collections/dynamo-global.settings.spec.ts +74 -74
  550. package/src/_modules/ngx-models/_collections/dynamo-global.settings.ts +103 -103
  551. package/src/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.ts +16 -16
  552. package/src/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.ts +14 -14
  553. package/src/_modules/ngx-models/_enums/button-new/button-new-size.enum.ts +16 -16
  554. package/src/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.ts +18 -18
  555. package/src/_modules/ngx-models/_enums/button-type.enum.ts +36 -36
  556. package/src/_modules/ngx-models/_enums/checkbox-label-position.enum.ts +8 -8
  557. package/src/_modules/ngx-models/_enums/container-type.enum.ts +11 -11
  558. package/src/_modules/ngx-models/_enums/errors/error-level.enum.ts +13 -13
  559. package/src/_modules/ngx-models/_enums/errors/error-notification-color.enum.ts +13 -13
  560. package/src/_modules/ngx-models/_enums/errors/error-ui-mode.enum.ts +13 -13
  561. package/src/_modules/ngx-models/_enums/field-appearance.enum.ts +14 -14
  562. package/src/_modules/ngx-models/_enums/field-type.enum.ts +52 -52
  563. package/src/_modules/ngx-models/_enums/file-type.enum.ts +12 -12
  564. package/src/_modules/ngx-models/_enums/flex/flex-layout-align.enum.ts +21 -21
  565. package/src/_modules/ngx-models/_enums/flex/flex-layout.enum.ts +5 -5
  566. package/src/_modules/ngx-models/_enums/form-access.enum.ts +9 -9
  567. package/src/_modules/ngx-models/_enums/form-reset-data.enum.ts +12 -12
  568. package/src/_modules/ngx-models/_enums/form-store-on.enum.ts +9 -9
  569. package/src/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.ts +20 -20
  570. package/src/_modules/ngx-models/_enums/frames/header-item-type.enum.ts +15 -15
  571. package/src/_modules/ngx-models/_enums/frames/header-position.enum.ts +10 -10
  572. package/src/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.ts +13 -13
  573. package/src/_modules/ngx-models/_enums/html/input-types.enum.ts +27 -27
  574. package/src/_modules/ngx-models/_enums/material-color.enum.ts +16 -16
  575. package/src/_modules/ngx-models/_enums/material-tooltip-position.enum.ts +16 -16
  576. package/src/_modules/ngx-models/_enums/preconfigured-field-type.enum.ts +8 -8
  577. package/src/_modules/ngx-models/_enums/storage-type.enum.ts +15 -15
  578. package/src/_modules/ngx-models/_enums/validator-type.enum.ts +9 -9
  579. package/src/_modules/ngx-models/_enums/voice/audio-mime-type.enum.ts +14 -14
  580. package/src/_modules/ngx-models/_enums/voice/voice-provider-type.enum.ts +26 -26
  581. package/src/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.ts +20 -20
  582. package/src/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.ts +37 -37
  583. package/src/_modules/ngx-models/_models/control-models/button-params.control-model.spec.ts +70 -70
  584. package/src/_modules/ngx-models/_models/control-models/button-params.control-model.ts +332 -332
  585. package/src/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.ts +28 -28
  586. package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.spec.ts +90 -90
  587. package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.ts +134 -134
  588. package/src/_modules/ngx-models/_models/control-models/data-handler.control-model.ts +529 -529
  589. package/src/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.ts +52 -52
  590. package/src/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.ts +34 -34
  591. package/src/_modules/ngx-models/_models/control-models/errors/errors-pojo.spec.ts +86 -86
  592. package/src/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.ts +52 -52
  593. package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.spec.ts +109 -109
  594. package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.ts +133 -133
  595. package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.spec.ts +109 -109
  596. package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.ts +160 -160
  597. package/src/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.ts +25 -25
  598. package/src/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.ts +26 -26
  599. package/src/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.ts +42 -42
  600. package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.ts +35 -35
  601. package/src/_modules/ngx-models/_models/control-models/forms-new/datetime-range-field-new-settings.control-model.ts +35 -35
  602. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.ts +85 -85
  603. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +42 -42
  604. package/src/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.ts +40 -40
  605. package/src/_modules/ngx-models/_models/control-models/forms-new/forms-new.spec.ts +179 -179
  606. package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +20 -20
  607. package/src/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.ts +27 -27
  608. package/src/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.ts +24 -24
  609. package/src/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.ts +35 -35
  610. package/src/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.ts +35 -35
  611. package/src/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.ts +46 -46
  612. package/src/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.ts +37 -37
  613. package/src/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.ts +45 -45
  614. package/src/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.ts +30 -30
  615. package/src/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.ts +22 -22
  616. package/src/_modules/ngx-models/_models/control-models/frames/frames-pojo.spec.ts +108 -108
  617. package/src/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.ts +52 -52
  618. package/src/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.ts +40 -40
  619. package/src/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.ts +55 -55
  620. package/src/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.ts +30 -30
  621. package/src/_modules/ngx-models/_models/control-models/select.control-model.spec.ts +45 -45
  622. package/src/_modules/ngx-models/_models/control-models/select.control-model.ts +28 -28
  623. package/src/_modules/ngx-models/_models/control-models/voice/voice-pojo.spec.ts +111 -111
  624. package/src/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.ts +74 -74
  625. package/src/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.ts +42 -42
  626. package/src/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.ts +37 -37
  627. package/src/_modules/ngx-models/_models/interfaces/button-new-settings.interface.ts +74 -74
  628. package/src/_modules/ngx-models/_models/interfaces/confirm-settings.interface.ts +20 -20
  629. package/src/_modules/ngx-models/_models/interfaces/global-settings.interface.ts +67 -67
  630. package/src/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.ts +40 -40
  631. package/src/_modules/ngx-models/_models/interfaces/storage.service.spec.ts +18 -18
  632. package/src/_modules/ngx-models/_models/interfaces/storage.service.ts +40 -40
  633. package/src/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.ts +19 -19
  634. package/src/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.ts +14 -14
  635. package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.ts +14 -14
  636. package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.ts +15 -15
  637. package/src/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.ts +18 -18
  638. package/src/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.ts +21 -21
  639. package/src/_modules/ngx-models/_utils/shared.service.spec.ts +7 -7
  640. package/src/_modules/ngx-models/_utils/shared.service.ts +541 -541
  641. package/src/_modules/ngx-models/index.ts +110 -110
  642. package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
  643. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
  644. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
  645. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
  646. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
  647. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
  648. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
  649. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
  650. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
  651. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
  652. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
  653. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
  654. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
  655. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
  656. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
  657. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
  658. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
  659. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
  660. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
  661. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
  662. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
  663. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
  664. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
  665. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
  666. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
  667. package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
  668. package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
  669. package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
  670. package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
  671. package/src/_modules/pipe/index.ts +30 -30
  672. package/src/_modules/security/_collections/stored-secret.util.spec.ts +81 -81
  673. package/src/_modules/security/_collections/stored-secret.util.ts +96 -96
  674. package/src/_modules/security/_models/stored-secret.control-model.ts +55 -55
  675. package/src/_modules/security/index.ts +9 -9
  676. package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
  677. package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
  678. package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
  679. package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +89 -66
  680. package/src/_modules/socket/_models/sck-socket-event.control-model.ts +185 -172
  681. package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
  682. package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
  683. package/src/_modules/socket/index.ts +14 -14
  684. package/src/_modules/state-machine/_models/state-machine-config.interface.ts +19 -19
  685. package/src/_modules/state-machine/_models/state-machine-event.interface.ts +25 -25
  686. package/src/_modules/state-machine/_models/state-machine.control-model.spec.ts +314 -314
  687. package/src/_modules/state-machine/_models/state-machine.control-model.ts +298 -298
  688. package/src/_modules/state-machine/_models/state-transition-result.interface.ts +53 -53
  689. package/src/_modules/state-machine/_models/state-transition.interface.ts +30 -30
  690. package/src/_modules/state-machine/index.ts +6 -6
  691. package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
  692. package/src/_modules/test/index.ts +5 -5
  693. package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
  694. package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
  695. package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
  696. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
  697. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
  698. package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
  699. package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
  700. package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
  701. package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
  702. package/src/_modules/usage/index.ts +11 -11
  703. package/src/index.ts +104 -104
  704. package/tsconfig.app.json +12 -12
  705. package/tsconfig.json +31 -31
  706. package/tsconfig.test.json +16 -16
  707. package/tslint.json +153 -153
@@ -1,975 +1,975 @@
1
-
2
-
3
- import { DyFM_error_defaults } from '../../_collections/constants/error-defaults.const';
4
- import { DyFM_Log } from '../../_collections/utils/log.util';
5
- import { DyFM_Error, DyFM_Error_Settings } from './error.control-model';
6
-
7
- function testFormatter(any: any): any {
8
- if (any instanceof Error) {
9
- return any;
10
- } else {
11
- return `\n${JSON.stringify(any, null, 2)}\n`;
12
- }
13
- }
14
-
15
- describe('| DyFM_Error;', (): void => {
16
- let error_base: Error;
17
- let error_0: DyFM_Error;
18
- let error_stack_1: DyFM_Error;
19
- let error_stack_withoutSubErrors_1: DyFM_Error;
20
- let error_stack_2: DyFM_Error;
21
- let error_stack_withoutSubErrors_2: DyFM_Error;
22
- let error_selfDefined: DyFM_Error;
23
-
24
- const message_base: string = '-TEST ERROR: something failed!-';
25
- const message_1: string = 'TEST ERROR MSG (1)';
26
- const message_2: string = 'TEST ERROR MSG (2)';
27
- const message_selfDefined: string = 'error.control-model.spec.js:89:29';
28
-
29
- const errorCode_0: string = 'ASD-ASD-001';
30
- const errorCode_1: string = 'ASD-ASD-002';
31
- const errorCode_2: string = 'ASD-ASD-003';
32
-
33
- const userMessage_0: string = 'DyFM_Error TEST was TEST! (0)';
34
- const userMessage_2: string = 'DyFM_Error TEST was TEST! (2)';
35
-
36
- const userMessageResult_0: string = userMessage_0 + `\n ErrorCode: ${errorCode_0}`;
37
- const userMessageResult_2: string = userMessage_2 + `\n ErrorCode: ${errorCode_2}`;
38
-
39
- const issuer: string = 'DyFM_Error TEST User';
40
- const issuerSystem: string = 'DyFM_FSM TEST';
41
- const issuerService_0: string = 'Service-0';
42
- const issuerService_1: string = 'Service-1';
43
-
44
- const additionalContent_1 = {
45
- test: 'test',
46
- test2: 'test2',
47
- };
48
- const additionalContent_2 = {
49
- test2: 'testZ',
50
- test3: 'test3',
51
- };
52
-
53
- const log: boolean = false;
54
- /* const log: boolean = true; */
55
-
56
- beforeEach(async (): Promise<void> => {
57
- error_base = new Error(message_base);
58
-
59
- error_0 = new DyFM_Error({
60
- userMessage: userMessage_0,
61
- addECToUserMsg: true,
62
- errorCode: errorCode_0,
63
- issuerSystem: issuerSystem,
64
- issuer: issuer,
65
- issuerService: issuerService_0,
66
- error: error_base,
67
- });
68
-
69
- error_stack_1 = new DyFM_Error({
70
- message: message_1,
71
- errorCode: errorCode_1,
72
- issuerService: issuerService_1,
73
- handled: true,
74
- additionalContent: additionalContent_1,
75
- error: error_0,
76
- });
77
-
78
- error_stack_withoutSubErrors_1 = {
79
- ...error_stack_1,
80
- } as DyFM_Error;
81
- error_stack_withoutSubErrors_1.errors.forEach((error: DyFM_Error): any => {
82
- const subError = { ...error } as DyFM_Error;
83
-
84
- delete subError.errors;
85
-
86
- return subError;
87
- });
88
-
89
- error_stack_2 = new DyFM_Error({
90
- message: message_2,
91
- userMessage: userMessage_2,
92
- addECToUserMsg: true,
93
- errorCode: errorCode_2,
94
- additionalContent: additionalContent_2,
95
- error: error_stack_1,
96
- });
97
-
98
- error_stack_withoutSubErrors_2 = {
99
- ...error_stack_2,
100
- } as DyFM_Error;
101
-
102
- error_stack_withoutSubErrors_2.errors = error_stack_withoutSubErrors_2.errors.map(
103
- (error: DyFM_Error): any => ({ ...error })
104
- );
105
-
106
- error_stack_withoutSubErrors_2.errors.forEach((subError: DyFM_Error): any => {
107
- delete subError.errors;
108
- });
109
-
110
- error_selfDefined = new DyFM_Error();
111
- });
112
-
113
- if (log) afterAll(async (): Promise<void> => {
114
- DyFM_Log.testLog('error_stack_2:\n', error_stack_2);
115
- DyFM_Log.testLog('error_stack_2.getFlat:\n', error_stack_2.getErrorsFlat());
116
- DyFM_Log.testLog('error_stack_2.getSimplified:\n', error_stack_2.getErrorSimplified());
117
- DyFM_Log.testLog('error_stack_withoutSubErrors_2:\n', error_stack_withoutSubErrors_2);
118
- DyFM_Log.testLog('error_selfDefined:\n', error_selfDefined);
119
- DyFM_Log.testLog('error_selfDefined.getFlat:\n', error_selfDefined.getErrorsFlat());
120
- DyFM_Log.testLog(
121
- 'error_selfDefined.getSimplified:\n', error_selfDefined.getErrorSimplified()
122
- );
123
- });
124
-
125
- describe('| should be defined;', (): void => {
126
- it('| error object', (): void => {
127
- expect(error_0).toBeDefined();
128
- });
129
-
130
- it('| error stack object', (): void => {
131
- expect(error_stack_1).toBeDefined();
132
- });
133
-
134
- it('| greater error stack object', (): void => {
135
- expect(error_stack_2).toBeDefined();
136
- });
137
-
138
- it('| self defined error object', (): void => {
139
- expect(error_selfDefined).toBeDefined();
140
- });
141
- });
142
-
143
- describe('| should be instance of DyFM_Error;', (): void => {
144
- it('| error as DyFM_Error object', (): void => {
145
- expect(error_0).toBeInstanceOf(DyFM_Error);
146
- });
147
-
148
- it('| error stack as DyFM_Error object', (): void => {
149
- expect(error_stack_1).toBeInstanceOf(DyFM_Error);
150
- });
151
-
152
- it('| greater error stack as DyFM_Error object', (): void => {
153
- expect(error_stack_2).toBeInstanceOf(DyFM_Error);
154
- });
155
-
156
- it('| self defined error as DyFM_Error object', (): void => {
157
- expect(error_selfDefined).toBeInstanceOf(DyFM_Error);
158
- });
159
- });
160
-
161
- describe('| should have the proper _errorCode;', (): void => {
162
- it('| on error_0', (): void => {
163
- expect(error_0._errorCode).toBe(errorCode_0);
164
- });
165
-
166
- it('| on error_stack_1', (): void => {
167
- expect(error_stack_1._errorCode).toBe(errorCode_0);
168
- });
169
-
170
- it('| on error_stack_2', (): void => {
171
- expect(error_stack_2._errorCode).toBe(errorCode_0);
172
- });
173
-
174
- it('| on self defined error', (): void => {
175
- expect(error_selfDefined._errorCode).toBe(DyFM_error_defaults.errorCode);
176
- });
177
- });
178
-
179
- describe('| should have the proper _errorCodes;', (): void => {
180
- it('| on error_0', (): void => {
181
- expect(error_0._errorCodes).toEqual([ errorCode_0 ]);
182
- });
183
-
184
- it('| on error_stack_1', (): void => {
185
- expect(error_stack_1._errorCodes).toEqual([ errorCode_0, errorCode_1 ]);
186
- });
187
-
188
- it('| on error_stack_2', (): void => {
189
- expect(error_stack_2._errorCodes).toEqual([ errorCode_0, errorCode_1, errorCode_2 ]);
190
- });
191
-
192
- it('| on self defined error', (): void => {
193
- expect(error_selfDefined._errorCodes).toEqual([ DyFM_error_defaults.errorCode ]);
194
- });
195
- });
196
-
197
- describe('| should have the proper _message;', (): void => {
198
- it('| on error_0', (): void => {
199
- expect(error_0._message).toBe(message_base);
200
- });
201
-
202
- it('| on error_stack_1', (): void => {
203
- expect(error_stack_1._message).toBe(message_base);
204
- });
205
-
206
- it('| on error_stack_2', (): void => {
207
- expect(error_stack_2._message).toBe(message_base);
208
- });
209
-
210
- it('| on self defined error (stack)', (): void => {
211
- expect(
212
- error_selfDefined._message.includes(message_selfDefined)
213
- ).withContext(
214
- `"${error_selfDefined._message}"` +
215
- '\n not contains' +
216
- `\n"${message_selfDefined}"` +
217
- '"\n '
218
- ).toBe(true);
219
- });
220
-
221
- it('| on self defined error (flag)', (): void => {
222
- expect(
223
- error_selfDefined._message.includes(DyFM_error_defaults.message)
224
- ).withContext(
225
- `"${error_selfDefined._message}"` +
226
- '\n not contains' +
227
- `\n"${DyFM_error_defaults.message}"` +
228
- '"\n '
229
- ).toBe(true);
230
- });
231
- });
232
-
233
- describe('| should have the proper _messages;', (): void => {
234
- it('| on error_0', (): void => {
235
- expect(error_0._messages).toEqual([ message_base ]);
236
- });
237
-
238
- it('| on error_stack_1', (): void => {
239
- expect(error_stack_1._messages).toEqual([ message_base, message_1 ]);
240
- });
241
-
242
- it('| on error_stack_2', (): void => {
243
- expect(error_stack_2._messages).toEqual([ message_base, message_1, message_2 ]);
244
- });
245
-
246
- it('| on self defined error (stack)', (): void => {
247
- expect(
248
- error_selfDefined._messages.length === 1 &&
249
- error_selfDefined._messages?.[0]?.includes(message_selfDefined)
250
- ).withContext(
251
- `"${error_selfDefined._messages?.[0]}"` +
252
- '\n not contains' +
253
- `\n"${message_selfDefined}"` +
254
- '"\n '
255
- ).toBe(true);
256
- });
257
-
258
- it('| on self defined error (flag)', (): void => {
259
- expect(
260
- error_selfDefined._messages.length === 1 &&
261
- error_selfDefined._messages?.[0]?.includes(DyFM_error_defaults.message)
262
- ).withContext(
263
- `"${error_selfDefined._messages?.[0]}"` +
264
- '\n not contains' +
265
- `\n"${DyFM_error_defaults.message}"` +
266
- '"\n '
267
- ).toBe(true);
268
- });
269
- });
270
-
271
- describe('| getSemanticMessage;', (): void => {
272
- it('| on non-DyFM_Error returns getErrorMessage only (no parentheses)', (): void => {
273
- const result: string = DyFM_Error.getSemanticMessage(error_base);
274
- expect(result).toBe(message_base);
275
- expect(result).not.toContain('(');
276
- });
277
-
278
- it('| on DyFM_Error with single _messages returns our message only', (): void => {
279
- const result: string = DyFM_Error.getSemanticMessage(error_0);
280
- expect(result).toBe(message_base);
281
- });
282
-
283
- it('| on DyFM_Error chain returns string containing outer message and root in parentheses when different', (): void => {
284
- const rootMsg: string = 'root-message';
285
- const outerMsg: string = 'outer-message';
286
- const errorInner: DyFM_Error = new DyFM_Error({
287
- message: rootMsg,
288
- error: new Error(),
289
- });
290
- const errorOuter: DyFM_Error = new DyFM_Error({
291
- message: outerMsg,
292
- errorCode: 'CUSTOM-SEM-001',
293
- error: errorInner,
294
- });
295
- expect(errorOuter._messages?.length).toBeGreaterThan(1);
296
- expect(errorOuter._messages?.[0]).toBe(rootMsg);
297
- expect(errorOuter._message).toBe(outerMsg);
298
- const result: string = DyFM_Error.getSemanticMessage(errorOuter);
299
- expect(result).toBe(`${outerMsg} (${rootMsg})`);
300
- });
301
-
302
- it('| on error_stack_2 returns main message (first equals our message so no parentheses)', (): void => {
303
- const result: string = DyFM_Error.getSemanticMessage(error_stack_2);
304
- expect(result).toBe(message_base);
305
- });
306
- });
307
-
308
- describe('| should have the proper __userMessage;', (): void => {
309
- it('| on error_0', (): void => {
310
- expect(error_0.__userMessage).toBe(userMessageResult_0);
311
- });
312
-
313
- it('| on error_stack_1', (): void => {
314
- expect(error_stack_1.__userMessage).toBe(userMessageResult_0);
315
- });
316
-
317
- it('| on error_stack_2', (): void => {
318
- expect(error_stack_2.__userMessage).toBe(userMessageResult_0);
319
- });
320
-
321
- it('| on self defined error', (): void => {
322
- expect(error_selfDefined.__userMessage).toBeUndefined();
323
- });
324
- });
325
-
326
- describe('| should have the proper __userMessages;', (): void => {
327
- it('| on error_0', (): void => {
328
- expect(error_0.__userMessages).toEqual([ userMessageResult_0 ]);
329
- });
330
-
331
- it('| on error_stack_1', (): void => {
332
- expect(error_stack_1.__userMessages).toEqual(
333
- [ userMessageResult_0, DyFM_error_defaults.userMessage ]
334
- );
335
- });
336
-
337
- it('| on error_stack_2', (): void => {
338
- expect(error_stack_2.__userMessages).toEqual(
339
- [ userMessageResult_0, DyFM_error_defaults.userMessage, userMessageResult_2 ]
340
- );
341
- });
342
-
343
- it('| on self defined error', (): void => {
344
- expect(error_selfDefined.__userMessages).toEqual([ DyFM_error_defaults.userMessage ]);
345
- });
346
- });
347
-
348
- describe('| should have proper error;', (): void => {
349
- it('| on error_0', (): void => {
350
- expect(testFormatter(error_0.error)).toBe(
351
- testFormatter(error_base)
352
- );
353
- });
354
-
355
- it('| on error_stack_1', (): void => {
356
- expect(testFormatter(error_stack_1.error)).toBe(
357
- testFormatter(error_base)
358
- );
359
- });
360
-
361
- it('| on error_stack_2', (): void => {
362
- expect(testFormatter(error_stack_2.error)).toBe(
363
- testFormatter(error_base)
364
- );
365
- });
366
-
367
- it('| on self defined error', (): void => {
368
- expect(testFormatter(error_selfDefined.error)).toBeDefined();
369
- });
370
- });
371
-
372
- describe('| should have the proper errors;', (): void => {
373
- it('| on error_0', (): void => {
374
- expect(error_0.errors).toEqual([ error_base ]);
375
- });
376
-
377
- it('| on error_stack_1', (): void => {
378
- const error_0_withoutSubErrors = { ...error_0 } as DyFM_Error;
379
-
380
- delete error_0_withoutSubErrors.errors;
381
- delete error_0_withoutSubErrors.additionalContent;
382
-
383
- expect(testFormatter(error_stack_1.errors)).toEqual(
384
- testFormatter([ error_base, error_0_withoutSubErrors ])
385
- );
386
- });
387
-
388
- it('| on error_stack_2', (): void => {
389
- const error_0_withoutSubErrors = { ...error_0 } as DyFM_Error;
390
- const error_stack_1_withoutSubErrors = { ...error_stack_1 } as DyFM_Error;
391
-
392
- delete error_0_withoutSubErrors.errors;
393
- delete error_0_withoutSubErrors.additionalContent;
394
- delete error_stack_1_withoutSubErrors.errors;
395
- delete error_stack_1_withoutSubErrors.additionalContent;
396
-
397
- expect(testFormatter(error_stack_2.errors)).toEqual(
398
- testFormatter([ error_base, error_0_withoutSubErrors, error_stack_1_withoutSubErrors ])
399
- );
400
- });
401
-
402
- it('| on self defined error', (): void => {
403
- expect(error_selfDefined?.errors?.length).toBe(1);
404
- });
405
- });
406
-
407
- describe('| should have proper handled;', (): void => {
408
- it('| on error_0', (): void => {
409
- expect(error_0.___handled).toBe(false);
410
- });
411
-
412
- it('| on error_stack_1', (): void => {
413
- expect(error_stack_1.___handled).toBe(true);
414
- });
415
-
416
- it('| on error_stack_2', (): void => {
417
- expect(error_stack_2.___handled).toBe(true);
418
- });
419
-
420
- it('| on self defined error', (): void => {
421
- expect(error_selfDefined.___handled).toBe(false);
422
- });
423
- });
424
-
425
- describe('| should have status: undefined;', (): void => {
426
- it('| on error_0', (): void => {
427
- expect(error_0.___status).toBe(undefined);
428
- });
429
-
430
- it('| on error_stack_1', (): void => {
431
- expect(error_stack_1.___status).toBe(undefined);
432
- });
433
-
434
- it('| on error_stack_2', (): void => {
435
- expect(error_stack_2.___status).toBe(undefined);
436
- });
437
-
438
- it('| on self defined error', (): void => {
439
- expect(error_selfDefined.___status).toBe(undefined);
440
- });
441
- });
442
-
443
- describe('| should have the proper issuer;', (): void => {
444
- it('| on error_0', (): void => {
445
- expect(error_0.___issuer).toBe(issuer);
446
- });
447
-
448
- it('| on error_stack_1', (): void => {
449
- expect(error_stack_1.___issuer).toBe(issuer);
450
- });
451
-
452
- it('| on error_stack_2', (): void => {
453
- expect(error_stack_2.___issuer).toBe(issuer);
454
- });
455
-
456
- it('| on self defined error', (): void => {
457
- expect(error_selfDefined.___issuer).toBe(DyFM_error_defaults.issuer);
458
- });
459
- });
460
-
461
- describe('| should have get proper additionalContent;', (): void => {
462
- it('| on error_0', (): void => {
463
- expect(error_0.additionalContent).toEqual({});
464
- });
465
-
466
- it('| on error_stack_1', (): void => {
467
- expect(error_stack_1.additionalContent).toEqual(additionalContent_1);
468
- });
469
-
470
- it('| on error_stack_2', (): void => {
471
- expect(error_stack_2.additionalContent).toEqual({
472
- ...additionalContent_1,
473
- ...additionalContent_2,
474
- });
475
- });
476
-
477
- it('| on self defined error', (): void => {
478
- expect(error_selfDefined.additionalContent).toEqual({});
479
- });
480
- });
481
-
482
- describe('| should have the proper issuerSystem;', (): void => {
483
- it('| on error_0', (): void => {
484
- expect(error_0.___issuerSystem).toBe(issuerSystem);
485
- });
486
-
487
- it('| on error_stack_1', (): void => {
488
- expect(error_stack_1.___issuerSystem).toBe(issuerSystem);
489
- });
490
-
491
- it('| on error_stack_2', (): void => {
492
- expect(error_stack_2.___issuerSystem).toBe(issuerSystem);
493
- });
494
-
495
- it('| on self defined error', (): void => {
496
- expect(error_selfDefined.___issuerSystem).toBe(DyFM_error_defaults.issuerSystem);
497
- });
498
- });
499
-
500
- describe('| should have the proper issuerService;', (): void => {
501
- it('| on error_0', (): void => {
502
- expect(error_0.___issuerService).toBe(issuerService_0);
503
- });
504
-
505
- it('| on error_stack_1', (): void => {
506
- expect(error_stack_1.___issuerService).toBe(issuerService_1);
507
- });
508
-
509
- it('| on error_stack_2', (): void => {
510
- expect(error_stack_2.___issuerService).toBe(issuerService_1);
511
- });
512
-
513
- it('| on self defined error', (): void => {
514
- expect(error_selfDefined.___issuerService).toBe(DyFM_error_defaults.issuerService);
515
- });
516
- });
517
-
518
- describe('| should have get proper simplified;', (): void => {
519
- let simplified: DyFM_Error_Settings;
520
-
521
- describe('| on error_0;', (): void => {
522
- beforeEach((): void => {
523
- simplified = error_0.getErrorSimplified();
524
- });
525
-
526
- it('| should be defined', (): void => {
527
- expect(simplified).toBeDefined();
528
- });
529
-
530
- it('| should have errorCode', (): void => {
531
- expect(simplified.errorCode).toBeDefined();
532
- });
533
-
534
- it('| should have message', (): void => {
535
- expect(simplified.message).toBeDefined();
536
- });
537
-
538
- it('| should have userMessage', (): void => {
539
- expect(simplified.userMessage).toBeDefined();
540
- });
541
-
542
- it('| should have stack', (): void => {
543
- expect(simplified.stack).toBeDefined();
544
- });
545
-
546
- it('| should not have error', (): void => {
547
- expect(simplified.error).toBeUndefined();
548
- });
549
-
550
- it('| should not have errors', (): void => {
551
- expect(simplified.errors).toBeUndefined();
552
- });
553
-
554
- it('| should not have simplified.error.error', (): void => {
555
- expect((simplified.error as DyFM_Error)?.error).toBeUndefined();
556
- });
557
-
558
- it('| should not have simplified.error.errors', (): void => {
559
- expect((simplified.error as DyFM_Error)?.errors).toBeUndefined();
560
- });
561
- });
562
-
563
- describe('| on error_stack_1;', (): void => {
564
- beforeEach((): void => {
565
- simplified = error_stack_1.getErrorSimplified();
566
- });
567
-
568
- it('| should be defined', (): void => {
569
- expect(simplified).toBeDefined();
570
- });
571
-
572
- it('| should have errorCode', (): void => {
573
- expect(simplified.errorCode).toBeDefined();
574
- });
575
-
576
- it('| should have message', (): void => {
577
- expect(simplified.message).toBeDefined();
578
- });
579
-
580
- it('| should have userMessage', (): void => {
581
- expect(simplified.userMessage).toBeDefined();
582
- });
583
-
584
- it('| should have stack', (): void => {
585
- expect(simplified.stack).toBeDefined();
586
- });
587
-
588
- it('| should not have error', (): void => {
589
- expect(simplified.error).toBeUndefined();
590
- });
591
-
592
- it('| should not have errors', (): void => {
593
- expect(simplified.errors).toBeUndefined();
594
- });
595
-
596
- it('| should not have simplified.error.error', (): void => {
597
- expect((simplified.error as DyFM_Error)?.error).toBeUndefined();
598
- });
599
-
600
- it('| should not have simplified.error.errors', (): void => {
601
- expect((simplified.error as DyFM_Error)?.errors).toBeUndefined();
602
- });
603
- });
604
-
605
- describe('| on error_stack_2;', (): void => {
606
- beforeEach((): void => {
607
- simplified = error_stack_2.getErrorSimplified();
608
- });
609
-
610
- it('| should be defined', (): void => {
611
- expect(simplified).toBeDefined();
612
- });
613
-
614
- it('| should have errorCode', (): void => {
615
- expect(simplified.errorCode).toBeDefined();
616
- });
617
-
618
- it('| should have message', (): void => {
619
- expect(simplified.message).toBeDefined();
620
- });
621
-
622
- it('| should have userMessage', (): void => {
623
- expect(simplified.userMessage).toBeDefined();
624
- });
625
-
626
- it('| should have stack', (): void => {
627
- expect(simplified.stack).toBeDefined();
628
- });
629
-
630
- it('| should not have error', (): void => {
631
- expect(simplified.error).toBeUndefined();
632
- });
633
-
634
- it('| should not have errors', (): void => {
635
- expect(simplified.errors).toBeUndefined();
636
- });
637
-
638
- it('| should not have simplified.error.error', (): void => {
639
- expect((simplified.error as DyFM_Error)?.error).toBeUndefined();
640
- });
641
-
642
- it('| should not have simplified.error.errors', (): void => {
643
- expect((simplified.error as DyFM_Error)?.errors).toBeUndefined();
644
- });
645
- });
646
-
647
- describe('| on self defined error;', (): void => {
648
- beforeEach((): void => {
649
- simplified = error_selfDefined.getErrorSimplified();
650
- });
651
-
652
- it('| should be defined', (): void => {
653
- expect(simplified).toBeDefined();
654
- });
655
-
656
- it('| should have errorCode', (): void => {
657
- expect(simplified.errorCode).toBeDefined();
658
- });
659
-
660
- it('| should have message', (): void => {
661
- expect(simplified.message).toBeDefined();
662
- });
663
-
664
- it('| should not have userMessage', (): void => {
665
- expect(simplified.userMessage).toBeUndefined();
666
- });
667
-
668
- it('| should have stack', (): void => {
669
- expect(simplified.stack).toBeDefined();
670
- });
671
-
672
- it('| should not have error', (): void => {
673
- expect(simplified.error).toBeUndefined();
674
- });
675
-
676
- it('| should not have errors', (): void => {
677
- expect(simplified.errors).toBeUndefined();
678
- });
679
-
680
- it('| should not have simplified.error.error', (): void => {
681
- expect((simplified.error as DyFM_Error)?.error).toBeUndefined();
682
- });
683
-
684
- it('| should not have simplified.error.errors', (): void => {
685
- expect((simplified.error as DyFM_Error)?.errors).toBeUndefined();
686
- });
687
- });
688
- });
689
-
690
- describe('| should have get proper flat;', (): void => {
691
- let flat;
692
-
693
- describe('| on error_0;', (): void => {
694
- beforeEach((): void => {
695
- flat = error_0.getErrorsFlat();
696
- });
697
-
698
- it('| should be defined', (): void => {
699
- expect(flat).toBeDefined();
700
- });
701
-
702
- it('| should have error', (): void => {
703
- expect(flat.error).toBeDefined();
704
- });
705
-
706
- describe('| errors...;', (): void => {
707
- it('| should have errors', (): void => {
708
- expect(flat?.errors).toBeDefined();
709
- });
710
-
711
- it('| should have 1 errors', (): void => {
712
- expect(flat?.errors?.length).toBe(1);
713
- });
714
-
715
- flat?.errors?.forEach((error: DyFM_Error, index: number): void => {
716
- describe(`on error[${index}];`, (): void => {
717
- it('| should be', (): void => {
718
- expect(error).toBeDefined();
719
- });
720
-
721
- it(`should have error[${index}].error`, (): void => {
722
- expect(error.error).toBeDefined();
723
- });
724
-
725
- it(`should not have error[${index}].errors`, (): void => {
726
- expect(error.errors).toBeUndefined();
727
- });
728
-
729
- it(`should not have error[${index}].error.error`, (): void => {
730
- expect((error.error as DyFM_Error)?.error).toBeUndefined();
731
- });
732
-
733
- it(`should not have error[${index}].error.errors`, (): void => {
734
- expect((error.error as DyFM_Error)?.errors).toBeUndefined();
735
- });
736
- });
737
- });
738
- });
739
- });
740
-
741
- describe('| on error_stack_1;', (): void => {
742
- beforeEach((): void => {
743
- flat = error_stack_1.getErrorsFlat();
744
- });
745
-
746
- it('| should be defined', (): void => {
747
- expect(flat).toBeDefined();
748
- });
749
-
750
- it('| should have error', (): void => {
751
- expect(flat.error).toBeDefined();
752
- });
753
-
754
- describe('| errors...;', (): void => {
755
- it('| should have errors', (): void => {
756
- expect(flat?.errors).toBeDefined();
757
- });
758
-
759
- it('| should have 2 errors', (): void => {
760
- expect(flat?.errors?.length).toBe(2);
761
- });
762
-
763
- flat?.errors?.forEach((error: DyFM_Error, index: number): void => {
764
- describe(`on error[${index}];`, (): void => {
765
- it('| should be', (): void => {
766
- expect(error).toBeDefined();
767
- });
768
-
769
- it(`should have error[${index}].error`, (): void => {
770
- expect(error.error).toBeDefined();
771
- });
772
-
773
- it(`should not have error[${index}].errors`, (): void => {
774
- expect(error.errors).toBeUndefined();
775
- });
776
-
777
- it('| should not have error[${index}].error.error', (): void => {
778
- expect((error.error as DyFM_Error)?.error).toBeUndefined();
779
- });
780
-
781
- it('| should not have error[${index}].error.errors', (): void => {
782
- expect((error.error as DyFM_Error)?.errors).toBeUndefined();
783
- });
784
- });
785
- });
786
- });
787
- });
788
-
789
- describe('| on error_stack_2;', (): void => {
790
- beforeEach((): void => {
791
- flat = error_stack_2.getErrorsFlat();
792
- });
793
-
794
- it('| should be defined', (): void => {
795
- expect(flat).toBeDefined();
796
- });
797
-
798
- it('| should have error', (): void => {
799
- expect(flat.error).toBeDefined();
800
- });
801
-
802
- describe('| errors...;', (): void => {
803
- it('| should have errors', (): void => {
804
- expect(flat?.errors).toBeDefined();
805
- });
806
-
807
- it('| should have 3 errors', (): void => {
808
- expect(flat?.errors?.length).toBe(3);
809
- });
810
-
811
- flat?.errors?.forEach((error: DyFM_Error, index: number): void => {
812
- describe(`on error[${index}];`, (): void => {
813
- it('| should be', (): void => {
814
- expect(error).toBeDefined();
815
- });
816
-
817
- it(`should have error[${index}].error`, (): void => {
818
- expect(error.error).toBeDefined();
819
- });
820
-
821
- it(`should not have error[${index}].errors`, (): void => {
822
- expect(error.errors).toBeUndefined();
823
- });
824
-
825
- it(`should not have error[${index}].error.error`, (): void => {
826
- expect((error.error as DyFM_Error)?.error).toBeUndefined();
827
- });
828
-
829
- it(`should not have error[${index}].error.errors`, (): void => {
830
- expect((error.error as DyFM_Error)?.errors).toBeUndefined();
831
- });
832
- });
833
- });
834
- });
835
- });
836
-
837
- describe('| on self defined error;', (): void => {
838
- beforeEach((): void => {
839
- flat = error_selfDefined.getErrorsFlat();
840
- });
841
-
842
- it('| should be defined', (): void => {
843
- expect(flat).toBeDefined();
844
- });
845
-
846
- it('| should have error', (): void => {
847
- expect(flat.error).toBeDefined();
848
- });
849
-
850
- describe('| errors...;', (): void => {
851
- it('| should have errors', (): void => {
852
- expect(flat?.errors).toBeDefined();
853
- });
854
-
855
- it('| should have 1 errors', (): void => {
856
- expect(flat?.errors?.length).toBe(1);
857
- });
858
-
859
- flat?.errors?.forEach((error: DyFM_Error, index: number): void => {
860
- describe(`on error[${index}];`, (): void => {
861
- it('| should be', (): void => {
862
- expect(error).toBeDefined();
863
- });
864
-
865
- it(`should have error[${index}].error`, (): void => {
866
- expect(error.error).toBeDefined();
867
- });
868
-
869
- it(`should not have error[${index}].errors`, (): void => {
870
- expect(error.errors).toBeUndefined();
871
- });
872
-
873
- it(`should not have error[${index}].error.error`, (): void => {
874
- expect((error.error as DyFM_Error)?.error).toBeUndefined();
875
- });
876
-
877
- it(`should not have error[${index}].error.errors`, (): void => {
878
- expect((error.error as DyFM_Error)?.errors).toBeUndefined();
879
- });
880
- });
881
- });
882
- });
883
- });
884
-
885
- describe('| stack', (): void => {
886
- it('| error lvl3 should have the stack from the first', (): void => {
887
- const error_lvl1 = new Error('error_lvl1');
888
-
889
- const error_lvl2 = new DyFM_Error({
890
- error: error_lvl1,
891
- });
892
-
893
- const error_lvl3 = new DyFM_Error({
894
- error: error_lvl2,
895
- });
896
-
897
- expect(error_lvl3.stack).toBe(error_lvl1.stack);
898
- });
899
- });
900
- });
901
-
902
- describe('| logSimple;', (): void => {
903
- it('| should not fail', (): void => {
904
- const error = new DyFM_Error({
905
- error: new Error('error'),
906
- });
907
-
908
- expect(error.logSimple('test')).toBeUndefined();
909
- });
910
- });
911
-
912
- /**
913
- * BFR-FDPTOKENSERVICE-013 — az `ErrorCode:` userMessage-utótag kontrollja: a végfelhasználó
914
- * ne kapjon belső hibakódot, és wrapper-láncban ne a KÜLSŐ kód jelenjen meg.
915
- */
916
- describe('| addECToUserMsg — ErrorCode-utótag kontroll (BFR-FDPTOKENSERVICE-013);', (): void => {
917
- afterEach((): void => {
918
- delete DyFM_error_defaults.addECToUserMsg;
919
- });
920
-
921
- it('| addECToUserMsg:true → az utótag rákerül (visszafelé-kompatibilis default)', (): void => {
922
- const error = new DyFM_Error({
923
- errorCode: 'TEST-EC-1',
924
- userMessage: 'Something went wrong.',
925
- addECToUserMsg: true,
926
- error: new Error('x'),
927
- });
928
-
929
- expect(error.__userMessage).toContain('ErrorCode: TEST-EC-1');
930
- });
931
-
932
- it('| flag nélkül NINCS utótag (az explicit false / kihagyás tiszteletben tartva)', (): void => {
933
- const error = new DyFM_Error({
934
- errorCode: 'TEST-EC-2',
935
- userMessage: 'Something went wrong.',
936
- error: new Error('x'),
937
- });
938
-
939
- expect(error.__userMessage).not.toContain('ErrorCode:');
940
- });
941
-
942
- it('| GLOBÁLIS kill-switch: DyFM_error_defaults.addECToUserMsg=false → per-error true mellett SINCS utótag', (): void => {
943
- DyFM_error_defaults.addECToUserMsg = false;
944
-
945
- const error = new DyFM_Error({
946
- errorCode: 'TEST-EC-3',
947
- userMessage: 'Something went wrong.',
948
- addECToUserMsg: true,
949
- error: new Error('x'),
950
- });
951
-
952
- expect(error.__userMessage).not.toContain('ErrorCode:');
953
- });
954
-
955
- it('| wrapper-lánc: már utótagos userMessage-re NEM fűzünk újra (a külső kód nem takarhatja a valódit)', (): void => {
956
- const inner = new DyFM_Error({
957
- errorCode: 'INNER-EC',
958
- userMessage: 'Form error.',
959
- addECToUserMsg: true,
960
- error: new Error('inner'),
961
- });
962
-
963
- const outer = new DyFM_Error({
964
- errorCode: 'OUTER-EC',
965
- userMessage: inner.__userMessage,
966
- addECToUserMsg: true,
967
- error: inner,
968
- });
969
-
970
- expect(outer.__userMessage).toContain('ErrorCode: INNER-EC');
971
- expect(outer.__userMessage).not.toContain('OUTER-EC');
972
- });
973
- });
974
- });
975
-
1
+
2
+
3
+ import { DyFM_error_defaults } from '../../_collections/constants/error-defaults.const';
4
+ import { DyFM_Log } from '../../_collections/utils/log.util';
5
+ import { DyFM_Error, DyFM_Error_Settings } from './error.control-model';
6
+
7
+ function testFormatter(any: any): any {
8
+ if (any instanceof Error) {
9
+ return any;
10
+ } else {
11
+ return `\n${JSON.stringify(any, null, 2)}\n`;
12
+ }
13
+ }
14
+
15
+ describe('| DyFM_Error;', (): void => {
16
+ let error_base: Error;
17
+ let error_0: DyFM_Error;
18
+ let error_stack_1: DyFM_Error;
19
+ let error_stack_withoutSubErrors_1: DyFM_Error;
20
+ let error_stack_2: DyFM_Error;
21
+ let error_stack_withoutSubErrors_2: DyFM_Error;
22
+ let error_selfDefined: DyFM_Error;
23
+
24
+ const message_base: string = '-TEST ERROR: something failed!-';
25
+ const message_1: string = 'TEST ERROR MSG (1)';
26
+ const message_2: string = 'TEST ERROR MSG (2)';
27
+ const message_selfDefined: string = 'error.control-model.spec.js:89:29';
28
+
29
+ const errorCode_0: string = 'ASD-ASD-001';
30
+ const errorCode_1: string = 'ASD-ASD-002';
31
+ const errorCode_2: string = 'ASD-ASD-003';
32
+
33
+ const userMessage_0: string = 'DyFM_Error TEST was TEST! (0)';
34
+ const userMessage_2: string = 'DyFM_Error TEST was TEST! (2)';
35
+
36
+ const userMessageResult_0: string = userMessage_0 + `\n ErrorCode: ${errorCode_0}`;
37
+ const userMessageResult_2: string = userMessage_2 + `\n ErrorCode: ${errorCode_2}`;
38
+
39
+ const issuer: string = 'DyFM_Error TEST User';
40
+ const issuerSystem: string = 'DyFM_FSM TEST';
41
+ const issuerService_0: string = 'Service-0';
42
+ const issuerService_1: string = 'Service-1';
43
+
44
+ const additionalContent_1 = {
45
+ test: 'test',
46
+ test2: 'test2',
47
+ };
48
+ const additionalContent_2 = {
49
+ test2: 'testZ',
50
+ test3: 'test3',
51
+ };
52
+
53
+ const log: boolean = false;
54
+ /* const log: boolean = true; */
55
+
56
+ beforeEach(async (): Promise<void> => {
57
+ error_base = new Error(message_base);
58
+
59
+ error_0 = new DyFM_Error({
60
+ userMessage: userMessage_0,
61
+ addECToUserMsg: true,
62
+ errorCode: errorCode_0,
63
+ issuerSystem: issuerSystem,
64
+ issuer: issuer,
65
+ issuerService: issuerService_0,
66
+ error: error_base,
67
+ });
68
+
69
+ error_stack_1 = new DyFM_Error({
70
+ message: message_1,
71
+ errorCode: errorCode_1,
72
+ issuerService: issuerService_1,
73
+ handled: true,
74
+ additionalContent: additionalContent_1,
75
+ error: error_0,
76
+ });
77
+
78
+ error_stack_withoutSubErrors_1 = {
79
+ ...error_stack_1,
80
+ } as DyFM_Error;
81
+ error_stack_withoutSubErrors_1.errors.forEach((error: DyFM_Error): any => {
82
+ const subError = { ...error } as DyFM_Error;
83
+
84
+ delete subError.errors;
85
+
86
+ return subError;
87
+ });
88
+
89
+ error_stack_2 = new DyFM_Error({
90
+ message: message_2,
91
+ userMessage: userMessage_2,
92
+ addECToUserMsg: true,
93
+ errorCode: errorCode_2,
94
+ additionalContent: additionalContent_2,
95
+ error: error_stack_1,
96
+ });
97
+
98
+ error_stack_withoutSubErrors_2 = {
99
+ ...error_stack_2,
100
+ } as DyFM_Error;
101
+
102
+ error_stack_withoutSubErrors_2.errors = error_stack_withoutSubErrors_2.errors.map(
103
+ (error: DyFM_Error): any => ({ ...error })
104
+ );
105
+
106
+ error_stack_withoutSubErrors_2.errors.forEach((subError: DyFM_Error): any => {
107
+ delete subError.errors;
108
+ });
109
+
110
+ error_selfDefined = new DyFM_Error();
111
+ });
112
+
113
+ if (log) afterAll(async (): Promise<void> => {
114
+ DyFM_Log.testLog('error_stack_2:\n', error_stack_2);
115
+ DyFM_Log.testLog('error_stack_2.getFlat:\n', error_stack_2.getErrorsFlat());
116
+ DyFM_Log.testLog('error_stack_2.getSimplified:\n', error_stack_2.getErrorSimplified());
117
+ DyFM_Log.testLog('error_stack_withoutSubErrors_2:\n', error_stack_withoutSubErrors_2);
118
+ DyFM_Log.testLog('error_selfDefined:\n', error_selfDefined);
119
+ DyFM_Log.testLog('error_selfDefined.getFlat:\n', error_selfDefined.getErrorsFlat());
120
+ DyFM_Log.testLog(
121
+ 'error_selfDefined.getSimplified:\n', error_selfDefined.getErrorSimplified()
122
+ );
123
+ });
124
+
125
+ describe('| should be defined;', (): void => {
126
+ it('| error object', (): void => {
127
+ expect(error_0).toBeDefined();
128
+ });
129
+
130
+ it('| error stack object', (): void => {
131
+ expect(error_stack_1).toBeDefined();
132
+ });
133
+
134
+ it('| greater error stack object', (): void => {
135
+ expect(error_stack_2).toBeDefined();
136
+ });
137
+
138
+ it('| self defined error object', (): void => {
139
+ expect(error_selfDefined).toBeDefined();
140
+ });
141
+ });
142
+
143
+ describe('| should be instance of DyFM_Error;', (): void => {
144
+ it('| error as DyFM_Error object', (): void => {
145
+ expect(error_0).toBeInstanceOf(DyFM_Error);
146
+ });
147
+
148
+ it('| error stack as DyFM_Error object', (): void => {
149
+ expect(error_stack_1).toBeInstanceOf(DyFM_Error);
150
+ });
151
+
152
+ it('| greater error stack as DyFM_Error object', (): void => {
153
+ expect(error_stack_2).toBeInstanceOf(DyFM_Error);
154
+ });
155
+
156
+ it('| self defined error as DyFM_Error object', (): void => {
157
+ expect(error_selfDefined).toBeInstanceOf(DyFM_Error);
158
+ });
159
+ });
160
+
161
+ describe('| should have the proper _errorCode;', (): void => {
162
+ it('| on error_0', (): void => {
163
+ expect(error_0._errorCode).toBe(errorCode_0);
164
+ });
165
+
166
+ it('| on error_stack_1', (): void => {
167
+ expect(error_stack_1._errorCode).toBe(errorCode_0);
168
+ });
169
+
170
+ it('| on error_stack_2', (): void => {
171
+ expect(error_stack_2._errorCode).toBe(errorCode_0);
172
+ });
173
+
174
+ it('| on self defined error', (): void => {
175
+ expect(error_selfDefined._errorCode).toBe(DyFM_error_defaults.errorCode);
176
+ });
177
+ });
178
+
179
+ describe('| should have the proper _errorCodes;', (): void => {
180
+ it('| on error_0', (): void => {
181
+ expect(error_0._errorCodes).toEqual([ errorCode_0 ]);
182
+ });
183
+
184
+ it('| on error_stack_1', (): void => {
185
+ expect(error_stack_1._errorCodes).toEqual([ errorCode_0, errorCode_1 ]);
186
+ });
187
+
188
+ it('| on error_stack_2', (): void => {
189
+ expect(error_stack_2._errorCodes).toEqual([ errorCode_0, errorCode_1, errorCode_2 ]);
190
+ });
191
+
192
+ it('| on self defined error', (): void => {
193
+ expect(error_selfDefined._errorCodes).toEqual([ DyFM_error_defaults.errorCode ]);
194
+ });
195
+ });
196
+
197
+ describe('| should have the proper _message;', (): void => {
198
+ it('| on error_0', (): void => {
199
+ expect(error_0._message).toBe(message_base);
200
+ });
201
+
202
+ it('| on error_stack_1', (): void => {
203
+ expect(error_stack_1._message).toBe(message_base);
204
+ });
205
+
206
+ it('| on error_stack_2', (): void => {
207
+ expect(error_stack_2._message).toBe(message_base);
208
+ });
209
+
210
+ it('| on self defined error (stack)', (): void => {
211
+ expect(
212
+ error_selfDefined._message.includes(message_selfDefined)
213
+ ).withContext(
214
+ `"${error_selfDefined._message}"` +
215
+ '\n not contains' +
216
+ `\n"${message_selfDefined}"` +
217
+ '"\n '
218
+ ).toBe(true);
219
+ });
220
+
221
+ it('| on self defined error (flag)', (): void => {
222
+ expect(
223
+ error_selfDefined._message.includes(DyFM_error_defaults.message)
224
+ ).withContext(
225
+ `"${error_selfDefined._message}"` +
226
+ '\n not contains' +
227
+ `\n"${DyFM_error_defaults.message}"` +
228
+ '"\n '
229
+ ).toBe(true);
230
+ });
231
+ });
232
+
233
+ describe('| should have the proper _messages;', (): void => {
234
+ it('| on error_0', (): void => {
235
+ expect(error_0._messages).toEqual([ message_base ]);
236
+ });
237
+
238
+ it('| on error_stack_1', (): void => {
239
+ expect(error_stack_1._messages).toEqual([ message_base, message_1 ]);
240
+ });
241
+
242
+ it('| on error_stack_2', (): void => {
243
+ expect(error_stack_2._messages).toEqual([ message_base, message_1, message_2 ]);
244
+ });
245
+
246
+ it('| on self defined error (stack)', (): void => {
247
+ expect(
248
+ error_selfDefined._messages.length === 1 &&
249
+ error_selfDefined._messages?.[0]?.includes(message_selfDefined)
250
+ ).withContext(
251
+ `"${error_selfDefined._messages?.[0]}"` +
252
+ '\n not contains' +
253
+ `\n"${message_selfDefined}"` +
254
+ '"\n '
255
+ ).toBe(true);
256
+ });
257
+
258
+ it('| on self defined error (flag)', (): void => {
259
+ expect(
260
+ error_selfDefined._messages.length === 1 &&
261
+ error_selfDefined._messages?.[0]?.includes(DyFM_error_defaults.message)
262
+ ).withContext(
263
+ `"${error_selfDefined._messages?.[0]}"` +
264
+ '\n not contains' +
265
+ `\n"${DyFM_error_defaults.message}"` +
266
+ '"\n '
267
+ ).toBe(true);
268
+ });
269
+ });
270
+
271
+ describe('| getSemanticMessage;', (): void => {
272
+ it('| on non-DyFM_Error returns getErrorMessage only (no parentheses)', (): void => {
273
+ const result: string = DyFM_Error.getSemanticMessage(error_base);
274
+ expect(result).toBe(message_base);
275
+ expect(result).not.toContain('(');
276
+ });
277
+
278
+ it('| on DyFM_Error with single _messages returns our message only', (): void => {
279
+ const result: string = DyFM_Error.getSemanticMessage(error_0);
280
+ expect(result).toBe(message_base);
281
+ });
282
+
283
+ it('| on DyFM_Error chain returns string containing outer message and root in parentheses when different', (): void => {
284
+ const rootMsg: string = 'root-message';
285
+ const outerMsg: string = 'outer-message';
286
+ const errorInner: DyFM_Error = new DyFM_Error({
287
+ message: rootMsg,
288
+ error: new Error(),
289
+ });
290
+ const errorOuter: DyFM_Error = new DyFM_Error({
291
+ message: outerMsg,
292
+ errorCode: 'CUSTOM-SEM-001',
293
+ error: errorInner,
294
+ });
295
+ expect(errorOuter._messages?.length).toBeGreaterThan(1);
296
+ expect(errorOuter._messages?.[0]).toBe(rootMsg);
297
+ expect(errorOuter._message).toBe(outerMsg);
298
+ const result: string = DyFM_Error.getSemanticMessage(errorOuter);
299
+ expect(result).toBe(`${outerMsg} (${rootMsg})`);
300
+ });
301
+
302
+ it('| on error_stack_2 returns main message (first equals our message so no parentheses)', (): void => {
303
+ const result: string = DyFM_Error.getSemanticMessage(error_stack_2);
304
+ expect(result).toBe(message_base);
305
+ });
306
+ });
307
+
308
+ describe('| should have the proper __userMessage;', (): void => {
309
+ it('| on error_0', (): void => {
310
+ expect(error_0.__userMessage).toBe(userMessageResult_0);
311
+ });
312
+
313
+ it('| on error_stack_1', (): void => {
314
+ expect(error_stack_1.__userMessage).toBe(userMessageResult_0);
315
+ });
316
+
317
+ it('| on error_stack_2', (): void => {
318
+ expect(error_stack_2.__userMessage).toBe(userMessageResult_0);
319
+ });
320
+
321
+ it('| on self defined error', (): void => {
322
+ expect(error_selfDefined.__userMessage).toBeUndefined();
323
+ });
324
+ });
325
+
326
+ describe('| should have the proper __userMessages;', (): void => {
327
+ it('| on error_0', (): void => {
328
+ expect(error_0.__userMessages).toEqual([ userMessageResult_0 ]);
329
+ });
330
+
331
+ it('| on error_stack_1', (): void => {
332
+ expect(error_stack_1.__userMessages).toEqual(
333
+ [ userMessageResult_0, DyFM_error_defaults.userMessage ]
334
+ );
335
+ });
336
+
337
+ it('| on error_stack_2', (): void => {
338
+ expect(error_stack_2.__userMessages).toEqual(
339
+ [ userMessageResult_0, DyFM_error_defaults.userMessage, userMessageResult_2 ]
340
+ );
341
+ });
342
+
343
+ it('| on self defined error', (): void => {
344
+ expect(error_selfDefined.__userMessages).toEqual([ DyFM_error_defaults.userMessage ]);
345
+ });
346
+ });
347
+
348
+ describe('| should have proper error;', (): void => {
349
+ it('| on error_0', (): void => {
350
+ expect(testFormatter(error_0.error)).toBe(
351
+ testFormatter(error_base)
352
+ );
353
+ });
354
+
355
+ it('| on error_stack_1', (): void => {
356
+ expect(testFormatter(error_stack_1.error)).toBe(
357
+ testFormatter(error_base)
358
+ );
359
+ });
360
+
361
+ it('| on error_stack_2', (): void => {
362
+ expect(testFormatter(error_stack_2.error)).toBe(
363
+ testFormatter(error_base)
364
+ );
365
+ });
366
+
367
+ it('| on self defined error', (): void => {
368
+ expect(testFormatter(error_selfDefined.error)).toBeDefined();
369
+ });
370
+ });
371
+
372
+ describe('| should have the proper errors;', (): void => {
373
+ it('| on error_0', (): void => {
374
+ expect(error_0.errors).toEqual([ error_base ]);
375
+ });
376
+
377
+ it('| on error_stack_1', (): void => {
378
+ const error_0_withoutSubErrors = { ...error_0 } as DyFM_Error;
379
+
380
+ delete error_0_withoutSubErrors.errors;
381
+ delete error_0_withoutSubErrors.additionalContent;
382
+
383
+ expect(testFormatter(error_stack_1.errors)).toEqual(
384
+ testFormatter([ error_base, error_0_withoutSubErrors ])
385
+ );
386
+ });
387
+
388
+ it('| on error_stack_2', (): void => {
389
+ const error_0_withoutSubErrors = { ...error_0 } as DyFM_Error;
390
+ const error_stack_1_withoutSubErrors = { ...error_stack_1 } as DyFM_Error;
391
+
392
+ delete error_0_withoutSubErrors.errors;
393
+ delete error_0_withoutSubErrors.additionalContent;
394
+ delete error_stack_1_withoutSubErrors.errors;
395
+ delete error_stack_1_withoutSubErrors.additionalContent;
396
+
397
+ expect(testFormatter(error_stack_2.errors)).toEqual(
398
+ testFormatter([ error_base, error_0_withoutSubErrors, error_stack_1_withoutSubErrors ])
399
+ );
400
+ });
401
+
402
+ it('| on self defined error', (): void => {
403
+ expect(error_selfDefined?.errors?.length).toBe(1);
404
+ });
405
+ });
406
+
407
+ describe('| should have proper handled;', (): void => {
408
+ it('| on error_0', (): void => {
409
+ expect(error_0.___handled).toBe(false);
410
+ });
411
+
412
+ it('| on error_stack_1', (): void => {
413
+ expect(error_stack_1.___handled).toBe(true);
414
+ });
415
+
416
+ it('| on error_stack_2', (): void => {
417
+ expect(error_stack_2.___handled).toBe(true);
418
+ });
419
+
420
+ it('| on self defined error', (): void => {
421
+ expect(error_selfDefined.___handled).toBe(false);
422
+ });
423
+ });
424
+
425
+ describe('| should have status: undefined;', (): void => {
426
+ it('| on error_0', (): void => {
427
+ expect(error_0.___status).toBe(undefined);
428
+ });
429
+
430
+ it('| on error_stack_1', (): void => {
431
+ expect(error_stack_1.___status).toBe(undefined);
432
+ });
433
+
434
+ it('| on error_stack_2', (): void => {
435
+ expect(error_stack_2.___status).toBe(undefined);
436
+ });
437
+
438
+ it('| on self defined error', (): void => {
439
+ expect(error_selfDefined.___status).toBe(undefined);
440
+ });
441
+ });
442
+
443
+ describe('| should have the proper issuer;', (): void => {
444
+ it('| on error_0', (): void => {
445
+ expect(error_0.___issuer).toBe(issuer);
446
+ });
447
+
448
+ it('| on error_stack_1', (): void => {
449
+ expect(error_stack_1.___issuer).toBe(issuer);
450
+ });
451
+
452
+ it('| on error_stack_2', (): void => {
453
+ expect(error_stack_2.___issuer).toBe(issuer);
454
+ });
455
+
456
+ it('| on self defined error', (): void => {
457
+ expect(error_selfDefined.___issuer).toBe(DyFM_error_defaults.issuer);
458
+ });
459
+ });
460
+
461
+ describe('| should have get proper additionalContent;', (): void => {
462
+ it('| on error_0', (): void => {
463
+ expect(error_0.additionalContent).toEqual({});
464
+ });
465
+
466
+ it('| on error_stack_1', (): void => {
467
+ expect(error_stack_1.additionalContent).toEqual(additionalContent_1);
468
+ });
469
+
470
+ it('| on error_stack_2', (): void => {
471
+ expect(error_stack_2.additionalContent).toEqual({
472
+ ...additionalContent_1,
473
+ ...additionalContent_2,
474
+ });
475
+ });
476
+
477
+ it('| on self defined error', (): void => {
478
+ expect(error_selfDefined.additionalContent).toEqual({});
479
+ });
480
+ });
481
+
482
+ describe('| should have the proper issuerSystem;', (): void => {
483
+ it('| on error_0', (): void => {
484
+ expect(error_0.___issuerSystem).toBe(issuerSystem);
485
+ });
486
+
487
+ it('| on error_stack_1', (): void => {
488
+ expect(error_stack_1.___issuerSystem).toBe(issuerSystem);
489
+ });
490
+
491
+ it('| on error_stack_2', (): void => {
492
+ expect(error_stack_2.___issuerSystem).toBe(issuerSystem);
493
+ });
494
+
495
+ it('| on self defined error', (): void => {
496
+ expect(error_selfDefined.___issuerSystem).toBe(DyFM_error_defaults.issuerSystem);
497
+ });
498
+ });
499
+
500
+ describe('| should have the proper issuerService;', (): void => {
501
+ it('| on error_0', (): void => {
502
+ expect(error_0.___issuerService).toBe(issuerService_0);
503
+ });
504
+
505
+ it('| on error_stack_1', (): void => {
506
+ expect(error_stack_1.___issuerService).toBe(issuerService_1);
507
+ });
508
+
509
+ it('| on error_stack_2', (): void => {
510
+ expect(error_stack_2.___issuerService).toBe(issuerService_1);
511
+ });
512
+
513
+ it('| on self defined error', (): void => {
514
+ expect(error_selfDefined.___issuerService).toBe(DyFM_error_defaults.issuerService);
515
+ });
516
+ });
517
+
518
+ describe('| should have get proper simplified;', (): void => {
519
+ let simplified: DyFM_Error_Settings;
520
+
521
+ describe('| on error_0;', (): void => {
522
+ beforeEach((): void => {
523
+ simplified = error_0.getErrorSimplified();
524
+ });
525
+
526
+ it('| should be defined', (): void => {
527
+ expect(simplified).toBeDefined();
528
+ });
529
+
530
+ it('| should have errorCode', (): void => {
531
+ expect(simplified.errorCode).toBeDefined();
532
+ });
533
+
534
+ it('| should have message', (): void => {
535
+ expect(simplified.message).toBeDefined();
536
+ });
537
+
538
+ it('| should have userMessage', (): void => {
539
+ expect(simplified.userMessage).toBeDefined();
540
+ });
541
+
542
+ it('| should have stack', (): void => {
543
+ expect(simplified.stack).toBeDefined();
544
+ });
545
+
546
+ it('| should not have error', (): void => {
547
+ expect(simplified.error).toBeUndefined();
548
+ });
549
+
550
+ it('| should not have errors', (): void => {
551
+ expect(simplified.errors).toBeUndefined();
552
+ });
553
+
554
+ it('| should not have simplified.error.error', (): void => {
555
+ expect((simplified.error as DyFM_Error)?.error).toBeUndefined();
556
+ });
557
+
558
+ it('| should not have simplified.error.errors', (): void => {
559
+ expect((simplified.error as DyFM_Error)?.errors).toBeUndefined();
560
+ });
561
+ });
562
+
563
+ describe('| on error_stack_1;', (): void => {
564
+ beforeEach((): void => {
565
+ simplified = error_stack_1.getErrorSimplified();
566
+ });
567
+
568
+ it('| should be defined', (): void => {
569
+ expect(simplified).toBeDefined();
570
+ });
571
+
572
+ it('| should have errorCode', (): void => {
573
+ expect(simplified.errorCode).toBeDefined();
574
+ });
575
+
576
+ it('| should have message', (): void => {
577
+ expect(simplified.message).toBeDefined();
578
+ });
579
+
580
+ it('| should have userMessage', (): void => {
581
+ expect(simplified.userMessage).toBeDefined();
582
+ });
583
+
584
+ it('| should have stack', (): void => {
585
+ expect(simplified.stack).toBeDefined();
586
+ });
587
+
588
+ it('| should not have error', (): void => {
589
+ expect(simplified.error).toBeUndefined();
590
+ });
591
+
592
+ it('| should not have errors', (): void => {
593
+ expect(simplified.errors).toBeUndefined();
594
+ });
595
+
596
+ it('| should not have simplified.error.error', (): void => {
597
+ expect((simplified.error as DyFM_Error)?.error).toBeUndefined();
598
+ });
599
+
600
+ it('| should not have simplified.error.errors', (): void => {
601
+ expect((simplified.error as DyFM_Error)?.errors).toBeUndefined();
602
+ });
603
+ });
604
+
605
+ describe('| on error_stack_2;', (): void => {
606
+ beforeEach((): void => {
607
+ simplified = error_stack_2.getErrorSimplified();
608
+ });
609
+
610
+ it('| should be defined', (): void => {
611
+ expect(simplified).toBeDefined();
612
+ });
613
+
614
+ it('| should have errorCode', (): void => {
615
+ expect(simplified.errorCode).toBeDefined();
616
+ });
617
+
618
+ it('| should have message', (): void => {
619
+ expect(simplified.message).toBeDefined();
620
+ });
621
+
622
+ it('| should have userMessage', (): void => {
623
+ expect(simplified.userMessage).toBeDefined();
624
+ });
625
+
626
+ it('| should have stack', (): void => {
627
+ expect(simplified.stack).toBeDefined();
628
+ });
629
+
630
+ it('| should not have error', (): void => {
631
+ expect(simplified.error).toBeUndefined();
632
+ });
633
+
634
+ it('| should not have errors', (): void => {
635
+ expect(simplified.errors).toBeUndefined();
636
+ });
637
+
638
+ it('| should not have simplified.error.error', (): void => {
639
+ expect((simplified.error as DyFM_Error)?.error).toBeUndefined();
640
+ });
641
+
642
+ it('| should not have simplified.error.errors', (): void => {
643
+ expect((simplified.error as DyFM_Error)?.errors).toBeUndefined();
644
+ });
645
+ });
646
+
647
+ describe('| on self defined error;', (): void => {
648
+ beforeEach((): void => {
649
+ simplified = error_selfDefined.getErrorSimplified();
650
+ });
651
+
652
+ it('| should be defined', (): void => {
653
+ expect(simplified).toBeDefined();
654
+ });
655
+
656
+ it('| should have errorCode', (): void => {
657
+ expect(simplified.errorCode).toBeDefined();
658
+ });
659
+
660
+ it('| should have message', (): void => {
661
+ expect(simplified.message).toBeDefined();
662
+ });
663
+
664
+ it('| should not have userMessage', (): void => {
665
+ expect(simplified.userMessage).toBeUndefined();
666
+ });
667
+
668
+ it('| should have stack', (): void => {
669
+ expect(simplified.stack).toBeDefined();
670
+ });
671
+
672
+ it('| should not have error', (): void => {
673
+ expect(simplified.error).toBeUndefined();
674
+ });
675
+
676
+ it('| should not have errors', (): void => {
677
+ expect(simplified.errors).toBeUndefined();
678
+ });
679
+
680
+ it('| should not have simplified.error.error', (): void => {
681
+ expect((simplified.error as DyFM_Error)?.error).toBeUndefined();
682
+ });
683
+
684
+ it('| should not have simplified.error.errors', (): void => {
685
+ expect((simplified.error as DyFM_Error)?.errors).toBeUndefined();
686
+ });
687
+ });
688
+ });
689
+
690
+ describe('| should have get proper flat;', (): void => {
691
+ let flat;
692
+
693
+ describe('| on error_0;', (): void => {
694
+ beforeEach((): void => {
695
+ flat = error_0.getErrorsFlat();
696
+ });
697
+
698
+ it('| should be defined', (): void => {
699
+ expect(flat).toBeDefined();
700
+ });
701
+
702
+ it('| should have error', (): void => {
703
+ expect(flat.error).toBeDefined();
704
+ });
705
+
706
+ describe('| errors...;', (): void => {
707
+ it('| should have errors', (): void => {
708
+ expect(flat?.errors).toBeDefined();
709
+ });
710
+
711
+ it('| should have 1 errors', (): void => {
712
+ expect(flat?.errors?.length).toBe(1);
713
+ });
714
+
715
+ flat?.errors?.forEach((error: DyFM_Error, index: number): void => {
716
+ describe(`on error[${index}];`, (): void => {
717
+ it('| should be', (): void => {
718
+ expect(error).toBeDefined();
719
+ });
720
+
721
+ it(`should have error[${index}].error`, (): void => {
722
+ expect(error.error).toBeDefined();
723
+ });
724
+
725
+ it(`should not have error[${index}].errors`, (): void => {
726
+ expect(error.errors).toBeUndefined();
727
+ });
728
+
729
+ it(`should not have error[${index}].error.error`, (): void => {
730
+ expect((error.error as DyFM_Error)?.error).toBeUndefined();
731
+ });
732
+
733
+ it(`should not have error[${index}].error.errors`, (): void => {
734
+ expect((error.error as DyFM_Error)?.errors).toBeUndefined();
735
+ });
736
+ });
737
+ });
738
+ });
739
+ });
740
+
741
+ describe('| on error_stack_1;', (): void => {
742
+ beforeEach((): void => {
743
+ flat = error_stack_1.getErrorsFlat();
744
+ });
745
+
746
+ it('| should be defined', (): void => {
747
+ expect(flat).toBeDefined();
748
+ });
749
+
750
+ it('| should have error', (): void => {
751
+ expect(flat.error).toBeDefined();
752
+ });
753
+
754
+ describe('| errors...;', (): void => {
755
+ it('| should have errors', (): void => {
756
+ expect(flat?.errors).toBeDefined();
757
+ });
758
+
759
+ it('| should have 2 errors', (): void => {
760
+ expect(flat?.errors?.length).toBe(2);
761
+ });
762
+
763
+ flat?.errors?.forEach((error: DyFM_Error, index: number): void => {
764
+ describe(`on error[${index}];`, (): void => {
765
+ it('| should be', (): void => {
766
+ expect(error).toBeDefined();
767
+ });
768
+
769
+ it(`should have error[${index}].error`, (): void => {
770
+ expect(error.error).toBeDefined();
771
+ });
772
+
773
+ it(`should not have error[${index}].errors`, (): void => {
774
+ expect(error.errors).toBeUndefined();
775
+ });
776
+
777
+ it('| should not have error[${index}].error.error', (): void => {
778
+ expect((error.error as DyFM_Error)?.error).toBeUndefined();
779
+ });
780
+
781
+ it('| should not have error[${index}].error.errors', (): void => {
782
+ expect((error.error as DyFM_Error)?.errors).toBeUndefined();
783
+ });
784
+ });
785
+ });
786
+ });
787
+ });
788
+
789
+ describe('| on error_stack_2;', (): void => {
790
+ beforeEach((): void => {
791
+ flat = error_stack_2.getErrorsFlat();
792
+ });
793
+
794
+ it('| should be defined', (): void => {
795
+ expect(flat).toBeDefined();
796
+ });
797
+
798
+ it('| should have error', (): void => {
799
+ expect(flat.error).toBeDefined();
800
+ });
801
+
802
+ describe('| errors...;', (): void => {
803
+ it('| should have errors', (): void => {
804
+ expect(flat?.errors).toBeDefined();
805
+ });
806
+
807
+ it('| should have 3 errors', (): void => {
808
+ expect(flat?.errors?.length).toBe(3);
809
+ });
810
+
811
+ flat?.errors?.forEach((error: DyFM_Error, index: number): void => {
812
+ describe(`on error[${index}];`, (): void => {
813
+ it('| should be', (): void => {
814
+ expect(error).toBeDefined();
815
+ });
816
+
817
+ it(`should have error[${index}].error`, (): void => {
818
+ expect(error.error).toBeDefined();
819
+ });
820
+
821
+ it(`should not have error[${index}].errors`, (): void => {
822
+ expect(error.errors).toBeUndefined();
823
+ });
824
+
825
+ it(`should not have error[${index}].error.error`, (): void => {
826
+ expect((error.error as DyFM_Error)?.error).toBeUndefined();
827
+ });
828
+
829
+ it(`should not have error[${index}].error.errors`, (): void => {
830
+ expect((error.error as DyFM_Error)?.errors).toBeUndefined();
831
+ });
832
+ });
833
+ });
834
+ });
835
+ });
836
+
837
+ describe('| on self defined error;', (): void => {
838
+ beforeEach((): void => {
839
+ flat = error_selfDefined.getErrorsFlat();
840
+ });
841
+
842
+ it('| should be defined', (): void => {
843
+ expect(flat).toBeDefined();
844
+ });
845
+
846
+ it('| should have error', (): void => {
847
+ expect(flat.error).toBeDefined();
848
+ });
849
+
850
+ describe('| errors...;', (): void => {
851
+ it('| should have errors', (): void => {
852
+ expect(flat?.errors).toBeDefined();
853
+ });
854
+
855
+ it('| should have 1 errors', (): void => {
856
+ expect(flat?.errors?.length).toBe(1);
857
+ });
858
+
859
+ flat?.errors?.forEach((error: DyFM_Error, index: number): void => {
860
+ describe(`on error[${index}];`, (): void => {
861
+ it('| should be', (): void => {
862
+ expect(error).toBeDefined();
863
+ });
864
+
865
+ it(`should have error[${index}].error`, (): void => {
866
+ expect(error.error).toBeDefined();
867
+ });
868
+
869
+ it(`should not have error[${index}].errors`, (): void => {
870
+ expect(error.errors).toBeUndefined();
871
+ });
872
+
873
+ it(`should not have error[${index}].error.error`, (): void => {
874
+ expect((error.error as DyFM_Error)?.error).toBeUndefined();
875
+ });
876
+
877
+ it(`should not have error[${index}].error.errors`, (): void => {
878
+ expect((error.error as DyFM_Error)?.errors).toBeUndefined();
879
+ });
880
+ });
881
+ });
882
+ });
883
+ });
884
+
885
+ describe('| stack', (): void => {
886
+ it('| error lvl3 should have the stack from the first', (): void => {
887
+ const error_lvl1 = new Error('error_lvl1');
888
+
889
+ const error_lvl2 = new DyFM_Error({
890
+ error: error_lvl1,
891
+ });
892
+
893
+ const error_lvl3 = new DyFM_Error({
894
+ error: error_lvl2,
895
+ });
896
+
897
+ expect(error_lvl3.stack).toBe(error_lvl1.stack);
898
+ });
899
+ });
900
+ });
901
+
902
+ describe('| logSimple;', (): void => {
903
+ it('| should not fail', (): void => {
904
+ const error = new DyFM_Error({
905
+ error: new Error('error'),
906
+ });
907
+
908
+ expect(error.logSimple('test')).toBeUndefined();
909
+ });
910
+ });
911
+
912
+ /**
913
+ * BFR-FDPTOKENSERVICE-013 — az `ErrorCode:` userMessage-utótag kontrollja: a végfelhasználó
914
+ * ne kapjon belső hibakódot, és wrapper-láncban ne a KÜLSŐ kód jelenjen meg.
915
+ */
916
+ describe('| addECToUserMsg — ErrorCode-utótag kontroll (BFR-FDPTOKENSERVICE-013);', (): void => {
917
+ afterEach((): void => {
918
+ delete DyFM_error_defaults.addECToUserMsg;
919
+ });
920
+
921
+ it('| addECToUserMsg:true → az utótag rákerül (visszafelé-kompatibilis default)', (): void => {
922
+ const error = new DyFM_Error({
923
+ errorCode: 'TEST-EC-1',
924
+ userMessage: 'Something went wrong.',
925
+ addECToUserMsg: true,
926
+ error: new Error('x'),
927
+ });
928
+
929
+ expect(error.__userMessage).toContain('ErrorCode: TEST-EC-1');
930
+ });
931
+
932
+ it('| flag nélkül NINCS utótag (az explicit false / kihagyás tiszteletben tartva)', (): void => {
933
+ const error = new DyFM_Error({
934
+ errorCode: 'TEST-EC-2',
935
+ userMessage: 'Something went wrong.',
936
+ error: new Error('x'),
937
+ });
938
+
939
+ expect(error.__userMessage).not.toContain('ErrorCode:');
940
+ });
941
+
942
+ it('| GLOBÁLIS kill-switch: DyFM_error_defaults.addECToUserMsg=false → per-error true mellett SINCS utótag', (): void => {
943
+ DyFM_error_defaults.addECToUserMsg = false;
944
+
945
+ const error = new DyFM_Error({
946
+ errorCode: 'TEST-EC-3',
947
+ userMessage: 'Something went wrong.',
948
+ addECToUserMsg: true,
949
+ error: new Error('x'),
950
+ });
951
+
952
+ expect(error.__userMessage).not.toContain('ErrorCode:');
953
+ });
954
+
955
+ it('| wrapper-lánc: már utótagos userMessage-re NEM fűzünk újra (a külső kód nem takarhatja a valódit)', (): void => {
956
+ const inner = new DyFM_Error({
957
+ errorCode: 'INNER-EC',
958
+ userMessage: 'Form error.',
959
+ addECToUserMsg: true,
960
+ error: new Error('inner'),
961
+ });
962
+
963
+ const outer = new DyFM_Error({
964
+ errorCode: 'OUTER-EC',
965
+ userMessage: inner.__userMessage,
966
+ addECToUserMsg: true,
967
+ error: inner,
968
+ });
969
+
970
+ expect(outer.__userMessage).toContain('ErrorCode: INNER-EC');
971
+ expect(outer.__userMessage).not.toContain('OUTER-EC');
972
+ });
973
+ });
974
+ });
975
+