@futdevpro/fsm-dynamo 1.15.20 → 1.15.22

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 (925) hide show
  1. package/.cursor/rules/__assistant_guide.mdc +30 -30
  2. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  3. package/.cursor/rules/_ag_backend.mdc +16 -16
  4. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  5. package/.cursor/rules/_ag_frontend.mdc +39 -39
  6. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  7. package/.cursor/rules/_ag_naming.mdc +115 -115
  8. package/.cursor/rules/_ag_should-be.mdc +6 -6
  9. package/.cursor/rules/ai_development_guide.md +60 -60
  10. package/.cursor/rules/cursor-rules.md +160 -160
  11. package/.cursor/rules/default-command.mdc +464 -464
  12. package/.cursor/rules/error_code_pattern.md +39 -39
  13. package/.cursor/rules/saved rule mcp server use.md +15 -15
  14. package/.dynamo/pipeline.cicd.config.json +128 -128
  15. package/.github/workflows/main.yml +433 -433
  16. package/.vscode/settings.json +11 -11
  17. package/LICENSE +21 -21
  18. package/__documentations/2026-06-01-fr047-fr048-code-review.md +153 -0
  19. package/__documentations/2026-06-01-fr047-p1-function-calling-vocabulary.md +75 -0
  20. package/__documentations/plans/00-MASTER-ngx-models-fsm-merge.md +70 -0
  21. package/__documentations/plans/01-naming-convention-DyNM-to-DyFM.md +103 -0
  22. package/__documentations/plans/02-consumer-rollout.md +84 -0
  23. package/build/_enums/error-level.enum.d.ts +14 -1
  24. package/build/_enums/error-level.enum.d.ts.map +1 -1
  25. package/build/_enums/error-level.enum.js +13 -0
  26. package/build/_enums/error-level.enum.js.map +1 -1
  27. package/build/_models/data-models/errors.data-model.d.ts +8 -0
  28. package/build/_models/data-models/errors.data-model.d.ts.map +1 -1
  29. package/build/_models/data-models/errors.data-model.js +9 -0
  30. package/build/_models/data-models/errors.data-model.js.map +1 -1
  31. package/build/_modules/ngx-models/_collections/angular-placeholders.d.ts +34 -0
  32. package/build/_modules/ngx-models/_collections/angular-placeholders.d.ts.map +1 -0
  33. package/build/_modules/ngx-models/_collections/angular-placeholders.js +3 -0
  34. package/build/_modules/ngx-models/_collections/angular-placeholders.js.map +1 -0
  35. package/build/_modules/ngx-models/_collections/button-new-style-settings-presets.const.d.ts +54 -0
  36. package/build/_modules/ngx-models/_collections/button-new-style-settings-presets.const.d.ts.map +1 -0
  37. package/build/_modules/ngx-models/_collections/button-new-style-settings-presets.const.js +174 -0
  38. package/build/_modules/ngx-models/_collections/button-new-style-settings-presets.const.js.map +1 -0
  39. package/build/_modules/ngx-models/_collections/dynamo-global.settings.d.ts +13 -0
  40. package/build/_modules/ngx-models/_collections/dynamo-global.settings.d.ts.map +1 -0
  41. package/build/_modules/ngx-models/_collections/dynamo-global.settings.js +92 -0
  42. package/build/_modules/ngx-models/_collections/dynamo-global.settings.js.map +1 -0
  43. package/build/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.d.ts +14 -0
  44. package/build/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.d.ts.map +1 -0
  45. package/build/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.js +18 -0
  46. package/build/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.js.map +1 -0
  47. package/build/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.d.ts +12 -0
  48. package/build/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.d.ts.map +1 -0
  49. package/build/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.js +16 -0
  50. package/build/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.js.map +1 -0
  51. package/build/_modules/ngx-models/_enums/button-new/button-new-size.enum.d.ts +15 -0
  52. package/build/_modules/ngx-models/_enums/button-new/button-new-size.enum.d.ts.map +1 -0
  53. package/build/_modules/ngx-models/_enums/button-new/button-new-size.enum.js +19 -0
  54. package/build/_modules/ngx-models/_enums/button-new/button-new-size.enum.js.map +1 -0
  55. package/build/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.d.ts +17 -0
  56. package/build/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.d.ts.map +1 -0
  57. package/build/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.js +21 -0
  58. package/build/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.js.map +1 -0
  59. package/build/_modules/ngx-models/_enums/button-type.enum.d.ts +34 -0
  60. package/build/_modules/ngx-models/_enums/button-type.enum.d.ts.map +1 -0
  61. package/build/_modules/ngx-models/_enums/button-type.enum.js +39 -0
  62. package/build/_modules/ngx-models/_enums/button-type.enum.js.map +1 -0
  63. package/build/_modules/ngx-models/_enums/checkbox-label-position.enum.d.ts +8 -0
  64. package/build/_modules/ngx-models/_enums/checkbox-label-position.enum.d.ts.map +1 -0
  65. package/build/_modules/ngx-models/_enums/checkbox-label-position.enum.js +12 -0
  66. package/build/_modules/ngx-models/_enums/checkbox-label-position.enum.js.map +1 -0
  67. package/build/_modules/ngx-models/_enums/container-type.enum.d.ts +11 -0
  68. package/build/_modules/ngx-models/_enums/container-type.enum.d.ts.map +1 -0
  69. package/build/_modules/ngx-models/_enums/container-type.enum.js +15 -0
  70. package/build/_modules/ngx-models/_enums/container-type.enum.js.map +1 -0
  71. package/build/_modules/ngx-models/_enums/errors/error-level.enum.d.ts +14 -0
  72. package/build/_modules/ngx-models/_enums/errors/error-level.enum.d.ts.map +1 -0
  73. package/build/_modules/ngx-models/_enums/errors/error-level.enum.js +18 -0
  74. package/build/_modules/ngx-models/_enums/errors/error-level.enum.js.map +1 -0
  75. package/build/_modules/ngx-models/_enums/errors/error-notification-color.enum.d.ts +14 -0
  76. package/build/_modules/ngx-models/_enums/errors/error-notification-color.enum.d.ts.map +1 -0
  77. package/build/_modules/ngx-models/_enums/errors/error-notification-color.enum.js +18 -0
  78. package/build/_modules/ngx-models/_enums/errors/error-notification-color.enum.js.map +1 -0
  79. package/build/_modules/ngx-models/_enums/errors/error-ui-mode.enum.d.ts +14 -0
  80. package/build/_modules/ngx-models/_enums/errors/error-ui-mode.enum.d.ts.map +1 -0
  81. package/build/_modules/ngx-models/_enums/errors/error-ui-mode.enum.js +18 -0
  82. package/build/_modules/ngx-models/_enums/errors/error-ui-mode.enum.js.map +1 -0
  83. package/build/_modules/ngx-models/_enums/field-appearance.enum.d.ts +8 -0
  84. package/build/_modules/ngx-models/_enums/field-appearance.enum.d.ts.map +1 -0
  85. package/build/_modules/ngx-models/_enums/field-appearance.enum.js +17 -0
  86. package/build/_modules/ngx-models/_enums/field-appearance.enum.js.map +1 -0
  87. package/build/_modules/ngx-models/_enums/field-type.enum.d.ts +33 -0
  88. package/build/_modules/ngx-models/_enums/field-type.enum.d.ts.map +1 -0
  89. package/build/_modules/ngx-models/_enums/field-type.enum.js +50 -0
  90. package/build/_modules/ngx-models/_enums/field-type.enum.js.map +1 -0
  91. package/build/_modules/ngx-models/_enums/file-type.enum.d.ts +12 -0
  92. package/build/_modules/ngx-models/_enums/file-type.enum.d.ts.map +1 -0
  93. package/build/_modules/ngx-models/_enums/file-type.enum.js +16 -0
  94. package/build/_modules/ngx-models/_enums/file-type.enum.js.map +1 -0
  95. package/build/_modules/ngx-models/_enums/flex/flex-layout-align.enum.d.ts +18 -0
  96. package/build/_modules/ngx-models/_enums/flex/flex-layout-align.enum.d.ts.map +1 -0
  97. package/build/_modules/ngx-models/_enums/flex/flex-layout-align.enum.js +25 -0
  98. package/build/_modules/ngx-models/_enums/flex/flex-layout-align.enum.js.map +1 -0
  99. package/build/_modules/ngx-models/_enums/flex/flex-layout.enum.d.ts +6 -0
  100. package/build/_modules/ngx-models/_enums/flex/flex-layout.enum.d.ts.map +1 -0
  101. package/build/_modules/ngx-models/_enums/flex/flex-layout.enum.js +10 -0
  102. package/build/_modules/ngx-models/_enums/flex/flex-layout.enum.js.map +1 -0
  103. package/build/_modules/ngx-models/_enums/form-access.enum.d.ts +9 -0
  104. package/build/_modules/ngx-models/_enums/form-access.enum.d.ts.map +1 -0
  105. package/build/_modules/ngx-models/_enums/form-access.enum.js +13 -0
  106. package/build/_modules/ngx-models/_enums/form-access.enum.js.map +1 -0
  107. package/build/_modules/ngx-models/_enums/form-reset-data.enum.d.ts +12 -0
  108. package/build/_modules/ngx-models/_enums/form-reset-data.enum.d.ts.map +1 -0
  109. package/build/_modules/ngx-models/_enums/form-reset-data.enum.js +16 -0
  110. package/build/_modules/ngx-models/_enums/form-reset-data.enum.js.map +1 -0
  111. package/build/_modules/ngx-models/_enums/form-store-on.enum.d.ts +8 -0
  112. package/build/_modules/ngx-models/_enums/form-store-on.enum.d.ts.map +1 -0
  113. package/build/_modules/ngx-models/_enums/form-store-on.enum.js +12 -0
  114. package/build/_modules/ngx-models/_enums/form-store-on.enum.js.map +1 -0
  115. package/build/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.d.ts +21 -0
  116. package/build/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.d.ts.map +1 -0
  117. package/build/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.js +25 -0
  118. package/build/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.js.map +1 -0
  119. package/build/_modules/ngx-models/_enums/frames/header-item-type.enum.d.ts +16 -0
  120. package/build/_modules/ngx-models/_enums/frames/header-item-type.enum.d.ts.map +1 -0
  121. package/build/_modules/ngx-models/_enums/frames/header-item-type.enum.js +20 -0
  122. package/build/_modules/ngx-models/_enums/frames/header-item-type.enum.js.map +1 -0
  123. package/build/_modules/ngx-models/_enums/frames/header-position.enum.d.ts +11 -0
  124. package/build/_modules/ngx-models/_enums/frames/header-position.enum.d.ts.map +1 -0
  125. package/build/_modules/ngx-models/_enums/frames/header-position.enum.js +15 -0
  126. package/build/_modules/ngx-models/_enums/frames/header-position.enum.js.map +1 -0
  127. package/build/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.d.ts +14 -0
  128. package/build/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.d.ts.map +1 -0
  129. package/build/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.js +18 -0
  130. package/build/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.js.map +1 -0
  131. package/build/_modules/ngx-models/_enums/html/input-types.enum.d.ts +26 -0
  132. package/build/_modules/ngx-models/_enums/html/input-types.enum.d.ts.map +1 -0
  133. package/build/_modules/ngx-models/_enums/html/input-types.enum.js +30 -0
  134. package/build/_modules/ngx-models/_enums/html/input-types.enum.js.map +1 -0
  135. package/build/_modules/ngx-models/_enums/material-color.enum.d.ts +14 -0
  136. package/build/_modules/ngx-models/_enums/material-color.enum.d.ts.map +1 -0
  137. package/build/_modules/ngx-models/_enums/material-color.enum.js +18 -0
  138. package/build/_modules/ngx-models/_enums/material-color.enum.js.map +1 -0
  139. package/build/_modules/ngx-models/_enums/material-tooltip-position.enum.d.ts +13 -0
  140. package/build/_modules/ngx-models/_enums/material-tooltip-position.enum.d.ts.map +1 -0
  141. package/build/_modules/ngx-models/_enums/material-tooltip-position.enum.js +17 -0
  142. package/build/_modules/ngx-models/_enums/material-tooltip-position.enum.js.map +1 -0
  143. package/build/_modules/ngx-models/_enums/preconfigured-field-type.enum.d.ts +8 -0
  144. package/build/_modules/ngx-models/_enums/preconfigured-field-type.enum.d.ts.map +1 -0
  145. package/build/_modules/ngx-models/_enums/preconfigured-field-type.enum.js +12 -0
  146. package/build/_modules/ngx-models/_enums/preconfigured-field-type.enum.js.map +1 -0
  147. package/build/_modules/ngx-models/_enums/storage-type.enum.d.ts +9 -0
  148. package/build/_modules/ngx-models/_enums/storage-type.enum.d.ts.map +1 -0
  149. package/build/_modules/ngx-models/_enums/storage-type.enum.js +17 -0
  150. package/build/_modules/ngx-models/_enums/storage-type.enum.js.map +1 -0
  151. package/build/_modules/ngx-models/_enums/validator-type.enum.d.ts +7 -0
  152. package/build/_modules/ngx-models/_enums/validator-type.enum.d.ts.map +1 -0
  153. package/build/_modules/ngx-models/_enums/validator-type.enum.js +11 -0
  154. package/build/_modules/ngx-models/_enums/validator-type.enum.js.map +1 -0
  155. package/build/_modules/ngx-models/_enums/voice/audio-mime-type.enum.d.ts +15 -0
  156. package/build/_modules/ngx-models/_enums/voice/audio-mime-type.enum.d.ts.map +1 -0
  157. package/build/_modules/ngx-models/_enums/voice/audio-mime-type.enum.js +19 -0
  158. package/build/_modules/ngx-models/_enums/voice/audio-mime-type.enum.js.map +1 -0
  159. package/build/_modules/ngx-models/_enums/voice/voice-provider-type.enum.d.ts +24 -0
  160. package/build/_modules/ngx-models/_enums/voice/voice-provider-type.enum.d.ts.map +1 -0
  161. package/build/_modules/ngx-models/_enums/voice/voice-provider-type.enum.js +31 -0
  162. package/build/_modules/ngx-models/_enums/voice/voice-provider-type.enum.js.map +1 -0
  163. package/build/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.d.ts +21 -0
  164. package/build/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.d.ts.map +1 -0
  165. package/build/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.js +25 -0
  166. package/build/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.js.map +1 -0
  167. package/build/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.d.ts +24 -0
  168. package/build/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.d.ts.map +1 -0
  169. package/build/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.js +35 -0
  170. package/build/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.js.map +1 -0
  171. package/build/_modules/ngx-models/_models/control-models/button-params.control-model.d.ts +47 -0
  172. package/build/_modules/ngx-models/_models/control-models/button-params.control-model.d.ts.map +1 -0
  173. package/build/_modules/ngx-models/_models/control-models/button-params.control-model.js +262 -0
  174. package/build/_modules/ngx-models/_models/control-models/button-params.control-model.js.map +1 -0
  175. package/build/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.d.ts +22 -0
  176. package/build/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.d.ts.map +1 -0
  177. package/build/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.js +28 -0
  178. package/build/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.js.map +1 -0
  179. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.d.ts +94 -0
  180. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.d.ts.map +1 -0
  181. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js +105 -0
  182. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js.map +1 -0
  183. package/build/_modules/ngx-models/_models/control-models/data-handler.control-model.d.ts +129 -0
  184. package/build/_modules/ngx-models/_models/control-models/data-handler.control-model.d.ts.map +1 -0
  185. package/build/_modules/ngx-models/_models/control-models/data-handler.control-model.js +350 -0
  186. package/build/_modules/ngx-models/_models/control-models/data-handler.control-model.js.map +1 -0
  187. package/build/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.d.ts +32 -0
  188. package/build/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.d.ts.map +1 -0
  189. package/build/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.js +45 -0
  190. package/build/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.js.map +1 -0
  191. package/build/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.d.ts +27 -0
  192. package/build/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.d.ts.map +1 -0
  193. package/build/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.js +33 -0
  194. package/build/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.js.map +1 -0
  195. package/build/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.d.ts +38 -0
  196. package/build/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.d.ts.map +1 -0
  197. package/build/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.js +43 -0
  198. package/build/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.js.map +1 -0
  199. package/build/_modules/ngx-models/_models/control-models/field-settings.control-model.d.ts +102 -0
  200. package/build/_modules/ngx-models/_models/control-models/field-settings.control-model.d.ts.map +1 -0
  201. package/build/_modules/ngx-models/_models/control-models/field-settings.control-model.js +110 -0
  202. package/build/_modules/ngx-models/_models/control-models/field-settings.control-model.js.map +1 -0
  203. package/build/_modules/ngx-models/_models/control-models/form-settings.control-model.d.ts +125 -0
  204. package/build/_modules/ngx-models/_models/control-models/form-settings.control-model.d.ts.map +1 -0
  205. package/build/_modules/ngx-models/_models/control-models/form-settings.control-model.js +134 -0
  206. package/build/_modules/ngx-models/_models/control-models/form-settings.control-model.js.map +1 -0
  207. package/build/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.d.ts +18 -0
  208. package/build/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.d.ts.map +1 -0
  209. package/build/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.js +26 -0
  210. package/build/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.js.map +1 -0
  211. package/build/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.d.ts +20 -0
  212. package/build/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.d.ts.map +1 -0
  213. package/build/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.js +28 -0
  214. package/build/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.js.map +1 -0
  215. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.d.ts +61 -0
  216. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.d.ts.map +1 -0
  217. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.js +57 -0
  218. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.js.map +1 -0
  219. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.d.ts +17 -0
  220. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.d.ts.map +1 -0
  221. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.js +3 -0
  222. package/build/_modules/ngx-models/_models/control-models/forms-new/field-new-types.js.map +1 -0
  223. package/build/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.d.ts +29 -0
  224. package/build/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.d.ts.map +1 -0
  225. package/build/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.js +37 -0
  226. package/build/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.js.map +1 -0
  227. package/build/_modules/ngx-models/_models/control-models/forms-new/index.d.ts +11 -0
  228. package/build/_modules/ngx-models/_models/control-models/forms-new/index.d.ts.map +1 -0
  229. package/build/_modules/ngx-models/_models/control-models/forms-new/index.js +16 -0
  230. package/build/_modules/ngx-models/_models/control-models/forms-new/index.js.map +1 -0
  231. package/build/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.d.ts +18 -0
  232. package/build/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.d.ts.map +1 -0
  233. package/build/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.js +28 -0
  234. package/build/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.js.map +1 -0
  235. package/build/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.d.ts +18 -0
  236. package/build/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.d.ts.map +1 -0
  237. package/build/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.js +26 -0
  238. package/build/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.js.map +1 -0
  239. package/build/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.d.ts +35 -0
  240. package/build/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.d.ts.map +1 -0
  241. package/build/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.js +32 -0
  242. package/build/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.js.map +1 -0
  243. package/build/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.d.ts +22 -0
  244. package/build/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.d.ts.map +1 -0
  245. package/build/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.js +32 -0
  246. package/build/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.js.map +1 -0
  247. package/build/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.d.ts +16 -0
  248. package/build/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.d.ts.map +1 -0
  249. package/build/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.js +24 -0
  250. package/build/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.js.map +1 -0
  251. package/build/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.d.ts +36 -0
  252. package/build/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.d.ts.map +1 -0
  253. package/build/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.js +46 -0
  254. package/build/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.js.map +1 -0
  255. package/build/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.d.ts +28 -0
  256. package/build/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.d.ts.map +1 -0
  257. package/build/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.js +36 -0
  258. package/build/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.js.map +1 -0
  259. package/build/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.d.ts +38 -0
  260. package/build/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.d.ts.map +1 -0
  261. package/build/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.js +49 -0
  262. package/build/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.js.map +1 -0
  263. package/build/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.d.ts +21 -0
  264. package/build/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.d.ts.map +1 -0
  265. package/build/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.js +29 -0
  266. package/build/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.js.map +1 -0
  267. package/build/_modules/ngx-models/_models/control-models/select.control-model.d.ts +17 -0
  268. package/build/_modules/ngx-models/_models/control-models/select.control-model.d.ts.map +1 -0
  269. package/build/_modules/ngx-models/_models/control-models/select.control-model.js +29 -0
  270. package/build/_modules/ngx-models/_models/control-models/select.control-model.js.map +1 -0
  271. package/build/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.d.ts +58 -0
  272. package/build/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.d.ts.map +1 -0
  273. package/build/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.js +24 -0
  274. package/build/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.js.map +1 -0
  275. package/build/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.d.ts +32 -0
  276. package/build/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.d.ts.map +1 -0
  277. package/build/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.js +38 -0
  278. package/build/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.js.map +1 -0
  279. package/build/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.d.ts +28 -0
  280. package/build/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.d.ts.map +1 -0
  281. package/build/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.js +33 -0
  282. package/build/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.js.map +1 -0
  283. package/build/_modules/ngx-models/_models/interfaces/button-new-settings.interface.d.ts +62 -0
  284. package/build/_modules/ngx-models/_models/interfaces/button-new-settings.interface.d.ts.map +1 -0
  285. package/build/_modules/ngx-models/_models/interfaces/button-new-settings.interface.js +3 -0
  286. package/build/_modules/ngx-models/_models/interfaces/button-new-settings.interface.js.map +1 -0
  287. package/build/_modules/ngx-models/_models/interfaces/confirm-settings.interface.d.ts +17 -0
  288. package/build/_modules/ngx-models/_models/interfaces/confirm-settings.interface.d.ts.map +1 -0
  289. package/build/_modules/ngx-models/_models/interfaces/confirm-settings.interface.js +3 -0
  290. package/build/_modules/ngx-models/_models/interfaces/confirm-settings.interface.js.map +1 -0
  291. package/build/_modules/ngx-models/_models/interfaces/global-settings.interface.d.ts +54 -0
  292. package/build/_modules/ngx-models/_models/interfaces/global-settings.interface.d.ts.map +1 -0
  293. package/build/_modules/ngx-models/_models/interfaces/global-settings.interface.js +3 -0
  294. package/build/_modules/ngx-models/_models/interfaces/global-settings.interface.js.map +1 -0
  295. package/build/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.d.ts +38 -0
  296. package/build/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.d.ts.map +1 -0
  297. package/build/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.js +3 -0
  298. package/build/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.js.map +1 -0
  299. package/build/_modules/ngx-models/_models/interfaces/storage.service.d.ts +5 -0
  300. package/build/_modules/ngx-models/_models/interfaces/storage.service.d.ts.map +1 -0
  301. package/build/_modules/ngx-models/_models/interfaces/storage.service.js +45 -0
  302. package/build/_modules/ngx-models/_models/interfaces/storage.service.js.map +1 -0
  303. package/build/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.d.ts +20 -0
  304. package/build/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.d.ts.map +1 -0
  305. package/build/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.js +3 -0
  306. package/build/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.js.map +1 -0
  307. package/build/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.d.ts +15 -0
  308. package/build/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.d.ts.map +1 -0
  309. package/build/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.js +3 -0
  310. package/build/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.js.map +1 -0
  311. package/build/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.d.ts +15 -0
  312. package/build/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.d.ts.map +1 -0
  313. package/build/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.js +3 -0
  314. package/build/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.js.map +1 -0
  315. package/build/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.d.ts +16 -0
  316. package/build/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.d.ts.map +1 -0
  317. package/build/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.js +3 -0
  318. package/build/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.js.map +1 -0
  319. package/build/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.d.ts +19 -0
  320. package/build/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.d.ts.map +1 -0
  321. package/build/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.js +3 -0
  322. package/build/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.js.map +1 -0
  323. package/build/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.d.ts +22 -0
  324. package/build/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.d.ts.map +1 -0
  325. package/build/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.js +3 -0
  326. package/build/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.js.map +1 -0
  327. package/build/_modules/ngx-models/_utils/shared.service.d.ts +132 -0
  328. package/build/_modules/ngx-models/_utils/shared.service.d.ts.map +1 -0
  329. package/build/_modules/ngx-models/_utils/shared.service.js +415 -0
  330. package/build/_modules/ngx-models/_utils/shared.service.js.map +1 -0
  331. package/build/_modules/ngx-models/index.d.ts +65 -0
  332. package/build/_modules/ngx-models/index.d.ts.map +1 -0
  333. package/build/_modules/ngx-models/index.js +90 -0
  334. package/build/_modules/ngx-models/index.js.map +1 -0
  335. package/build/_modules/socket/_models/sck-socket-event.control-model.js +1 -1
  336. package/eslint.config.js +4 -4
  337. package/nodemon.json +22 -22
  338. package/package.json +10 -1
  339. package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
  340. package/scripts/crypto/README.md +113 -113
  341. package/scripts/crypto/demo-crypto-stability.js +120 -120
  342. package/scripts/crypto/stress-test-crypto.js +379 -379
  343. package/scripts/run-coverage-tests.js +24 -24
  344. package/spec/support/helpers/ts-node-helper.js +9 -9
  345. package/spec/support/jasmine.coverage.json +23 -23
  346. package/spec/support/jasmine.json +24 -24
  347. package/src/_collections/constants/data-sizes.const.ts +40 -40
  348. package/src/_collections/constants/error-defaults.const.ts +20 -20
  349. package/src/_collections/constants/global-settings.const.ts +24 -24
  350. package/src/_collections/constants/numbers.const.ts +40 -40
  351. package/src/_collections/constants/times.const.ts +45 -45
  352. package/src/_collections/utils/array.util.spec.ts +306 -306
  353. package/src/_collections/utils/array.util.ts +813 -813
  354. package/src/_collections/utils/async.util.spec.ts +354 -354
  355. package/src/_collections/utils/async.util.ts +197 -197
  356. package/src/_collections/utils/data.util.spec.ts +345 -345
  357. package/src/_collections/utils/data.util.ts +226 -226
  358. package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
  359. package/src/_collections/utils/json-error-helper.util.ts +301 -301
  360. package/src/_collections/utils/log.util.spec.ts +975 -975
  361. package/src/_collections/utils/log.util.ts +665 -665
  362. package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
  363. package/src/_collections/utils/math/box-bounds.util.ts +183 -183
  364. package/src/_collections/utils/math/math.util.spec.ts +94 -94
  365. package/src/_collections/utils/math/math.util.ts +141 -141
  366. package/src/_collections/utils/math/random.util.spec.ts +82 -82
  367. package/src/_collections/utils/math/random.util.ts +139 -139
  368. package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
  369. package/src/_collections/utils/math/trigonometry.util.ts +102 -102
  370. package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
  371. package/src/_collections/utils/math/vector2.util.ts +653 -653
  372. package/src/_collections/utils/object.util.spec.ts +646 -646
  373. package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
  374. package/src/_collections/utils/regex/password-regex.util.ts +65 -65
  375. package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
  376. package/src/_collections/utils/regex/regex.util.ts +6 -6
  377. package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
  378. package/src/_collections/utils/regex/username-regex.util.ts +35 -35
  379. package/src/_collections/utils/round-list.util.spec.ts +79 -79
  380. package/src/_collections/utils/round-list.util.ts +162 -162
  381. package/src/_collections/utils/stack.util.spec.ts +372 -372
  382. package/src/_collections/utils/stack.util.ts +164 -164
  383. package/src/_collections/utils/string-case.util.spec.ts +441 -441
  384. package/src/_collections/utils/string-case.util.ts +362 -362
  385. package/src/_collections/utils/string.util.spec.ts +975 -975
  386. package/src/_collections/utils/string.util.ts +449 -449
  387. package/src/_collections/utils/time.util.spec.ts +50 -50
  388. package/src/_collections/utils/time.util.ts +481 -481
  389. package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
  390. package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
  391. package/src/_collections/utils/utilities.util.spec.ts +201 -201
  392. package/src/_collections/utils/utilities.util.ts +68 -68
  393. package/src/_collections/utils/uuid.util.spec.ts +30 -30
  394. package/src/_collections/utils/uuid.util.ts +50 -50
  395. package/src/_enums/basic-property-type.enum.ts +20 -20
  396. package/src/_enums/data-model-type.enum.ts +29 -29
  397. package/src/_enums/environment-flag.enum.ts +28 -28
  398. package/src/_enums/error-level.enum.ts +43 -28
  399. package/src/_enums/http/http-call-type.enum.ts +43 -43
  400. package/src/_enums/http/http-event-type.enum.ts +40 -40
  401. package/src/_enums/http/http-response-type.enum.ts +18 -18
  402. package/src/_enums/log-style.enum.ts +44 -44
  403. package/src/_enums/server-connection-status.enum.ts +6 -6
  404. package/src/_enums/time/day-of-week.enum.ts +55 -55
  405. package/src/_enums/time/month.enum.ts +25 -25
  406. package/src/_enums/time/relative-date.enum.ts +24 -24
  407. package/src/_models/control-models/data-model-params.control-model.spec.ts +85 -85
  408. package/src/_models/control-models/data-model-params.control-model.ts +300 -300
  409. package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
  410. package/src/_models/control-models/data-property-params.control-model.ts +201 -201
  411. package/src/_models/control-models/error.control-model.spec.ts +912 -912
  412. package/src/_models/control-models/error.control-model.ts +1215 -1215
  413. package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
  414. package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
  415. package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
  416. package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
  417. package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
  418. package/src/_models/control-models/http/http-response.model-base.ts +57 -57
  419. package/src/_models/control-models/poll.control-model.spec.ts +63 -63
  420. package/src/_models/control-models/poll.control-model.ts +151 -151
  421. package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
  422. package/src/_models/control-models/range-value.control-model.ts +289 -289
  423. package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
  424. package/src/_models/control-models/server-status.control-model.ts +85 -85
  425. package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
  426. package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
  427. package/src/_models/data-models/errors.data-model.spec.ts +71 -71
  428. package/src/_models/data-models/errors.data-model.ts +158 -148
  429. package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
  430. package/src/_models/data-models/metadata.data-model.ts +128 -128
  431. package/src/_models/interfaces/box-bounds.interface.ts +7 -7
  432. package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
  433. package/src/_models/interfaces/environment/global-settings.interface.ts +47 -47
  434. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  435. package/src/_models/interfaces/paged.interface.ts +12 -12
  436. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  437. package/src/_models/interfaces/route-settings.interface.ts +15 -15
  438. package/src/_models/interfaces/search-query.interface.ts +23 -23
  439. package/src/_models/interfaces/search-result.interface.ts +5 -5
  440. package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
  441. package/src/_models/interfaces/vector2.interface.ts +20 -20
  442. package/src/_models/types/db-filter.type.ts +110 -110
  443. package/src/_models/types/db-sort.type.ts +4 -4
  444. package/src/_models/types/ds-filter.type.ts +68 -68
  445. package/src/_models/types/ds-sort.type.ts +21 -21
  446. package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
  447. package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
  448. package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
  449. package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
  450. package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
  451. package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
  452. package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
  453. package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
  454. package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
  455. package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
  456. package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
  457. package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
  458. package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
  459. package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
  460. package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
  461. package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
  462. package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
  463. package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
  464. package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
  465. package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
  466. package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
  467. package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
  468. package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +81 -81
  469. package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
  470. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
  471. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
  472. package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
  473. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
  474. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
  475. package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
  476. package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
  477. package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
  478. package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
  479. package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
  480. package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +34 -34
  481. package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
  482. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
  483. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
  484. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
  485. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
  486. package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
  487. package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +99 -99
  488. package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
  489. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
  490. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
  491. package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
  492. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
  493. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
  494. package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
  495. package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
  496. package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +53 -53
  497. package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
  498. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
  499. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
  500. package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
  501. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
  502. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
  503. package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
  504. package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
  505. package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +252 -252
  506. package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
  507. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
  508. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
  509. package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
  510. package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
  511. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
  512. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
  513. package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
  514. package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
  515. package/src/_modules/ai/index.ts +27 -27
  516. package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
  517. package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
  518. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
  519. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
  520. package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
  521. package/src/_modules/ci-tools/index.ts +8 -8
  522. package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
  523. package/src/_modules/crypto/index.ts +13 -13
  524. package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
  525. package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
  526. package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
  527. package/src/_modules/custom-data/index.ts +10 -10
  528. package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
  529. package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
  530. package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +445 -445
  531. package/src/_modules/data-handler/_models/data-handler.control-model.ts +459 -459
  532. package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
  533. package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
  534. package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
  535. package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
  536. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
  537. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
  538. package/src/_modules/data-handler/index.ts +6 -6
  539. package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
  540. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
  541. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
  542. package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
  543. package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
  544. package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
  545. package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
  546. package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
  547. package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
  548. package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
  549. package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
  550. package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
  551. package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
  552. package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
  553. package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
  554. package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
  555. package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
  556. package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
  557. package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
  558. package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
  559. package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
  560. package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
  561. package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
  562. package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
  563. package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
  564. package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
  565. package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
  566. package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
  567. package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
  568. package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
  569. package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
  570. package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
  571. package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
  572. package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
  573. package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
  574. package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
  575. package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
  576. package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
  577. package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
  578. package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
  579. package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
  580. package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
  581. package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
  582. package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
  583. package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
  584. package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
  585. package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
  586. package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
  587. package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
  588. package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
  589. package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
  590. package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
  591. package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
  592. package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
  593. package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
  594. package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
  595. package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
  596. package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
  597. package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
  598. package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
  599. package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
  600. package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
  601. package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
  602. package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
  603. package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
  604. package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
  605. package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
  606. package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
  607. package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
  608. package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
  609. package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
  610. package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
  611. package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
  612. package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
  613. package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
  614. package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
  615. package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
  616. package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
  617. package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
  618. package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
  619. package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
  620. package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
  621. package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
  622. package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
  623. package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
  624. package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
  625. package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
  626. package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
  627. package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
  628. package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
  629. package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
  630. package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
  631. package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
  632. package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
  633. package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
  634. package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
  635. package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
  636. package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
  637. package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
  638. package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
  639. package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
  640. package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
  641. package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
  642. package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
  643. package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
  644. package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
  645. package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
  646. package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
  647. package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
  648. package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
  649. package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
  650. package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
  651. package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
  652. package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
  653. package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
  654. package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
  655. package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
  656. package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
  657. package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
  658. package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
  659. package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
  660. package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
  661. package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
  662. package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
  663. package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
  664. package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
  665. package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
  666. package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
  667. package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
  668. package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
  669. package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
  670. package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
  671. package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
  672. package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
  673. package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
  674. package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
  675. package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
  676. package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
  677. package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
  678. package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
  679. package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
  680. package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
  681. package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
  682. package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
  683. package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
  684. package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
  685. package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
  686. package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
  687. package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
  688. package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
  689. package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
  690. package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
  691. package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
  692. package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
  693. package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
  694. package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
  695. package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
  696. package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
  697. package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
  698. package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
  699. package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
  700. package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
  701. package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
  702. package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
  703. package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
  704. package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
  705. package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
  706. package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
  707. package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
  708. package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
  709. package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
  710. package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
  711. package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
  712. package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
  713. package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
  714. package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
  715. package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
  716. package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
  717. package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
  718. package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
  719. package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
  720. package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
  721. package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
  722. package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
  723. package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
  724. package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
  725. package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
  726. package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
  727. package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
  728. package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
  729. package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
  730. package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
  731. package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
  732. package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
  733. package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
  734. package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
  735. package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
  736. package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
  737. package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
  738. package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
  739. package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
  740. package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
  741. package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
  742. package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
  743. package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
  744. package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
  745. package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
  746. package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
  747. package/src/_modules/location/_collections/loc.util.ts +74 -74
  748. package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
  749. package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
  750. package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
  751. package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
  752. package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
  753. package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
  754. package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
  755. package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
  756. package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
  757. package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
  758. package/src/_modules/location/index.ts +22 -22
  759. package/src/_modules/messaging/README.md +279 -279
  760. package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
  761. package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
  762. package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
  763. package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
  764. package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
  765. package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
  766. package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
  767. package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
  768. package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
  769. package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
  770. package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
  771. package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
  772. package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
  773. package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
  774. package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
  775. package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
  776. package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
  777. package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
  778. package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
  779. package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
  780. package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
  781. package/src/_modules/messaging/_modules/agent/index.ts +8 -8
  782. package/src/_modules/messaging/index.ts +28 -28
  783. package/src/_modules/ngx-models/_collections/angular-placeholders.ts +35 -0
  784. package/src/_modules/ngx-models/_collections/button-new-style-settings-presets.const.ts +181 -0
  785. package/src/_modules/ngx-models/_collections/dynamo-global.settings.spec.ts +74 -0
  786. package/src/_modules/ngx-models/_collections/dynamo-global.settings.ts +103 -0
  787. package/src/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.ts +16 -0
  788. package/src/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.ts +14 -0
  789. package/src/_modules/ngx-models/_enums/button-new/button-new-size.enum.ts +16 -0
  790. package/src/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.ts +18 -0
  791. package/src/_modules/ngx-models/_enums/button-type.enum.ts +36 -0
  792. package/src/_modules/ngx-models/_enums/checkbox-label-position.enum.ts +8 -0
  793. package/src/_modules/ngx-models/_enums/container-type.enum.ts +11 -0
  794. package/src/_modules/ngx-models/_enums/errors/error-level.enum.ts +13 -0
  795. package/src/_modules/ngx-models/_enums/errors/error-notification-color.enum.ts +13 -0
  796. package/src/_modules/ngx-models/_enums/errors/error-ui-mode.enum.ts +13 -0
  797. package/src/_modules/ngx-models/_enums/field-appearance.enum.ts +14 -0
  798. package/src/_modules/ngx-models/_enums/field-type.enum.ts +52 -0
  799. package/src/_modules/ngx-models/_enums/file-type.enum.ts +12 -0
  800. package/src/_modules/ngx-models/_enums/flex/flex-layout-align.enum.ts +21 -0
  801. package/src/_modules/ngx-models/_enums/flex/flex-layout.enum.ts +5 -0
  802. package/src/_modules/ngx-models/_enums/form-access.enum.ts +9 -0
  803. package/src/_modules/ngx-models/_enums/form-reset-data.enum.ts +12 -0
  804. package/src/_modules/ngx-models/_enums/form-store-on.enum.ts +9 -0
  805. package/src/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.ts +20 -0
  806. package/src/_modules/ngx-models/_enums/frames/header-item-type.enum.ts +15 -0
  807. package/src/_modules/ngx-models/_enums/frames/header-position.enum.ts +10 -0
  808. package/src/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.ts +13 -0
  809. package/src/_modules/ngx-models/_enums/html/input-types.enum.ts +27 -0
  810. package/src/_modules/ngx-models/_enums/material-color.enum.ts +16 -0
  811. package/src/_modules/ngx-models/_enums/material-tooltip-position.enum.ts +17 -0
  812. package/src/_modules/ngx-models/_enums/preconfigured-field-type.enum.ts +8 -0
  813. package/src/_modules/ngx-models/_enums/storage-type.enum.ts +15 -0
  814. package/src/_modules/ngx-models/_enums/validator-type.enum.ts +9 -0
  815. package/src/_modules/ngx-models/_enums/voice/audio-mime-type.enum.ts +14 -0
  816. package/src/_modules/ngx-models/_enums/voice/voice-provider-type.enum.ts +26 -0
  817. package/src/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.ts +20 -0
  818. package/src/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.ts +37 -0
  819. package/src/_modules/ngx-models/_models/control-models/button-params.control-model.spec.ts +70 -0
  820. package/src/_modules/ngx-models/_models/control-models/button-params.control-model.ts +332 -0
  821. package/src/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.ts +28 -0
  822. package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.spec.ts +91 -0
  823. package/src/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.ts +135 -0
  824. package/src/_modules/ngx-models/_models/control-models/data-handler.control-model.ts +498 -0
  825. package/src/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.ts +52 -0
  826. package/src/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.ts +34 -0
  827. package/src/_modules/ngx-models/_models/control-models/errors/errors-pojo.spec.ts +86 -0
  828. package/src/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.ts +52 -0
  829. package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.spec.ts +109 -0
  830. package/src/_modules/ngx-models/_models/control-models/field-settings.control-model.ts +133 -0
  831. package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.spec.ts +109 -0
  832. package/src/_modules/ngx-models/_models/control-models/form-settings.control-model.ts +160 -0
  833. package/src/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.ts +25 -0
  834. package/src/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.ts +26 -0
  835. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.ts +85 -0
  836. package/src/_modules/ngx-models/_models/control-models/forms-new/field-new-types.ts +24 -0
  837. package/src/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.ts +40 -0
  838. package/src/_modules/ngx-models/_models/control-models/forms-new/forms-new.spec.ts +179 -0
  839. package/src/_modules/ngx-models/_models/control-models/forms-new/index.ts +13 -0
  840. package/src/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.ts +27 -0
  841. package/src/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.ts +24 -0
  842. package/src/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.ts +46 -0
  843. package/src/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.ts +30 -0
  844. package/src/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.ts +22 -0
  845. package/src/_modules/ngx-models/_models/control-models/frames/frames-pojo.spec.ts +108 -0
  846. package/src/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.ts +52 -0
  847. package/src/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.ts +40 -0
  848. package/src/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.ts +55 -0
  849. package/src/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.ts +30 -0
  850. package/src/_modules/ngx-models/_models/control-models/select.control-model.spec.ts +45 -0
  851. package/src/_modules/ngx-models/_models/control-models/select.control-model.ts +28 -0
  852. package/src/_modules/ngx-models/_models/control-models/voice/voice-pojo.spec.ts +111 -0
  853. package/src/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.ts +74 -0
  854. package/src/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.ts +42 -0
  855. package/src/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.ts +37 -0
  856. package/src/_modules/ngx-models/_models/interfaces/button-new-settings.interface.ts +74 -0
  857. package/src/_modules/ngx-models/_models/interfaces/confirm-settings.interface.ts +20 -0
  858. package/src/_modules/ngx-models/_models/interfaces/global-settings.interface.ts +67 -0
  859. package/src/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.ts +40 -0
  860. package/src/_modules/ngx-models/_models/interfaces/storage.service.spec.ts +18 -0
  861. package/src/_modules/ngx-models/_models/interfaces/storage.service.ts +41 -0
  862. package/src/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.ts +19 -0
  863. package/src/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.ts +14 -0
  864. package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.ts +14 -0
  865. package/src/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.ts +15 -0
  866. package/src/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.ts +18 -0
  867. package/src/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.ts +21 -0
  868. package/src/_modules/ngx-models/_utils/shared.service.spec.ts +7 -0
  869. package/src/_modules/ngx-models/_utils/shared.service.ts +541 -0
  870. package/src/_modules/ngx-models/index.ts +110 -0
  871. package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
  872. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
  873. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
  874. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
  875. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
  876. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
  877. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
  878. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
  879. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
  880. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
  881. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
  882. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
  883. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
  884. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
  885. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
  886. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
  887. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
  888. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
  889. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
  890. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
  891. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
  892. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
  893. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
  894. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
  895. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
  896. package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
  897. package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
  898. package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
  899. package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
  900. package/src/_modules/pipe/index.ts +30 -30
  901. package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
  902. package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
  903. package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
  904. package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +66 -66
  905. package/src/_modules/socket/_models/sck-socket-event.control-model.ts +172 -172
  906. package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
  907. package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
  908. package/src/_modules/socket/index.ts +14 -14
  909. package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
  910. package/src/_modules/test/index.ts +5 -5
  911. package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
  912. package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
  913. package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
  914. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
  915. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
  916. package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
  917. package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
  918. package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
  919. package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
  920. package/src/_modules/usage/index.ts +11 -11
  921. package/src/index.ts +102 -102
  922. package/tsconfig.app.json +12 -12
  923. package/tsconfig.json +31 -31
  924. package/tsconfig.test.json +16 -16
  925. package/tslint.json +153 -153
