@futdevpro/fsm-dynamo 1.16.7 → 1.16.10

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 (536) hide show
  1. package/.cursor/rules/__assistant_guide.mdc +30 -30
  2. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  3. package/.cursor/rules/_ag_backend.mdc +16 -16
  4. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  5. package/.cursor/rules/_ag_frontend.mdc +39 -39
  6. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  7. package/.cursor/rules/_ag_naming.mdc +115 -115
  8. package/.cursor/rules/_ag_should-be.mdc +6 -6
  9. package/.cursor/rules/ai_development_guide.md +60 -60
  10. package/.cursor/rules/cursor-rules.md +160 -160
  11. package/.cursor/rules/default-command.mdc +464 -464
  12. package/.cursor/rules/error_code_pattern.md +39 -39
  13. package/.cursor/rules/saved rule mcp server use.md +15 -15
  14. package/.vscode/settings.json +11 -11
  15. package/LICENSE +21 -21
  16. package/__documentations/2026-06-22-dyfm-error-extends-error.md +109 -0
  17. package/build/_collections/utils/log.util.d.ts +8 -8
  18. package/build/_collections/utils/log.util.d.ts.map +1 -1
  19. package/build/_collections/utils/log.util.js +18 -10
  20. package/build/_collections/utils/log.util.js.map +1 -1
  21. package/build/_models/control-models/data-model-params.control-model.d.ts +41 -0
  22. package/build/_models/control-models/data-model-params.control-model.d.ts.map +1 -1
  23. package/build/_models/control-models/data-model-params.control-model.js +26 -0
  24. package/build/_models/control-models/data-model-params.control-model.js.map +1 -1
  25. package/build/_models/control-models/error.control-model.d.ts +11 -2
  26. package/build/_models/control-models/error.control-model.d.ts.map +1 -1
  27. package/build/_models/control-models/error.control-model.js +56 -3
  28. package/build/_models/control-models/error.control-model.js.map +1 -1
  29. package/build/_models/data-models/metadata.data-model.d.ts +16 -0
  30. package/build/_models/data-models/metadata.data-model.d.ts.map +1 -1
  31. package/build/_models/data-models/metadata.data-model.js +37 -20
  32. package/build/_models/data-models/metadata.data-model.js.map +1 -1
  33. package/build/_modules/socket/_models/sck-socket-event.control-model.js +1 -1
  34. package/eslint.config.js +4 -4
  35. package/nodemon.json +22 -22
  36. package/package.json +1 -1
  37. package/scripts/crypto/CRYPTO-STABILITY-SOLUTION.md +196 -196
  38. package/scripts/crypto/README.md +113 -113
  39. package/scripts/crypto/demo-crypto-stability.js +120 -120
  40. package/scripts/crypto/stress-test-crypto.js +379 -379
  41. package/scripts/run-coverage-tests.js +24 -24
  42. package/spec/support/helpers/ts-node-helper.js +9 -9
  43. package/spec/support/jasmine.coverage.json +23 -23
  44. package/spec/support/jasmine.json +24 -24
  45. package/src/_collections/constants/data-sizes.const.ts +40 -40
  46. package/src/_collections/constants/error-defaults.const.ts +20 -20
  47. package/src/_collections/constants/global-settings.const.ts +24 -24
  48. package/src/_collections/constants/numbers.const.ts +40 -40
  49. package/src/_collections/constants/times.const.ts +45 -45
  50. package/src/_collections/utils/array.util.spec.ts +306 -306
  51. package/src/_collections/utils/array.util.ts +813 -813
  52. package/src/_collections/utils/async.util.spec.ts +354 -354
  53. package/src/_collections/utils/async.util.ts +197 -197
  54. package/src/_collections/utils/data.util.spec.ts +345 -345
  55. package/src/_collections/utils/data.util.ts +226 -226
  56. package/src/_collections/utils/json-error-helper.util.spec.ts +521 -521
  57. package/src/_collections/utils/json-error-helper.util.ts +301 -301
  58. package/src/_collections/utils/log.util.spec.ts +975 -975
  59. package/src/_collections/utils/log.util.ts +665 -667
  60. package/src/_collections/utils/math/box-bounds.spec.ts +73 -73
  61. package/src/_collections/utils/math/box-bounds.util.ts +183 -183
  62. package/src/_collections/utils/math/math.util.spec.ts +94 -94
  63. package/src/_collections/utils/math/math.util.ts +141 -141
  64. package/src/_collections/utils/math/random.util.spec.ts +82 -82
  65. package/src/_collections/utils/math/random.util.ts +139 -139
  66. package/src/_collections/utils/math/trigonometry.util.spec.ts +57 -57
  67. package/src/_collections/utils/math/trigonometry.util.ts +102 -102
  68. package/src/_collections/utils/math/vector2.util.spec.ts +94 -94
  69. package/src/_collections/utils/math/vector2.util.ts +653 -653
  70. package/src/_collections/utils/object.util.spec.ts +646 -646
  71. package/src/_collections/utils/regex/password-regex.util.spec.ts +51 -51
  72. package/src/_collections/utils/regex/password-regex.util.ts +65 -65
  73. package/src/_collections/utils/regex/regex.util.spec.ts +42 -42
  74. package/src/_collections/utils/regex/regex.util.ts +6 -6
  75. package/src/_collections/utils/regex/username-regex.util.spec.ts +61 -61
  76. package/src/_collections/utils/regex/username-regex.util.ts +35 -35
  77. package/src/_collections/utils/round-list.util.spec.ts +79 -79
  78. package/src/_collections/utils/round-list.util.ts +162 -162
  79. package/src/_collections/utils/stack.util.spec.ts +372 -372
  80. package/src/_collections/utils/stack.util.ts +164 -164
  81. package/src/_collections/utils/string-case.util.spec.ts +441 -441
  82. package/src/_collections/utils/string-case.util.ts +362 -362
  83. package/src/_collections/utils/string.util.spec.ts +975 -975
  84. package/src/_collections/utils/string.util.ts +449 -449
  85. package/src/_collections/utils/time.util.spec.ts +50 -50
  86. package/src/_collections/utils/time.util.ts +481 -481
  87. package/src/_collections/utils/type-cloning-facility.util.spec.ts +51 -51
  88. package/src/_collections/utils/type-cloning-facility.util.ts +168 -168
  89. package/src/_collections/utils/utilities.util.spec.ts +201 -201
  90. package/src/_collections/utils/utilities.util.ts +68 -68
  91. package/src/_collections/utils/uuid.util.spec.ts +30 -30
  92. package/src/_collections/utils/uuid.util.ts +50 -50
  93. package/src/_enums/basic-property-type.enum.ts +20 -20
  94. package/src/_enums/data-model-type.enum.ts +29 -29
  95. package/src/_enums/environment-flag.enum.ts +28 -28
  96. package/src/_enums/error-level.enum.ts +43 -43
  97. package/src/_enums/http/http-call-type.enum.ts +43 -43
  98. package/src/_enums/http/http-event-type.enum.ts +40 -40
  99. package/src/_enums/http/http-response-type.enum.ts +18 -18
  100. package/src/_enums/log-style.enum.ts +44 -44
  101. package/src/_enums/server-connection-status.enum.ts +6 -6
  102. package/src/_enums/time/day-of-week.enum.ts +55 -55
  103. package/src/_enums/time/month.enum.ts +25 -25
  104. package/src/_enums/time/relative-date.enum.ts +24 -24
  105. package/src/_models/control-models/data-model-params.control-model.spec.ts +133 -85
  106. package/src/_models/control-models/data-model-params.control-model.ts +352 -300
  107. package/src/_models/control-models/data-property-params.control-model.spec.ts +93 -93
  108. package/src/_models/control-models/data-property-params.control-model.ts +201 -201
  109. package/src/_models/control-models/error.control-model.spec.ts +912 -912
  110. package/src/_models/control-models/error.control-model.ts +1274 -1215
  111. package/src/_models/control-models/http/http-error-response.control-model.spec.ts +116 -116
  112. package/src/_models/control-models/http/http-error-response.control-model.ts +52 -52
  113. package/src/_models/control-models/http/http-headers.control-model.spec.ts +25 -25
  114. package/src/_models/control-models/http/http-headers.control-model.ts +124 -124
  115. package/src/_models/control-models/http/http-response.model-base.spec.ts +46 -46
  116. package/src/_models/control-models/http/http-response.model-base.ts +57 -57
  117. package/src/_models/control-models/poll.control-model.spec.ts +63 -63
  118. package/src/_models/control-models/poll.control-model.ts +151 -151
  119. package/src/_models/control-models/range-value.control-model.spec.ts +187 -187
  120. package/src/_models/control-models/range-value.control-model.ts +289 -289
  121. package/src/_models/control-models/server-status.control-model.spec.ts +66 -66
  122. package/src/_models/control-models/server-status.control-model.ts +85 -85
  123. package/src/_models/control-models/service-endpoint-settings-base.control-model.spec.ts +145 -145
  124. package/src/_models/control-models/service-endpoint-settings-base.control-model.ts +186 -186
  125. package/src/_models/data-models/errors.data-model.spec.ts +71 -71
  126. package/src/_models/data-models/errors.data-model.ts +175 -175
  127. package/src/_models/data-models/metadata.data-model.spec.ts +184 -184
  128. package/src/_models/data-models/metadata.data-model.ts +153 -128
  129. package/src/_models/interfaces/box-bounds.interface.ts +7 -7
  130. package/src/_models/interfaces/environment/global-log-settings.interface.ts +86 -86
  131. package/src/_models/interfaces/environment/global-settings.interface.ts +47 -47
  132. package/src/_models/interfaces/error-defaults.interface.ts +11 -11
  133. package/src/_models/interfaces/paged.interface.ts +12 -12
  134. package/src/_models/interfaces/random-weight.interface.ts +7 -7
  135. package/src/_models/interfaces/route-settings.interface.ts +15 -15
  136. package/src/_models/interfaces/search-query.interface.ts +23 -23
  137. package/src/_models/interfaces/search-result.interface.ts +5 -5
  138. package/src/_models/interfaces/server-error-statistics.interface.ts +24 -24
  139. package/src/_models/interfaces/vector2.interface.ts +20 -20
  140. package/src/_models/types/db-filter.type.ts +110 -110
  141. package/src/_models/types/db-sort.type.ts +4 -4
  142. package/src/_models/types/ds-filter.type.ts +68 -68
  143. package/src/_models/types/ds-sort.type.ts +21 -21
  144. package/src/_modules/ai/_collections/ai-model-ref.util.ts +88 -88
  145. package/src/_modules/ai/_collections/ai-model-registry.util.spec.ts +37 -37
  146. package/src/_modules/ai/_collections/ai-model-registry.util.ts +30 -30
  147. package/src/_modules/ai/_enums/ai-message-role.enum.ts +7 -7
  148. package/src/_modules/ai/_enums/ai-model-type.enum.ts +7 -7
  149. package/src/_modules/ai/_enums/ai-provider.enum.ts +7 -7
  150. package/src/_modules/ai/_models/ai-call-settings.interface.ts +84 -84
  151. package/src/_modules/ai/_models/ai-embedding-request.interface.ts +20 -20
  152. package/src/_modules/ai/_models/ai-embedding-response.interface.ts +26 -26
  153. package/src/_modules/ai/_models/ai-llm-request.interface.ts +24 -24
  154. package/src/_modules/ai/_models/ai-llm-response.interface.ts +30 -30
  155. package/src/_modules/ai/_models/ai-message.interface.ts +12 -12
  156. package/src/_modules/ai/_models/ai-model-capabilities.interface.ts +35 -35
  157. package/src/_modules/ai/_models/ai-model-info.interface.ts +63 -63
  158. package/src/_modules/ai/_models/ai-model-settings-schema.interface.ts +52 -52
  159. package/src/_modules/ai/_models/ai-provider-capabilities.interface.ts +28 -28
  160. package/src/_modules/ai/_models/ai-settings.interface.ts +17 -17
  161. package/src/_modules/ai/_models/ai-tool-call.interface.ts +18 -18
  162. package/src/_modules/ai/_models/ai-tool-handler.type.ts +11 -11
  163. package/src/_modules/ai/_models/ai-tool-result.interface.ts +16 -16
  164. package/src/_modules/ai/_models/ai-tool.interface.ts +16 -16
  165. package/src/_modules/ai/_models/ai-user-provider-config.control-model.ts +29 -29
  166. package/src/_modules/ai/_modules/anthropic/_collections/aai-models.const.ts +81 -81
  167. package/src/_modules/ai/_modules/anthropic/_enums/aai-model.enum.ts +19 -19
  168. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.spec.ts +28 -28
  169. package/src/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.ts +23 -23
  170. package/src/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.ts +10 -10
  171. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.spec.ts +22 -22
  172. package/src/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.ts +27 -27
  173. package/src/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.ts +20 -20
  174. package/src/_modules/ai/_modules/anthropic/index.ts +14 -14
  175. package/src/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.ts +12 -12
  176. package/src/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.ts +22 -22
  177. package/src/_modules/ai/_modules/document-ai/index.ts +4 -4
  178. package/src/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.ts +34 -34
  179. package/src/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.ts +6 -6
  180. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.ts +19 -19
  181. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.ts +11 -11
  182. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.ts +24 -24
  183. package/src/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.ts +20 -20
  184. package/src/_modules/ai/_modules/fdp-ai/index.ts +11 -11
  185. package/src/_modules/ai/_modules/google-ai/_collections/gai-models.const.ts +99 -99
  186. package/src/_modules/ai/_modules/google-ai/_enums/gai-model.enum.ts +16 -16
  187. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.spec.ts +28 -28
  188. package/src/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.ts +21 -21
  189. package/src/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.ts +8 -8
  190. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.spec.ts +22 -22
  191. package/src/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.ts +25 -25
  192. package/src/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.ts +20 -20
  193. package/src/_modules/ai/_modules/google-ai/index.ts +14 -14
  194. package/src/_modules/ai/_modules/local-ai/_collections/lai-models.const.ts +53 -53
  195. package/src/_modules/ai/_modules/local-ai/_enums/lai-model.enum.ts +6 -6
  196. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.spec.ts +28 -28
  197. package/src/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.ts +18 -18
  198. package/src/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.ts +9 -9
  199. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.spec.ts +22 -22
  200. package/src/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.ts +23 -23
  201. package/src/_modules/ai/_modules/local-ai/index.ts +14 -14
  202. package/src/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.ts +7 -7
  203. package/src/_modules/ai/_modules/open-ai/_collections/oai-models.const.ts +252 -252
  204. package/src/_modules/ai/_modules/open-ai/_enums/oai-model.enum.ts +179 -179
  205. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.spec.ts +28 -28
  206. package/src/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.ts +21 -21
  207. package/src/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.ts +81 -81
  208. package/src/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.ts +13 -13
  209. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.spec.ts +22 -22
  210. package/src/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.ts +25 -25
  211. package/src/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.ts +21 -21
  212. package/src/_modules/ai/_modules/open-ai/index.ts +28 -28
  213. package/src/_modules/ai/index.ts +27 -27
  214. package/src/_modules/ci-tools/_enums/cit-ci-result-code.enum.ts +11 -11
  215. package/src/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.ts +9 -9
  216. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.spec.ts +58 -58
  217. package/src/_modules/ci-tools/_models/cit-ci-result-info.data-models.ts +77 -77
  218. package/src/_modules/ci-tools/_models/cit-ci-step-result.interface.ts +12 -12
  219. package/src/_modules/ci-tools/index.ts +8 -8
  220. package/src/_modules/crypto/_collections/crypto.util.simple.spec.ts +512 -512
  221. package/src/_modules/crypto/index.ts +13 -13
  222. package/src/_modules/custom-data/_collections/cud-module-settings.const.ts +21 -21
  223. package/src/_modules/custom-data/_models/cud.data-model.spec.ts +38 -38
  224. package/src/_modules/custom-data/_models/cud.data-model.ts +39 -39
  225. package/src/_modules/custom-data/index.ts +10 -10
  226. package/src/_modules/data-handler/_models/data-handler-settings.control-model.spec.ts +110 -110
  227. package/src/_modules/data-handler/_models/data-handler-settings.control-model.ts +110 -110
  228. package/src/_modules/data-handler/_models/data-handler.control-model.spec.ts +445 -445
  229. package/src/_modules/data-handler/_models/data-handler.control-model.ts +459 -459
  230. package/src/_modules/data-handler/_models/data-list-handler.control-model.spec.ts +263 -263
  231. package/src/_modules/data-handler/_models/data-list-handler.control-model.ts +252 -252
  232. package/src/_modules/data-handler/_models/data-search-handler.control-model.spec.ts +417 -417
  233. package/src/_modules/data-handler/_models/data-search-handler.control-model.ts +390 -390
  234. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.spec.ts +374 -374
  235. package/src/_modules/data-handler/_models/list-collector-data-handler.control-model.ts +274 -274
  236. package/src/_modules/data-handler/index.ts +6 -6
  237. package/src/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -3239
  238. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19035 -19035
  239. package/src/_modules/location/_collections/assets/country-divisions-ISO-3166.json +4993 -4993
  240. package/src/_modules/location/_collections/assets/country-phone-codes.json +1203 -1203
  241. package/src/_modules/location/_collections/assets/country-subdivisions/afghanistan.json +137 -137
  242. package/src/_modules/location/_collections/assets/country-subdivisions/albania.json +49 -49
  243. package/src/_modules/location/_collections/assets/country-subdivisions/algeria.json +193 -193
  244. package/src/_modules/location/_collections/assets/country-subdivisions/andorra.json +29 -29
  245. package/src/_modules/location/_collections/assets/country-subdivisions/angola.json +73 -73
  246. package/src/_modules/location/_collections/assets/country-subdivisions/antigua-and-barbuda.json +33 -33
  247. package/src/_modules/location/_collections/assets/country-subdivisions/argentina.json +97 -97
  248. package/src/_modules/location/_collections/assets/country-subdivisions/armenia.json +45 -45
  249. package/src/_modules/location/_collections/assets/country-subdivisions/australia.json +33 -33
  250. package/src/_modules/location/_collections/assets/country-subdivisions/austria.json +37 -37
  251. package/src/_modules/location/_collections/assets/country-subdivisions/azerbaijan.json +5 -5
  252. package/src/_modules/location/_collections/assets/country-subdivisions/bahamas.json +125 -125
  253. package/src/_modules/location/_collections/assets/country-subdivisions/bahrain.json +21 -21
  254. package/src/_modules/location/_collections/assets/country-subdivisions/bangladesh.json +29 -29
  255. package/src/_modules/location/_collections/assets/country-subdivisions/barbados.json +45 -45
  256. package/src/_modules/location/_collections/assets/country-subdivisions/belarus.json +29 -29
  257. package/src/_modules/location/_collections/assets/country-subdivisions/belgium.json +13 -13
  258. package/src/_modules/location/_collections/assets/country-subdivisions/belize.json +25 -25
  259. package/src/_modules/location/_collections/assets/country-subdivisions/benin.json +49 -49
  260. package/src/_modules/location/_collections/assets/country-subdivisions/bhutan.json +81 -81
  261. package/src/_modules/location/_collections/assets/country-subdivisions/bolivia.json +37 -37
  262. package/src/_modules/location/_collections/assets/country-subdivisions/bosnia-and-herzegovina.json +13 -13
  263. package/src/_modules/location/_collections/assets/country-subdivisions/botswana.json +65 -65
  264. package/src/_modules/location/_collections/assets/country-subdivisions/brazil.json +109 -109
  265. package/src/_modules/location/_collections/assets/country-subdivisions/brunei-darussalam.json +17 -17
  266. package/src/_modules/location/_collections/assets/country-subdivisions/bulgaria.json +113 -113
  267. package/src/_modules/location/_collections/assets/country-subdivisions/burkina-faso.json +53 -53
  268. package/src/_modules/location/_collections/assets/country-subdivisions/burundi.json +69 -69
  269. package/src/_modules/location/_collections/assets/country-subdivisions/cambodia.json +97 -97
  270. package/src/_modules/location/_collections/assets/country-subdivisions/cameroon.json +41 -41
  271. package/src/_modules/location/_collections/assets/country-subdivisions/canada.json +79 -79
  272. package/src/_modules/location/_collections/assets/country-subdivisions/cape-verde.json +9 -9
  273. package/src/_modules/location/_collections/assets/country-subdivisions/central-african-republic.json +69 -69
  274. package/src/_modules/location/_collections/assets/country-subdivisions/chad.json +89 -89
  275. package/src/_modules/location/_collections/assets/country-subdivisions/chile.json +61 -61
  276. package/src/_modules/location/_collections/assets/country-subdivisions/china.json +205 -205
  277. package/src/_modules/location/_collections/assets/country-subdivisions/colombia.json +133 -133
  278. package/src/_modules/location/_collections/assets/country-subdivisions/comoros.json +13 -13
  279. package/src/_modules/location/_collections/assets/country-subdivisions/congo-the-democratic-republic-of-the.json +45 -45
  280. package/src/_modules/location/_collections/assets/country-subdivisions/congo.json +49 -49
  281. package/src/_modules/location/_collections/assets/country-subdivisions/costa-rica.json +29 -29
  282. package/src/_modules/location/_collections/assets/country-subdivisions/cote-d-ivoire-republic-of.json +77 -77
  283. package/src/_modules/location/_collections/assets/country-subdivisions/croatia.json +85 -85
  284. package/src/_modules/location/_collections/assets/country-subdivisions/cuba.json +65 -65
  285. package/src/_modules/location/_collections/assets/country-subdivisions/cyprus.json +25 -25
  286. package/src/_modules/location/_collections/assets/country-subdivisions/czech-republic.json +57 -57
  287. package/src/_modules/location/_collections/assets/country-subdivisions/denmark.json +21 -21
  288. package/src/_modules/location/_collections/assets/country-subdivisions/djibouti.json +25 -25
  289. package/src/_modules/location/_collections/assets/country-subdivisions/dominica.json +41 -41
  290. package/src/_modules/location/_collections/assets/country-subdivisions/dominican-republic.json +41 -41
  291. package/src/_modules/location/_collections/assets/country-subdivisions/ecuador.json +97 -97
  292. package/src/_modules/location/_collections/assets/country-subdivisions/egypt.json +117 -117
  293. package/src/_modules/location/_collections/assets/country-subdivisions/el-salvador.json +57 -57
  294. package/src/_modules/location/_collections/assets/country-subdivisions/equatorial-guinea.json +9 -9
  295. package/src/_modules/location/_collections/assets/country-subdivisions/eritrea.json +25 -25
  296. package/src/_modules/location/_collections/assets/country-subdivisions/estonia.json +61 -61
  297. package/src/_modules/location/_collections/assets/country-subdivisions/ethiopia.json +45 -45
  298. package/src/_modules/location/_collections/assets/country-subdivisions/fiji.json +21 -21
  299. package/src/_modules/location/_collections/assets/country-subdivisions/finland.json +77 -77
  300. package/src/_modules/location/_collections/assets/country-subdivisions/france.json +133 -133
  301. package/src/_modules/location/_collections/assets/country-subdivisions/gabon.json +37 -37
  302. package/src/_modules/location/_collections/assets/country-subdivisions/gambia.json +25 -25
  303. package/src/_modules/location/_collections/assets/country-subdivisions/georgia.json +49 -49
  304. package/src/_modules/location/_collections/assets/country-subdivisions/germany.json +65 -65
  305. package/src/_modules/location/_collections/assets/country-subdivisions/ghana.json +41 -41
  306. package/src/_modules/location/_collections/assets/country-subdivisions/greece.json +53 -53
  307. package/src/_modules/location/_collections/assets/country-subdivisions/greenland.json +17 -17
  308. package/src/_modules/location/_collections/assets/country-subdivisions/grenada.json +29 -29
  309. package/src/_modules/location/_collections/assets/country-subdivisions/guatemala.json +89 -89
  310. package/src/_modules/location/_collections/assets/country-subdivisions/guinea-bissau.json +13 -13
  311. package/src/_modules/location/_collections/assets/country-subdivisions/guinea.json +33 -33
  312. package/src/_modules/location/_collections/assets/country-subdivisions/guyana.json +41 -41
  313. package/src/_modules/location/_collections/assets/country-subdivisions/haiti.json +41 -41
  314. package/src/_modules/location/_collections/assets/country-subdivisions/honduras.json +73 -73
  315. package/src/_modules/location/_collections/assets/country-subdivisions/hong-kong.json +4 -4
  316. package/src/_modules/location/_collections/assets/country-subdivisions/hungary.json +173 -173
  317. package/src/_modules/location/_collections/assets/country-subdivisions/iceland.json +37 -37
  318. package/src/_modules/location/_collections/assets/country-subdivisions/india.json +181 -181
  319. package/src/_modules/location/_collections/assets/country-subdivisions/indonesia.json +29 -29
  320. package/src/_modules/location/_collections/assets/country-subdivisions/iran-islamic-republic-of.json +125 -125
  321. package/src/_modules/location/_collections/assets/country-subdivisions/iraq.json +73 -73
  322. package/src/_modules/location/_collections/assets/country-subdivisions/ireland.json +17 -17
  323. package/src/_modules/location/_collections/assets/country-subdivisions/israel.json +25 -25
  324. package/src/_modules/location/_collections/assets/country-subdivisions/italy.json +81 -81
  325. package/src/_modules/location/_collections/assets/country-subdivisions/jamaica.json +57 -57
  326. package/src/_modules/location/_collections/assets/country-subdivisions/japan.json +189 -189
  327. package/src/_modules/location/_collections/assets/country-subdivisions/jordan.json +49 -49
  328. package/src/_modules/location/_collections/assets/country-subdivisions/kazakhstan.json +65 -65
  329. package/src/_modules/location/_collections/assets/country-subdivisions/kenya.json +33 -33
  330. package/src/_modules/location/_collections/assets/country-subdivisions/kiribati.json +13 -13
  331. package/src/_modules/location/_collections/assets/country-subdivisions/korea-democratic-people-s-republic-of.json +45 -45
  332. package/src/_modules/location/_collections/assets/country-subdivisions/korea-republic-of.json +69 -69
  333. package/src/_modules/location/_collections/assets/country-subdivisions/kuwait.json +25 -25
  334. package/src/_modules/location/_collections/assets/country-subdivisions/kyrgyzstan.json +33 -33
  335. package/src/_modules/location/_collections/assets/country-subdivisions/lao-people-s-democratic-republic.json +73 -73
  336. package/src/_modules/location/_collections/assets/country-subdivisions/latvia.json +477 -477
  337. package/src/_modules/location/_collections/assets/country-subdivisions/lebanon.json +33 -33
  338. package/src/_modules/location/_collections/assets/country-subdivisions/lesotho.json +41 -41
  339. package/src/_modules/location/_collections/assets/country-subdivisions/liberia.json +61 -61
  340. package/src/_modules/location/_collections/assets/country-subdivisions/libyan-arab-jamahiriya.json +89 -89
  341. package/src/_modules/location/_collections/assets/country-subdivisions/liechtenstein.json +45 -45
  342. package/src/_modules/location/_collections/assets/country-subdivisions/lithuania.json +41 -41
  343. package/src/_modules/location/_collections/assets/country-subdivisions/luxembourg.json +13 -13
  344. package/src/_modules/location/_collections/assets/country-subdivisions/macedonia-the-former-yugoslav-republic-of.json +337 -337
  345. package/src/_modules/location/_collections/assets/country-subdivisions/madagascar.json +25 -25
  346. package/src/_modules/location/_collections/assets/country-subdivisions/malawi.json +13 -13
  347. package/src/_modules/location/_collections/assets/country-subdivisions/malaysia.json +81 -81
  348. package/src/_modules/location/_collections/assets/country-subdivisions/maldives.json +33 -33
  349. package/src/_modules/location/_collections/assets/country-subdivisions/mali.json +37 -37
  350. package/src/_modules/location/_collections/assets/country-subdivisions/malta.json +273 -273
  351. package/src/_modules/location/_collections/assets/country-subdivisions/marshall-islands.json +9 -9
  352. package/src/_modules/location/_collections/assets/country-subdivisions/mauritania.json +53 -53
  353. package/src/_modules/location/_collections/assets/country-subdivisions/mauritius.json +69 -69
  354. package/src/_modules/location/_collections/assets/country-subdivisions/mexico.json +161 -161
  355. package/src/_modules/location/_collections/assets/country-subdivisions/micronesia-federated-states-of.json +17 -17
  356. package/src/_modules/location/_collections/assets/country-subdivisions/moldova-republic-of.json +149 -149
  357. package/src/_modules/location/_collections/assets/country-subdivisions/monaco.json +69 -69
  358. package/src/_modules/location/_collections/assets/country-subdivisions/mongolia.json +89 -89
  359. package/src/_modules/location/_collections/assets/country-subdivisions/montenegro.json +93 -93
  360. package/src/_modules/location/_collections/assets/country-subdivisions/morocco.json +65 -65
  361. package/src/_modules/location/_collections/assets/country-subdivisions/mozambique.json +45 -45
  362. package/src/_modules/location/_collections/assets/country-subdivisions/myanmar.json +57 -57
  363. package/src/_modules/location/_collections/assets/country-subdivisions/namibia.json +57 -57
  364. package/src/_modules/location/_collections/assets/country-subdivisions/nauru.json +57 -57
  365. package/src/_modules/location/_collections/assets/country-subdivisions/nepal.json +21 -21
  366. package/src/_modules/location/_collections/assets/country-subdivisions/netherlands.json +91 -91
  367. package/src/_modules/location/_collections/assets/country-subdivisions/new-zealand.json +111 -111
  368. package/src/_modules/location/_collections/assets/country-subdivisions/nicaragua.json +69 -69
  369. package/src/_modules/location/_collections/assets/country-subdivisions/niger.json +33 -33
  370. package/src/_modules/location/_collections/assets/country-subdivisions/nigeria.json +149 -149
  371. package/src/_modules/location/_collections/assets/country-subdivisions/norway.json +85 -85
  372. package/src/_modules/location/_collections/assets/country-subdivisions/oman.json +37 -37
  373. package/src/_modules/location/_collections/assets/country-subdivisions/pakistan.json +33 -33
  374. package/src/_modules/location/_collections/assets/country-subdivisions/palau.json +65 -65
  375. package/src/_modules/location/_collections/assets/country-subdivisions/palestinian-territory-occupied.json +65 -65
  376. package/src/_modules/location/_collections/assets/country-subdivisions/panama.json +53 -53
  377. package/src/_modules/location/_collections/assets/country-subdivisions/papua-new-guinea.json +81 -81
  378. package/src/_modules/location/_collections/assets/country-subdivisions/paraguay.json +73 -73
  379. package/src/_modules/location/_collections/assets/country-subdivisions/peru.json +105 -105
  380. package/src/_modules/location/_collections/assets/country-subdivisions/philippines.json +69 -69
  381. package/src/_modules/location/_collections/assets/country-subdivisions/poland.json +65 -65
  382. package/src/_modules/location/_collections/assets/country-subdivisions/portugal.json +81 -81
  383. package/src/_modules/location/_collections/assets/country-subdivisions/qatar.json +29 -29
  384. package/src/_modules/location/_collections/assets/country-subdivisions/romania.json +169 -169
  385. package/src/_modules/location/_collections/assets/country-subdivisions/russian-federation.json +499 -499
  386. package/src/_modules/location/_collections/assets/country-subdivisions/rwanda.json +21 -21
  387. package/src/_modules/location/_collections/assets/country-subdivisions/saint-helena-ascension-and-tristan-da-cunha.json +13 -13
  388. package/src/_modules/location/_collections/assets/country-subdivisions/saint-kitts-and-nevis.json +9 -9
  389. package/src/_modules/location/_collections/assets/country-subdivisions/saint-lucia.json +45 -45
  390. package/src/_modules/location/_collections/assets/country-subdivisions/saint-vincent-and-the-grenadines.json +25 -25
  391. package/src/_modules/location/_collections/assets/country-subdivisions/samoa.json +45 -45
  392. package/src/_modules/location/_collections/assets/country-subdivisions/san-marino.json +37 -37
  393. package/src/_modules/location/_collections/assets/country-subdivisions/sao-tome-and-principe.json +9 -9
  394. package/src/_modules/location/_collections/assets/country-subdivisions/saudi-arabia.json +53 -53
  395. package/src/_modules/location/_collections/assets/country-subdivisions/senegal.json +57 -57
  396. package/src/_modules/location/_collections/assets/country-subdivisions/serbia.json +9 -9
  397. package/src/_modules/location/_collections/assets/country-subdivisions/seychelles.json +101 -101
  398. package/src/_modules/location/_collections/assets/country-subdivisions/sierra-leone.json +17 -17
  399. package/src/_modules/location/_collections/assets/country-subdivisions/singapore.json +21 -21
  400. package/src/_modules/location/_collections/assets/country-subdivisions/slovakia.json +33 -33
  401. package/src/_modules/location/_collections/assets/country-subdivisions/slovenia.json +841 -841
  402. package/src/_modules/location/_collections/assets/country-subdivisions/solomon-islands.json +41 -41
  403. package/src/_modules/location/_collections/assets/country-subdivisions/somalia.json +73 -73
  404. package/src/_modules/location/_collections/assets/country-subdivisions/south-africa.json +37 -37
  405. package/src/_modules/location/_collections/assets/country-subdivisions/south-sudan.json +41 -41
  406. package/src/_modules/location/_collections/assets/country-subdivisions/spain.json +346 -346
  407. package/src/_modules/location/_collections/assets/country-subdivisions/sri-lanka.json +37 -37
  408. package/src/_modules/location/_collections/assets/country-subdivisions/sudan.json +69 -69
  409. package/src/_modules/location/_collections/assets/country-subdivisions/suriname.json +41 -41
  410. package/src/_modules/location/_collections/assets/country-subdivisions/swaziland.json +17 -17
  411. package/src/_modules/location/_collections/assets/country-subdivisions/sweden.json +85 -85
  412. package/src/_modules/location/_collections/assets/country-subdivisions/switzerland.json +105 -105
  413. package/src/_modules/location/_collections/assets/country-subdivisions/syrian-arab-republic.json +57 -57
  414. package/src/_modules/location/_collections/assets/country-subdivisions/taiwan-province-of-china.json +93 -93
  415. package/src/_modules/location/_collections/assets/country-subdivisions/tajikistan.json +17 -17
  416. package/src/_modules/location/_collections/assets/country-subdivisions/tanzania-united-republic-of.json +105 -105
  417. package/src/_modules/location/_collections/assets/country-subdivisions/thailand.json +313 -313
  418. package/src/_modules/location/_collections/assets/country-subdivisions/timor-leste.json +53 -53
  419. package/src/_modules/location/_collections/assets/country-subdivisions/togo.json +21 -21
  420. package/src/_modules/location/_collections/assets/country-subdivisions/tonga.json +21 -21
  421. package/src/_modules/location/_collections/assets/country-subdivisions/trinidad-and-tobago.json +65 -65
  422. package/src/_modules/location/_collections/assets/country-subdivisions/tunisia.json +97 -97
  423. package/src/_modules/location/_collections/assets/country-subdivisions/turkey.json +325 -325
  424. package/src/_modules/location/_collections/assets/country-subdivisions/turkmenistan.json +25 -25
  425. package/src/_modules/location/_collections/assets/country-subdivisions/tuvalu.json +33 -33
  426. package/src/_modules/location/_collections/assets/country-subdivisions/uganda.json +17 -17
  427. package/src/_modules/location/_collections/assets/country-subdivisions/ukraine.json +109 -109
  428. package/src/_modules/location/_collections/assets/country-subdivisions/united-arab-emirates.json +29 -29
  429. package/src/_modules/location/_collections/assets/country-subdivisions/united-kingdom.json +1196 -1196
  430. package/src/_modules/location/_collections/assets/country-subdivisions/united-states-minor-outlying-islands.json +37 -37
  431. package/src/_modules/location/_collections/assets/country-subdivisions/united-states.json +286 -286
  432. package/src/_modules/location/_collections/assets/country-subdivisions/uruguay.json +77 -77
  433. package/src/_modules/location/_collections/assets/country-subdivisions/uzbekistan.json +57 -57
  434. package/src/_modules/location/_collections/assets/country-subdivisions/vanuatu.json +25 -25
  435. package/src/_modules/location/_collections/assets/country-subdivisions/venezuela.json +101 -101
  436. package/src/_modules/location/_collections/assets/country-subdivisions/viet-nam.json +257 -257
  437. package/src/_modules/location/_collections/assets/country-subdivisions/yemen.json +85 -85
  438. package/src/_modules/location/_collections/assets/country-subdivisions/zambia.json +37 -37
  439. package/src/_modules/location/_collections/assets/country-subdivisions/zimbabwe.json +41 -41
  440. package/src/_modules/location/_collections/loc-country-divisions.const.ts +10 -10
  441. package/src/_modules/location/_collections/loc-country-isos.const.ts +8 -8
  442. package/src/_modules/location/_collections/loc-regions.util.spec.ts +61 -61
  443. package/src/_modules/location/_collections/loc-regions.util.ts +137 -137
  444. package/src/_modules/location/_collections/loc.util.spec.ts +52 -52
  445. package/src/_modules/location/_collections/loc.util.ts +74 -74
  446. package/src/_modules/location/_enums/loc-region.enum.ts +14 -14
  447. package/src/_modules/location/_enums/loc-sub-region.enum.ts +31 -31
  448. package/src/_modules/location/_enums/loc-subdivision-region-type.enum.ts +47 -47
  449. package/src/_modules/location/_models/loc-coordinates.interface.ts +7 -7
  450. package/src/_modules/location/_models/loc-country-division.interface.ts +8 -8
  451. package/src/_modules/location/_models/loc-country-iso.interface.ts +23 -23
  452. package/src/_modules/location/_models/loc-country-phone-code.interface.ts +9 -9
  453. package/src/_modules/location/_models/loc-division-collection.interface.ts +12 -12
  454. package/src/_modules/location/_models/loc-division-region-data.interface.ts +9 -9
  455. package/src/_modules/location/_models/loc-geo-ip-location.interface.ts +27 -27
  456. package/src/_modules/location/index.ts +22 -22
  457. package/src/_modules/messaging/README.md +279 -279
  458. package/src/_modules/messaging/_collections/msg-module-settings.const.ts +46 -46
  459. package/src/_modules/messaging/_enums/msg-attachment-type.enum.ts +26 -26
  460. package/src/_modules/messaging/_enums/msg-delivery-status.enum.ts +17 -17
  461. package/src/_modules/messaging/_enums/msg-event-key.enum.ts +31 -31
  462. package/src/_modules/messaging/_enums/msg-participant-role.enum.ts +20 -20
  463. package/src/_modules/messaging/_enums/msg-provider-type.enum.ts +7 -7
  464. package/src/_modules/messaging/_enums/msg-type.enum.ts +23 -23
  465. package/src/_modules/messaging/_models/msg-attachment.interface.ts +46 -46
  466. package/src/_modules/messaging/_models/msg-conversation.data-model.spec.ts +69 -69
  467. package/src/_modules/messaging/_models/msg-conversation.data-model.ts +96 -96
  468. package/src/_modules/messaging/_models/msg-mention.interface.ts +29 -29
  469. package/src/_modules/messaging/_models/msg-message.data-model.spec.ts +79 -79
  470. package/src/_modules/messaging/_models/msg-message.data-model.ts +127 -127
  471. package/src/_modules/messaging/_models/msg-participant.interface.ts +46 -46
  472. package/src/_modules/messaging/_models/msg-reaction.interface.ts +20 -20
  473. package/src/_modules/messaging/_models/msg-thread-info.interface.ts +35 -35
  474. package/src/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.ts +35 -35
  475. package/src/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.ts +23 -23
  476. package/src/_modules/messaging/_modules/agent/_models/agt-process-step.interface.ts +55 -55
  477. package/src/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.ts +26 -26
  478. package/src/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.ts +37 -37
  479. package/src/_modules/messaging/_modules/agent/index.ts +8 -8
  480. package/src/_modules/messaging/index.ts +28 -28
  481. package/src/_modules/pipe/_collections/pip-transforms.const.ts +42 -42
  482. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.spec.ts +47 -47
  483. package/src/_modules/pipe/_collections/utils/pip-country-pipe.util.ts +41 -41
  484. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.spec.ts +39 -39
  485. package/src/_modules/pipe/_collections/utils/pip-custom-pipe.util.ts +30 -30
  486. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.spec.ts +41 -41
  487. package/src/_modules/pipe/_collections/utils/pip-division-pipe.util.ts +36 -36
  488. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.spec.ts +62 -62
  489. package/src/_modules/pipe/_collections/utils/pip-json-pipe.util.ts +17 -17
  490. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.spec.ts +34 -34
  491. package/src/_modules/pipe/_collections/utils/pip-list-pipe.util.ts +25 -25
  492. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.spec.ts +67 -67
  493. package/src/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.ts +226 -226
  494. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.spec.ts +28 -28
  495. package/src/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.ts +21 -21
  496. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.spec.ts +59 -59
  497. package/src/_modules/pipe/_collections/utils/pip-range-pipe.util.ts +106 -106
  498. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.spec.ts +31 -31
  499. package/src/_modules/pipe/_collections/utils/pip-region-pipe.util.ts +35 -35
  500. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.spec.ts +44 -44
  501. package/src/_modules/pipe/_collections/utils/pip-replace-pipe.util.ts +23 -23
  502. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.spec.ts +21 -21
  503. package/src/_modules/pipe/_collections/utils/pip-slider-pipe.util.ts +33 -33
  504. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.spec.ts +62 -62
  505. package/src/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.ts +80 -80
  506. package/src/_modules/pipe/_enums/pip-range-pipe-setting.enum.ts +15 -15
  507. package/src/_modules/pipe/_enums/pip.enum.ts +65 -65
  508. package/src/_modules/pipe/_models/pip-multi-pipe-settings.type.ts +8 -8
  509. package/src/_modules/pipe/_models/pip-transforms.interface.ts +30 -30
  510. package/src/_modules/pipe/index.ts +30 -30
  511. package/src/_modules/socket/_enums/sck-event-key.enum.ts +21 -21
  512. package/src/_modules/socket/_models/sck-client-params.control-model.spec.ts +67 -67
  513. package/src/_modules/socket/_models/sck-client-params.control-model.ts +50 -50
  514. package/src/_modules/socket/_models/sck-socket-event.control-model.spec.ts +66 -66
  515. package/src/_modules/socket/_models/sck-socket-event.control-model.ts +172 -172
  516. package/src/_modules/socket/_services/sck-client.service-base.spec.ts +99 -99
  517. package/src/_modules/socket/_services/sck-client.service-base.ts +353 -353
  518. package/src/_modules/socket/index.ts +14 -14
  519. package/src/_modules/test/_collections/tst-module-settings.const.ts +67 -67
  520. package/src/_modules/test/index.ts +5 -5
  521. package/src/_modules/usage/_collections/usg-module-settings.const.ts +33 -33
  522. package/src/_modules/usage/_models/usg-action.control-model.spec.ts +27 -27
  523. package/src/_modules/usage/_models/usg-action.control-model.ts +28 -28
  524. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.spec.ts +36 -36
  525. package/src/_modules/usage/_models/usg-daily-usage-data.control-model.ts +35 -35
  526. package/src/_modules/usage/_models/usg-data.control-model.spec.ts +41 -41
  527. package/src/_modules/usage/_models/usg-data.control-model.ts +35 -35
  528. package/src/_modules/usage/_models/usg-session.data-model.spec.ts +97 -97
  529. package/src/_modules/usage/_models/usg-session.data-model.ts +72 -72
  530. package/src/_modules/usage/index.ts +11 -11
  531. package/src/index.ts +104 -104
  532. package/tsconfig.app.json +12 -12
  533. package/tsconfig.json +31 -31
  534. package/tsconfig.test.json +16 -16
  535. package/tslint.json +153 -153
  536. package/pnpm-workspace.yaml +0 -2
