@futdevpro/fsm-dynamo 1.20.92 → 1.20.94

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 (437) hide show
  1. package/build/_models/control-models/data-model-params.control-model.d.ts +0 -1
  2. package/build/_models/control-models/data-model-params.control-model.d.ts.map +1 -1
  3. package/build/_models/control-models/data-model-params.control-model.js +1 -4
  4. package/build/_models/control-models/data-model-params.control-model.js.map +1 -1
  5. package/build/_models/control-models/data-property-params.control-model.d.ts +0 -1
  6. package/build/_models/control-models/data-property-params.control-model.d.ts.map +1 -1
  7. package/build/_models/control-models/data-property-params.control-model.js +1 -4
  8. package/build/_models/control-models/data-property-params.control-model.js.map +1 -1
  9. package/build/_models/control-models/service-endpoint-settings-base.control-model.d.ts +0 -1
  10. package/build/_models/control-models/service-endpoint-settings-base.control-model.d.ts.map +1 -1
  11. package/build/_models/control-models/service-endpoint-settings-base.control-model.js +4 -4
  12. package/build/_models/control-models/service-endpoint-settings-base.control-model.js.map +1 -1
  13. package/build/_modules/data-handler/_models/data-handler-settings.control-model.d.ts +0 -3
  14. package/build/_modules/data-handler/_models/data-handler-settings.control-model.d.ts.map +1 -1
  15. package/build/_modules/data-handler/_models/data-handler-settings.control-model.js +4 -10
  16. package/build/_modules/data-handler/_models/data-handler-settings.control-model.js.map +1 -1
  17. package/build/_modules/data-handler/_models/data-list-handler.control-model.d.ts +1 -1
  18. package/build/_modules/data-handler/_models/data-list-handler.control-model.d.ts.map +1 -1
  19. package/build/_modules/data-handler/_models/data-search-handler.control-model.d.ts +1 -1
  20. package/build/_modules/data-handler/_models/data-search-handler.control-model.d.ts.map +1 -1
  21. package/build/_modules/data-handler/_models/list-collector-data-handler.control-model.d.ts +1 -1
  22. package/build/_modules/data-handler/_models/list-collector-data-handler.control-model.d.ts.map +1 -1
  23. package/build/_modules/data-handler/index.d.ts +3 -0
  24. package/build/_modules/data-handler/index.d.ts.map +1 -1
  25. package/build/_modules/data-handler/index.js +3 -0
  26. package/build/_modules/data-handler/index.js.map +1 -1
  27. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.d.ts +0 -3
  28. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.d.ts.map +1 -1
  29. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js +4 -10
  30. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js.map +1 -1
  31. package/build/_modules/ngx-models/index.d.ts +3 -0
  32. package/build/_modules/ngx-models/index.d.ts.map +1 -1
  33. package/build/_modules/ngx-models/index.js +3 -0
  34. package/build/_modules/ngx-models/index.js.map +1 -1
  35. package/build/index.d.ts +3 -0
  36. package/build/index.d.ts.map +1 -1
  37. package/build/index.js +3 -0
  38. package/build/index.js.map +1 -1
  39. package/build-esm/_collections/constants/data-sizes.const.js +37 -0
  40. package/build-esm/_collections/constants/error-defaults.const.js +17 -0
  41. package/build-esm/_collections/constants/global-settings.const.js +17 -0
  42. package/build-esm/_collections/constants/numbers.const.js +36 -0
  43. package/build-esm/_collections/constants/times.const.js +38 -0
  44. package/build-esm/_collections/utils/array.util.js +632 -0
  45. package/build-esm/_collections/utils/async.util.js +183 -0
  46. package/build-esm/_collections/utils/data.util.js +203 -0
  47. package/build-esm/_collections/utils/extract-error-message.util.js +183 -0
  48. package/build-esm/_collections/utils/json-error-helper.util.js +251 -0
  49. package/build-esm/_collections/utils/log.util.js +555 -0
  50. package/build-esm/_collections/utils/math/box-bounds.util.js +159 -0
  51. package/build-esm/_collections/utils/math/math.util.js +183 -0
  52. package/build-esm/_collections/utils/math/random.util.js +117 -0
  53. package/build-esm/_collections/utils/math/trigonometry.util.js +89 -0
  54. package/build-esm/_collections/utils/math/vector2.util.js +587 -0
  55. package/build-esm/_collections/utils/object.util.js +591 -0
  56. package/build-esm/_collections/utils/operation-authz.util.js +136 -0
  57. package/build-esm/_collections/utils/operation-guardrails.util.js +220 -0
  58. package/build-esm/_collections/utils/operation-run.util.js +81 -0
  59. package/build-esm/_collections/utils/operation-schema.util.js +159 -0
  60. package/build-esm/_collections/utils/regex/password-regex.util.js +56 -0
  61. package/build-esm/_collections/utils/regex/regex.util.js +1 -0
  62. package/build-esm/_collections/utils/regex/username-regex.util.js +28 -0
  63. package/build-esm/_collections/utils/require-env.util.js +90 -0
  64. package/build-esm/_collections/utils/round-list.util.js +108 -0
  65. package/build-esm/_collections/utils/secret-mask.util.js +219 -0
  66. package/build-esm/_collections/utils/stack.util.js +126 -0
  67. package/build-esm/_collections/utils/string-case.util.js +332 -0
  68. package/build-esm/_collections/utils/string.util.js +366 -0
  69. package/build-esm/_collections/utils/time.util.js +431 -0
  70. package/build-esm/_collections/utils/type-cloning-facility.util.js +122 -0
  71. package/build-esm/_collections/utils/utilities.util.js +61 -0
  72. package/build-esm/_collections/utils/uuid.util.js +33 -0
  73. package/build-esm/_enums/basic-property-type.enum.js +18 -0
  74. package/build-esm/_enums/data-model-type.enum.js +24 -0
  75. package/build-esm/_enums/environment-flag.enum.js +26 -0
  76. package/build-esm/_enums/error-level.enum.js +35 -0
  77. package/build-esm/_enums/error-status.enum.js +28 -0
  78. package/build-esm/_enums/http/http-call-type.enum.js +42 -0
  79. package/build-esm/_enums/http/http-event-type.enum.js +39 -0
  80. package/build-esm/_enums/http/http-response-type.enum.js +18 -0
  81. package/build-esm/_enums/log-style.enum.js +38 -0
  82. package/build-esm/_enums/operation-auth.type-enum.js +19 -0
  83. package/build-esm/_enums/operation-if-match.type-enum.js +17 -0
  84. package/build-esm/_enums/operation-patch-field.type-enum.js +40 -0
  85. package/build-esm/_enums/server-connection-status.enum.js +5 -0
  86. package/build-esm/_enums/time/day-of-week.enum.js +47 -0
  87. package/build-esm/_enums/time/month.enum.js +23 -0
  88. package/build-esm/_enums/time/relative-date.enum.js +19 -0
  89. package/build-esm/_models/control-models/data-model-params.control-model.js +259 -0
  90. package/build-esm/_models/control-models/data-model-settings.control-model.js +63 -0
  91. package/build-esm/_models/control-models/data-property-params.control-model.js +101 -0
  92. package/build-esm/_models/control-models/data-property-settings.control-model.js +61 -0
  93. package/build-esm/_models/control-models/error.control-model.js +787 -0
  94. package/build-esm/_models/control-models/http/http-error-response.control-model.js +48 -0
  95. package/build-esm/_models/control-models/http/http-headers.control-model.js +43 -0
  96. package/build-esm/_models/control-models/http/http-response.model-base.js +62 -0
  97. package/build-esm/_models/control-models/operation-context.control-model.js +110 -0
  98. package/build-esm/_models/control-models/operation-settings.control-model.js +184 -0
  99. package/build-esm/_models/control-models/poll.control-model.js +202 -0
  100. package/build-esm/_models/control-models/range-value.control-model.js +247 -0
  101. package/build-esm/_models/control-models/server-route-settings-base.control-model.js +19 -0
  102. package/build-esm/_models/control-models/server-status.control-model.js +73 -0
  103. package/build-esm/_models/control-models/service-endpoint-settings-base.control-model.js +110 -0
  104. package/build-esm/_models/data-models/errors.data-model.js +156 -0
  105. package/build-esm/_models/data-models/metadata.data-model.js +120 -0
  106. package/build-esm/_models/interfaces/box-bounds.interface.js +1 -0
  107. package/build-esm/_models/interfaces/environment/global-log-settings.interface.js +1 -0
  108. package/build-esm/_models/interfaces/environment/global-settings.interface.js +1 -0
  109. package/build-esm/_models/interfaces/error-defaults.interface.js +1 -0
  110. package/build-esm/_models/interfaces/operation-authz-result.interface.js +1 -0
  111. package/build-esm/_models/interfaces/operation-authz.interface.js +1 -0
  112. package/build-esm/_models/interfaces/operation-exposure.interface.js +1 -0
  113. package/build-esm/_models/interfaces/operation-guardrails.interface.js +1 -0
  114. package/build-esm/_models/interfaces/operation-input-settings.interface.js +1 -0
  115. package/build-esm/_models/interfaces/operation-json-schema.interface.js +1 -0
  116. package/build-esm/_models/interfaces/operation-patch-field.interface.js +1 -0
  117. package/build-esm/_models/interfaces/operation-patch-result.interface.js +1 -0
  118. package/build-esm/_models/interfaces/operation-patch-violation.interface.js +1 -0
  119. package/build-esm/_models/interfaces/operation-run-result.interface.js +1 -0
  120. package/build-esm/_models/interfaces/paged.interface.js +1 -0
  121. package/build-esm/_models/interfaces/poll-handle.interface.js +1 -0
  122. package/build-esm/_models/interfaces/random-weight.interface.js +1 -0
  123. package/build-esm/_models/interfaces/route-settings.interface.js +1 -0
  124. package/build-esm/_models/interfaces/search-query.interface.js +1 -0
  125. package/build-esm/_models/interfaces/search-result.interface.js +1 -0
  126. package/build-esm/_models/interfaces/server-error-statistics.interface.js +1 -0
  127. package/build-esm/_models/interfaces/vector2.interface.js +1 -0
  128. package/build-esm/_models/types/db-filter.type.js +1 -0
  129. package/build-esm/_models/types/db-sort.type.js +1 -0
  130. package/build-esm/_models/types/deprecated-boolean-alias.type.js +1 -0
  131. package/build-esm/_models/types/ds-filter.type.js +15 -0
  132. package/build-esm/_models/types/ds-sort.type.js +1 -0
  133. package/build-esm/_modules/ai/_collections/ai-media-provenance.util.js +24 -0
  134. package/build-esm/_modules/ai/_collections/ai-model-ref.util.js +70 -0
  135. package/build-esm/_modules/ai/_collections/ai-model-registry.util.js +37 -0
  136. package/build-esm/_modules/ai/_enums/ai-message-role.enum.js +8 -0
  137. package/build-esm/_modules/ai/_enums/ai-model-type.enum.js +8 -0
  138. package/build-esm/_modules/ai/_enums/ai-provider.enum.js +8 -0
  139. package/build-esm/_modules/ai/_models/ai-call-settings.interface.js +88 -0
  140. package/build-esm/_modules/ai/_models/ai-config.interface.js +1 -0
  141. package/build-esm/_modules/ai/_models/ai-embedding-request.interface.js +1 -0
  142. package/build-esm/_modules/ai/_models/ai-embedding-response.interface.js +1 -0
  143. package/build-esm/_modules/ai/_models/ai-image-request.interface.js +1 -0
  144. package/build-esm/_modules/ai/_models/ai-image-response.interface.js +1 -0
  145. package/build-esm/_modules/ai/_models/ai-llm-request.interface.js +1 -0
  146. package/build-esm/_modules/ai/_models/ai-llm-response.interface.js +1 -0
  147. package/build-esm/_modules/ai/_models/ai-media-file.interface.js +1 -0
  148. package/build-esm/_modules/ai/_models/ai-media-provenance.interface.js +1 -0
  149. package/build-esm/_modules/ai/_models/ai-message.interface.js +1 -0
  150. package/build-esm/_modules/ai/_models/ai-model-capabilities.interface.js +1 -0
  151. package/build-esm/_modules/ai/_models/ai-model-info.interface.js +1 -0
  152. package/build-esm/_modules/ai/_models/ai-model-settings-schema.interface.js +1 -0
  153. package/build-esm/_modules/ai/_models/ai-model3d-request.interface.js +1 -0
  154. package/build-esm/_modules/ai/_models/ai-model3d-response.interface.js +1 -0
  155. package/build-esm/_modules/ai/_models/ai-provider-capabilities.interface.js +1 -0
  156. package/build-esm/_modules/ai/_models/ai-settings.interface.js +10 -0
  157. package/build-esm/_modules/ai/_models/ai-speech-request.interface.js +1 -0
  158. package/build-esm/_modules/ai/_models/ai-speech-response.interface.js +1 -0
  159. package/build-esm/_modules/ai/_models/ai-tool-call.interface.js +1 -0
  160. package/build-esm/_modules/ai/_models/ai-tool-handler.type.js +1 -0
  161. package/build-esm/_modules/ai/_models/ai-tool-result.interface.js +1 -0
  162. package/build-esm/_modules/ai/_models/ai-tool.interface.js +1 -0
  163. package/build-esm/_modules/ai/_models/ai-user-provider-config.control-model.js +31 -0
  164. package/build-esm/_modules/ai/_modules/anthropic/_collections/aai-models.const.js +130 -0
  165. package/build-esm/_modules/ai/_modules/anthropic/_enums/aai-model.enum.js +17 -0
  166. package/build-esm/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.js +23 -0
  167. package/build-esm/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.js +1 -0
  168. package/build-esm/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.js +25 -0
  169. package/build-esm/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.js +22 -0
  170. package/build-esm/_modules/ai/_modules/anthropic/index.js +9 -0
  171. package/build-esm/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.js +1 -0
  172. package/build-esm/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.js +1 -0
  173. package/build-esm/_modules/ai/_modules/document-ai/index.js +3 -0
  174. package/build-esm/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.js +38 -0
  175. package/build-esm/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.js +7 -0
  176. package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.js +21 -0
  177. package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.js +1 -0
  178. package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.js +24 -0
  179. package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.js +22 -0
  180. package/build-esm/_modules/ai/_modules/fdp-ai/index.js +9 -0
  181. package/build-esm/_modules/ai/_modules/google-ai/_collections/gai-models.const.js +155 -0
  182. package/build-esm/_modules/ai/_modules/google-ai/_enums/gai-model.enum.js +14 -0
  183. package/build-esm/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.js +23 -0
  184. package/build-esm/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.js +1 -0
  185. package/build-esm/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.js +25 -0
  186. package/build-esm/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.js +22 -0
  187. package/build-esm/_modules/ai/_modules/google-ai/index.js +9 -0
  188. package/build-esm/_modules/ai/_modules/local-ai/_collections/lai-models.const.js +57 -0
  189. package/build-esm/_modules/ai/_modules/local-ai/_enums/lai-model.enum.js +5 -0
  190. package/build-esm/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.js +19 -0
  191. package/build-esm/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.js +1 -0
  192. package/build-esm/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.js +22 -0
  193. package/build-esm/_modules/ai/_modules/local-ai/index.js +8 -0
  194. package/build-esm/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.js +6 -0
  195. package/build-esm/_modules/ai/_modules/open-ai/_collections/oai-models.const.js +455 -0
  196. package/build-esm/_modules/ai/_modules/open-ai/_enums/oai-model.enum.js +146 -0
  197. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.js +23 -0
  198. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.js +1 -0
  199. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.js +1 -0
  200. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.js +25 -0
  201. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.js +23 -0
  202. package/build-esm/_modules/ai/_modules/open-ai/index.js +19 -0
  203. package/build-esm/_modules/ai/index.js +34 -0
  204. package/build-esm/_modules/application-alert/_collections/application-alert-envelope.util.js +267 -0
  205. package/build-esm/_modules/application-alert/_enums/application-alert-evaluation-state.type-enum.js +6 -0
  206. package/build-esm/_modules/application-alert/_enums/application-alert-severity.type-enum.js +8 -0
  207. package/build-esm/_modules/application-alert/_models/application-alert.interface.js +1 -0
  208. package/build-esm/_modules/application-alert/index.js +4 -0
  209. package/build-esm/_modules/ci-tools/_enums/cit-ci-result-code.enum.js +9 -0
  210. package/build-esm/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.js +9 -0
  211. package/build-esm/_modules/ci-tools/_models/cit-ci-result-info.data-models.js +63 -0
  212. package/build-esm/_modules/ci-tools/_models/cit-ci-step-result.interface.js +1 -0
  213. package/build-esm/_modules/ci-tools/index.js +6 -0
  214. package/build-esm/_modules/crypto/_collections/crypto-v1.util.js +199 -0
  215. package/build-esm/_modules/crypto/_collections/crypto-v2.util.js +273 -0
  216. package/build-esm/_modules/crypto/_collections/crypto-v4.util.js +605 -0
  217. package/build-esm/_modules/crypto/_collections/crypto.util.js +651 -0
  218. package/build-esm/_modules/crypto/_models/artifact-signature.interface.js +1 -0
  219. package/build-esm/_modules/crypto/_services/artifact-signature.control-service.js +276 -0
  220. package/build-esm/_modules/crypto/index.js +11 -0
  221. package/build-esm/_modules/custom-data/_collections/cud-module-settings.const.js +18 -0
  222. package/build-esm/_modules/custom-data/_models/cud.data-model.js +30 -0
  223. package/build-esm/_modules/custom-data/index.js +4 -0
  224. package/build-esm/_modules/data-handler/_models/data-handler-settings.control-model.js +78 -0
  225. package/build-esm/_modules/data-handler/_models/data-handler.control-model.js +386 -0
  226. package/build-esm/_modules/data-handler/_models/data-list-handler-settings.control-model.js +11 -0
  227. package/build-esm/_modules/data-handler/_models/data-list-handler.control-model.js +222 -0
  228. package/build-esm/_modules/data-handler/_models/data-search-handler-settings.control-model.js +25 -0
  229. package/build-esm/_modules/data-handler/_models/data-search-handler.control-model.js +334 -0
  230. package/build-esm/_modules/data-handler/_models/list-collector-data-handler-settings.control-model.js +12 -0
  231. package/build-esm/_modules/data-handler/_models/list-collector-data-handler.control-model.js +243 -0
  232. package/build-esm/_modules/data-handler/index.js +9 -0
  233. package/build-esm/_modules/deployment/_collections/atomic-rollback-manifest.util.js +348 -0
  234. package/build-esm/_modules/deployment/_models/atomic-rollback-manifest.interface.js +1 -0
  235. package/build-esm/_modules/deployment/index.js +2 -0
  236. package/build-esm/_modules/game/_collections/audio-mixer.util.js +109 -0
  237. package/build-esm/_modules/game/_collections/audio-scale.util.js +100 -0
  238. package/build-esm/_modules/game/_enums/audio-channel.enum.js +21 -0
  239. package/build-esm/_modules/game/_models/audio-mixer-config.interface.js +1 -0
  240. package/build-esm/_modules/game/_models/audio-mixer-settings.interface.js +1 -0
  241. package/build-esm/_modules/game/_models/audio-mixer-state.interface.js +1 -0
  242. package/build-esm/_modules/game/_models/audio-mixer.control-model.js +337 -0
  243. package/build-esm/_modules/game/_models/audio-scale.interface.js +1 -0
  244. package/build-esm/_modules/game/_models/flying-effect.control-model.js +212 -0
  245. package/build-esm/_modules/game/_models/flying-effect.interface.js +1 -0
  246. package/build-esm/_modules/game/_models/seeded-random-registry.control-model.js +124 -0
  247. package/build-esm/_modules/game/_models/seeded-random-registry.interface.js +1 -0
  248. package/build-esm/_modules/game/_models/seeded-random-state.interface.js +1 -0
  249. package/build-esm/_modules/game/_models/seeded-random.control-model.js +261 -0
  250. package/build-esm/_modules/game/index.js +17 -0
  251. package/build-esm/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -0
  252. package/build-esm/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19036 -0
  253. package/build-esm/_modules/location/_collections/assets/country-phone-codes.json +1202 -0
  254. package/build-esm/_modules/location/_collections/loc-country-divisions.const.js +3 -0
  255. package/build-esm/_modules/location/_collections/loc-country-isos.const.js +2 -0
  256. package/build-esm/_modules/location/_collections/loc-regions.util.js +107 -0
  257. package/build-esm/_modules/location/_collections/loc.util.js +56 -0
  258. package/build-esm/_modules/location/_enums/loc-region.enum.js +11 -0
  259. package/build-esm/_modules/location/_enums/loc-sub-region.enum.js +23 -0
  260. package/build-esm/_modules/location/_enums/loc-subdivision-region-type.enum.js +45 -0
  261. package/build-esm/_modules/location/_models/loc-coordinates.interface.js +1 -0
  262. package/build-esm/_modules/location/_models/loc-country-division.interface.js +1 -0
  263. package/build-esm/_modules/location/_models/loc-country-iso.interface.js +1 -0
  264. package/build-esm/_modules/location/_models/loc-country-phone-code.interface.js +1 -0
  265. package/build-esm/_modules/location/_models/loc-division-collection.interface.js +1 -0
  266. package/build-esm/_modules/location/_models/loc-division-region-data.interface.js +1 -0
  267. package/build-esm/_modules/location/_models/loc-geo-ip-location.interface.js +1 -0
  268. package/build-esm/_modules/location/index.js +17 -0
  269. package/build-esm/_modules/messaging/_collections/msg-module-settings.const.js +44 -0
  270. package/build-esm/_modules/messaging/_enums/msg-attachment-type.enum.js +21 -0
  271. package/build-esm/_modules/messaging/_enums/msg-conversation-type.enum.js +17 -0
  272. package/build-esm/_modules/messaging/_enums/msg-delivery-status.enum.js +15 -0
  273. package/build-esm/_modules/messaging/_enums/msg-event-key.enum.js +28 -0
  274. package/build-esm/_modules/messaging/_enums/msg-participant-role.enum.js +17 -0
  275. package/build-esm/_modules/messaging/_enums/msg-provider-type.enum.js +8 -0
  276. package/build-esm/_modules/messaging/_enums/msg-status.enum.js +21 -0
  277. package/build-esm/_modules/messaging/_enums/msg-type.enum.js +19 -0
  278. package/build-esm/_modules/messaging/_models/msg-attachment.interface.js +1 -0
  279. package/build-esm/_modules/messaging/_models/msg-conversation.data-model.js +80 -0
  280. package/build-esm/_modules/messaging/_models/msg-mention.interface.js +1 -0
  281. package/build-esm/_modules/messaging/_models/msg-message.data-model.js +102 -0
  282. package/build-esm/_modules/messaging/_models/msg-participant.interface.js +1 -0
  283. package/build-esm/_modules/messaging/_models/msg-reaction.interface.js +1 -0
  284. package/build-esm/_modules/messaging/_models/msg-thread-info.interface.js +1 -0
  285. package/build-esm/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.js +27 -0
  286. package/build-esm/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.js +19 -0
  287. package/build-esm/_modules/messaging/_modules/agent/_models/agt-process-step.interface.js +1 -0
  288. package/build-esm/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.js +1 -0
  289. package/build-esm/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.js +1 -0
  290. package/build-esm/_modules/messaging/_modules/agent/index.js +7 -0
  291. package/build-esm/_modules/messaging/index.js +25 -0
  292. package/build-esm/_modules/ngx-models/_collections/angular-placeholders.js +1 -0
  293. package/build-esm/_modules/ngx-models/_collections/button-new-style-settings-presets.const.js +170 -0
  294. package/build-esm/_modules/ngx-models/_collections/dynamo-global.settings.js +88 -0
  295. package/build-esm/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.js +14 -0
  296. package/build-esm/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.js +12 -0
  297. package/build-esm/_modules/ngx-models/_enums/button-new/button-new-size.enum.js +15 -0
  298. package/build-esm/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.js +17 -0
  299. package/build-esm/_modules/ngx-models/_enums/button-type.enum.js +35 -0
  300. package/build-esm/_modules/ngx-models/_enums/checkbox-label-position.enum.js +8 -0
  301. package/build-esm/_modules/ngx-models/_enums/container-type.enum.js +11 -0
  302. package/build-esm/_modules/ngx-models/_enums/errors/error-level.enum.js +14 -0
  303. package/build-esm/_modules/ngx-models/_enums/errors/error-notification-color.enum.js +14 -0
  304. package/build-esm/_modules/ngx-models/_enums/errors/error-ui-mode.enum.js +14 -0
  305. package/build-esm/_modules/ngx-models/_enums/field-appearance.enum.js +13 -0
  306. package/build-esm/_modules/ngx-models/_enums/field-type.enum.js +49 -0
  307. package/build-esm/_modules/ngx-models/_enums/file-type.enum.js +12 -0
  308. package/build-esm/_modules/ngx-models/_enums/flex/flex-layout-align.enum.js +21 -0
  309. package/build-esm/_modules/ngx-models/_enums/flex/flex-layout.enum.js +6 -0
  310. package/build-esm/_modules/ngx-models/_enums/form-access.enum.js +9 -0
  311. package/build-esm/_modules/ngx-models/_enums/form-reset-data.enum.js +12 -0
  312. package/build-esm/_modules/ngx-models/_enums/form-store-on.enum.js +8 -0
  313. package/build-esm/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.js +21 -0
  314. package/build-esm/_modules/ngx-models/_enums/frames/header-item-type.enum.js +16 -0
  315. package/build-esm/_modules/ngx-models/_enums/frames/header-position.enum.js +11 -0
  316. package/build-esm/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.js +14 -0
  317. package/build-esm/_modules/ngx-models/_enums/html/input-types.enum.js +26 -0
  318. package/build-esm/_modules/ngx-models/_enums/material-color.enum.js +14 -0
  319. package/build-esm/_modules/ngx-models/_enums/material-tooltip-position.enum.js +13 -0
  320. package/build-esm/_modules/ngx-models/_enums/preconfigured-field-type.enum.js +8 -0
  321. package/build-esm/_modules/ngx-models/_enums/storage-type.enum.js +13 -0
  322. package/build-esm/_modules/ngx-models/_enums/validator-type.enum.js +7 -0
  323. package/build-esm/_modules/ngx-models/_enums/voice/audio-mime-type.enum.js +15 -0
  324. package/build-esm/_modules/ngx-models/_enums/voice/voice-provider-type.enum.js +32 -0
  325. package/build-esm/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.js +21 -0
  326. package/build-esm/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.js +44 -0
  327. package/build-esm/_modules/ngx-models/_models/control-models/button-params.control-model.js +304 -0
  328. package/build-esm/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.js +59 -0
  329. package/build-esm/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js +94 -0
  330. package/build-esm/_modules/ngx-models/_models/control-models/data-handler.control-model.js +407 -0
  331. package/build-esm/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.js +43 -0
  332. package/build-esm/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.js +64 -0
  333. package/build-esm/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.js +52 -0
  334. package/build-esm/_modules/ngx-models/_models/control-models/field-settings.control-model.js +207 -0
  335. package/build-esm/_modules/ngx-models/_models/control-models/form-settings.control-model.js +275 -0
  336. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.js +29 -0
  337. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.js +36 -0
  338. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.js +31 -0
  339. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.js +46 -0
  340. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.js +38 -0
  341. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/datetime-range-field-new-settings.control-model.js +48 -0
  342. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/emoji-picker-field-new-settings.control-model.js +21 -0
  343. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.js +91 -0
  344. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/field-new-types.js +1 -0
  345. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.js +39 -0
  346. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/icon-picker-field-new-settings.control-model.js +39 -0
  347. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/index.js +23 -0
  348. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.js +31 -0
  349. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.js +29 -0
  350. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.js +51 -0
  351. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/picker-field-new-option.interface.js +1 -0
  352. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.js +38 -0
  353. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.js +35 -0
  354. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.js +50 -0
  355. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.js +47 -0
  356. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.js +35 -0
  357. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.js +27 -0
  358. package/build-esm/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.js +44 -0
  359. package/build-esm/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.js +56 -0
  360. package/build-esm/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.js +58 -0
  361. package/build-esm/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.js +38 -0
  362. package/build-esm/_modules/ngx-models/_models/control-models/select.control-model.js +27 -0
  363. package/build-esm/_modules/ngx-models/_models/control-models/signal-data-list-handler-settings.control-model.js +23 -0
  364. package/build-esm/_modules/ngx-models/_models/control-models/signal-data-search-handler-settings.control-model.js +25 -0
  365. package/build-esm/_modules/ngx-models/_models/control-models/signal-list-collector-data-handler-settings.control-model.js +12 -0
  366. package/build-esm/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.js +22 -0
  367. package/build-esm/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.js +91 -0
  368. package/build-esm/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.js +42 -0
  369. package/build-esm/_modules/ngx-models/_models/interfaces/button-new-settings.interface.js +1 -0
  370. package/build-esm/_modules/ngx-models/_models/interfaces/confirm-settings.interface.js +1 -0
  371. package/build-esm/_modules/ngx-models/_models/interfaces/global-settings.interface.js +1 -0
  372. package/build-esm/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.js +1 -0
  373. package/build-esm/_modules/ngx-models/_models/interfaces/storage.service.js +40 -0
  374. package/build-esm/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.js +1 -0
  375. package/build-esm/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.js +1 -0
  376. package/build-esm/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.js +1 -0
  377. package/build-esm/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.js +1 -0
  378. package/build-esm/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.js +1 -0
  379. package/build-esm/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.js +1 -0
  380. package/build-esm/_modules/ngx-models/_utils/shared.service.js +407 -0
  381. package/build-esm/_modules/ngx-models/index.js +89 -0
  382. package/build-esm/_modules/operation-control/_collections/operation-lease.util.js +323 -0
  383. package/build-esm/_modules/operation-control/_enums/operation-decision-code.type-enum.js +22 -0
  384. package/build-esm/_modules/operation-control/_enums/operation-state.type-enum.js +9 -0
  385. package/build-esm/_modules/operation-control/_models/operation-lease.interface.js +1 -0
  386. package/build-esm/_modules/operation-control/index.js +4 -0
  387. package/build-esm/_modules/pipe/_collections/pip-transforms.const.js +32 -0
  388. package/build-esm/_modules/pipe/_collections/utils/pip-country-pipe.util.js +29 -0
  389. package/build-esm/_modules/pipe/_collections/utils/pip-custom-pipe.util.js +22 -0
  390. package/build-esm/_modules/pipe/_collections/utils/pip-division-pipe.util.js +21 -0
  391. package/build-esm/_modules/pipe/_collections/utils/pip-json-pipe.util.js +18 -0
  392. package/build-esm/_modules/pipe/_collections/utils/pip-list-pipe.util.js +19 -0
  393. package/build-esm/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.js +164 -0
  394. package/build-esm/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.js +16 -0
  395. package/build-esm/_modules/pipe/_collections/utils/pip-range-pipe.util.js +64 -0
  396. package/build-esm/_modules/pipe/_collections/utils/pip-region-pipe.util.js +22 -0
  397. package/build-esm/_modules/pipe/_collections/utils/pip-replace-pipe.util.js +15 -0
  398. package/build-esm/_modules/pipe/_collections/utils/pip-slider-pipe.util.js +26 -0
  399. package/build-esm/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.js +40 -0
  400. package/build-esm/_modules/pipe/_enums/pip-range-pipe-setting.enum.js +14 -0
  401. package/build-esm/_modules/pipe/_enums/pip.enum.js +48 -0
  402. package/build-esm/_modules/pipe/_models/pip-multi-pipe-settings.type.js +1 -0
  403. package/build-esm/_modules/pipe/_models/pip-transforms.interface.js +1 -0
  404. package/build-esm/_modules/pipe/index.js +22 -0
  405. package/build-esm/_modules/request-safety/_collections/request-safety-inspector.util.js +317 -0
  406. package/build-esm/_modules/request-safety/_enums/request-safety-finding.type-enum.js +39 -0
  407. package/build-esm/_modules/request-safety/_models/request-safety.interface.js +1 -0
  408. package/build-esm/_modules/request-safety/index.js +3 -0
  409. package/build-esm/_modules/sandbox-runtime/_collections/zero-egress-receipt.util.js +154 -0
  410. package/build-esm/_modules/sandbox-runtime/_collections/zero-egress-result-code.const.js +36 -0
  411. package/build-esm/_modules/sandbox-runtime/_enums/zero-egress-outcome.type-enum.js +11 -0
  412. package/build-esm/_modules/sandbox-runtime/_models/zero-egress-receipt.interface.js +1 -0
  413. package/build-esm/_modules/sandbox-runtime/index.js +4 -0
  414. package/build-esm/_modules/security/_collections/stored-secret.util.js +68 -0
  415. package/build-esm/_modules/security/_models/stored-secret.control-model.js +52 -0
  416. package/build-esm/_modules/security/index.js +7 -0
  417. package/build-esm/_modules/socket/_enums/sck-event-key.enum.js +18 -0
  418. package/build-esm/_modules/socket/_models/sck-client-params.control-model.js +47 -0
  419. package/build-esm/_modules/socket/_models/sck-socket-event.control-model.js +133 -0
  420. package/build-esm/_modules/socket/_services/sck-client.service-base.js +314 -0
  421. package/build-esm/_modules/socket/index.js +7 -0
  422. package/build-esm/_modules/state-machine/_models/state-machine-config.interface.js +1 -0
  423. package/build-esm/_modules/state-machine/_models/state-machine-event.interface.js +1 -0
  424. package/build-esm/_modules/state-machine/_models/state-machine.control-model.js +262 -0
  425. package/build-esm/_modules/state-machine/_models/state-transition-result.interface.js +1 -0
  426. package/build-esm/_modules/state-machine/_models/state-transition.interface.js +1 -0
  427. package/build-esm/_modules/state-machine/index.js +6 -0
  428. package/build-esm/_modules/test/_collections/tst-module-settings.const.js +38 -0
  429. package/build-esm/_modules/test/index.js +2 -0
  430. package/build-esm/_modules/usage/_collections/usg-module-settings.const.js +16 -0
  431. package/build-esm/_modules/usage/_models/usg-action.control-model.js +25 -0
  432. package/build-esm/_modules/usage/_models/usg-daily-usage-data.control-model.js +30 -0
  433. package/build-esm/_modules/usage/_models/usg-data.control-model.js +30 -0
  434. package/build-esm/_modules/usage/_models/usg-session.data-model.js +60 -0
  435. package/build-esm/_modules/usage/index.js +7 -0
  436. package/build-esm/index.js +108 -0
  437. package/package.json +114 -85