@@ -1,521 +1,521 @@
1
- import { DyFM_JsonErrorHelper, JsonErrorLineInfo } from './json-error-helper.util';
2
-
3
- describe('| DyFM_JsonErrorHelper', (): void => {
4
-
5
- describe('| extractLineInfoFromJsonError', (): void => {
6
- it('| should extract line info from error with position', (): void => {
7
- const errorMessage = 'Expected property name or "}" in JSON at position 10';
8
- const jsonInput = '{"name": "John", "age": 30}';
9
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
10
-
11
- expect(result).not.toBeNull();
12
- expect(result?.lineNumber).toBe(1);
13
- expect(result?.characterPosition).toBe(10);
14
- expect(result?.contextLines).toContain(jsonInput);
15
- });
16
-
17
- it('| should handle multi-line JSON with position', (): void => {
18
- const errorMessage = 'Unexpected token } in JSON at position 25';
19
- const jsonInput = '{\n "name": "John",\n "age": 30\n}';
20
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
21
-
22
- expect(result).not.toBeNull();
23
- expect(result?.lineNumber).toBeGreaterThan(0);
24
- expect(result?.contextLines.length).toBeGreaterThan(0);
25
- });
26
-
27
- it('| should return null for error without position', (): void => {
28
- const errorMessage = 'Invalid JSON format';
29
- const jsonInput = '{"name": "John"}';
30
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
31
-
32
- expect(result).toBeNull();
33
- });
34
-
35
- it('| should handle "Unexpected end of JSON input" error', (): void => {
36
- const errorMessage = 'Unexpected end of JSON input at position 14';
37
- const jsonInput = '{"name": "John"';
38
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
39
-
40
- expect(result).not.toBeNull();
41
- expect(result?.lineNumber).toBeGreaterThan(0);
42
- });
43
-
44
- it('| should use custom contextLines parameter', (): void => {
45
- const errorMessage = 'Expected property name or "}" in JSON at position 10';
46
- const jsonInput = '{\n "name": "John",\n "age": 30\n}';
47
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput, 2);
48
-
49
- expect(result).not.toBeNull();
50
- if (result) {
51
- expect(result.contextLines.length).toBeLessThanOrEqual(5);
52
- }
53
- });
54
-
55
- it('| should handle position beyond string length', (): void => {
56
- const errorMessage = 'Unexpected token in JSON at position 1000';
57
- const jsonInput = '{"name": "John"}';
58
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
59
-
60
- expect(result).toBeNull();
61
- });
62
-
63
- it('| should handle invalid position values', (): void => {
64
- const errorMessage = 'Unexpected token in JSON at position -1';
65
- const jsonInput = '{"name": "John"}';
66
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
67
-
68
- expect(result).toBeNull();
69
- });
70
- });
71
-
72
- describe('| formatJsonErrorForLogging', (): void => {
73
- it('| should format error with line info', (): void => {
74
- const lineInfo: JsonErrorLineInfo = {
75
- lineNumber: 2,
76
- contextLines: ['{"name": "John",', '"age": 30}'],
77
- characterPosition: 5
78
- };
79
- const errorMessage = 'Expected property name or "}" in JSON at position 10';
80
- const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
81
-
82
- expect(result.length).toBeGreaterThan(0);
83
- expect(result[0]).toContain('JSON parsing failed');
84
- expect(result.some(line => line.includes('Error at line'))).toBe(true);
85
- });
86
-
87
- it('| should include context lines in formatted output', (): void => {
88
- const lineInfo: JsonErrorLineInfo = {
89
- lineNumber: 1,
90
- contextLines: ['{"name": "John"}'],
91
- characterPosition: 5
92
- };
93
- const errorMessage = 'Test error';
94
- const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
95
-
96
- expect(result.some(line => line.includes('Context'))).toBe(true);
97
- expect(result.some(line => line.includes('1:'))).toBe(true);
98
- });
99
-
100
- it('| should mark error line with >>>', (): void => {
101
- const lineInfo: JsonErrorLineInfo = {
102
- lineNumber: 2,
103
- contextLines: ['line1', 'line2', 'line3'],
104
- characterPosition: 5
105
- };
106
- const errorMessage = 'Test error';
107
- const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
108
-
109
- expect(result.some(line => line.includes('>>>'))).toBe(true);
110
- });
111
-
112
- it('| should handle empty context lines', (): void => {
113
- const lineInfo: JsonErrorLineInfo = {
114
- lineNumber: 1,
115
- contextLines: [],
116
- characterPosition: 0
117
- };
118
- const errorMessage = 'Test error';
119
- const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
120
-
121
- expect(result.length).toBeGreaterThan(0);
122
- expect(result[0]).toContain('JSON parsing failed');
123
- });
124
- });
125
-
126
- describe('| parseJsonWithEnhancedError', (): void => {
127
- it('| should parse valid JSON successfully', (): void => {
128
- const jsonString = '{"name": "John", "age": 30}';
129
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
130
-
131
- expect(result).toEqual({ name: 'John', age: 30 });
132
- });
133
-
134
- it('| should throw enhanced error for invalid JSON', (): void => {
135
- const jsonString = '{"name": "John", "age": }';
136
-
137
- try {
138
- DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
139
- fail('Expected error to be thrown');
140
- } catch (error) {
141
- expect(error).toBeInstanceOf(Error);
142
- const errorMessage = (error as Error).message;
143
- expect(errorMessage).toContain('JSON parsing failed');
144
- }
145
- });
146
-
147
- it('| should throw error for null input', (): void => {
148
- try {
149
- DyFM_JsonErrorHelper.parseJsonWithEnhancedError(null as any);
150
- fail('Expected error to be thrown');
151
- } catch (error) {
152
- expect(error).toBeInstanceOf(Error);
153
- expect((error as Error).message).toContain('Invalid JSON input');
154
- }
155
- });
156
-
157
- it('| should throw error for undefined input', (): void => {
158
- try {
159
- DyFM_JsonErrorHelper.parseJsonWithEnhancedError(undefined as any);
160
- fail('Expected error to be thrown');
161
- } catch (error) {
162
- expect(error).toBeInstanceOf(Error);
163
- expect((error as Error).message).toContain('Invalid JSON input');
164
- }
165
- });
166
-
167
- it('| should throw error for non-string input', (): void => {
168
- try {
169
- DyFM_JsonErrorHelper.parseJsonWithEnhancedError(123 as any);
170
- fail('Expected error to be thrown');
171
- } catch (error) {
172
- expect(error).toBeInstanceOf(Error);
173
- expect((error as Error).message).toContain('Invalid JSON input');
174
- }
175
- });
176
-
177
- it('| should use custom contextLines parameter', (): void => {
178
- const jsonString = '{"name": "John", "age": }';
179
-
180
- try {
181
- DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString, undefined, 1);
182
- fail('Expected error to be thrown');
183
- } catch (error) {
184
- expect(error).toBeInstanceOf(Error);
185
- const errorMessage = (error as Error).message;
186
- expect(errorMessage).toContain('JSON parsing failed');
187
- }
188
- });
189
-
190
- it('| should handle reviver function', (): void => {
191
- const jsonString = '{"name": "John", "age": 30}';
192
- const reviver = (key: string, value: any): any => {
193
- if (key === 'age') {
194
- return value * 2;
195
- }
196
- return value;
197
- };
198
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString, reviver);
199
-
200
- expect(result).toEqual({ name: 'John', age: 60 });
201
- });
202
-
203
- it('| should provide enhanced error for multi-line JSON', (): void => {
204
- const jsonString = '{\n "name": "John",\n "age": \n}';
205
-
206
- try {
207
- DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
208
- fail('Expected error to be thrown');
209
- } catch (error) {
210
- expect(error).toBeInstanceOf(Error);
211
- const errorMessage = (error as Error).message;
212
- expect(errorMessage).toContain('JSON parsing failed');
213
- }
214
- });
215
-
216
- it('| should handle empty string', (): void => {
217
- try {
218
- DyFM_JsonErrorHelper.parseJsonWithEnhancedError('');
219
- fail('Expected error to be thrown');
220
- } catch (error) {
221
- expect(error).toBeInstanceOf(Error);
222
- }
223
- });
224
-
225
- it('| should parse valid JSON array', (): void => {
226
- const jsonString = '[1, 2, 3, "test"]';
227
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
228
-
229
- expect(result).toEqual([1, 2, 3, 'test']);
230
- });
231
-
232
- it('| should parse valid JSON string', (): void => {
233
- const jsonString = '"simple string"';
234
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
235
-
236
- expect(result).toBe('simple string');
237
- });
238
-
239
- it('| should parse valid JSON number', (): void => {
240
- const jsonString = '42.5';
241
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
242
-
243
- expect(result).toBe(42.5);
244
- });
245
-
246
- it('| should parse valid JSON boolean', (): void => {
247
- const jsonString = 'true';
248
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
249
-
250
- expect(result).toBe(true);
251
- });
252
-
253
- it('| should parse valid JSON null', (): void => {
254
- const jsonString = 'null';
255
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
256
-
257
- expect(result).toBeNull();
258
- });
259
-
260
- it('| should handle position at end of string', (): void => {
261
- const errorMessage = 'Unexpected end of JSON input at position 14';
262
- const jsonInput = '{"name": "John"}';
263
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
264
-
265
- expect(result).not.toBeNull();
266
- if (result) {
267
- expect(result.lineNumber).toBeGreaterThan(0);
268
- }
269
- });
270
-
271
- it('| should handle position at start of string', (): void => {
272
- const errorMessage = 'Unexpected token in JSON at position 0';
273
- const jsonInput = 'invalid';
274
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
275
-
276
- expect(result).not.toBeNull();
277
- if (result) {
278
- expect(result.characterPosition).toBe(0);
279
- }
280
- });
281
-
282
- it('| should handle very large contextLines parameter', (): void => {
283
- const errorMessage = 'Expected property name or "}" in JSON at position 10';
284
- const jsonInput = '{\n "name": "John",\n "age": 30\n}';
285
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput, 100);
286
-
287
- expect(result).not.toBeNull();
288
- if (result) {
289
- // The function may return more context lines than requested due to implementation
290
- // We just check that it returns a reasonable number
291
- expect(result.contextLines.length).toBeGreaterThan(0);
292
- expect(result.contextLines.length).toBeLessThanOrEqual(100);
293
- }
294
- });
295
-
296
- it('| should handle zero contextLines parameter', (): void => {
297
- const errorMessage = 'Expected property name or "}" in JSON at position 10';
298
- const jsonInput = '{\n "name": "John",\n "age": 30\n}';
299
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput, 0);
300
-
301
- expect(result).not.toBeNull();
302
- if (result) {
303
- expect(result.contextLines.length).toBeGreaterThan(0);
304
- }
305
- });
306
-
307
- it('| should return null when position is greater than jsonInput length', (): void => {
308
- // Test case for line 82-83: position > jsonInput.length returns null
309
- const errorMessage = 'Unexpected end of JSON input';
310
- const jsonInput = '{"name": "John"}';
311
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput, 5);
312
- expect(result).toBeNull();
313
- });
314
-
315
- it('| should handle formatJsonForBetterErrors with non-string input', (): void => {
316
- // Test case for line 293-294: formatJsonForBetterErrors handles non-string input
317
- const result = (DyFM_JsonErrorHelper as any).formatJsonForBetterErrors(null);
318
- expect(result).toBe('');
319
- });
320
-
321
- it('| should handle formatJsonForBetterErrors with undefined input', (): void => {
322
- // Test case for line 293-294: formatJsonForBetterErrors handles undefined input
323
- const result = (DyFM_JsonErrorHelper as any).formatJsonForBetterErrors(undefined);
324
- expect(result).toBe('');
325
- });
326
-
327
- it('| should handle formatJsonForBetterErrors with empty string', (): void => {
328
- // Test case for formatJsonForBetterErrors with empty string
329
- const result = (DyFM_JsonErrorHelper as any).formatJsonForBetterErrors('');
330
- expect(result).toBeDefined();
331
- });
332
-
333
- it('| should handle formatJsonForBetterErrors with complex JSON', (): void => {
334
- // Test case for formatJsonForBetterErrors with complex JSON formatting
335
- const complexJson = '{"level1":{"level2":{"level3":"value","array":[1,2,3]},"other":"data"},"simple":"value"}';
336
- const result = (DyFM_JsonErrorHelper as any).formatJsonForBetterErrors(complexJson);
337
- expect(result).toBeDefined();
338
- expect(result).toContain('\n');
339
- });
340
-
341
- it('| should handle extractLineInfoFromJsonError with token matching without position', (): void => {
342
- // Test case for lines 60-62: token matching without position
343
- const errorMessage = "Unexpected token '}'";
344
- const jsonInput = '{\n "name": "John",\n "age": 30\n}';
345
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
346
-
347
- // Should try to find token position
348
- expect(result).toBeDefined();
349
- });
350
-
351
- it('| should handle extractLineInfoFromJsonError with different error message formats', (): void => {
352
- // Test various error message formats
353
- const formats = [
354
- 'Unexpected token } in JSON at position 25',
355
- 'Expected property name or "}" in JSON at position 10',
356
- 'Unexpected end of JSON input at position 14',
357
- 'Unexpected token }',
358
- 'Expected double-quoted property name in JSON at position 5',
359
- ];
360
-
361
- const jsonInput = '{\n "name": "John",\n "age": 30\n}';
362
-
363
- formats.forEach(errorMessage => {
364
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
365
- // Some may return null, some may return line info
366
- expect(result === null || (result && result.lineNumber > 0)).toBeTrue();
367
- });
368
- });
369
-
370
- it('| should handle extractLineInfoFromJsonError with token match but no newlines', (): void => {
371
- // Test case for line 62: token matching when jsonInput doesn't include newlines
372
- const errorMessage = "Unexpected token '}'";
373
- const jsonInput = '{"name": "John", "age": 30}'; // No newlines
374
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
375
-
376
- // Should return null when no newlines and no position
377
- expect(result).toBeNull();
378
- });
379
-
380
- it('| should handle extractLineInfoFromJsonError with token found at position', (): void => {
381
- // Test case for lines 65-68: token found at position
382
- const errorMessage = "Unexpected token '}'";
383
- const jsonInput = '{\n "name": "John",\n "age": 30\n}';
384
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
385
-
386
- // May or may not find the token, but should handle gracefully
387
- expect(result === null || (result && result.lineNumber > 0)).toBeTrue();
388
- });
389
-
390
- it('| should handle extractLineInfoFromJsonError edge cases in position extraction', (): void => {
391
- // Test edge cases: position at start, middle, end
392
- const jsonInput = '{\n "name": "John",\n "age": 30\n}';
393
-
394
- // Position at start
395
- let result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError('Error at position 0', jsonInput);
396
- expect(result === null || (result && result.characterPosition >= 0)).toBeTrue();
397
-
398
- // Position in middle
399
- result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError('Error at position 10', jsonInput);
400
- expect(result === null || (result && result.lineNumber > 0)).toBeTrue();
401
-
402
- // Position at end (equal to length)
403
- const endPosition = jsonInput.length;
404
- result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(`Error at position ${endPosition}`, jsonInput);
405
- expect(result === null || (result && result.lineNumber > 0)).toBeTrue();
406
- });
407
-
408
- it('| should handle error messages with different formats', (): void => {
409
- const errorMessage = 'Unexpected token } in JSON at position 25';
410
- const jsonInput = '{\n "name": "John",\n "age": 30\n}';
411
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
412
-
413
- expect(result).not.toBeNull();
414
- });
415
-
416
- it('| should handle empty error message', (): void => {
417
- const errorMessage = '';
418
- const jsonInput = '{"name": "John"}';
419
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
420
-
421
- expect(result).toBeNull();
422
- });
423
-
424
- it('| should handle empty jsonInput', (): void => {
425
- const errorMessage = 'Unexpected token in JSON at position 0';
426
- const jsonInput = '';
427
- const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
428
-
429
- expect(result).not.toBeNull();
430
- if (result) {
431
- expect(result.contextLines).toContain('(invalid or empty input)');
432
- }
433
- });
434
-
435
- it('| should handle formatJsonErrorForLogging with single line context', (): void => {
436
- const lineInfo: JsonErrorLineInfo = {
437
- lineNumber: 1,
438
- contextLines: ['{"name": "John"}'],
439
- characterPosition: 5
440
- };
441
- const errorMessage = 'Test error';
442
- const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
443
-
444
- expect(result.some(line => line.includes('>>>'))).toBe(true);
445
- expect(result.some(line => line.includes('1:'))).toBe(true);
446
- });
447
-
448
- it('| should handle formatJsonErrorForLogging with multiple context lines', (): void => {
449
- const lineInfo: JsonErrorLineInfo = {
450
- lineNumber: 3,
451
- contextLines: ['line1', 'line2', 'line3', 'line4', 'line5'],
452
- characterPosition: 5
453
- };
454
- const errorMessage = 'Test error';
455
- const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
456
-
457
- expect(result.some(line => line.includes('>>>'))).toBe(true);
458
- expect(result.some(line => line.includes('3:'))).toBe(true);
459
- });
460
-
461
- it('| should handle formatJsonErrorForLogging with empty lines in context', (): void => {
462
- const lineInfo: JsonErrorLineInfo = {
463
- lineNumber: 2,
464
- contextLines: ['line1', '', 'line3'],
465
- characterPosition: 5
466
- };
467
- const errorMessage = 'Test error';
468
- const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
469
-
470
- expect(result.some(line => line.includes('(empty line)'))).toBe(true);
471
- });
472
-
473
- it('| should handle parseJsonWithEnhancedError with complex nested JSON', (): void => {
474
- const jsonString = '{"level1": {"level2": {"level3": "value"}}}';
475
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
476
-
477
- expect(result.level1.level2.level3).toBe('value');
478
- });
479
-
480
- it('| should handle parseJsonWithEnhancedError with array containing objects', (): void => {
481
- const jsonString = '[{"id": 1}, {"id": 2}]';
482
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
483
-
484
- expect(result).toEqual([{ id: 1 }, { id: 2 }]);
485
- });
486
-
487
- it('| should handle parseJsonWithEnhancedError with special characters', (): void => {
488
- const jsonString = '{"message": "Hello\\nWorld\\tTab"}';
489
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
490
-
491
- expect(result.message).toBe('Hello\nWorld\tTab');
492
- });
493
-
494
- it('| should handle parseJsonWithEnhancedError with unicode characters', (): void => {
495
- const jsonString = '{"unicode": "🚀 Test ñáéíóú"}';
496
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
497
-
498
- expect(result.unicode).toBe('🚀 Test ñáéíóú');
499
- });
500
-
501
- it('| should handle parseJsonWithEnhancedError with scientific notation', (): void => {
502
- const jsonString = '{"small": 1e-10, "large": 1e10}';
503
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
504
-
505
- expect(result.small).toBe(1e-10);
506
- expect(result.large).toBe(1e10);
507
- });
508
-
509
- it('| should handle parseJsonWithEnhancedError with reviver that returns undefined', (): void => {
510
- const jsonString = '{"keep": "value", "remove": "value"}';
511
- const reviver = (key: string, value: any): any => {
512
- return key === 'remove' ? undefined : value;
513
- };
514
- const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString, reviver);
515
-
516
- expect(result.keep).toBe('value');
517
- expect(result.remove).toBeUndefined();
518
- });
519
- });
520
- });
521
-
1
+ import { DyFM_JsonErrorHelper, JsonErrorLineInfo } from './json-error-helper.util';
2
+
3
+ describe('| DyFM_JsonErrorHelper', (): void => {
4
+
5
+ describe('| extractLineInfoFromJsonError', (): void => {
6
+ it('| should extract line info from error with position', (): void => {
7
+ const errorMessage = 'Expected property name or "}" in JSON at position 10';
8
+ const jsonInput = '{"name": "John", "age": 30}';
9
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
10
+
11
+ expect(result).not.toBeNull();
12
+ expect(result?.lineNumber).toBe(1);
13
+ expect(result?.characterPosition).toBe(10);
14
+ expect(result?.contextLines).toContain(jsonInput);
15
+ });
16
+
17
+ it('| should handle multi-line JSON with position', (): void => {
18
+ const errorMessage = 'Unexpected token } in JSON at position 25';
19
+ const jsonInput = '{\n "name": "John",\n "age": 30\n}';
20
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
21
+
22
+ expect(result).not.toBeNull();
23
+ expect(result?.lineNumber).toBeGreaterThan(0);
24
+ expect(result?.contextLines.length).toBeGreaterThan(0);
25
+ });
26
+
27
+ it('| should return null for error without position', (): void => {
28
+ const errorMessage = 'Invalid JSON format';
29
+ const jsonInput = '{"name": "John"}';
30
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
31
+
32
+ expect(result).toBeNull();
33
+ });
34
+
35
+ it('| should handle "Unexpected end of JSON input" error', (): void => {
36
+ const errorMessage = 'Unexpected end of JSON input at position 14';
37
+ const jsonInput = '{"name": "John"';
38
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
39
+
40
+ expect(result).not.toBeNull();
41
+ expect(result?.lineNumber).toBeGreaterThan(0);
42
+ });
43
+
44
+ it('| should use custom contextLines parameter', (): void => {
45
+ const errorMessage = 'Expected property name or "}" in JSON at position 10';
46
+ const jsonInput = '{\n "name": "John",\n "age": 30\n}';
47
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput, 2);
48
+
49
+ expect(result).not.toBeNull();
50
+ if (result) {
51
+ expect(result.contextLines.length).toBeLessThanOrEqual(5);
52
+ }
53
+ });
54
+
55
+ it('| should handle position beyond string length', (): void => {
56
+ const errorMessage = 'Unexpected token in JSON at position 1000';
57
+ const jsonInput = '{"name": "John"}';
58
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
59
+
60
+ expect(result).toBeNull();
61
+ });
62
+
63
+ it('| should handle invalid position values', (): void => {
64
+ const errorMessage = 'Unexpected token in JSON at position -1';
65
+ const jsonInput = '{"name": "John"}';
66
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
67
+
68
+ expect(result).toBeNull();
69
+ });
70
+ });
71
+
72
+ describe('| formatJsonErrorForLogging', (): void => {
73
+ it('| should format error with line info', (): void => {
74
+ const lineInfo: JsonErrorLineInfo = {
75
+ lineNumber: 2,
76
+ contextLines: ['{"name": "John",', '"age": 30}'],
77
+ characterPosition: 5
78
+ };
79
+ const errorMessage = 'Expected property name or "}" in JSON at position 10';
80
+ const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
81
+
82
+ expect(result.length).toBeGreaterThan(0);
83
+ expect(result[0]).toContain('JSON parsing failed');
84
+ expect(result.some(line => line.includes('Error at line'))).toBe(true);
85
+ });
86
+
87
+ it('| should include context lines in formatted output', (): void => {
88
+ const lineInfo: JsonErrorLineInfo = {
89
+ lineNumber: 1,
90
+ contextLines: ['{"name": "John"}'],
91
+ characterPosition: 5
92
+ };
93
+ const errorMessage = 'Test error';
94
+ const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
95
+
96
+ expect(result.some(line => line.includes('Context'))).toBe(true);
97
+ expect(result.some(line => line.includes('1:'))).toBe(true);
98
+ });
99
+
100
+ it('| should mark error line with >>>', (): void => {
101
+ const lineInfo: JsonErrorLineInfo = {
102
+ lineNumber: 2,
103
+ contextLines: ['line1', 'line2', 'line3'],
104
+ characterPosition: 5
105
+ };
106
+ const errorMessage = 'Test error';
107
+ const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
108
+
109
+ expect(result.some(line => line.includes('>>>'))).toBe(true);
110
+ });
111
+
112
+ it('| should handle empty context lines', (): void => {
113
+ const lineInfo: JsonErrorLineInfo = {
114
+ lineNumber: 1,
115
+ contextLines: [],
116
+ characterPosition: 0
117
+ };
118
+ const errorMessage = 'Test error';
119
+ const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
120
+
121
+ expect(result.length).toBeGreaterThan(0);
122
+ expect(result[0]).toContain('JSON parsing failed');
123
+ });
124
+ });
125
+
126
+ describe('| parseJsonWithEnhancedError', (): void => {
127
+ it('| should parse valid JSON successfully', (): void => {
128
+ const jsonString = '{"name": "John", "age": 30}';
129
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
130
+
131
+ expect(result).toEqual({ name: 'John', age: 30 });
132
+ });
133
+
134
+ it('| should throw enhanced error for invalid JSON', (): void => {
135
+ const jsonString = '{"name": "John", "age": }';
136
+
137
+ try {
138
+ DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
139
+ fail('Expected error to be thrown');
140
+ } catch (error) {
141
+ expect(error).toBeInstanceOf(Error);
142
+ const errorMessage = (error as Error).message;
143
+ expect(errorMessage).toContain('JSON parsing failed');
144
+ }
145
+ });
146
+
147
+ it('| should throw error for null input', (): void => {
148
+ try {
149
+ DyFM_JsonErrorHelper.parseJsonWithEnhancedError(null as any);
150
+ fail('Expected error to be thrown');
151
+ } catch (error) {
152
+ expect(error).toBeInstanceOf(Error);
153
+ expect((error as Error).message).toContain('Invalid JSON input');
154
+ }
155
+ });
156
+
157
+ it('| should throw error for undefined input', (): void => {
158
+ try {
159
+ DyFM_JsonErrorHelper.parseJsonWithEnhancedError(undefined as any);
160
+ fail('Expected error to be thrown');
161
+ } catch (error) {
162
+ expect(error).toBeInstanceOf(Error);
163
+ expect((error as Error).message).toContain('Invalid JSON input');
164
+ }
165
+ });
166
+
167
+ it('| should throw error for non-string input', (): void => {
168
+ try {
169
+ DyFM_JsonErrorHelper.parseJsonWithEnhancedError(123 as any);
170
+ fail('Expected error to be thrown');
171
+ } catch (error) {
172
+ expect(error).toBeInstanceOf(Error);
173
+ expect((error as Error).message).toContain('Invalid JSON input');
174
+ }
175
+ });
176
+
177
+ it('| should use custom contextLines parameter', (): void => {
178
+ const jsonString = '{"name": "John", "age": }';
179
+
180
+ try {
181
+ DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString, undefined, 1);
182
+ fail('Expected error to be thrown');
183
+ } catch (error) {
184
+ expect(error).toBeInstanceOf(Error);
185
+ const errorMessage = (error as Error).message;
186
+ expect(errorMessage).toContain('JSON parsing failed');
187
+ }
188
+ });
189
+
190
+ it('| should handle reviver function', (): void => {
191
+ const jsonString = '{"name": "John", "age": 30}';
192
+ const reviver = (key: string, value: any): any => {
193
+ if (key === 'age') {
194
+ return value * 2;
195
+ }
196
+ return value;
197
+ };
198
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString, reviver);
199
+
200
+ expect(result).toEqual({ name: 'John', age: 60 });
201
+ });
202
+
203
+ it('| should provide enhanced error for multi-line JSON', (): void => {
204
+ const jsonString = '{\n "name": "John",\n "age": \n}';
205
+
206
+ try {
207
+ DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
208
+ fail('Expected error to be thrown');
209
+ } catch (error) {
210
+ expect(error).toBeInstanceOf(Error);
211
+ const errorMessage = (error as Error).message;
212
+ expect(errorMessage).toContain('JSON parsing failed');
213
+ }
214
+ });
215
+
216
+ it('| should handle empty string', (): void => {
217
+ try {
218
+ DyFM_JsonErrorHelper.parseJsonWithEnhancedError('');
219
+ fail('Expected error to be thrown');
220
+ } catch (error) {
221
+ expect(error).toBeInstanceOf(Error);
222
+ }
223
+ });
224
+
225
+ it('| should parse valid JSON array', (): void => {
226
+ const jsonString = '[1, 2, 3, "test"]';
227
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
228
+
229
+ expect(result).toEqual([1, 2, 3, 'test']);
230
+ });
231
+
232
+ it('| should parse valid JSON string', (): void => {
233
+ const jsonString = '"simple string"';
234
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
235
+
236
+ expect(result).toBe('simple string');
237
+ });
238
+
239
+ it('| should parse valid JSON number', (): void => {
240
+ const jsonString = '42.5';
241
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
242
+
243
+ expect(result).toBe(42.5);
244
+ });
245
+
246
+ it('| should parse valid JSON boolean', (): void => {
247
+ const jsonString = 'true';
248
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
249
+
250
+ expect(result).toBe(true);
251
+ });
252
+
253
+ it('| should parse valid JSON null', (): void => {
254
+ const jsonString = 'null';
255
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
256
+
257
+ expect(result).toBeNull();
258
+ });
259
+
260
+ it('| should handle position at end of string', (): void => {
261
+ const errorMessage = 'Unexpected end of JSON input at position 14';
262
+ const jsonInput = '{"name": "John"}';
263
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
264
+
265
+ expect(result).not.toBeNull();
266
+ if (result) {
267
+ expect(result.lineNumber).toBeGreaterThan(0);
268
+ }
269
+ });
270
+
271
+ it('| should handle position at start of string', (): void => {
272
+ const errorMessage = 'Unexpected token in JSON at position 0';
273
+ const jsonInput = 'invalid';
274
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
275
+
276
+ expect(result).not.toBeNull();
277
+ if (result) {
278
+ expect(result.characterPosition).toBe(0);
279
+ }
280
+ });
281
+
282
+ it('| should handle very large contextLines parameter', (): void => {
283
+ const errorMessage = 'Expected property name or "}" in JSON at position 10';
284
+ const jsonInput = '{\n "name": "John",\n "age": 30\n}';
285
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput, 100);
286
+
287
+ expect(result).not.toBeNull();
288
+ if (result) {
289
+ // The function may return more context lines than requested due to implementation
290
+ // We just check that it returns a reasonable number
291
+ expect(result.contextLines.length).toBeGreaterThan(0);
292
+ expect(result.contextLines.length).toBeLessThanOrEqual(100);
293
+ }
294
+ });
295
+
296
+ it('| should handle zero contextLines parameter', (): void => {
297
+ const errorMessage = 'Expected property name or "}" in JSON at position 10';
298
+ const jsonInput = '{\n "name": "John",\n "age": 30\n}';
299
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput, 0);
300
+
301
+ expect(result).not.toBeNull();
302
+ if (result) {
303
+ expect(result.contextLines.length).toBeGreaterThan(0);
304
+ }
305
+ });
306
+
307
+ it('| should return null when position is greater than jsonInput length', (): void => {
308
+ // Test case for line 82-83: position > jsonInput.length returns null
309
+ const errorMessage = 'Unexpected end of JSON input';
310
+ const jsonInput = '{"name": "John"}';
311
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput, 5);
312
+ expect(result).toBeNull();
313
+ });
314
+
315
+ it('| should handle formatJsonForBetterErrors with non-string input', (): void => {
316
+ // Test case for line 293-294: formatJsonForBetterErrors handles non-string input
317
+ const result = (DyFM_JsonErrorHelper as any).formatJsonForBetterErrors(null);
318
+ expect(result).toBe('');
319
+ });
320
+
321
+ it('| should handle formatJsonForBetterErrors with undefined input', (): void => {
322
+ // Test case for line 293-294: formatJsonForBetterErrors handles undefined input
323
+ const result = (DyFM_JsonErrorHelper as any).formatJsonForBetterErrors(undefined);
324
+ expect(result).toBe('');
325
+ });
326
+
327
+ it('| should handle formatJsonForBetterErrors with empty string', (): void => {
328
+ // Test case for formatJsonForBetterErrors with empty string
329
+ const result = (DyFM_JsonErrorHelper as any).formatJsonForBetterErrors('');
330
+ expect(result).toBeDefined();
331
+ });
332
+
333
+ it('| should handle formatJsonForBetterErrors with complex JSON', (): void => {
334
+ // Test case for formatJsonForBetterErrors with complex JSON formatting
335
+ const complexJson = '{"level1":{"level2":{"level3":"value","array":[1,2,3]},"other":"data"},"simple":"value"}';
336
+ const result = (DyFM_JsonErrorHelper as any).formatJsonForBetterErrors(complexJson);
337
+ expect(result).toBeDefined();
338
+ expect(result).toContain('\n');
339
+ });
340
+
341
+ it('| should handle extractLineInfoFromJsonError with token matching without position', (): void => {
342
+ // Test case for lines 60-62: token matching without position
343
+ const errorMessage = "Unexpected token '}'";
344
+ const jsonInput = '{\n "name": "John",\n "age": 30\n}';
345
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
346
+
347
+ // Should try to find token position
348
+ expect(result).toBeDefined();
349
+ });
350
+
351
+ it('| should handle extractLineInfoFromJsonError with different error message formats', (): void => {
352
+ // Test various error message formats
353
+ const formats = [
354
+ 'Unexpected token } in JSON at position 25',
355
+ 'Expected property name or "}" in JSON at position 10',
356
+ 'Unexpected end of JSON input at position 14',
357
+ 'Unexpected token }',
358
+ 'Expected double-quoted property name in JSON at position 5',
359
+ ];
360
+
361
+ const jsonInput = '{\n "name": "John",\n "age": 30\n}';
362
+
363
+ formats.forEach(errorMessage => {
364
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
365
+ // Some may return null, some may return line info
366
+ expect(result === null || (result && result.lineNumber > 0)).toBeTrue();
367
+ });
368
+ });
369
+
370
+ it('| should handle extractLineInfoFromJsonError with token match but no newlines', (): void => {
371
+ // Test case for line 62: token matching when jsonInput doesn't include newlines
372
+ const errorMessage = "Unexpected token '}'";
373
+ const jsonInput = '{"name": "John", "age": 30}'; // No newlines
374
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
375
+
376
+ // Should return null when no newlines and no position
377
+ expect(result).toBeNull();
378
+ });
379
+
380
+ it('| should handle extractLineInfoFromJsonError with token found at position', (): void => {
381
+ // Test case for lines 65-68: token found at position
382
+ const errorMessage = "Unexpected token '}'";
383
+ const jsonInput = '{\n "name": "John",\n "age": 30\n}';
384
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
385
+
386
+ // May or may not find the token, but should handle gracefully
387
+ expect(result === null || (result && result.lineNumber > 0)).toBeTrue();
388
+ });
389
+
390
+ it('| should handle extractLineInfoFromJsonError edge cases in position extraction', (): void => {
391
+ // Test edge cases: position at start, middle, end
392
+ const jsonInput = '{\n "name": "John",\n "age": 30\n}';
393
+
394
+ // Position at start
395
+ let result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError('Error at position 0', jsonInput);
396
+ expect(result === null || (result && result.characterPosition >= 0)).toBeTrue();
397
+
398
+ // Position in middle
399
+ result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError('Error at position 10', jsonInput);
400
+ expect(result === null || (result && result.lineNumber > 0)).toBeTrue();
401
+
402
+ // Position at end (equal to length)
403
+ const endPosition = jsonInput.length;
404
+ result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(`Error at position ${endPosition}`, jsonInput);
405
+ expect(result === null || (result && result.lineNumber > 0)).toBeTrue();
406
+ });
407
+
408
+ it('| should handle error messages with different formats', (): void => {
409
+ const errorMessage = 'Unexpected token } in JSON at position 25';
410
+ const jsonInput = '{\n "name": "John",\n "age": 30\n}';
411
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
412
+
413
+ expect(result).not.toBeNull();
414
+ });
415
+
416
+ it('| should handle empty error message', (): void => {
417
+ const errorMessage = '';
418
+ const jsonInput = '{"name": "John"}';
419
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
420
+
421
+ expect(result).toBeNull();
422
+ });
423
+
424
+ it('| should handle empty jsonInput', (): void => {
425
+ const errorMessage = 'Unexpected token in JSON at position 0';
426
+ const jsonInput = '';
427
+ const result = DyFM_JsonErrorHelper.extractLineInfoFromJsonError(errorMessage, jsonInput);
428
+
429
+ expect(result).not.toBeNull();
430
+ if (result) {
431
+ expect(result.contextLines).toContain('(invalid or empty input)');
432
+ }
433
+ });
434
+
435
+ it('| should handle formatJsonErrorForLogging with single line context', (): void => {
436
+ const lineInfo: JsonErrorLineInfo = {
437
+ lineNumber: 1,
438
+ contextLines: ['{"name": "John"}'],
439
+ characterPosition: 5
440
+ };
441
+ const errorMessage = 'Test error';
442
+ const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
443
+
444
+ expect(result.some(line => line.includes('>>>'))).toBe(true);
445
+ expect(result.some(line => line.includes('1:'))).toBe(true);
446
+ });
447
+
448
+ it('| should handle formatJsonErrorForLogging with multiple context lines', (): void => {
449
+ const lineInfo: JsonErrorLineInfo = {
450
+ lineNumber: 3,
451
+ contextLines: ['line1', 'line2', 'line3', 'line4', 'line5'],
452
+ characterPosition: 5
453
+ };
454
+ const errorMessage = 'Test error';
455
+ const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
456
+
457
+ expect(result.some(line => line.includes('>>>'))).toBe(true);
458
+ expect(result.some(line => line.includes('3:'))).toBe(true);
459
+ });
460
+
461
+ it('| should handle formatJsonErrorForLogging with empty lines in context', (): void => {
462
+ const lineInfo: JsonErrorLineInfo = {
463
+ lineNumber: 2,
464
+ contextLines: ['line1', '', 'line3'],
465
+ characterPosition: 5
466
+ };
467
+ const errorMessage = 'Test error';
468
+ const result = DyFM_JsonErrorHelper.formatJsonErrorForLogging(lineInfo, errorMessage);
469
+
470
+ expect(result.some(line => line.includes('(empty line)'))).toBe(true);
471
+ });
472
+
473
+ it('| should handle parseJsonWithEnhancedError with complex nested JSON', (): void => {
474
+ const jsonString = '{"level1": {"level2": {"level3": "value"}}}';
475
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
476
+
477
+ expect(result.level1.level2.level3).toBe('value');
478
+ });
479
+
480
+ it('| should handle parseJsonWithEnhancedError with array containing objects', (): void => {
481
+ const jsonString = '[{"id": 1}, {"id": 2}]';
482
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
483
+
484
+ expect(result).toEqual([{ id: 1 }, { id: 2 }]);
485
+ });
486
+
487
+ it('| should handle parseJsonWithEnhancedError with special characters', (): void => {
488
+ const jsonString = '{"message": "Hello\\nWorld\\tTab"}';
489
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
490
+
491
+ expect(result.message).toBe('Hello\nWorld\tTab');
492
+ });
493
+
494
+ it('| should handle parseJsonWithEnhancedError with unicode characters', (): void => {
495
+ const jsonString = '{"unicode": "🚀 Test ñáéíóú"}';
496
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
497
+
498
+ expect(result.unicode).toBe('🚀 Test ñáéíóú');
499
+ });
500
+
501
+ it('| should handle parseJsonWithEnhancedError with scientific notation', (): void => {
502
+ const jsonString = '{"small": 1e-10, "large": 1e10}';
503
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString);
504
+
505
+ expect(result.small).toBe(1e-10);
506
+ expect(result.large).toBe(1e10);
507
+ });
508
+
509
+ it('| should handle parseJsonWithEnhancedError with reviver that returns undefined', (): void => {
510
+ const jsonString = '{"keep": "value", "remove": "value"}';
511
+ const reviver = (key: string, value: any): any => {
512
+ return key === 'remove' ? undefined : value;
513
+ };
514
+ const result = DyFM_JsonErrorHelper.parseJsonWithEnhancedError(jsonString, reviver);
515
+
516
+ expect(result.keep).toBe('value');
517
+ expect(result.remove).toBeUndefined();
518
+ });
519
+ });
520
+ });
521
+