@@ -1,300 +1,352 @@
1
- import { DyFM_Log } from '../../_collections/utils/log.util';
2
- import { DyFM_Object } from '../../_collections/utils/object.util';
3
- import { DyFM_getConstructionStackLocation } from '../../_collections/utils/stack.util';
4
- import { DyFM_getBasicPropertyType } from '../../_collections/utils/utilities.util';
5
- import { DyFM_BasicProperty_Type } from '../../_enums/basic-property-type.enum';
6
- import { DyFM_DataModel_Type } from '../../_enums/data-model-type.enum';
7
- import { DyFM_Metadata } from '../data-models/metadata.data-model';
8
- import { DyFM_DataProperties, DyFM_DataProperty_Params } from './data-property-params.control-model';
9
- import { DyFM_Error } from './error.control-model';
10
-
11
- /* export type DyFM_Data_S<T extends DyFM_Metadata> = DyFM_DataModel_Settings<T>;
12
- export type DyFM_Data_Settings<T extends DyFM_Metadata> = DyFM_DataModel_Settings<T>; */
13
- export class DyFM_DataModel_Settings<T extends DyFM_Metadata> extends DyFM_Metadata {
14
- /** this will be used as db table name, therefore it should be in snake_case,
15
- * this also will be used in logs and errors
16
- */
17
- dataName!: string;
18
- modelType?: DyFM_DataModel_Type;
19
-
20
- addArchive?: boolean;
21
-
22
- /**
23
- * If true, the Dynamo NTS will throw an error when trying to modify the data model.
24
- *
25
- * @default false
26
- */
27
- forbidModify?: boolean;
28
-
29
- /**
30
- * If true, the Dynamo NTS will throw an error when trying to delete the data model.
31
- *
32
- * @default false
33
- */
34
- forbidDelete?: boolean;
35
-
36
- /**
37
- * from these settings we will set the data model properties for the DB.
38
- * metadata properties will be added automatically to the data model.
39
- */
40
- properties!: DyFM_DataProperties<T>;
41
- }
42
-
43
- /* export type DyFM_Data_P<T extends DyFM_Metadata> = DyFM_DataModel_Params<T>;
44
- *
45
- * @example
46
- * ```ts
47
- * const params: DyFM_DataModel_Params<DyFM_Metadata> = new DyFM_DataModel_Params({
48
- * dataName: 'User',
49
- * properties: {
50
- * name: { type: DyFM_BasicProperty_Type.string },
51
- * age: { type: DyFM_BasicProperty_Type.number },
52
- * },
53
- * });
54
- */
55
- export class DyFM_DataModel_Params<T extends DyFM_Metadata> extends DyFM_DataModel_Settings<T> {
56
-
57
- /* override properties?: DyFM_DataProperties<T>; */
58
- readonly stackLocation?: string;
59
-
60
- constructor(
61
- set: DyFM_DataModel_Settings<T>
62
- ) {
63
- super(set);
64
-
65
- try {
66
- if (set) {
67
- Object.assign(this, set);
68
- }
69
-
70
- this.stackLocation = DyFM_getConstructionStackLocation();
71
-
72
- if (!this.properties || typeof this.properties !== 'object') {
73
- DyFM_Log.error(
74
- 'DyFM_DataModel_Params.constructor: ' +
75
- `Properties are missing in "${this.dataName}" model.` +
76
- `\nstackLocation: ${this.stackLocation}\n`
77
- );
78
-
79
- this.properties = {} as DyFM_DataProperties<T>;
80
- }
81
-
82
- const keys: string[] = Object.keys(this.properties);
83
- keys.forEach((key: string): void => {
84
- if (!key) {
85
- DyFM_Log.error(
86
- 'DyFM_DataModel_Params.constructor: ' +
87
- `A property key is missing in "${this.dataName}" model.` +
88
- `\nstackLocation: ${this.stackLocation}\n`
89
- );
90
- }
91
-
92
- const propertyParams: DyFM_DataProperty_Params<any, T> = new DyFM_DataProperty_Params({
93
- ...this.properties[key],
94
- key: key,
95
- }, this);
96
- const basicType: DyFM_BasicProperty_Type = DyFM_getBasicPropertyType(propertyParams.type);
97
- if (basicType !== propertyParams.type) {
98
- propertyParams.nonBasicType = propertyParams.type;
99
- propertyParams.type = basicType;
100
- }
101
- this.properties[key] = propertyParams;
102
-
103
- if (propertyParams.subObjectParams) {
104
- this.setKeysForSubObjectParams(propertyParams);
105
- }
106
- });
107
-
108
- keys.forEach((key: string): void => {
109
- const property: DyFM_DataProperty_Params<any, T> = this.properties[key];
110
- /* if (property.vectorizeTo) {
111
- if (!this.properties[property.vectorizeTo]) {
112
- throw new Error(
113
- `Vectorize to property "${property.vectorizeTo}" is not found in ` +
114
- `"${this.dataName}" model.`
115
- );
116
- }
117
-
118
- this.properties[property.vectorizeTo].vectorizeFrom ??= key;
119
- } */
120
-
121
- if (property.vectorizedFrom) {
122
- property.vectorizedFrom.forEach((fromKey: string): void => {
123
- if (!this.properties[fromKey]) {
124
- DyFM_Log.error(
125
- `Vectorized from property "${fromKey}" is not found in ` +
126
- `"${this.dataName}" model.` +
127
- `\nstackLocation: ${this.stackLocation}\n`
128
- );
129
- }
130
-
131
- /* if (!this.properties[fromKey].vectorizeUseIndex) {
132
- DyFM_Log.error(
133
- `Vectorized from property "${fromKey}" has no vectorizeUseIndex in ` +
134
- `"${this.dataName}" model.` +
135
- `\nstackLocation: ${this.stackLocation}\n`
136
- );
137
- } */
138
-
139
- /* if (
140
- (this.properties[fromKey] as DyFM_DataProperty_Params<any>)?.type !== DyFM_BasicProperty_Type.string
141
- ) {
142
- DyFM_Log.error(
143
- `Vectorized from property "${property.vectorizedFrom}" is not a string property in ` +
144
- `"${this.dataName}" model.` +
145
- `\nstackLocation: ${this.stackLocation}\n`
146
- );
147
- } */
148
- });
149
-
150
- /* this.properties[property.vectorizedFrom].vectorizeTo ??= key; */
151
-
152
- if (property.type !== DyFM_BasicProperty_Type.array) {
153
- DyFM_Log.error(
154
- `Vectorized from property "${property.vectorizedFrom}" is not a number[] property in ` +
155
- `"${this.dataName}" model.` +
156
- `\nstackLocation: ${this.stackLocation}\n`
157
- );
158
- }
159
-
160
- if (property.nonBasicType !== 'number[]') {
161
- DyFM_Log.error(
162
- `Vectorized from property "${property.vectorizedFrom}" is not a number[] property in ` +
163
- `"${this.dataName}" model.` +
164
- `\nstackLocation: ${this.stackLocation}\n`
165
- );
166
- }
167
-
168
- if (!property.vectorizeUseIndex) {
169
- DyFM_Log.error(
170
- 'vectorizeUseIndex is required if vectorizedFrom is set. ' +
171
- `"${this.dataName}" model.` +
172
- `\nstackLocation: ${this.stackLocation}\n`
173
- );
174
- }
175
-
176
- if (property.index) {
177
- /** {@link DyFM_DataProperty_Params.vectorizeUseIndex} */
178
- DyFM_Log.warn(
179
- `index is not recommended to be set for vectorized properties in ` +
180
- `"${this.dataName}" model. ` +
181
- `\n(you should set it in the Atlas and vectorizeUseIndex, ` +
182
- `more info at DyFM_DataProperty_Params.vectorizeUseIndex))` +
183
- `\nstackLocation: ${this.stackLocation}\n`
184
- );
185
- }
186
-
187
- /* if (!this.properties[property.vectorizeUseIndex]) {
188
- throw new Error(
189
- `vectorizeUseIndex property "${property.vectorizeUseIndex}" is not found in ` +
190
- `"${this.dataName}" model.` +
191
- `\nstackLocation: ${this.stackLocation}\n`
192
- );
193
- }
194
-
195
- if (!(this.properties[property.vectorizeUseIndex] as DyFM_DataProperty_Params<any>).index) {
196
- throw new Error(
197
- `vectorizeUseIndex property "${property.vectorizeUseIndex}" is not an ` +
198
- `index property in "${this.dataName}" model.` +
199
- `\nstackLocation: ${this.stackLocation}`
200
- );
201
- } */
202
- }
203
- });
204
-
205
- if (!this?.modelType || this?.modelType == DyFM_DataModel_Type.data) {
206
- this.modelType = DyFM_DataModel_Type.data;
207
- }
208
-
209
- /* if (!this.dbName && this?.modelType == DyFM_DataModel_Type.data) {
210
- // upper case first letter
211
- this.dbName = this.dataName.charAt(0).toUpperCase() + this.dataName.slice(1);
212
-
213
- this.dbName.split('').forEach((char: string, index: number): void => {
214
- if (
215
- index > 0 &&
216
- this.dbName[index - 1] === '_' &&
217
- char === char.toUpperCase()
218
- ) {
219
- this.dbName = this.dbName.slice(0, index) +
220
- char.toLowerCase() +
221
- this.dbName.slice(index + 1);
222
- }
223
- });
224
- } */
225
-
226
- if (!this.dataName) {
227
- DyFM_Log.error(
228
- 'DyFM_DataModel_Params.constructor: ' +
229
- `dataName is missing in "${this.dataName}" model.` +
230
- `\nstackLocation: ${this.stackLocation}\n`
231
- );
232
- this.dataName = 'UNNAMED_MODEL';
233
- }
234
-
235
- // check for any Uppercase letters in dbName (not needed cos can be DyNAny_something_like_this)
236
- /* if (RegExp(/[A-Z]/).exec(this.dataName)) {
237
- DyFM_Log.warn(
238
- 'DyFM_DataModel_Params.constructor: ' +
239
- `dbName should be in snake_case in "${this.dataName}" model.` +
240
- 'For future compatibility.' +
241
- `\nstackLocation: ${this.stackLocation}\n`
242
- );
243
- } */
244
-
245
- if (this.dataName.includes('-')) {
246
- DyFM_Log.warn(
247
- 'DyFM_DataModel_Params.constructor: ' +
248
- `dataName should be in snake_case in "${this.dataName}" model.` +
249
- 'For future compatibility.' +
250
- `\nstackLocation: ${this.stackLocation}\n`
251
- );
252
- }
253
-
254
- DyFM_Object.cleanObject(this);
255
- } catch (error) {
256
- DyFM_Error.logSimple('DyFM_DataModel_Params.constructor error:', error);
257
- DyFM_Log.warn(
258
- 'Due to the error, the Params contruction failed, therefore the model is not constructed properly. ' +
259
- `("${this.dataName}" model)` +
260
- `\nstackLocation: ${this.stackLocation}`
261
- );
262
- /* DyFM_Log.error(
263
- 'DyFM_DataModel_Params.constructor: ' +
264
- `An error occurred while constructing the "${this.dataName}" model.` +
265
- `\nstackLocation: ${this.stackLocation}\n`
266
- ); */
267
- }
268
- }
269
-
270
- constructed?(): boolean {
271
- return true;
272
- }
273
-
274
- setKeysForSubObjectParams?(property: DyFM_DataProperty_Params<any, T>): void {
275
- if (property.subObjectParams) {
276
- Object.keys(property.subObjectParams).forEach((key: string): void => {
277
- if (!key) {
278
- DyFM_Log.error(
279
- 'DyFM_DataModel_Params.setKeysForSubObjectParams: ' +
280
- `A subObjectParams key is missing in "${this.dataName}" model.` +
281
- `\nstackLocation: ${this.stackLocation}\n`
282
- );
283
- }
284
-
285
- const subObjectPropertyParams: DyFM_DataProperty_Params<any, T> = property.subObjectParams[key];
286
-
287
- subObjectPropertyParams.key = key;
288
- const basicType: DyFM_BasicProperty_Type = DyFM_getBasicPropertyType(subObjectPropertyParams.type);
289
- if (basicType !== subObjectPropertyParams.type) {
290
- subObjectPropertyParams.nonBasicType = subObjectPropertyParams.type;
291
- subObjectPropertyParams.type = basicType;
292
- }
293
-
294
- if (subObjectPropertyParams.subObjectParams) {
295
- this.setKeysForSubObjectParams(subObjectPropertyParams);
296
- }
297
- });
298
- }
299
- }
300
- }
1
+ import { DyFM_Log } from '../../_collections/utils/log.util';
2
+ import { DyFM_Object } from '../../_collections/utils/object.util';
3
+ import { DyFM_getConstructionStackLocation } from '../../_collections/utils/stack.util';
4
+ import { DyFM_getBasicPropertyType } from '../../_collections/utils/utilities.util';
5
+ import { DyFM_BasicProperty_Type } from '../../_enums/basic-property-type.enum';
6
+ import { DyFM_DataModel_Type } from '../../_enums/data-model-type.enum';
7
+ import { DyFM_Metadata } from '../data-models/metadata.data-model';
8
+ import { DyFM_DataProperties, DyFM_DataProperty_Params } from './data-property-params.control-model';
9
+ import { DyFM_Error } from './error.control-model';
10
+
11
+ /**
12
+ * FR-258 / SR-1 declarative automatic document retention.
13
+ *
14
+ * When a data-model declares `retention`, `DyNTS_App` startup installs a MongoDB TTL index on
15
+ * the record's `__created` Date field, so MongoDB NATIVELY auto-deletes documents older than the
16
+ * configured age. This is the fleet-wide defense against the unbounded-collection-growth class:
17
+ * a collection that grows without bound (logs / history / events / metrics / reports / archives)
18
+ * and is then loaded by an unbounded find pulls 100s of MB into heap → GC-thrash → OOM. TTL keeps
19
+ * the collection bounded with ZERO app-level loading.
20
+ *
21
+ * Declare EITHER `retentionDays` OR `ttlSeconds` (`ttlSeconds` wins if both are set).
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const params = new DyFM_DataModel_Params<MyLog>({
26
+ * dataName: 'my_log',
27
+ * retention: { retentionDays: 14 }, // auto-delete 14 days after creation
28
+ * properties: { ... },
29
+ * });
30
+ * ```
31
+ */
32
+ export interface DyFM_RetentionSettings {
33
+ /** Auto-delete documents this many days after their `__created` timestamp. */
34
+ retentionDays?: number;
35
+ /** Explicit TTL in seconds; takes precedence over `retentionDays`. */
36
+ ttlSeconds?: number;
37
+ }
38
+
39
+ /**
40
+ * Resolve a {@link DyFM_RetentionSettings} to a positive integer TTL in seconds, or `undefined`
41
+ * when no valid retention is configured (→ no TTL index is installed). `ttlSeconds` wins over
42
+ * `retentionDays`; non-finite or ≤ 0 values are rejected. Pure + side-effect-free (unit-tested).
43
+ */
44
+ export function DyFM_resolveRetentionTtlSeconds(retention?: DyFM_RetentionSettings): number | undefined {
45
+ if (!retention) { return undefined; }
46
+ const raw: number | undefined =
47
+ retention.ttlSeconds !== undefined ? retention.ttlSeconds
48
+ : retention.retentionDays !== undefined ? retention.retentionDays * 86400
49
+ : undefined;
50
+ if (raw === undefined || !Number.isFinite(raw) || raw <= 0) { return undefined; }
51
+ return Math.floor(raw);
52
+ }
53
+
54
+ /* export type DyFM_Data_S<T extends DyFM_Metadata> = DyFM_DataModel_Settings<T>;
55
+ export type DyFM_Data_Settings<T extends DyFM_Metadata> = DyFM_DataModel_Settings<T>; */
56
+ export class DyFM_DataModel_Settings<T extends DyFM_Metadata> extends DyFM_Metadata {
57
+ /** this will be used as db table name, therefore it should be in snake_case,
58
+ * this also will be used in logs and errors
59
+ */
60
+ dataName!: string;
61
+ modelType?: DyFM_DataModel_Type;
62
+
63
+ addArchive?: boolean;
64
+
65
+ /**
66
+ * If true, the Dynamo NTS will throw an error when trying to modify the data model.
67
+ *
68
+ * @default false
69
+ */
70
+ forbidModify?: boolean;
71
+
72
+ /**
73
+ * If true, the Dynamo NTS will throw an error when trying to delete the data model.
74
+ *
75
+ * @default false
76
+ */
77
+ forbidDelete?: boolean;
78
+
79
+ /**
80
+ * FR-258 / SR-1 — declarative automatic retention. If set, `DyNTS_App` startup creates a
81
+ * MongoDB TTL index on `__created`, so MongoDB auto-deletes documents older than the configured
82
+ * age (no app-level load → prevents the unbounded-growth → OOM class). See {@link DyFM_RetentionSettings}.
83
+ *
84
+ * @example { retentionDays: 14 }
85
+ */
86
+ retention?: DyFM_RetentionSettings;
87
+
88
+ /**
89
+ * from these settings we will set the data model properties for the DB.
90
+ * metadata properties will be added automatically to the data model.
91
+ */
92
+ properties!: DyFM_DataProperties<T>;
93
+ }
94
+
95
+ /* export type DyFM_Data_P<T extends DyFM_Metadata> = DyFM_DataModel_Params<T>;
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * const params: DyFM_DataModel_Params<DyFM_Metadata> = new DyFM_DataModel_Params({
100
+ * dataName: 'User',
101
+ * properties: {
102
+ * name: { type: DyFM_BasicProperty_Type.string },
103
+ * age: { type: DyFM_BasicProperty_Type.number },
104
+ * },
105
+ * });
106
+ */
107
+ export class DyFM_DataModel_Params<T extends DyFM_Metadata> extends DyFM_DataModel_Settings<T> {
108
+
109
+ /* override properties?: DyFM_DataProperties<T>; */
110
+ readonly stackLocation?: string;
111
+
112
+ constructor(
113
+ set: DyFM_DataModel_Settings<T>
114
+ ) {
115
+ super(set);
116
+
117
+ try {
118
+ if (set) {
119
+ Object.assign(this, set);
120
+ }
121
+
122
+ this.stackLocation = DyFM_getConstructionStackLocation();
123
+
124
+ if (!this.properties || typeof this.properties !== 'object') {
125
+ DyFM_Log.error(
126
+ 'DyFM_DataModel_Params.constructor: ' +
127
+ `Properties are missing in "${this.dataName}" model.` +
128
+ `\nstackLocation: ${this.stackLocation}\n`
129
+ );
130
+
131
+ this.properties = {} as DyFM_DataProperties<T>;
132
+ }
133
+
134
+ const keys: string[] = Object.keys(this.properties);
135
+ keys.forEach((key: string): void => {
136
+ if (!key) {
137
+ DyFM_Log.error(
138
+ 'DyFM_DataModel_Params.constructor: ' +
139
+ `A property key is missing in "${this.dataName}" model.` +
140
+ `\nstackLocation: ${this.stackLocation}\n`
141
+ );
142
+ }
143
+
144
+ const propertyParams: DyFM_DataProperty_Params<any, T> = new DyFM_DataProperty_Params({
145
+ ...this.properties[key],
146
+ key: key,
147
+ }, this);
148
+ const basicType: DyFM_BasicProperty_Type = DyFM_getBasicPropertyType(propertyParams.type);
149
+ if (basicType !== propertyParams.type) {
150
+ propertyParams.nonBasicType = propertyParams.type;
151
+ propertyParams.type = basicType;
152
+ }
153
+ this.properties[key] = propertyParams;
154
+
155
+ if (propertyParams.subObjectParams) {
156
+ this.setKeysForSubObjectParams(propertyParams);
157
+ }
158
+ });
159
+
160
+ keys.forEach((key: string): void => {
161
+ const property: DyFM_DataProperty_Params<any, T> = this.properties[key];
162
+ /* if (property.vectorizeTo) {
163
+ if (!this.properties[property.vectorizeTo]) {
164
+ throw new Error(
165
+ `Vectorize to property "${property.vectorizeTo}" is not found in ` +
166
+ `"${this.dataName}" model.`
167
+ );
168
+ }
169
+
170
+ this.properties[property.vectorizeTo].vectorizeFrom ??= key;
171
+ } */
172
+
173
+ if (property.vectorizedFrom) {
174
+ property.vectorizedFrom.forEach((fromKey: string): void => {
175
+ if (!this.properties[fromKey]) {
176
+ DyFM_Log.error(
177
+ `Vectorized from property "${fromKey}" is not found in ` +
178
+ `"${this.dataName}" model.` +
179
+ `\nstackLocation: ${this.stackLocation}\n`
180
+ );
181
+ }
182
+
183
+ /* if (!this.properties[fromKey].vectorizeUseIndex) {
184
+ DyFM_Log.error(
185
+ `Vectorized from property "${fromKey}" has no vectorizeUseIndex in ` +
186
+ `"${this.dataName}" model.` +
187
+ `\nstackLocation: ${this.stackLocation}\n`
188
+ );
189
+ } */
190
+
191
+ /* if (
192
+ (this.properties[fromKey] as DyFM_DataProperty_Params<any>)?.type !== DyFM_BasicProperty_Type.string
193
+ ) {
194
+ DyFM_Log.error(
195
+ `Vectorized from property "${property.vectorizedFrom}" is not a string property in ` +
196
+ `"${this.dataName}" model.` +
197
+ `\nstackLocation: ${this.stackLocation}\n`
198
+ );
199
+ } */
200
+ });
201
+
202
+ /* this.properties[property.vectorizedFrom].vectorizeTo ??= key; */
203
+
204
+ if (property.type !== DyFM_BasicProperty_Type.array) {
205
+ DyFM_Log.error(
206
+ `Vectorized from property "${property.vectorizedFrom}" is not a number[] property in ` +
207
+ `"${this.dataName}" model.` +
208
+ `\nstackLocation: ${this.stackLocation}\n`
209
+ );
210
+ }
211
+
212
+ if (property.nonBasicType !== 'number[]') {
213
+ DyFM_Log.error(
214
+ `Vectorized from property "${property.vectorizedFrom}" is not a number[] property in ` +
215
+ `"${this.dataName}" model.` +
216
+ `\nstackLocation: ${this.stackLocation}\n`
217
+ );
218
+ }
219
+
220
+ if (!property.vectorizeUseIndex) {
221
+ DyFM_Log.error(
222
+ 'vectorizeUseIndex is required if vectorizedFrom is set. ' +
223
+ `"${this.dataName}" model.` +
224
+ `\nstackLocation: ${this.stackLocation}\n`
225
+ );
226
+ }
227
+
228
+ if (property.index) {
229
+ /** {@link DyFM_DataProperty_Params.vectorizeUseIndex} */
230
+ DyFM_Log.warn(
231
+ `index is not recommended to be set for vectorized properties in ` +
232
+ `"${this.dataName}" model. ` +
233
+ `\n(you should set it in the Atlas and vectorizeUseIndex, ` +
234
+ `more info at DyFM_DataProperty_Params.vectorizeUseIndex))` +
235
+ `\nstackLocation: ${this.stackLocation}\n`
236
+ );
237
+ }
238
+
239
+ /* if (!this.properties[property.vectorizeUseIndex]) {
240
+ throw new Error(
241
+ `vectorizeUseIndex property "${property.vectorizeUseIndex}" is not found in ` +
242
+ `"${this.dataName}" model.` +
243
+ `\nstackLocation: ${this.stackLocation}\n`
244
+ );
245
+ }
246
+
247
+ if (!(this.properties[property.vectorizeUseIndex] as DyFM_DataProperty_Params<any>).index) {
248
+ throw new Error(
249
+ `vectorizeUseIndex property "${property.vectorizeUseIndex}" is not an ` +
250
+ `index property in "${this.dataName}" model.` +
251
+ `\nstackLocation: ${this.stackLocation}`
252
+ );
253
+ } */
254
+ }
255
+ });
256
+
257
+ if (!this?.modelType || this?.modelType == DyFM_DataModel_Type.data) {
258
+ this.modelType = DyFM_DataModel_Type.data;
259
+ }
260
+
261
+ /* if (!this.dbName && this?.modelType == DyFM_DataModel_Type.data) {
262
+ // upper case first letter
263
+ this.dbName = this.dataName.charAt(0).toUpperCase() + this.dataName.slice(1);
264
+
265
+ this.dbName.split('').forEach((char: string, index: number): void => {
266
+ if (
267
+ index > 0 &&
268
+ this.dbName[index - 1] === '_' &&
269
+ char === char.toUpperCase()
270
+ ) {
271
+ this.dbName = this.dbName.slice(0, index) +
272
+ char.toLowerCase() +
273
+ this.dbName.slice(index + 1);
274
+ }
275
+ });
276
+ } */
277
+
278
+ if (!this.dataName) {
279
+ DyFM_Log.error(
280
+ 'DyFM_DataModel_Params.constructor: ' +
281
+ `dataName is missing in "${this.dataName}" model.` +
282
+ `\nstackLocation: ${this.stackLocation}\n`
283
+ );
284
+ this.dataName = 'UNNAMED_MODEL';
285
+ }
286
+
287
+ // check for any Uppercase letters in dbName (not needed cos can be DyNAny_something_like_this)
288
+ /* if (RegExp(/[A-Z]/).exec(this.dataName)) {
289
+ DyFM_Log.warn(
290
+ 'DyFM_DataModel_Params.constructor: ' +
291
+ `dbName should be in snake_case in "${this.dataName}" model.` +
292
+ 'For future compatibility.' +
293
+ `\nstackLocation: ${this.stackLocation}\n`
294
+ );
295
+ } */
296
+
297
+ if (this.dataName.includes('-')) {
298
+ DyFM_Log.warn(
299
+ 'DyFM_DataModel_Params.constructor: ' +
300
+ `dataName should be in snake_case in "${this.dataName}" model.` +
301
+ 'For future compatibility.' +
302
+ `\nstackLocation: ${this.stackLocation}\n`
303
+ );
304
+ }
305
+
306
+ DyFM_Object.cleanObject(this);
307
+ } catch (error) {
308
+ DyFM_Error.logSimple('DyFM_DataModel_Params.constructor error:', error);
309
+ DyFM_Log.warn(
310
+ 'Due to the error, the Params contruction failed, therefore the model is not constructed properly. ' +
311
+ `("${this.dataName}" model)` +
312
+ `\nstackLocation: ${this.stackLocation}`
313
+ );
314
+ /* DyFM_Log.error(
315
+ 'DyFM_DataModel_Params.constructor: ' +
316
+ `An error occurred while constructing the "${this.dataName}" model.` +
317
+ `\nstackLocation: ${this.stackLocation}\n`
318
+ ); */
319
+ }
320
+ }
321
+
322
+ constructed?(): boolean {
323
+ return true;
324
+ }
325
+
326
+ setKeysForSubObjectParams?(property: DyFM_DataProperty_Params<any, T>): void {
327
+ if (property.subObjectParams) {
328
+ Object.keys(property.subObjectParams).forEach((key: string): void => {
329
+ if (!key) {
330
+ DyFM_Log.error(
331
+ 'DyFM_DataModel_Params.setKeysForSubObjectParams: ' +
332
+ `A subObjectParams key is missing in "${this.dataName}" model.` +
333
+ `\nstackLocation: ${this.stackLocation}\n`
334
+ );
335
+ }
336
+
337
+ const subObjectPropertyParams: DyFM_DataProperty_Params<any, T> = property.subObjectParams[key];
338
+
339
+ subObjectPropertyParams.key = key;
340
+ const basicType: DyFM_BasicProperty_Type = DyFM_getBasicPropertyType(subObjectPropertyParams.type);
341
+ if (basicType !== subObjectPropertyParams.type) {
342
+ subObjectPropertyParams.nonBasicType = subObjectPropertyParams.type;
343
+ subObjectPropertyParams.type = basicType;
344
+ }
345
+
346
+ if (subObjectPropertyParams.subObjectParams) {
347
+ this.setKeysForSubObjectParams(subObjectPropertyParams);
348
+ }
349
+ });
350
+ }
351
+ }
352
+ }