@futdevpro/fsm-dynamo 1.15.21 → 1.15.23

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