@futdevpro/fsm-dynamo 1.20.92 → 1.20.93

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 +85 -84
@@ -0,0 +1,348 @@
1
+ import * as CryptoJS from 'crypto-js';
2
+ const dyfm_exactManifestKeys = [
3
+ 'authority',
4
+ 'configuration',
5
+ 'contractVersion',
6
+ 'environment',
7
+ 'images',
8
+ 'operationId',
9
+ 'postChecks',
10
+ 'sourceRevision',
11
+ 'targetChecksum',
12
+ ].join(',');
13
+ const dyfm_exactAuthorityKeys = 'evidenceId,principalId';
14
+ const dyfm_exactConfigurationKeys = 'compatibilityVersion,policyChecksum,revision,sha256';
15
+ const dyfm_exactImageKeys = 'digest,immutableReference,mutableReference,service,version';
16
+ const dyfm_exactPostCheckKeys = 'checkId,endpoint,expectedProbeContract,service';
17
+ const dyfm_revisionPattern = /^[0-9a-f]{40}$/u;
18
+ const dyfm_sha256Pattern = /^[0-9a-f]{64}$/u;
19
+ const dyfm_digestPattern = /^sha256:[0-9a-f]{64}$/u;
20
+ const dyfm_operationPattern = /^rollback_[0-9a-f]{32}$/u;
21
+ const dyfm_safeIdPattern = /^[a-z0-9][a-z0-9._-]{0,127}$/u;
22
+ const dyfm_versionPattern = /^[0-9A-Za-z][0-9A-Za-z._-]{0,63}$/u;
23
+ const dyfm_compatibilityPattern = /^[a-z0-9][a-z0-9-]{1,63}\/[1-9][0-9]{0,8}$/u;
24
+ const dyfm_contractPattern = /^[a-z0-9][a-z0-9-]{1,63}\/[1-9][0-9]{0,8}$/u;
25
+ const dyfm_imageReferencePattern = /^(?:[a-z0-9]+(?:[._-][a-z0-9]+)*(?::[0-9]+)?\/)+[a-z0-9]+(?:[._-][a-z0-9]+)*:[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u;
26
+ /** Determines whether an unknown value is a non-array object. */
27
+ function dyfm_isRecord(value) {
28
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
29
+ }
30
+ /** Compares an object's sorted keys with one exact key signature. */
31
+ function dyfm_hasExactKeys(value, expected) {
32
+ return Object.keys(value).sort().join(',') === expected;
33
+ }
34
+ /** Narrows a value to a deployment environment supported by the contract. */
35
+ function dyfm_isEnvironment(value) {
36
+ return value === 'test' || value === 'production';
37
+ }
38
+ /** Allows bounded HTTPS probes and service-local HTTP probes without credentials or query data. */
39
+ function dyfm_isSafePostCheckEndpoint(value, service) {
40
+ if (value.length > 2048) {
41
+ return false;
42
+ }
43
+ try {
44
+ const endpoint = new URL(value);
45
+ if (endpoint.username
46
+ || endpoint.password
47
+ || endpoint.search
48
+ || endpoint.hash
49
+ || !/^\/[A-Za-z0-9/_-]{0,127}$/u.test(endpoint.pathname)) {
50
+ return false;
51
+ }
52
+ if (endpoint.protocol === 'https:') {
53
+ return true;
54
+ }
55
+ return endpoint.protocol === 'http:'
56
+ && [service, '127.0.0.1', 'localhost'].includes(endpoint.hostname);
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ /** Parses bounded deployment authority evidence without returning rejected content. */
63
+ function dyfm_parseAuthority(value, gapCodes) {
64
+ if (!dyfm_isRecord(value) || !dyfm_hasExactKeys(value, dyfm_exactAuthorityKeys)) {
65
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|AUTHORITY_SHAPE_INVALID');
66
+ return undefined;
67
+ }
68
+ if (typeof value.principalId !== 'string' || !dyfm_safeIdPattern.test(value.principalId)) {
69
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|AUTHORITY_PRINCIPAL_INVALID');
70
+ }
71
+ if (typeof value.evidenceId !== 'string' || !dyfm_sha256Pattern.test(value.evidenceId)) {
72
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|AUTHORITY_EVIDENCE_INVALID');
73
+ }
74
+ if (typeof value.principalId !== 'string'
75
+ || typeof value.evidenceId !== 'string'
76
+ || gapCodes.some((code) => code.startsWith('FDP|ATOMIC_ROLLBACK|AUTHORITY_'))) {
77
+ return undefined;
78
+ }
79
+ return { principalId: value.principalId, evidenceId: value.evidenceId };
80
+ }
81
+ /** Parses an exact configuration and compatibility target. */
82
+ function dyfm_parseConfiguration(value, gapCodes) {
83
+ if (!dyfm_isRecord(value) || !dyfm_hasExactKeys(value, dyfm_exactConfigurationKeys)) {
84
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|CONFIGURATION_SHAPE_INVALID');
85
+ return undefined;
86
+ }
87
+ if (typeof value.revision !== 'string' || !dyfm_revisionPattern.test(value.revision)) {
88
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|CONFIGURATION_REVISION_INVALID');
89
+ }
90
+ if (typeof value.sha256 !== 'string' || !dyfm_sha256Pattern.test(value.sha256)) {
91
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|CONFIGURATION_CHECKSUM_INVALID');
92
+ }
93
+ if (typeof value.compatibilityVersion !== 'string'
94
+ || !dyfm_compatibilityPattern.test(value.compatibilityVersion)) {
95
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|CONFIGURATION_COMPATIBILITY_INVALID');
96
+ }
97
+ if (typeof value.policyChecksum !== 'string' || !dyfm_sha256Pattern.test(value.policyChecksum)) {
98
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|CONFIGURATION_POLICY_CHECKSUM_INVALID');
99
+ }
100
+ if (typeof value.revision !== 'string'
101
+ || typeof value.sha256 !== 'string'
102
+ || typeof value.compatibilityVersion !== 'string'
103
+ || typeof value.policyChecksum !== 'string'
104
+ || gapCodes.some((code) => code.startsWith('FDP|ATOMIC_ROLLBACK|CONFIGURATION_'))) {
105
+ return undefined;
106
+ }
107
+ return {
108
+ revision: value.revision,
109
+ sha256: value.sha256,
110
+ compatibilityVersion: value.compatibilityVersion,
111
+ policyChecksum: value.policyChecksum,
112
+ };
113
+ }
114
+ /** Parses the complete immutable image promotion set. */
115
+ function dyfm_parseImages(value, gapCodes) {
116
+ if (!Array.isArray(value) || value.length < 1 || value.length > 16) {
117
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|IMAGE_SET_CARDINALITY_INVALID');
118
+ return [];
119
+ }
120
+ const images = [];
121
+ for (const candidate of value) {
122
+ if (!dyfm_isRecord(candidate) || !dyfm_hasExactKeys(candidate, dyfm_exactImageKeys)) {
123
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|IMAGE_SHAPE_INVALID');
124
+ continue;
125
+ }
126
+ const service = typeof candidate.service === 'string' ? candidate.service : undefined;
127
+ const version = typeof candidate.version === 'string' ? candidate.version : undefined;
128
+ const immutableReference = typeof candidate.immutableReference === 'string'
129
+ ? candidate.immutableReference
130
+ : undefined;
131
+ const mutableReference = typeof candidate.mutableReference === 'string'
132
+ ? candidate.mutableReference
133
+ : undefined;
134
+ const digest = typeof candidate.digest === 'string' ? candidate.digest : undefined;
135
+ if (!service || !dyfm_safeIdPattern.test(service)) {
136
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|IMAGE_SERVICE_INVALID');
137
+ continue;
138
+ }
139
+ if (!version || !dyfm_versionPattern.test(version)) {
140
+ gapCodes.push(`FDP|ATOMIC_ROLLBACK|IMAGE_VERSION_INVALID|${service}`);
141
+ continue;
142
+ }
143
+ if (!immutableReference
144
+ || immutableReference.length > 512
145
+ || !dyfm_imageReferencePattern.test(immutableReference)
146
+ || !immutableReference.endsWith(`/${service}:release-${version}`)) {
147
+ gapCodes.push(`FDP|ATOMIC_ROLLBACK|IMAGE_IMMUTABLE_REFERENCE_INVALID|${service}`);
148
+ continue;
149
+ }
150
+ if (!mutableReference
151
+ || mutableReference.length > 512
152
+ || !dyfm_imageReferencePattern.test(mutableReference)
153
+ || !mutableReference.endsWith(`/${service}:release`)) {
154
+ gapCodes.push(`FDP|ATOMIC_ROLLBACK|IMAGE_MUTABLE_REFERENCE_INVALID|${service}`);
155
+ continue;
156
+ }
157
+ if (immutableReference.slice(0, immutableReference.lastIndexOf(':'))
158
+ !== mutableReference.slice(0, mutableReference.lastIndexOf(':'))) {
159
+ gapCodes.push(`FDP|ATOMIC_ROLLBACK|IMAGE_REPOSITORY_MISMATCH|${service}`);
160
+ continue;
161
+ }
162
+ if (!digest || !dyfm_digestPattern.test(digest)) {
163
+ gapCodes.push(`FDP|ATOMIC_ROLLBACK|IMAGE_DIGEST_INVALID|${service}`);
164
+ continue;
165
+ }
166
+ images.push({
167
+ service: service,
168
+ version: version,
169
+ immutableReference: immutableReference,
170
+ mutableReference: mutableReference,
171
+ digest: digest,
172
+ });
173
+ }
174
+ const services = images.map((image) => image.service);
175
+ if (new Set(services).size !== services.length) {
176
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|IMAGE_SERVICE_DUPLICATED');
177
+ }
178
+ return images;
179
+ }
180
+ /** Parses bounded post-deployment checks targeting manifest services only. */
181
+ function dyfm_parsePostChecks(value, gapCodes) {
182
+ if (!Array.isArray(value) || value.length < 1 || value.length > 32) {
183
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|POST_CHECK_SET_CARDINALITY_INVALID');
184
+ return [];
185
+ }
186
+ const postChecks = [];
187
+ for (const candidate of value) {
188
+ if (!dyfm_isRecord(candidate) || !dyfm_hasExactKeys(candidate, dyfm_exactPostCheckKeys)) {
189
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|POST_CHECK_SHAPE_INVALID');
190
+ continue;
191
+ }
192
+ const checkId = typeof candidate.checkId === 'string' ? candidate.checkId : undefined;
193
+ const service = typeof candidate.service === 'string' ? candidate.service : undefined;
194
+ const endpoint = typeof candidate.endpoint === 'string' ? candidate.endpoint : undefined;
195
+ const expectedProbeContract = typeof candidate.expectedProbeContract === 'string'
196
+ ? candidate.expectedProbeContract
197
+ : undefined;
198
+ if (!checkId || !dyfm_safeIdPattern.test(checkId)) {
199
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|POST_CHECK_ID_INVALID');
200
+ continue;
201
+ }
202
+ if (!service || !dyfm_safeIdPattern.test(service)) {
203
+ gapCodes.push(`FDP|ATOMIC_ROLLBACK|POST_CHECK_SERVICE_INVALID|${checkId}`);
204
+ continue;
205
+ }
206
+ if (!endpoint || !dyfm_isSafePostCheckEndpoint(endpoint, service)) {
207
+ gapCodes.push(`FDP|ATOMIC_ROLLBACK|POST_CHECK_ENDPOINT_INVALID|${checkId}`);
208
+ continue;
209
+ }
210
+ if (!expectedProbeContract || !dyfm_contractPattern.test(expectedProbeContract)) {
211
+ gapCodes.push(`FDP|ATOMIC_ROLLBACK|POST_CHECK_CONTRACT_INVALID|${checkId}`);
212
+ continue;
213
+ }
214
+ postChecks.push({
215
+ checkId: checkId,
216
+ service: service,
217
+ endpoint: endpoint,
218
+ expectedProbeContract: expectedProbeContract,
219
+ });
220
+ }
221
+ if (new Set(postChecks.map((check) => check.checkId)).size
222
+ !== postChecks.length) {
223
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|POST_CHECK_ID_DUPLICATED');
224
+ }
225
+ return postChecks;
226
+ }
227
+ /** Creates the exact, insertion-order-independent JSON value hashed by every producer and consumer. */
228
+ function dyfm_canonicalTarget(manifest) {
229
+ return JSON.stringify({
230
+ contractVersion: manifest.contractVersion,
231
+ operationId: manifest.operationId,
232
+ environment: manifest.environment,
233
+ authority: {
234
+ principalId: manifest.authority.principalId,
235
+ evidenceId: manifest.authority.evidenceId,
236
+ },
237
+ sourceRevision: manifest.sourceRevision,
238
+ configuration: {
239
+ revision: manifest.configuration.revision,
240
+ sha256: manifest.configuration.sha256,
241
+ compatibilityVersion: manifest.configuration.compatibilityVersion,
242
+ policyChecksum: manifest.configuration.policyChecksum,
243
+ },
244
+ images: [...manifest.images].sort((left, right) => left.service
245
+ .localeCompare(right.service)).map((image) => ({
246
+ service: image.service,
247
+ version: image.version,
248
+ immutableReference: image.immutableReference,
249
+ mutableReference: image.mutableReference,
250
+ digest: image.digest,
251
+ })),
252
+ postChecks: [...manifest.postChecks].sort((left, right) => left
253
+ .checkId.localeCompare(right.checkId)).map((check) => ({
254
+ checkId: check.checkId,
255
+ service: check.service,
256
+ endpoint: check.endpoint,
257
+ expectedProbeContract: check.expectedProbeContract,
258
+ })),
259
+ });
260
+ }
261
+ /** Canonical manifest checksum and strict content-free local validation. */
262
+ export class DyFM_AtomicRollbackManifest_Util {
263
+ /** Calculates the canonical SHA-256 target checksum for a typed manifest. */
264
+ static computeTargetChecksum(manifest) {
265
+ return CryptoJS.SHA256(dyfm_canonicalTarget(manifest)).toString();
266
+ }
267
+ /** Validates an unknown manifest without reflecting rejected content. */
268
+ static validate(value) {
269
+ if (!dyfm_isRecord(value) || !dyfm_hasExactKeys(value, dyfm_exactManifestKeys)) {
270
+ return {
271
+ contractVersion: 'fdp-atomic-rollback-local-validation/1',
272
+ valid: false,
273
+ environment: 'invalid',
274
+ operationId: 'invalid',
275
+ targetChecksum: 'invalid',
276
+ serviceCount: 0,
277
+ postCheckCount: 0,
278
+ gapCodes: ['FDP|ATOMIC_ROLLBACK|MANIFEST_SHAPE_INVALID'],
279
+ };
280
+ }
281
+ const gapCodes = [];
282
+ if (value.contractVersion !== 'fdp-atomic-rollback-manifest/1') {
283
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|CONTRACT_VERSION_INVALID');
284
+ }
285
+ if (typeof value.operationId !== 'string' || !dyfm_operationPattern.test(value.operationId)) {
286
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|OPERATION_ID_INVALID');
287
+ }
288
+ if (!dyfm_isEnvironment(value.environment)) {
289
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|ENVIRONMENT_INVALID');
290
+ }
291
+ if (typeof value.sourceRevision !== 'string' || !dyfm_revisionPattern.test(value.sourceRevision)) {
292
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|SOURCE_REVISION_INVALID');
293
+ }
294
+ const authority = dyfm_parseAuthority(value.authority, gapCodes);
295
+ const configuration = dyfm_parseConfiguration(value.configuration, gapCodes);
296
+ const images = dyfm_parseImages(value.images, gapCodes);
297
+ const postChecks = dyfm_parsePostChecks(value.postChecks, gapCodes);
298
+ const imageServices = new Set(images.map((image) => image.service));
299
+ if (postChecks.some((check) => !imageServices.has(check.service))) {
300
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|POST_CHECK_SERVICE_NOT_TARGETED');
301
+ }
302
+ if (typeof value.targetChecksum !== 'string' || !dyfm_sha256Pattern.test(value.targetChecksum)) {
303
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|TARGET_CHECKSUM_INVALID');
304
+ }
305
+ let manifest;
306
+ if (!gapCodes.length
307
+ && typeof value.operationId === 'string'
308
+ && dyfm_isEnvironment(value.environment)
309
+ && authority
310
+ && typeof value.sourceRevision === 'string'
311
+ && configuration
312
+ && images.length > 0
313
+ && postChecks.length > 0
314
+ && typeof value.targetChecksum === 'string') {
315
+ manifest = {
316
+ contractVersion: 'fdp-atomic-rollback-manifest/1',
317
+ operationId: value.operationId,
318
+ environment: value.environment,
319
+ authority: authority,
320
+ sourceRevision: value.sourceRevision,
321
+ configuration: configuration,
322
+ images: images,
323
+ postChecks: postChecks,
324
+ targetChecksum: value.targetChecksum,
325
+ };
326
+ if (this.computeTargetChecksum(manifest) !== value.targetChecksum) {
327
+ gapCodes.push('FDP|ATOMIC_ROLLBACK|TARGET_CHECKSUM_MISMATCH');
328
+ manifest = undefined;
329
+ }
330
+ }
331
+ const normalizedGapCodes = [...new Set(gapCodes)].sort();
332
+ return {
333
+ contractVersion: 'fdp-atomic-rollback-local-validation/1',
334
+ valid: !normalizedGapCodes.length,
335
+ environment: dyfm_isEnvironment(value.environment) ? value.environment : 'invalid',
336
+ operationId: !normalizedGapCodes.length && typeof value.operationId === 'string'
337
+ ? value.operationId
338
+ : 'invalid',
339
+ targetChecksum: !normalizedGapCodes.length && typeof value.targetChecksum === 'string'
340
+ ? value.targetChecksum
341
+ : 'invalid',
342
+ serviceCount: images.length,
343
+ postCheckCount: postChecks.length,
344
+ gapCodes: normalizedGapCodes,
345
+ ...(manifest ? { manifest: manifest } : {}),
346
+ };
347
+ }
348
+ }
@@ -0,0 +1,2 @@
1
+ export * from './_collections/atomic-rollback-manifest.util';
2
+ export * from './_models/atomic-rollback-manifest.interface';
@@ -0,0 +1,109 @@
1
+ import { DyFM_AudioChannel } from '../_enums/audio-channel.enum';
2
+ /**
3
+ * Statikus util a jatek-audio mixer beallitasaihoz.
4
+ *
5
+ * Rendereles-agnosztikus es platform-fuggetlen: NINCS benne DOM, Web Audio, Angular vagy Node
6
+ * fuggoseg — a tenyleges lejatszast az `@futdevpro/ngx-dynamo` game-modulja (vagy a projekt sajat
7
+ * motorja) vegzi, ez csak a **modell + szamitas**.
8
+ *
9
+ * **Hasznalat:**
10
+ * ```typescript
11
+ * const settings: DyFM_AudioMixer_Settings = DyFM_AudioMixer_Util.merge(loadedFromSave);
12
+ * const volume: number = DyFM_AudioMixer_Util.getEffectiveVolume(settings, DyFM_AudioChannel.music);
13
+ * audioElement.volume = volume;
14
+ * ```
15
+ */
16
+ export class DyFM_AudioMixer_Util {
17
+ /** Alapertelmezett hangero minden csatornara (0..1). */
18
+ static defaultVolume = 0.8;
19
+ /**
20
+ * Az alapertelmezett mixer-beallitas. Minden hivas UJ objektumot ad vissza, hogy a
21
+ * hivo szabadon mutalhassa (nincs megosztott referencia).
22
+ */
23
+ static getDefaults() {
24
+ return {
25
+ master: this.defaultVolume,
26
+ music: this.defaultVolume,
27
+ ambience: this.defaultVolume,
28
+ effects: this.defaultVolume,
29
+ muted: false,
30
+ };
31
+ }
32
+ /**
33
+ * Egy hangero-erteket a 0..1 tartomanyba szorit. A nem-szamokat (NaN, undefined, null,
34
+ * nem-szam tipus) a `fallback`-re cseréli — igy egy serult save-payload sem tud NaN-t
35
+ * juttatni a lejatszoba (a `HTMLAudioElement.volume = NaN` dobna).
36
+ */
37
+ static clamp(value, fallback = DyFM_AudioMixer_Util.defaultVolume) {
38
+ if (typeof value !== 'number' || Number.isNaN(value)) {
39
+ return fallback;
40
+ }
41
+ if (value < 0) {
42
+ return 0;
43
+ }
44
+ if (1 < value) {
45
+ return 1;
46
+ }
47
+ return value;
48
+ }
49
+ /**
50
+ * Reszleges (vagy hianyzo) beallitas-objektumbol teljes, ervenyes settingset allit elo:
51
+ * a hianyzo mezoket a defaultbol veszi, a meglevoket 0..1-re szoritja.
52
+ *
53
+ * **Ez a migracios biztositek:** egy regi save-payload, ami meg nem ismerte az `ambience`
54
+ * csatornat, igy is betoltheto marad.
55
+ */
56
+ static merge(partial) {
57
+ const defaults = this.getDefaults();
58
+ if (!partial) {
59
+ return defaults;
60
+ }
61
+ return {
62
+ master: this.clamp(partial.master ?? defaults.master, defaults.master),
63
+ music: this.clamp(partial.music ?? defaults.music, defaults.music),
64
+ ambience: this.clamp(partial.ambience ?? defaults.ambience, defaults.ambience),
65
+ effects: this.clamp(partial.effects ?? defaults.effects, defaults.effects),
66
+ muted: partial.muted === true,
67
+ };
68
+ }
69
+ /**
70
+ * Egy csatorna EFFEKTIV hangereje: a csatorna sajat erteke szorozva a master-rel.
71
+ * Nemitas (`muted`) eseten mindig 0. A `master` csatornara a sajat erteket adja vissza
72
+ * (nem negyzetre emelve).
73
+ */
74
+ static getEffectiveVolume(settings, channel) {
75
+ const safe = this.merge(settings);
76
+ if (safe.muted) {
77
+ return 0;
78
+ }
79
+ if (channel === DyFM_AudioChannel.master) {
80
+ return safe.master;
81
+ }
82
+ return this.clamp(safe[channel] * safe.master);
83
+ }
84
+ /**
85
+ * Egy csatorna hangerejenek beallitasa — UJ settings-objektumot ad vissza (immutable update),
86
+ * hogy signal-/state-alapu tarolokban is biztonsagos legyen.
87
+ */
88
+ static withChannelVolume(settings, channel, volume) {
89
+ const next = this.merge(settings);
90
+ next[channel] = this.clamp(volume);
91
+ return next;
92
+ }
93
+ /** Nemitas beallitasa — UJ settings-objektumot ad vissza (immutable update). */
94
+ static withMuted(settings, muted) {
95
+ const next = this.merge(settings);
96
+ next.muted = muted === true;
97
+ return next;
98
+ }
99
+ /** Ket beallitas ertek szerinti egyezese (mentes-szukseg / change-detection dontesehez). */
100
+ static isEqual(a, b) {
101
+ const left = this.merge(a);
102
+ const right = this.merge(b);
103
+ return left.master === right.master
104
+ && left.music === right.music
105
+ && left.ambience === right.ambience
106
+ && left.effects === right.effects
107
+ && left.muted === right.muted;
108
+ }
109
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Skala-konverziok az audio-mixerhez: a projekt sajat szamabrazolasa (pl. `0-100` egesz)
3
+ * es a lejatszo API-k altal vart `0..1` kozott.
4
+ *
5
+ * **Miert statikus util:** nincs allapota — tiszta fuggvenyek, a `DyFM_Math` mintajara.
6
+ *
7
+ * **Hasznalat:**
8
+ * ```typescript
9
+ * const percent = DyFM_AudioScale_Util.getPercentScale();
10
+ * DyFM_AudioScale_Util.toUnit(72, percent); // 0.72 -> ezt varja a HTMLAudio / GainNode
11
+ * DyFM_AudioScale_Util.fromUnit(0.725, percent); // 73 -> ezt tarolja / mutatja a projekt
12
+ * ```
13
+ */
14
+ export class DyFM_AudioScale_Util {
15
+ /** Alapertelmezett hangero-arany (a skala maximumanak hanyada), ha nincs jobb ertek. */
16
+ static defaultRatio = 0.8;
17
+ /**
18
+ * A `0..1` lebegopontos skala — a Prototyper prototipusai (es a round-1
19
+ * `DyFM_AudioMixer_Settings`) ezt hasznaljak. Minden hivas UJ objektumot ad vissza, hogy a
20
+ * hivo szabadon mutalhassa.
21
+ */
22
+ static getUnitScale() {
23
+ return {
24
+ max: 1,
25
+ integer: false,
26
+ };
27
+ }
28
+ /**
29
+ * A `0-100` egesz skala — a Hero Coordinator ezt tarolja a localStorage-ban
30
+ * (`clampVolume` = `Math.round`). Minden hivas UJ objektumot ad vissza.
31
+ */
32
+ static getPercentScale() {
33
+ return {
34
+ max: 100,
35
+ integer: true,
36
+ };
37
+ }
38
+ /**
39
+ * Sajat skalan levo erteket `0..1`-re normalizal, es a tartomanyba szorit.
40
+ * Ervenytelen bemenet (NaN, nem-szam, null/undefined) eseten a `fallbackUnit`-ot adja —
41
+ * igy egy serult save-payload sem tud NaN-t juttatni a lejatszoba
42
+ * (`HTMLAudioElement.volume = NaN` dobna, a `GainNode.gain.value = NaN` elnemitana).
43
+ */
44
+ static toUnit(value, scale, fallbackUnit = DyFM_AudioScale_Util.defaultRatio) {
45
+ const max = this.getSafeMax(scale);
46
+ if (typeof value !== 'number' || Number.isNaN(value)) {
47
+ return this.clampUnit(fallbackUnit);
48
+ }
49
+ return this.clampUnit(value / max);
50
+ }
51
+ /**
52
+ * `0..1` erteket a sajat skalara alakit vissza. Egesz skalanal (`integer: true`) kerekit,
53
+ * igy a `0-100`-as UI-nak nem kell tortszamokkal dolgoznia.
54
+ */
55
+ static fromUnit(unit, scale) {
56
+ const max = this.getSafeMax(scale);
57
+ const safeUnit = typeof unit !== 'number' || Number.isNaN(unit)
58
+ ? 0
59
+ : this.clampUnit(unit);
60
+ const scaled = safeUnit * max;
61
+ return scale && scale.integer === true ? Math.round(scaled) : scaled;
62
+ }
63
+ /**
64
+ * Egy erteket a sajat skala `0..max` tartomanyaba szorit (egesz skalanal kerekit is).
65
+ *
66
+ * Ervenytelen bemenetre (NaN, nem-szam) a `fallbackScaleValue`-t adja — **a sajat skalan**.
67
+ * Alapertelmezesben `0`; a mixer viszont a csatorna DEFAULT-jat adja at, mert egy serult
68
+ * mentesbol jobb a hallhato alapertek, mint a nema 0 (a felhasznalo eszre sem venne).
69
+ */
70
+ static clampToScale(value, scale, fallbackScaleValue = 0) {
71
+ if (typeof value !== 'number' || Number.isNaN(value)) {
72
+ const safeFallback = typeof fallbackScaleValue === 'number'
73
+ && !Number.isNaN(fallbackScaleValue)
74
+ ? fallbackScaleValue
75
+ : 0;
76
+ return this.fromUnit(this.toUnit(safeFallback, scale, 0), scale);
77
+ }
78
+ return this.fromUnit(this.toUnit(value, scale, 0), scale);
79
+ }
80
+ /** Egy `0..1` erteket a tartomanyba szorit. */
81
+ static clampUnit(value) {
82
+ if (typeof value !== 'number' || Number.isNaN(value)) {
83
+ return 0;
84
+ }
85
+ if (value < 0) {
86
+ return 0;
87
+ }
88
+ return 1 < value ? 1 : value;
89
+ }
90
+ /**
91
+ * A skala maximuma vedve: a hianyzo / nem-pozitiv / NaN maximumot `1`-re cseréli, hogy a
92
+ * nullaval valo osztas es a NaN-terjedes kizart legyen.
93
+ */
94
+ static getSafeMax(scale) {
95
+ if (!scale || typeof scale.max !== 'number' || Number.isNaN(scale.max) || scale.max <= 0) {
96
+ return 1;
97
+ }
98
+ return scale.max;
99
+ }
100
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * A jatek-audio mixer **klasszikus** csatorna-keszlete.
3
+ *
4
+ * A Prototyper HAROM prototipusa (Room Cats / Cell Stage / Portalhold) egymastol fuggetlenul
5
+ * ugyanezt a negy csatornat vezette be — ez az enum az o kanonikus nevezektanuk.
6
+ *
7
+ * **FIGYELEM (2026-08-06 helyesbites):** ez NEM flotta-univerzalis. A **Hero Coordinator**
8
+ * csatornai `master` / `music` / **`dialog`** / **`interface`**, es `0-100` egeszet tarol.
9
+ * Ha a projekted csatorna-keszlete elter, NE ezt az enumot hasznald, hanem a
10
+ * `DyFM_AudioMixer_ControlModel`-t sajat config-gal (csatorna- es skala-agnosztikus).
11
+ *
12
+ * A `master` NEM onallo hangsav: minden csatorna effektiv hangereje a sajat erteke
13
+ * SZOROZVA a master-rel (lasd `DyFM_AudioMixer_Util.getEffectiveVolume`).
14
+ */
15
+ export var DyFM_AudioChannel;
16
+ (function (DyFM_AudioChannel) {
17
+ DyFM_AudioChannel["master"] = "master";
18
+ DyFM_AudioChannel["music"] = "music";
19
+ DyFM_AudioChannel["ambience"] = "ambience";
20
+ DyFM_AudioChannel["effects"] = "effects";
21
+ })(DyFM_AudioChannel || (DyFM_AudioChannel = {}));