@@ -0,0 +1,183 @@
1
+ import { second, hour, minute, week, day } from '../constants/times.const';
2
+ import { DyFM_Log } from './log.util';
3
+ import { DyFM_Time } from './time.util';
4
+ export class DyFM_Async {
5
+ /**
6
+ * delays the execution of a function
7
+ * @param ms
8
+ * @returns
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * await DyFM_Async.wait(1000);
13
+ * ```
14
+ */
15
+ static wait(ms) {
16
+ return new Promise((resolve) => setTimeout(resolve, ms));
17
+ }
18
+ static sleep = this.wait;
19
+ static delay = this.wait;
20
+ /**
21
+ * WARNING: This function is recommended to use ONLY for limited instances,
22
+ * because it can cause performance issues.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * await DyFM_Async.waitUntil(() => check(), 100, 10000);
27
+ * ```
28
+ */
29
+ static waitUntil(check, interval = 100, timeout = 10_000) {
30
+ const timeoutError = new Error('waitUntil timeout');
31
+ return new Promise((resolve, reject) => {
32
+ const startTime = Date.now();
33
+ const intervalId = setInterval(() => {
34
+ if (check()) {
35
+ clearInterval(intervalId);
36
+ resolve();
37
+ }
38
+ else if (Date.now() - startTime > timeout) {
39
+ clearInterval(intervalId);
40
+ reject(timeoutError);
41
+ }
42
+ }, interval);
43
+ });
44
+ }
45
+ /**
46
+ * WARNING: This function is recommended to use ONLY for limited instances,
47
+ * because it can cause performance issues.
48
+ *
49
+ * @example
50
+ * const result = await DyFM_Async.waitUntilAsync(
51
+ * () => check(),
52
+ * 30 * second,
53
+ * 5 * minute,
54
+ * );
55
+ */
56
+ static waitUntilAsync(check, interval = 100, timeout = 10000) {
57
+ const timeoutError = new Error('waitUntilAsync timeout');
58
+ return new Promise((resolve, reject) => {
59
+ const startTime = Date.now();
60
+ const intervalId = setInterval(async () => {
61
+ if (await check()) {
62
+ clearInterval(intervalId);
63
+ resolve();
64
+ }
65
+ else if (Date.now() - startTime > timeout) {
66
+ clearInterval(intervalId);
67
+ reject(timeoutError);
68
+ }
69
+ }, interval);
70
+ });
71
+ }
72
+ /**
73
+ * Creates a promise that resolves when the observable emits a value that passes the check function
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const observable = new Observable<number>(observer => {
78
+ * setInterval(() => observer.next(Math.random()), 100);
79
+ * });
80
+ * const result = await DyFM_Async.takeUntil(observable, (value?: number) => value && value > 0.5);
81
+ * ```
82
+ */
83
+ static takeUntil(observable, check) {
84
+ return new Promise((resolve) => {
85
+ // BFR-FDPTOKENSERVICE-024: szinkron emissziónál (BehaviorSubject / of) a callback még a
86
+ // subscribe visszatérte ELŐTT fut — `const sub` ekkor TDZ-ben lenne (ReferenceError, és a
87
+ // Promise sosem oldana fel). `let` + resolved-jelző; a leiratkozás ilyenkor utólag történik.
88
+ let resolved = false;
89
+ let sub;
90
+ sub = observable.subscribe((value) => {
91
+ if (!resolved && check(value)) {
92
+ resolved = true;
93
+ sub?.unsubscribe();
94
+ resolve(value);
95
+ }
96
+ });
97
+ if (resolved) {
98
+ sub.unsubscribe();
99
+ }
100
+ });
101
+ }
102
+ /**
103
+ * Waits for a given amount of time and logs the remaining time.
104
+ * @param totalWaitTimeMs - The total amount of time to wait.
105
+ * @param context - The context of the countdown.
106
+ * @returns A promise that resolves when the countdown is complete.
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * await DyFM_Async.waitWithCountdownLogging(1000, 'Countdown');
111
+ * ```
112
+ */
113
+ static async waitWithCountdownLogging(totalWaitTimeMs, context = 'Countdown') {
114
+ const startTime = Date.now();
115
+ const endTime = startTime + totalWaitTimeMs;
116
+ // Define logging intervals based on total duration
117
+ /**
118
+ * Gets the logging interval based on the total duration.
119
+ * @param totalMs - The total duration in milliseconds.
120
+ * @returns The logging interval in milliseconds.
121
+ *
122
+ * @example
123
+ * ```ts
124
+ * const logInterval = getLogInterval(1000);
125
+ * console.log(logInterval); // 1000
126
+ * ```
127
+ */
128
+ const getLogInterval = (totalMs) => {
129
+ const totalSeconds = totalMs / second;
130
+ const totalMinutes = totalSeconds / 60;
131
+ const totalHours = totalMinutes / 60;
132
+ const totalDays = totalHours / 24;
133
+ const totalWeeks = totalDays / 7;
134
+ if (totalWeeks >= 4)
135
+ return week; // Every week
136
+ if (totalDays >= 7)
137
+ return day; // Every day
138
+ if (totalDays >= 3)
139
+ return 12 * hour; // Every 12 hours
140
+ if (totalDays >= 1)
141
+ return 6 * hour; // Every 6 hours
142
+ if (totalHours >= 12)
143
+ return 3 * hour; // Every 3 hours
144
+ if (totalHours >= 6)
145
+ return hour; // Every hour
146
+ if (totalHours >= 3)
147
+ return 30 * minute; // Every 30 minutes
148
+ if (totalHours >= 1)
149
+ return 10 * minute; // Every 10 minutes
150
+ if (totalMinutes >= 30)
151
+ return 5 * minute; // Every 5 minutes
152
+ if (totalMinutes >= 10)
153
+ return minute; // Every minute
154
+ if (totalMinutes >= 5)
155
+ return 30 * second; // Every 30 seconds
156
+ if (totalMinutes >= 1)
157
+ return 10 * second; // Every 10 seconds
158
+ if (totalSeconds >= 30)
159
+ return 5 * second; // Every 5 seconds
160
+ return second; // Every second
161
+ };
162
+ const logInterval = getLogInterval(totalWaitTimeMs);
163
+ let lastLogTime = startTime;
164
+ // Format remaining time for display using DyFM_Time utility
165
+ const formatRemainingTime = (remainingMs) => DyFM_Time.getTimeInShortestString(remainingMs);
166
+ // Log initial countdown start
167
+ DyFM_Log.info(`⏳ ${context} started - Total duration: ${formatRemainingTime(totalWaitTimeMs)}`);
168
+ while (Date.now() < endTime) {
169
+ const now = Date.now();
170
+ const remainingMs = endTime - now;
171
+ // Check if it's time to log
172
+ if (now - lastLogTime >= logInterval) {
173
+ const remainingTime = formatRemainingTime(remainingMs);
174
+ DyFM_Log.info(`⏳ ${context} - ${remainingTime} remaining`);
175
+ lastLogTime = now;
176
+ }
177
+ // Wait for a short interval before checking again
178
+ await DyFM_Async.wait(Math.min(DyFM_Time.second, remainingMs));
179
+ }
180
+ // Log completion
181
+ DyFM_Log.success(`✅ ${context} completed`);
182
+ }
183
+ }
@@ -0,0 +1,203 @@
1
+ import { kilobyte, megabyte, gigabyte, terabyte, petabyte, exabyte, zettabyte, yottabyte } from '../constants/data-sizes.const';
2
+ import { DyFM_Math } from './math/math.util';
3
+ /**
4
+ * Data utility class
5
+ *
6
+ * Hungarian documentation (Hunglish):
7
+ * - Ez a utility data-size konverziókra fókuszál, ember-barát string formátummal
8
+ * - A számítás 1024-es alapot használ (KB/MB/GB/TB)
9
+ * - A `getSizeString` adja vissza a rövidített formátumot, pl.: `1.5KB`, `12MB`, `1GB 256MB`
10
+ */
11
+ export class DyFM_Data {
12
+ /**
13
+ * A kilobyte (1024 B) egység
14
+ */
15
+ static kilobyte = kilobyte;
16
+ /**
17
+ * A megabyte (1024 KB) egység
18
+ */
19
+ static megabyte = megabyte;
20
+ /**
21
+ * A gigabyte (1024 MB) egység
22
+ */
23
+ static gigabyte = gigabyte;
24
+ /**
25
+ * A terabyte (1024 GB) egység
26
+ */
27
+ static terabyte = terabyte;
28
+ /**
29
+ * A petabyte (1024 TB) egység
30
+ */
31
+ static petabyte = petabyte;
32
+ /**
33
+ * A exabyte (1024 PB) egység
34
+ */
35
+ static exabyte = exabyte;
36
+ /**
37
+ * A zettabyte (1024 EB) egység
38
+ */
39
+ static zettabyte = zettabyte;
40
+ /**
41
+ * A yottabyte (1024 ZB) egység
42
+ */
43
+ static yottabyte = yottabyte;
44
+ /**
45
+ * Size-et ad vissza ember-barát string-ként.
46
+ * - 1024-es váltószámot használunk (KB/MB/GB/TB)
47
+ * - Negatív értékeknél `-` jel kerül az elejére (abszolút értékkel számolunk)
48
+ * - `full=true` esetén a következő kisebb egység maradéka is megjelenik (pl. `1GB 256MB`)
49
+ *
50
+ * Példák:
51
+ * ```ts
52
+ * DyFM_Data.getSizeString(0); // '0B'
53
+ * DyFM_Data.getSizeString(1536); // '1.5KB'
54
+ * DyFM_Data.getSizeString(1536, 0, true); // '2KB 0B'
55
+ * DyFM_Data.getSizeString(1_234_567); // '1.18MB'
56
+ * DyFM_Data.getSizeString(1_234_567, 0); // '1MB'
57
+ * DyFM_Data.getSizeString(1_500_000_000); // '1.4GB'
58
+ * ```
59
+ */
60
+ static getSizeString(size, decimals, full) {
61
+ // Edge case: 0 → rögtön visszaadjuk
62
+ if (size === 0) {
63
+ return '0B';
64
+ }
65
+ if (!size) {
66
+ return 'N/A';
67
+ }
68
+ // Negatív jel kezelése, számítás abszolút értékkel
69
+ const isNegative = size < 0;
70
+ let remaining = Math.abs(size);
71
+ // < 1KB → B (decimals nélkül)
72
+ if (remaining < this.kilobyte) {
73
+ const sign = isNegative ? '-' : '';
74
+ return `${sign}${Math.floor(remaining)}B`;
75
+ }
76
+ // KB
77
+ if (remaining < this.megabyte) {
78
+ const kb = remaining / this.kilobyte;
79
+ if (full) {
80
+ const kbWhole = Math.floor(kb);
81
+ const remainderAfterKb = remaining - (kbWhole * this.kilobyte);
82
+ const bRemainder = Math.floor(remainderAfterKb);
83
+ const sign = isNegative ? '-' : '';
84
+ if (bRemainder > 0) {
85
+ return `${sign}${kbWhole}KB ${bRemainder}B`;
86
+ }
87
+ return `${sign}${kbWhole}KB`;
88
+ }
89
+ const str = `${DyFM_Math.round(kb, decimals ?? (Number.isInteger(kb) ? 0 : 2))}KB`;
90
+ return isNegative ? `-${str}` : str;
91
+ }
92
+ // MB
93
+ if (remaining < this.gigabyte) {
94
+ const mb = remaining / this.megabyte;
95
+ if (full) {
96
+ const mbWhole = Math.floor(mb);
97
+ const remainderAfterMb = remaining - (mbWhole * this.megabyte);
98
+ const kbRemainder = Math.floor(remainderAfterMb / this.kilobyte);
99
+ const sign = isNegative ? '-' : '';
100
+ if (kbRemainder > 0) {
101
+ return `${sign}${mbWhole}MB ${kbRemainder}KB`;
102
+ }
103
+ return `${sign}${mbWhole}MB`;
104
+ }
105
+ const str = `${DyFM_Math.round(mb, decimals ?? (Number.isInteger(mb) ? 0 : 2))}MB`;
106
+ return isNegative ? `-${str}` : str;
107
+ }
108
+ // GB
109
+ if (remaining < this.terabyte) {
110
+ const gb = remaining / this.gigabyte;
111
+ if (full) {
112
+ const gbWhole = Math.floor(gb);
113
+ const remainderAfterGb = remaining - (gbWhole * this.gigabyte);
114
+ const mbRemainder = Math.floor(remainderAfterGb / this.megabyte);
115
+ const sign = isNegative ? '-' : '';
116
+ if (mbRemainder > 0) {
117
+ return `${sign}${gbWhole}GB ${mbRemainder}MB`;
118
+ }
119
+ return `${sign}${gbWhole}GB`;
120
+ }
121
+ const str = `${DyFM_Math.round(gb, decimals ?? (Number.isInteger(gb) ? 0 : 2))}GB`;
122
+ return isNegative ? `-${str}` : str;
123
+ }
124
+ // TB
125
+ if (remaining < this.petabyte) {
126
+ const tb = remaining / this.terabyte;
127
+ if (full) {
128
+ const tbWhole = Math.floor(tb);
129
+ const remainderAfterTb = remaining - (tbWhole * this.terabyte);
130
+ const gbRemainder = Math.floor(remainderAfterTb / this.gigabyte);
131
+ const sign = isNegative ? '-' : '';
132
+ if (gbRemainder > 0) {
133
+ return `${sign}${tbWhole}TB ${gbRemainder}GB`;
134
+ }
135
+ return `${sign}${tbWhole}TB`;
136
+ }
137
+ const str = `${DyFM_Math.round(tb, decimals ?? (Number.isInteger(tb) ? 0 : 2))}TB`;
138
+ return isNegative ? `-${str}` : str;
139
+ }
140
+ // PB
141
+ if (remaining < this.exabyte) {
142
+ const pb = remaining / this.petabyte;
143
+ if (full) {
144
+ const pbWhole = Math.floor(pb);
145
+ const remainderAfterPb = remaining - (pbWhole * this.petabyte);
146
+ const tbRemainder = Math.floor(remainderAfterPb / this.terabyte);
147
+ const sign = isNegative ? '-' : '';
148
+ if (tbRemainder > 0) {
149
+ return `${sign}${pbWhole}PB ${tbRemainder}TB`;
150
+ }
151
+ return `${sign}${pbWhole}PB`;
152
+ }
153
+ const str = `${DyFM_Math.round(pb, decimals ?? (Number.isInteger(pb) ? 0 : 2))}PB`;
154
+ return isNegative ? `-${str}` : str;
155
+ }
156
+ // EB
157
+ if (remaining < this.zettabyte) {
158
+ const eb = remaining / this.exabyte;
159
+ if (full) {
160
+ const ebWhole = Math.floor(eb);
161
+ const remainderAfterEb = remaining - (ebWhole * this.exabyte);
162
+ const pbRemainder = Math.floor(remainderAfterEb / this.petabyte);
163
+ const sign = isNegative ? '-' : '';
164
+ if (pbRemainder > 0) {
165
+ return `${sign}${ebWhole}EB ${pbRemainder}PB`;
166
+ }
167
+ return `${sign}${ebWhole}EB`;
168
+ }
169
+ const str = `${DyFM_Math.round(eb, decimals ?? (Number.isInteger(eb) ? 0 : 2))}EB`;
170
+ return isNegative ? `-${str}` : str;
171
+ }
172
+ // ZB
173
+ if (remaining < this.yottabyte) {
174
+ const zb = remaining / this.zettabyte;
175
+ if (full) {
176
+ const zbWhole = Math.floor(zb);
177
+ const remainderAfterZb = remaining - (zbWhole * this.zettabyte);
178
+ const ebRemainder = Math.floor(remainderAfterZb / this.exabyte);
179
+ const sign = isNegative ? '-' : '';
180
+ if (ebRemainder > 0) {
181
+ return `${sign}${zbWhole}ZB ${ebRemainder}EB`;
182
+ }
183
+ return `${sign}${zbWhole}ZB`;
184
+ }
185
+ const str = `${DyFM_Math.round(zb, decimals ?? (Number.isInteger(zb) ? 0 : 2))}ZB`;
186
+ return isNegative ? `-${str}` : str;
187
+ }
188
+ // YB
189
+ const yb = remaining / this.yottabyte;
190
+ if (full) {
191
+ const ybWhole = Math.floor(yb);
192
+ const remainderAfterYb = remaining - (ybWhole * this.yottabyte);
193
+ const zbRemainder = Math.floor(remainderAfterYb / this.zettabyte);
194
+ const sign = isNegative ? '-' : '';
195
+ if (zbRemainder > 0) {
196
+ return `${sign}${ybWhole}YB ${zbRemainder}ZB`;
197
+ }
198
+ return `${sign}${ybWhole}YB`;
199
+ }
200
+ const str = `${DyFM_Math.round(yb, decimals ?? (Number.isInteger(yb) ? 0 : 2))}YB`;
201
+ return isNegative ? `-${str}` : str;
202
+ }
203
+ }
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Universal error → human-readable string extractor. **Never** returns the
3
+ * literal string `'undefined'` (or `'undefined undefined'`), `'[object Object]'`,
4
+ * or any other JS-rendering artifact. Walks the full DyFM_Error pipeline plus
5
+ * common Angular HttpErrorResponse + plain Error shapes, falling back to a
6
+ * meaningful diagnostic string when the input is malformed.
7
+ *
8
+ * Order of attempts (first non-empty wins) — USER-FACING fields only by default:
9
+ * 0. If `err` itself is a string, use as-is (the caller meant it as the text)
10
+ * 1. `err.__userMessage` (DyFM_Error user message)
11
+ * 2. `err.userMessage` (deprecated DyFM_Error_Settings field, still seen on some payloads)
12
+ * 3. `err.error.__userMessage` (HttpErrorResponse wrapping a DyFM_Error in its body — beats the outer technical
13
+ * `message`)
14
+ * 4. `err.error.userMessage`
15
+ * 5. ONLY with `includeTechnicalMessage: true`: `err._message` · `err.message` · `err.error._message` ·
16
+ * `err.error.message` (debug / transport texts — never a user message by default)
17
+ * 6. ONLY with `includeRawPayload: true`: the JSON-stringified payload (circular-safe; first 200 chars),
18
+ * prefixed with 'Malformed error: ' (default: skipped — raw JSON is not a user message)
19
+ * 7. `options.fallback` (or its default)
20
+ *
21
+ * Only when `includeHttpStatus: true` (opt-in, default `false`) and the input
22
+ * looks like a HttpErrorResponse, the status + statusText are appended in
23
+ * parens: e.g. `'Bad credentials (HTTP 401 Unauthorized)'`.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * try {
28
+ * await auth_CS.login(account);
29
+ * } catch (err) {
30
+ * this.formError = DyFM_extractErrorMessage(err, { prefix: 'Login' });
31
+ * // → 'Login: Bad credentials' (the raw `err` keeps the status for the log / copy chain)
32
+ * // OR
33
+ * // → 'Login: Network unreachable — check connection. Server logs may have detail.'
34
+ * // never 'Login: undefined undefined'
35
+ * }
36
+ * ```
37
+ */
38
+ export function DyFM_extractErrorMessage(err, options) {
39
+ const includeHttpStatus = options?.includeHttpStatus === true;
40
+ const fallback = options?.fallback
41
+ ?? 'Unexpected error (no detail in payload — check server logs).';
42
+ const prefix = options?.prefix ? `${options.prefix}: ` : '';
43
+ // Null/undefined/empty
44
+ if (err === null || err === undefined) {
45
+ return `${prefix}${fallback}`;
46
+ }
47
+ // String → use as-is
48
+ if (typeof err === 'string') {
49
+ return `${prefix}${err}`;
50
+ }
51
+ // Walk the candidate fields in order. Cast to any to access optional
52
+ // properties without forcing each branch into a separate type guard.
53
+ const e = err;
54
+ const innerError = e?.error;
55
+ // user-facing fields first (outer, then the body of a wrapping HttpErrorResponse)
56
+ const userCandidate = _nonEmptyString(e?.__userMessage)
57
+ ?? _nonEmptyString(e?.userMessage)
58
+ ?? _nonEmptyString(innerError?.__userMessage)
59
+ ?? _nonEmptyString(innerError?.userMessage);
60
+ // technical fields (debug / transport) only on opt-in — see `includeTechnicalMessage`
61
+ const candidate = userCandidate ?? (options?.includeTechnicalMessage === true
62
+ ? _nonEmptyString(e?._message)
63
+ ?? _nonEmptyString(e?.message)
64
+ ?? _nonEmptyString(innerError?._message)
65
+ ?? _nonEmptyString(innerError?.message)
66
+ : undefined);
67
+ // HTTP status suffix (always-on by default)
68
+ const status = e?.___status
69
+ ?? e?.status
70
+ ?? innerError?.___status
71
+ ?? innerError?.status;
72
+ const statusText = _nonEmptyString(e?.statusText)
73
+ ?? _nonEmptyString(innerError?.statusText);
74
+ const httpSuffix = (includeHttpStatus && (status !== undefined || statusText !== undefined))
75
+ ? ` (HTTP ${status ?? '?'}${statusText ? ' ' + statusText : ''})`
76
+ : '';
77
+ if (candidate !== undefined) {
78
+ return `${prefix}${candidate}${httpSuffix}`;
79
+ }
80
+ // No usable text field. The raw payload only on opt-in (diagnostic) — the user gets the fallback.
81
+ const jsonAttempt = options?.includeRawPayload === true ? _safeJsonStringify(err) : undefined;
82
+ if (jsonAttempt !== undefined && jsonAttempt !== '{}' && jsonAttempt !== '[]') {
83
+ const trimmed = jsonAttempt.length > 200
84
+ ? jsonAttempt.slice(0, 200) + '…'
85
+ : jsonAttempt;
86
+ return `${prefix}Malformed error: ${trimmed}${httpSuffix}`;
87
+ }
88
+ // Total fallback.
89
+ return `${prefix}${fallback}${httpSuffix}`;
90
+ }
91
+ /**
92
+ * Returns the value if it's a non-empty string, else undefined.
93
+ * Trims and treats whitespace-only as empty. Internal helper.
94
+ */
95
+ function _nonEmptyString(v) {
96
+ if (typeof v !== 'string') {
97
+ return undefined;
98
+ }
99
+ const trimmed = v.trim();
100
+ return trimmed.length > 0 ? trimmed : undefined;
101
+ }
102
+ /**
103
+ * JSON.stringify wrapper that survives circular references + non-serializable
104
+ * values. Returns undefined if even the safe fallback fails (e.g. a Proxy
105
+ * whose getter throws).
106
+ */
107
+ function _safeJsonStringify(v) {
108
+ try {
109
+ const seen = new WeakSet();
110
+ return JSON.stringify(v, (_key, value) => {
111
+ if (typeof value === 'object' && value !== null) {
112
+ if (seen.has(value)) {
113
+ return '[Circular]';
114
+ }
115
+ seen.add(value);
116
+ }
117
+ if (typeof value === 'function') {
118
+ return '[Function]';
119
+ }
120
+ if (typeof value === 'undefined') {
121
+ return '[undefined]';
122
+ }
123
+ return value;
124
+ });
125
+ }
126
+ catch {
127
+ try {
128
+ return String(v);
129
+ }
130
+ catch {
131
+ return undefined;
132
+ }
133
+ }
134
+ }
135
+ /**
136
+ * Convenience: same as DyFM_extractErrorMessage but always includes a default
137
+ * prefix derived from the calling context, useful for adding diagnostic
138
+ * breadcrumbs without per-call boilerplate. Diagnostic ⇒ it keeps the HTTP
139
+ * status, the technical message and the raw payload (`includeHttpStatus` + `includeTechnicalMessage` +
140
+ * `includeRawPayload`) — do not show its result to users.
141
+ */
142
+ export function DyFM_formatError(err, prefix) {
143
+ return DyFM_extractErrorMessage(err, {
144
+ prefix: prefix, includeHttpStatus: true, includeTechnicalMessage: true, includeRawPayload: true,
145
+ });
146
+ }
147
+ /**
148
+ * Reports a raw error payload via the universal client-error capture system
149
+ * (FR-029-style). Implementation is delegated to a consumer-registered
150
+ * handler so dynamo-fsm stays Angular-agnostic; if no handler is registered
151
+ * the error is logged via `DyFM_Log.error` (which is the default no-op-safe
152
+ * sink). Consumers (e.g. A_ErrorHandler_ControlService) call
153
+ * `DyFM_registerMalformedErrorSink(fn)` once at bootstrap.
154
+ *
155
+ * The intent: when DyFM_extractErrorMessage falls back to 'Malformed error:'
156
+ * or the generic fallback, the raw payload should also be captured for
157
+ * post-mortem analysis (server error-log via FR-029 pipeline).
158
+ */
159
+ let _malformedErrorSink;
160
+ export function DyFM_registerMalformedErrorSink(fn) {
161
+ _malformedErrorSink = fn;
162
+ }
163
+ export function DyFM_reportMalformedError(err, context) {
164
+ if (_malformedErrorSink !== undefined) {
165
+ try {
166
+ _malformedErrorSink(err, context);
167
+ return;
168
+ }
169
+ catch {
170
+ /* sink threw — fall through to default */
171
+ }
172
+ }
173
+ // Default: best-effort console.error wrapped in DyFM_Error for stack capture.
174
+ try {
175
+ // Lazy require to avoid a hard cycle through error.control-model -> log.util.
176
+ const { DyFM_Log } = require('./log.util');
177
+ DyFM_Log.error(`[DyFM_reportMalformedError] ${context ?? 'unknown context'}`, err);
178
+ }
179
+ catch {
180
+ // Last-ditch — should never happen since log.util has no further deps.
181
+ /* swallow */
182
+ }
183
+ }