@futdevpro/fsm-dynamo 1.20.88 → 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 (462) 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-handler.control-model.d.ts.map +1 -1
  18. package/build/_modules/data-handler/_models/data-handler.control-model.js +10 -4
  19. package/build/_modules/data-handler/_models/data-handler.control-model.js.map +1 -1
  20. package/build/_modules/data-handler/_models/data-list-handler.control-model.d.ts +1 -1
  21. package/build/_modules/data-handler/_models/data-list-handler.control-model.d.ts.map +1 -1
  22. package/build/_modules/data-handler/_models/data-search-handler.control-model.d.ts +1 -1
  23. package/build/_modules/data-handler/_models/data-search-handler.control-model.d.ts.map +1 -1
  24. package/build/_modules/data-handler/_models/list-collector-data-handler.control-model.d.ts +1 -1
  25. package/build/_modules/data-handler/_models/list-collector-data-handler.control-model.d.ts.map +1 -1
  26. package/build/_modules/data-handler/index.d.ts +3 -0
  27. package/build/_modules/data-handler/index.d.ts.map +1 -1
  28. package/build/_modules/data-handler/index.js +3 -0
  29. package/build/_modules/data-handler/index.js.map +1 -1
  30. package/build/_modules/game/_models/flying-effect.control-model.d.ts +34 -0
  31. package/build/_modules/game/_models/flying-effect.control-model.d.ts.map +1 -0
  32. package/build/_modules/game/_models/flying-effect.control-model.js +217 -0
  33. package/build/_modules/game/_models/flying-effect.control-model.js.map +1 -0
  34. package/build/_modules/game/_models/flying-effect.interface.d.ts +53 -0
  35. package/build/_modules/game/_models/flying-effect.interface.d.ts.map +1 -0
  36. package/build/_modules/game/_models/flying-effect.interface.js +3 -0
  37. package/build/_modules/game/_models/flying-effect.interface.js.map +1 -0
  38. package/build/_modules/game/index.d.ts +2 -0
  39. package/build/_modules/game/index.d.ts.map +1 -1
  40. package/build/_modules/game/index.js +2 -0
  41. package/build/_modules/game/index.js.map +1 -1
  42. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.d.ts +0 -3
  43. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.d.ts.map +1 -1
  44. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js +4 -10
  45. package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js.map +1 -1
  46. package/build/_modules/ngx-models/_models/control-models/data-handler.control-model.d.ts.map +1 -1
  47. package/build/_modules/ngx-models/_models/control-models/data-handler.control-model.js +10 -4
  48. package/build/_modules/ngx-models/_models/control-models/data-handler.control-model.js.map +1 -1
  49. package/build/_modules/ngx-models/index.d.ts +3 -0
  50. package/build/_modules/ngx-models/index.d.ts.map +1 -1
  51. package/build/_modules/ngx-models/index.js +3 -0
  52. package/build/_modules/ngx-models/index.js.map +1 -1
  53. package/build/_modules/sandbox-runtime/_collections/zero-egress-receipt.util.d.ts.map +1 -1
  54. package/build/_modules/sandbox-runtime/_collections/zero-egress-receipt.util.js +2 -0
  55. package/build/_modules/sandbox-runtime/_collections/zero-egress-receipt.util.js.map +1 -1
  56. package/build/_modules/sandbox-runtime/_collections/zero-egress-result-code.const.d.ts +2 -0
  57. package/build/_modules/sandbox-runtime/_collections/zero-egress-result-code.const.d.ts.map +1 -1
  58. package/build/_modules/sandbox-runtime/_collections/zero-egress-result-code.const.js +2 -0
  59. package/build/_modules/sandbox-runtime/_collections/zero-egress-result-code.const.js.map +1 -1
  60. package/build/index.d.ts +3 -0
  61. package/build/index.d.ts.map +1 -1
  62. package/build/index.js +3 -0
  63. package/build/index.js.map +1 -1
  64. package/build-esm/_collections/constants/data-sizes.const.js +37 -0
  65. package/build-esm/_collections/constants/error-defaults.const.js +17 -0
  66. package/build-esm/_collections/constants/global-settings.const.js +17 -0
  67. package/build-esm/_collections/constants/numbers.const.js +36 -0
  68. package/build-esm/_collections/constants/times.const.js +38 -0
  69. package/build-esm/_collections/utils/array.util.js +632 -0
  70. package/build-esm/_collections/utils/async.util.js +183 -0
  71. package/build-esm/_collections/utils/data.util.js +203 -0
  72. package/build-esm/_collections/utils/extract-error-message.util.js +183 -0
  73. package/build-esm/_collections/utils/json-error-helper.util.js +251 -0
  74. package/build-esm/_collections/utils/log.util.js +555 -0
  75. package/build-esm/_collections/utils/math/box-bounds.util.js +159 -0
  76. package/build-esm/_collections/utils/math/math.util.js +183 -0
  77. package/build-esm/_collections/utils/math/random.util.js +117 -0
  78. package/build-esm/_collections/utils/math/trigonometry.util.js +89 -0
  79. package/build-esm/_collections/utils/math/vector2.util.js +587 -0
  80. package/build-esm/_collections/utils/object.util.js +591 -0
  81. package/build-esm/_collections/utils/operation-authz.util.js +136 -0
  82. package/build-esm/_collections/utils/operation-guardrails.util.js +220 -0
  83. package/build-esm/_collections/utils/operation-run.util.js +81 -0
  84. package/build-esm/_collections/utils/operation-schema.util.js +159 -0
  85. package/build-esm/_collections/utils/regex/password-regex.util.js +56 -0
  86. package/build-esm/_collections/utils/regex/regex.util.js +1 -0
  87. package/build-esm/_collections/utils/regex/username-regex.util.js +28 -0
  88. package/build-esm/_collections/utils/require-env.util.js +90 -0
  89. package/build-esm/_collections/utils/round-list.util.js +108 -0
  90. package/build-esm/_collections/utils/secret-mask.util.js +219 -0
  91. package/build-esm/_collections/utils/stack.util.js +126 -0
  92. package/build-esm/_collections/utils/string-case.util.js +332 -0
  93. package/build-esm/_collections/utils/string.util.js +366 -0
  94. package/build-esm/_collections/utils/time.util.js +431 -0
  95. package/build-esm/_collections/utils/type-cloning-facility.util.js +122 -0
  96. package/build-esm/_collections/utils/utilities.util.js +61 -0
  97. package/build-esm/_collections/utils/uuid.util.js +33 -0
  98. package/build-esm/_enums/basic-property-type.enum.js +18 -0
  99. package/build-esm/_enums/data-model-type.enum.js +24 -0
  100. package/build-esm/_enums/environment-flag.enum.js +26 -0
  101. package/build-esm/_enums/error-level.enum.js +35 -0
  102. package/build-esm/_enums/error-status.enum.js +28 -0
  103. package/build-esm/_enums/http/http-call-type.enum.js +42 -0
  104. package/build-esm/_enums/http/http-event-type.enum.js +39 -0
  105. package/build-esm/_enums/http/http-response-type.enum.js +18 -0
  106. package/build-esm/_enums/log-style.enum.js +38 -0
  107. package/build-esm/_enums/operation-auth.type-enum.js +19 -0
  108. package/build-esm/_enums/operation-if-match.type-enum.js +17 -0
  109. package/build-esm/_enums/operation-patch-field.type-enum.js +40 -0
  110. package/build-esm/_enums/server-connection-status.enum.js +5 -0
  111. package/build-esm/_enums/time/day-of-week.enum.js +47 -0
  112. package/build-esm/_enums/time/month.enum.js +23 -0
  113. package/build-esm/_enums/time/relative-date.enum.js +19 -0
  114. package/build-esm/_models/control-models/data-model-params.control-model.js +259 -0
  115. package/build-esm/_models/control-models/data-model-settings.control-model.js +63 -0
  116. package/build-esm/_models/control-models/data-property-params.control-model.js +101 -0
  117. package/build-esm/_models/control-models/data-property-settings.control-model.js +61 -0
  118. package/build-esm/_models/control-models/error.control-model.js +787 -0
  119. package/build-esm/_models/control-models/http/http-error-response.control-model.js +48 -0
  120. package/build-esm/_models/control-models/http/http-headers.control-model.js +43 -0
  121. package/build-esm/_models/control-models/http/http-response.model-base.js +62 -0
  122. package/build-esm/_models/control-models/operation-context.control-model.js +110 -0
  123. package/build-esm/_models/control-models/operation-settings.control-model.js +184 -0
  124. package/build-esm/_models/control-models/poll.control-model.js +202 -0
  125. package/build-esm/_models/control-models/range-value.control-model.js +247 -0
  126. package/build-esm/_models/control-models/server-route-settings-base.control-model.js +19 -0
  127. package/build-esm/_models/control-models/server-status.control-model.js +73 -0
  128. package/build-esm/_models/control-models/service-endpoint-settings-base.control-model.js +110 -0
  129. package/build-esm/_models/data-models/errors.data-model.js +156 -0
  130. package/build-esm/_models/data-models/metadata.data-model.js +120 -0
  131. package/build-esm/_models/interfaces/box-bounds.interface.js +1 -0
  132. package/build-esm/_models/interfaces/environment/global-log-settings.interface.js +1 -0
  133. package/build-esm/_models/interfaces/environment/global-settings.interface.js +1 -0
  134. package/build-esm/_models/interfaces/error-defaults.interface.js +1 -0
  135. package/build-esm/_models/interfaces/operation-authz-result.interface.js +1 -0
  136. package/build-esm/_models/interfaces/operation-authz.interface.js +1 -0
  137. package/build-esm/_models/interfaces/operation-exposure.interface.js +1 -0
  138. package/build-esm/_models/interfaces/operation-guardrails.interface.js +1 -0
  139. package/build-esm/_models/interfaces/operation-input-settings.interface.js +1 -0
  140. package/build-esm/_models/interfaces/operation-json-schema.interface.js +1 -0
  141. package/build-esm/_models/interfaces/operation-patch-field.interface.js +1 -0
  142. package/build-esm/_models/interfaces/operation-patch-result.interface.js +1 -0
  143. package/build-esm/_models/interfaces/operation-patch-violation.interface.js +1 -0
  144. package/build-esm/_models/interfaces/operation-run-result.interface.js +1 -0
  145. package/build-esm/_models/interfaces/paged.interface.js +1 -0
  146. package/build-esm/_models/interfaces/poll-handle.interface.js +1 -0
  147. package/build-esm/_models/interfaces/random-weight.interface.js +1 -0
  148. package/build-esm/_models/interfaces/route-settings.interface.js +1 -0
  149. package/build-esm/_models/interfaces/search-query.interface.js +1 -0
  150. package/build-esm/_models/interfaces/search-result.interface.js +1 -0
  151. package/build-esm/_models/interfaces/server-error-statistics.interface.js +1 -0
  152. package/build-esm/_models/interfaces/vector2.interface.js +1 -0
  153. package/build-esm/_models/types/db-filter.type.js +1 -0
  154. package/build-esm/_models/types/db-sort.type.js +1 -0
  155. package/build-esm/_models/types/deprecated-boolean-alias.type.js +1 -0
  156. package/build-esm/_models/types/ds-filter.type.js +15 -0
  157. package/build-esm/_models/types/ds-sort.type.js +1 -0
  158. package/build-esm/_modules/ai/_collections/ai-media-provenance.util.js +24 -0
  159. package/build-esm/_modules/ai/_collections/ai-model-ref.util.js +70 -0
  160. package/build-esm/_modules/ai/_collections/ai-model-registry.util.js +37 -0
  161. package/build-esm/_modules/ai/_enums/ai-message-role.enum.js +8 -0
  162. package/build-esm/_modules/ai/_enums/ai-model-type.enum.js +8 -0
  163. package/build-esm/_modules/ai/_enums/ai-provider.enum.js +8 -0
  164. package/build-esm/_modules/ai/_models/ai-call-settings.interface.js +88 -0
  165. package/build-esm/_modules/ai/_models/ai-config.interface.js +1 -0
  166. package/build-esm/_modules/ai/_models/ai-embedding-request.interface.js +1 -0
  167. package/build-esm/_modules/ai/_models/ai-embedding-response.interface.js +1 -0
  168. package/build-esm/_modules/ai/_models/ai-image-request.interface.js +1 -0
  169. package/build-esm/_modules/ai/_models/ai-image-response.interface.js +1 -0
  170. package/build-esm/_modules/ai/_models/ai-llm-request.interface.js +1 -0
  171. package/build-esm/_modules/ai/_models/ai-llm-response.interface.js +1 -0
  172. package/build-esm/_modules/ai/_models/ai-media-file.interface.js +1 -0
  173. package/build-esm/_modules/ai/_models/ai-media-provenance.interface.js +1 -0
  174. package/build-esm/_modules/ai/_models/ai-message.interface.js +1 -0
  175. package/build-esm/_modules/ai/_models/ai-model-capabilities.interface.js +1 -0
  176. package/build-esm/_modules/ai/_models/ai-model-info.interface.js +1 -0
  177. package/build-esm/_modules/ai/_models/ai-model-settings-schema.interface.js +1 -0
  178. package/build-esm/_modules/ai/_models/ai-model3d-request.interface.js +1 -0
  179. package/build-esm/_modules/ai/_models/ai-model3d-response.interface.js +1 -0
  180. package/build-esm/_modules/ai/_models/ai-provider-capabilities.interface.js +1 -0
  181. package/build-esm/_modules/ai/_models/ai-settings.interface.js +10 -0
  182. package/build-esm/_modules/ai/_models/ai-speech-request.interface.js +1 -0
  183. package/build-esm/_modules/ai/_models/ai-speech-response.interface.js +1 -0
  184. package/build-esm/_modules/ai/_models/ai-tool-call.interface.js +1 -0
  185. package/build-esm/_modules/ai/_models/ai-tool-handler.type.js +1 -0
  186. package/build-esm/_modules/ai/_models/ai-tool-result.interface.js +1 -0
  187. package/build-esm/_modules/ai/_models/ai-tool.interface.js +1 -0
  188. package/build-esm/_modules/ai/_models/ai-user-provider-config.control-model.js +31 -0
  189. package/build-esm/_modules/ai/_modules/anthropic/_collections/aai-models.const.js +130 -0
  190. package/build-esm/_modules/ai/_modules/anthropic/_enums/aai-model.enum.js +17 -0
  191. package/build-esm/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.js +23 -0
  192. package/build-esm/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.js +1 -0
  193. package/build-esm/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.js +25 -0
  194. package/build-esm/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.js +22 -0
  195. package/build-esm/_modules/ai/_modules/anthropic/index.js +9 -0
  196. package/build-esm/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.js +1 -0
  197. package/build-esm/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.js +1 -0
  198. package/build-esm/_modules/ai/_modules/document-ai/index.js +3 -0
  199. package/build-esm/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.js +38 -0
  200. package/build-esm/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.js +7 -0
  201. package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.js +21 -0
  202. package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.js +1 -0
  203. package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.js +24 -0
  204. package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.js +22 -0
  205. package/build-esm/_modules/ai/_modules/fdp-ai/index.js +9 -0
  206. package/build-esm/_modules/ai/_modules/google-ai/_collections/gai-models.const.js +155 -0
  207. package/build-esm/_modules/ai/_modules/google-ai/_enums/gai-model.enum.js +14 -0
  208. package/build-esm/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.js +23 -0
  209. package/build-esm/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.js +1 -0
  210. package/build-esm/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.js +25 -0
  211. package/build-esm/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.js +22 -0
  212. package/build-esm/_modules/ai/_modules/google-ai/index.js +9 -0
  213. package/build-esm/_modules/ai/_modules/local-ai/_collections/lai-models.const.js +57 -0
  214. package/build-esm/_modules/ai/_modules/local-ai/_enums/lai-model.enum.js +5 -0
  215. package/build-esm/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.js +19 -0
  216. package/build-esm/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.js +1 -0
  217. package/build-esm/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.js +22 -0
  218. package/build-esm/_modules/ai/_modules/local-ai/index.js +8 -0
  219. package/build-esm/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.js +6 -0
  220. package/build-esm/_modules/ai/_modules/open-ai/_collections/oai-models.const.js +455 -0
  221. package/build-esm/_modules/ai/_modules/open-ai/_enums/oai-model.enum.js +146 -0
  222. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.js +23 -0
  223. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.js +1 -0
  224. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.js +1 -0
  225. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.js +25 -0
  226. package/build-esm/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.js +23 -0
  227. package/build-esm/_modules/ai/_modules/open-ai/index.js +19 -0
  228. package/build-esm/_modules/ai/index.js +34 -0
  229. package/build-esm/_modules/application-alert/_collections/application-alert-envelope.util.js +267 -0
  230. package/build-esm/_modules/application-alert/_enums/application-alert-evaluation-state.type-enum.js +6 -0
  231. package/build-esm/_modules/application-alert/_enums/application-alert-severity.type-enum.js +8 -0
  232. package/build-esm/_modules/application-alert/_models/application-alert.interface.js +1 -0
  233. package/build-esm/_modules/application-alert/index.js +4 -0
  234. package/build-esm/_modules/ci-tools/_enums/cit-ci-result-code.enum.js +9 -0
  235. package/build-esm/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.js +9 -0
  236. package/build-esm/_modules/ci-tools/_models/cit-ci-result-info.data-models.js +63 -0
  237. package/build-esm/_modules/ci-tools/_models/cit-ci-step-result.interface.js +1 -0
  238. package/build-esm/_modules/ci-tools/index.js +6 -0
  239. package/build-esm/_modules/crypto/_collections/crypto-v1.util.js +199 -0
  240. package/build-esm/_modules/crypto/_collections/crypto-v2.util.js +273 -0
  241. package/build-esm/_modules/crypto/_collections/crypto-v4.util.js +605 -0
  242. package/build-esm/_modules/crypto/_collections/crypto.util.js +651 -0
  243. package/build-esm/_modules/crypto/_models/artifact-signature.interface.js +1 -0
  244. package/build-esm/_modules/crypto/_services/artifact-signature.control-service.js +276 -0
  245. package/build-esm/_modules/crypto/index.js +11 -0
  246. package/build-esm/_modules/custom-data/_collections/cud-module-settings.const.js +18 -0
  247. package/build-esm/_modules/custom-data/_models/cud.data-model.js +30 -0
  248. package/build-esm/_modules/custom-data/index.js +4 -0
  249. package/build-esm/_modules/data-handler/_models/data-handler-settings.control-model.js +78 -0
  250. package/build-esm/_modules/data-handler/_models/data-handler.control-model.js +386 -0
  251. package/build-esm/_modules/data-handler/_models/data-list-handler-settings.control-model.js +11 -0
  252. package/build-esm/_modules/data-handler/_models/data-list-handler.control-model.js +222 -0
  253. package/build-esm/_modules/data-handler/_models/data-search-handler-settings.control-model.js +25 -0
  254. package/build-esm/_modules/data-handler/_models/data-search-handler.control-model.js +334 -0
  255. package/build-esm/_modules/data-handler/_models/list-collector-data-handler-settings.control-model.js +12 -0
  256. package/build-esm/_modules/data-handler/_models/list-collector-data-handler.control-model.js +243 -0
  257. package/build-esm/_modules/data-handler/index.js +9 -0
  258. package/build-esm/_modules/deployment/_collections/atomic-rollback-manifest.util.js +348 -0
  259. package/build-esm/_modules/deployment/_models/atomic-rollback-manifest.interface.js +1 -0
  260. package/build-esm/_modules/deployment/index.js +2 -0
  261. package/build-esm/_modules/game/_collections/audio-mixer.util.js +109 -0
  262. package/build-esm/_modules/game/_collections/audio-scale.util.js +100 -0
  263. package/build-esm/_modules/game/_enums/audio-channel.enum.js +21 -0
  264. package/build-esm/_modules/game/_models/audio-mixer-config.interface.js +1 -0
  265. package/build-esm/_modules/game/_models/audio-mixer-settings.interface.js +1 -0
  266. package/build-esm/_modules/game/_models/audio-mixer-state.interface.js +1 -0
  267. package/build-esm/_modules/game/_models/audio-mixer.control-model.js +337 -0
  268. package/build-esm/_modules/game/_models/audio-scale.interface.js +1 -0
  269. package/build-esm/_modules/game/_models/flying-effect.control-model.js +212 -0
  270. package/build-esm/_modules/game/_models/flying-effect.interface.js +1 -0
  271. package/build-esm/_modules/game/_models/seeded-random-registry.control-model.js +124 -0
  272. package/build-esm/_modules/game/_models/seeded-random-registry.interface.js +1 -0
  273. package/build-esm/_modules/game/_models/seeded-random-state.interface.js +1 -0
  274. package/build-esm/_modules/game/_models/seeded-random.control-model.js +261 -0
  275. package/build-esm/_modules/game/index.js +17 -0
  276. package/build-esm/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -0
  277. package/build-esm/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19036 -0
  278. package/build-esm/_modules/location/_collections/assets/country-phone-codes.json +1202 -0
  279. package/build-esm/_modules/location/_collections/loc-country-divisions.const.js +3 -0
  280. package/build-esm/_modules/location/_collections/loc-country-isos.const.js +2 -0
  281. package/build-esm/_modules/location/_collections/loc-regions.util.js +107 -0
  282. package/build-esm/_modules/location/_collections/loc.util.js +56 -0
  283. package/build-esm/_modules/location/_enums/loc-region.enum.js +11 -0
  284. package/build-esm/_modules/location/_enums/loc-sub-region.enum.js +23 -0
  285. package/build-esm/_modules/location/_enums/loc-subdivision-region-type.enum.js +45 -0
  286. package/build-esm/_modules/location/_models/loc-coordinates.interface.js +1 -0
  287. package/build-esm/_modules/location/_models/loc-country-division.interface.js +1 -0
  288. package/build-esm/_modules/location/_models/loc-country-iso.interface.js +1 -0
  289. package/build-esm/_modules/location/_models/loc-country-phone-code.interface.js +1 -0
  290. package/build-esm/_modules/location/_models/loc-division-collection.interface.js +1 -0
  291. package/build-esm/_modules/location/_models/loc-division-region-data.interface.js +1 -0
  292. package/build-esm/_modules/location/_models/loc-geo-ip-location.interface.js +1 -0
  293. package/build-esm/_modules/location/index.js +17 -0
  294. package/build-esm/_modules/messaging/_collections/msg-module-settings.const.js +44 -0
  295. package/build-esm/_modules/messaging/_enums/msg-attachment-type.enum.js +21 -0
  296. package/build-esm/_modules/messaging/_enums/msg-conversation-type.enum.js +17 -0
  297. package/build-esm/_modules/messaging/_enums/msg-delivery-status.enum.js +15 -0
  298. package/build-esm/_modules/messaging/_enums/msg-event-key.enum.js +28 -0
  299. package/build-esm/_modules/messaging/_enums/msg-participant-role.enum.js +17 -0
  300. package/build-esm/_modules/messaging/_enums/msg-provider-type.enum.js +8 -0
  301. package/build-esm/_modules/messaging/_enums/msg-status.enum.js +21 -0
  302. package/build-esm/_modules/messaging/_enums/msg-type.enum.js +19 -0
  303. package/build-esm/_modules/messaging/_models/msg-attachment.interface.js +1 -0
  304. package/build-esm/_modules/messaging/_models/msg-conversation.data-model.js +80 -0
  305. package/build-esm/_modules/messaging/_models/msg-mention.interface.js +1 -0
  306. package/build-esm/_modules/messaging/_models/msg-message.data-model.js +102 -0
  307. package/build-esm/_modules/messaging/_models/msg-participant.interface.js +1 -0
  308. package/build-esm/_modules/messaging/_models/msg-reaction.interface.js +1 -0
  309. package/build-esm/_modules/messaging/_models/msg-thread-info.interface.js +1 -0
  310. package/build-esm/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.js +27 -0
  311. package/build-esm/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.js +19 -0
  312. package/build-esm/_modules/messaging/_modules/agent/_models/agt-process-step.interface.js +1 -0
  313. package/build-esm/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.js +1 -0
  314. package/build-esm/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.js +1 -0
  315. package/build-esm/_modules/messaging/_modules/agent/index.js +7 -0
  316. package/build-esm/_modules/messaging/index.js +25 -0
  317. package/build-esm/_modules/ngx-models/_collections/angular-placeholders.js +1 -0
  318. package/build-esm/_modules/ngx-models/_collections/button-new-style-settings-presets.const.js +170 -0
  319. package/build-esm/_modules/ngx-models/_collections/dynamo-global.settings.js +88 -0
  320. package/build-esm/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.js +14 -0
  321. package/build-esm/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.js +12 -0
  322. package/build-esm/_modules/ngx-models/_enums/button-new/button-new-size.enum.js +15 -0
  323. package/build-esm/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.js +17 -0
  324. package/build-esm/_modules/ngx-models/_enums/button-type.enum.js +35 -0
  325. package/build-esm/_modules/ngx-models/_enums/checkbox-label-position.enum.js +8 -0
  326. package/build-esm/_modules/ngx-models/_enums/container-type.enum.js +11 -0
  327. package/build-esm/_modules/ngx-models/_enums/errors/error-level.enum.js +14 -0
  328. package/build-esm/_modules/ngx-models/_enums/errors/error-notification-color.enum.js +14 -0
  329. package/build-esm/_modules/ngx-models/_enums/errors/error-ui-mode.enum.js +14 -0
  330. package/build-esm/_modules/ngx-models/_enums/field-appearance.enum.js +13 -0
  331. package/build-esm/_modules/ngx-models/_enums/field-type.enum.js +49 -0
  332. package/build-esm/_modules/ngx-models/_enums/file-type.enum.js +12 -0
  333. package/build-esm/_modules/ngx-models/_enums/flex/flex-layout-align.enum.js +21 -0
  334. package/build-esm/_modules/ngx-models/_enums/flex/flex-layout.enum.js +6 -0
  335. package/build-esm/_modules/ngx-models/_enums/form-access.enum.js +9 -0
  336. package/build-esm/_modules/ngx-models/_enums/form-reset-data.enum.js +12 -0
  337. package/build-esm/_modules/ngx-models/_enums/form-store-on.enum.js +8 -0
  338. package/build-esm/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.js +21 -0
  339. package/build-esm/_modules/ngx-models/_enums/frames/header-item-type.enum.js +16 -0
  340. package/build-esm/_modules/ngx-models/_enums/frames/header-position.enum.js +11 -0
  341. package/build-esm/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.js +14 -0
  342. package/build-esm/_modules/ngx-models/_enums/html/input-types.enum.js +26 -0
  343. package/build-esm/_modules/ngx-models/_enums/material-color.enum.js +14 -0
  344. package/build-esm/_modules/ngx-models/_enums/material-tooltip-position.enum.js +13 -0
  345. package/build-esm/_modules/ngx-models/_enums/preconfigured-field-type.enum.js +8 -0
  346. package/build-esm/_modules/ngx-models/_enums/storage-type.enum.js +13 -0
  347. package/build-esm/_modules/ngx-models/_enums/validator-type.enum.js +7 -0
  348. package/build-esm/_modules/ngx-models/_enums/voice/audio-mime-type.enum.js +15 -0
  349. package/build-esm/_modules/ngx-models/_enums/voice/voice-provider-type.enum.js +32 -0
  350. package/build-esm/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.js +21 -0
  351. package/build-esm/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.js +44 -0
  352. package/build-esm/_modules/ngx-models/_models/control-models/button-params.control-model.js +304 -0
  353. package/build-esm/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.js +59 -0
  354. package/build-esm/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js +94 -0
  355. package/build-esm/_modules/ngx-models/_models/control-models/data-handler.control-model.js +407 -0
  356. package/build-esm/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.js +43 -0
  357. package/build-esm/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.js +64 -0
  358. package/build-esm/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.js +52 -0
  359. package/build-esm/_modules/ngx-models/_models/control-models/field-settings.control-model.js +207 -0
  360. package/build-esm/_modules/ngx-models/_models/control-models/form-settings.control-model.js +275 -0
  361. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.js +29 -0
  362. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.js +36 -0
  363. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.js +31 -0
  364. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.js +46 -0
  365. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.js +38 -0
  366. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/datetime-range-field-new-settings.control-model.js +48 -0
  367. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/emoji-picker-field-new-settings.control-model.js +21 -0
  368. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.js +91 -0
  369. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/field-new-types.js +1 -0
  370. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.js +39 -0
  371. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/icon-picker-field-new-settings.control-model.js +39 -0
  372. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/index.js +23 -0
  373. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.js +31 -0
  374. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.js +29 -0
  375. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.js +51 -0
  376. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/picker-field-new-option.interface.js +1 -0
  377. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.js +38 -0
  378. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.js +35 -0
  379. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.js +50 -0
  380. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.js +47 -0
  381. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.js +35 -0
  382. package/build-esm/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.js +27 -0
  383. package/build-esm/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.js +44 -0
  384. package/build-esm/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.js +56 -0
  385. package/build-esm/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.js +58 -0
  386. package/build-esm/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.js +38 -0
  387. package/build-esm/_modules/ngx-models/_models/control-models/select.control-model.js +27 -0
  388. package/build-esm/_modules/ngx-models/_models/control-models/signal-data-list-handler-settings.control-model.js +23 -0
  389. package/build-esm/_modules/ngx-models/_models/control-models/signal-data-search-handler-settings.control-model.js +25 -0
  390. package/build-esm/_modules/ngx-models/_models/control-models/signal-list-collector-data-handler-settings.control-model.js +12 -0
  391. package/build-esm/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.js +22 -0
  392. package/build-esm/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.js +91 -0
  393. package/build-esm/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.js +42 -0
  394. package/build-esm/_modules/ngx-models/_models/interfaces/button-new-settings.interface.js +1 -0
  395. package/build-esm/_modules/ngx-models/_models/interfaces/confirm-settings.interface.js +1 -0
  396. package/build-esm/_modules/ngx-models/_models/interfaces/global-settings.interface.js +1 -0
  397. package/build-esm/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.js +1 -0
  398. package/build-esm/_modules/ngx-models/_models/interfaces/storage.service.js +40 -0
  399. package/build-esm/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.js +1 -0
  400. package/build-esm/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.js +1 -0
  401. package/build-esm/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.js +1 -0
  402. package/build-esm/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.js +1 -0
  403. package/build-esm/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.js +1 -0
  404. package/build-esm/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.js +1 -0
  405. package/build-esm/_modules/ngx-models/_utils/shared.service.js +407 -0
  406. package/build-esm/_modules/ngx-models/index.js +89 -0
  407. package/build-esm/_modules/operation-control/_collections/operation-lease.util.js +323 -0
  408. package/build-esm/_modules/operation-control/_enums/operation-decision-code.type-enum.js +22 -0
  409. package/build-esm/_modules/operation-control/_enums/operation-state.type-enum.js +9 -0
  410. package/build-esm/_modules/operation-control/_models/operation-lease.interface.js +1 -0
  411. package/build-esm/_modules/operation-control/index.js +4 -0
  412. package/build-esm/_modules/pipe/_collections/pip-transforms.const.js +32 -0
  413. package/build-esm/_modules/pipe/_collections/utils/pip-country-pipe.util.js +29 -0
  414. package/build-esm/_modules/pipe/_collections/utils/pip-custom-pipe.util.js +22 -0
  415. package/build-esm/_modules/pipe/_collections/utils/pip-division-pipe.util.js +21 -0
  416. package/build-esm/_modules/pipe/_collections/utils/pip-json-pipe.util.js +18 -0
  417. package/build-esm/_modules/pipe/_collections/utils/pip-list-pipe.util.js +19 -0
  418. package/build-esm/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.js +164 -0
  419. package/build-esm/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.js +16 -0
  420. package/build-esm/_modules/pipe/_collections/utils/pip-range-pipe.util.js +64 -0
  421. package/build-esm/_modules/pipe/_collections/utils/pip-region-pipe.util.js +22 -0
  422. package/build-esm/_modules/pipe/_collections/utils/pip-replace-pipe.util.js +15 -0
  423. package/build-esm/_modules/pipe/_collections/utils/pip-slider-pipe.util.js +26 -0
  424. package/build-esm/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.js +40 -0
  425. package/build-esm/_modules/pipe/_enums/pip-range-pipe-setting.enum.js +14 -0
  426. package/build-esm/_modules/pipe/_enums/pip.enum.js +48 -0
  427. package/build-esm/_modules/pipe/_models/pip-multi-pipe-settings.type.js +1 -0
  428. package/build-esm/_modules/pipe/_models/pip-transforms.interface.js +1 -0
  429. package/build-esm/_modules/pipe/index.js +22 -0
  430. package/build-esm/_modules/request-safety/_collections/request-safety-inspector.util.js +317 -0
  431. package/build-esm/_modules/request-safety/_enums/request-safety-finding.type-enum.js +39 -0
  432. package/build-esm/_modules/request-safety/_models/request-safety.interface.js +1 -0
  433. package/build-esm/_modules/request-safety/index.js +3 -0
  434. package/build-esm/_modules/sandbox-runtime/_collections/zero-egress-receipt.util.js +154 -0
  435. package/build-esm/_modules/sandbox-runtime/_collections/zero-egress-result-code.const.js +36 -0
  436. package/build-esm/_modules/sandbox-runtime/_enums/zero-egress-outcome.type-enum.js +11 -0
  437. package/build-esm/_modules/sandbox-runtime/_models/zero-egress-receipt.interface.js +1 -0
  438. package/build-esm/_modules/sandbox-runtime/index.js +4 -0
  439. package/build-esm/_modules/security/_collections/stored-secret.util.js +68 -0
  440. package/build-esm/_modules/security/_models/stored-secret.control-model.js +52 -0
  441. package/build-esm/_modules/security/index.js +7 -0
  442. package/build-esm/_modules/socket/_enums/sck-event-key.enum.js +18 -0
  443. package/build-esm/_modules/socket/_models/sck-client-params.control-model.js +47 -0
  444. package/build-esm/_modules/socket/_models/sck-socket-event.control-model.js +133 -0
  445. package/build-esm/_modules/socket/_services/sck-client.service-base.js +314 -0
  446. package/build-esm/_modules/socket/index.js +7 -0
  447. package/build-esm/_modules/state-machine/_models/state-machine-config.interface.js +1 -0
  448. package/build-esm/_modules/state-machine/_models/state-machine-event.interface.js +1 -0
  449. package/build-esm/_modules/state-machine/_models/state-machine.control-model.js +262 -0
  450. package/build-esm/_modules/state-machine/_models/state-transition-result.interface.js +1 -0
  451. package/build-esm/_modules/state-machine/_models/state-transition.interface.js +1 -0
  452. package/build-esm/_modules/state-machine/index.js +6 -0
  453. package/build-esm/_modules/test/_collections/tst-module-settings.const.js +38 -0
  454. package/build-esm/_modules/test/index.js +2 -0
  455. package/build-esm/_modules/usage/_collections/usg-module-settings.const.js +16 -0
  456. package/build-esm/_modules/usage/_models/usg-action.control-model.js +25 -0
  457. package/build-esm/_modules/usage/_models/usg-daily-usage-data.control-model.js +30 -0
  458. package/build-esm/_modules/usage/_models/usg-data.control-model.js +30 -0
  459. package/build-esm/_modules/usage/_models/usg-session.data-model.js +60 -0
  460. package/build-esm/_modules/usage/index.js +7 -0
  461. package/build-esm/index.js +108 -0
  462. package/package.json +86 -85
@@ -0,0 +1,28 @@
1
+ export const DyFM_usernameRegex = new RegExp('^[a-zA-Z0-9-_#$%&^|*]{6,}$');
2
+ /* export const FDP_usernameRegexUserMessage: string =
3
+ 'Username must be at least 6 characters long and can only contain letters, ' +
4
+ 'numbers, and the following special characters: -_#$%&^|*'; */
5
+ /* export function getUsernameErrors(username: string): string[] {
6
+ const errors: string[] = [];
7
+
8
+ usernameErrorsOneByOne.forEach((error) => {
9
+ if (!error.regex.test(username)) {
10
+ errors.push(error.message);
11
+ }
12
+ });
13
+
14
+ return errors;
15
+ } */
16
+ const DyFM_usernameErrorsOneByOne = [
17
+ {
18
+ regex: new RegExp('^(?=.{6,})'),
19
+ code: 'usernameErrorLength',
20
+ /* message: 'Username must be at least 6 characters long.' */
21
+ },
22
+ {
23
+ regex: new RegExp('^(?=.*[a-zA-Z0-9-_#$%&^|*])'),
24
+ code: 'usernameErrorSpecialChar',
25
+ /* message:
26
+ 'Username can only contain letters, numbers, and the following special characters: -_#$%&^|*' */
27
+ },
28
+ ];
@@ -0,0 +1,90 @@
1
+ import { DyFM_Error } from '../../_models/control-models/error.control-model';
2
+ import { DyFM_global_settings } from '../constants/global-settings.const';
3
+ /**
4
+ * FR-015 Phase 2 — isomorphic env-var requirement helper.
5
+ *
6
+ * Universal source of truth for "read this configuration key from an env-var
7
+ * across Node and browser". Replaces per-package `requireEnv` helpers (the
8
+ * Phase 1 local implementation in fdp-templates-nts is being refactored to
9
+ * delegate here).
10
+ *
11
+ * Lookup order:
12
+ * 1. `process.env[envVarName]` — Node-side (server const files at module load).
13
+ * 2. `DyFM_global_settings.envOverrides[envVarName]` — browser-side, populated
14
+ * by the consumer at app bootstrap from its `environment.ts`. See
15
+ * DyFM_Global_Settings.envOverrides docs for the pattern.
16
+ * 3. `options.fallback` if provided — used during migration's additive phase.
17
+ * 4. throw a structured DyFM_Error with the full deploy-target checklist.
18
+ *
19
+ * The throw shape is rich on purpose (per the rich-error rule):
20
+ * - `___status` = 500 (configuration error)
21
+ * - `_errorCode` = caller-supplied stable code
22
+ * - `_message` = debug-level description with the env-var name + deploy-target
23
+ * checklist (host .env, docker-compose env-block, Overseer secrets-store,
24
+ * client environment.ts → bootstrap envOverrides)
25
+ * - `__userMessage` = admin-actionable message
26
+ * - `___issuerService` = caller-supplied package short-code
27
+ *
28
+ * @example Node server const file (module load):
29
+ * ```ts
30
+ * import { DyFM_requireEnv } from '@futdevpro/fsm-dynamo';
31
+ *
32
+ * export const FDP_keysEnv_settingsBase = {
33
+ * authKey: DyFM_requireEnv('FDP_CORE_FE_AUTH_KEY', {
34
+ * errorCode: 'FDP-ENV-MISSING-CORE-FE-AUTH-KEY',
35
+ * issuerService: 'fdp-templates',
36
+ * fallback: '<inherit literal>', // remove for Wave 3
37
+ * }),
38
+ * };
39
+ * ```
40
+ *
41
+ * @example Browser-side lazy getter (deferred to first access, after consumer
42
+ * bootstrap has populated DyFM_global_settings.envOverrides):
43
+ * ```ts
44
+ * let _cached: string | undefined;
45
+ * function _resolveKey(): string {
46
+ * if (_cached !== undefined) return _cached;
47
+ * _cached = DyFM_requireEnv('DyNM_STORAGE_ENCRYPTION_KEY', { ... });
48
+ * return _cached;
49
+ * }
50
+ * export const DyNM_global_settings = {
51
+ * get storageEncryptionKey(): string { return _resolveKey(); },
52
+ * };
53
+ * ```
54
+ */
55
+ export function DyFM_requireEnv(envVarName, options) {
56
+ // Node path: process.env at module-load time. Guarded for browser bundles
57
+ // where `process` may be undefined or shimmed without runtime values.
58
+ if (typeof process !== 'undefined' && process.env && process.env[envVarName]) {
59
+ return process.env[envVarName];
60
+ }
61
+ // Browser path: consumer-populated envOverrides map. Populated at app
62
+ // bootstrap from environment.ts — see DyFM_Global_Settings.envOverrides.
63
+ const override = DyFM_global_settings.envOverrides?.[envVarName];
64
+ if (override) {
65
+ return override;
66
+ }
67
+ // Transition fallback (Wave 1 of an FR-015-style migration).
68
+ if (options.fallback !== undefined) {
69
+ return options.fallback;
70
+ }
71
+ // Missing — fail fast with a rich, debug-friendly DyFM_Error.
72
+ throw new DyFM_Error({
73
+ status: 500,
74
+ errorCode: options.errorCode,
75
+ message: `Environment variable '${envVarName}' is required but was not found. ` +
76
+ `Checked: process.env.${envVarName} (Node) and ` +
77
+ `DyFM_global_settings.envOverrides['${envVarName}'] (browser). ` +
78
+ `Both unset, and no transition fallback configured. ` +
79
+ `Set '${envVarName}' on every deploy target before deploying this ` +
80
+ `package version: (1) host .env on every host running a backend, ` +
81
+ `(2) docker-compose env-block on every consumer service, ` +
82
+ `(3) Overseer secrets-store entry for CI builds, ` +
83
+ `(4) client environment.ts plus app-bootstrap copy into ` +
84
+ `DyFM_global_settings.envOverrides for any browser consumer.`,
85
+ userMessage: options.userMessage
86
+ ?? `Configuration error — environment variable '${envVarName}' is missing. `
87
+ + `Contact the responsible operator to set it on this deploy target.`,
88
+ issuerService: options.issuerService,
89
+ });
90
+ }
@@ -0,0 +1,108 @@
1
+ /**
2
+ * This class is a collection of static methods for round list operations
3
+ * A round list is a list that is circular
4
+ * - after the last element, the first comes next
5
+ */
6
+ export class DyFM_RoundList {
7
+ /**
8
+ * returns the outbound index of the list
9
+ * @param listLength
10
+ * @param outboundIndex
11
+ * @returns
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const listLength = 10;
16
+ * const outboundIndex = 15;
17
+ * const result = DyFM_RoundList.getOutboundedIndex(listLength, outboundIndex);
18
+ * console.log(result); // 5
19
+ * ```
20
+ */
21
+ static getOutboundedIndex(listLength, outboundIndex) {
22
+ if (!listLength) {
23
+ throw new Error('roundListPlusIndex failed. list is empty!');
24
+ }
25
+ if (outboundIndex < 0) {
26
+ outboundIndex = outboundIndex % listLength;
27
+ outboundIndex = listLength + outboundIndex;
28
+ }
29
+ if (listLength <= outboundIndex) {
30
+ outboundIndex = outboundIndex % listLength;
31
+ }
32
+ return outboundIndex;
33
+ }
34
+ /**
35
+ * returns the index of the opposite element of the list
36
+ * - as they are circular, the opposite is at the half of the list
37
+ * - as it is circular, for the second half, the opposite is at the first half
38
+ * @param length
39
+ * @param oppositeOf
40
+ * @returns
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * const length = 10;
45
+ * const oppositeOf = 5;
46
+ * const result = DyFM_RoundList.getIndexOpposite(length, oppositeOf);
47
+ * console.log(result); // 0
48
+ * ```
49
+ */
50
+ static getIndexOpposite(length, oppositeOf) {
51
+ const plusIndex = oppositeOf + Math.round(length / 2);
52
+ const res = this.getOutboundedIndex(length, plusIndex);
53
+ return res;
54
+ }
55
+ /**
56
+ * returns the element at the outbound index of the list
57
+ * @param list
58
+ * @param outboundIndex
59
+ * @returns
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * const list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
64
+ * const outboundIndex = 15;
65
+ * const result = DyFM_RoundList.getListIndex(list, outboundIndex);
66
+ * console.log(result); // 5
67
+ * ```
68
+ */
69
+ static getListIndex(list, outboundIndex) {
70
+ return list[this.getOutboundedIndex(list.length, outboundIndex)];
71
+ }
72
+ /**
73
+ * returns the element at the opposite index of the list
74
+ * @param list
75
+ * @param oppositeOf
76
+ * @returns
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * const list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
81
+ * const oppositeOf = 5;
82
+ * const result = DyFM_RoundList.getListOpposite(list, oppositeOf);
83
+ * console.log(result); // 0
84
+ * ```
85
+ */
86
+ static getListOpposite(list, oppositeOf) {
87
+ return list[this.getIndexOpposite(list.length, list.indexOf(oppositeOf))];
88
+ }
89
+ /**
90
+ * returns the last element of the list
91
+ * returns null if the list is empty
92
+ *
93
+ * @example
94
+ * ```ts
95
+ * const list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
96
+ * const result = DyFM_RoundList.getLast(list);
97
+ * console.log(result); // 10
98
+ * ```
99
+ */
100
+ static getLast(list) {
101
+ if (0 < list.length) {
102
+ return list[list.length - 1];
103
+ }
104
+ else {
105
+ return null;
106
+ }
107
+ }
108
+ }
@@ -0,0 +1,219 @@
1
+ // publish-check-allow-file — EZ a titok-maszkolo detektor-definicioja: a mintak es a
2
+ // magyarazo peldak (`mongodb://user:pass@host`) a funkcio reszei, nem beegetett titkok.
3
+ /**
4
+ * FR-093 (2026-06-09) — Universal secret/key masking utility (bedrock level).
5
+ *
6
+ * Lehetove teszi az ALL-FDP-systems-szintu secret-szivargas-detection +
7
+ * maszkolas-t egy bedrock-szinten. A korabban Overseer / runner-worker
8
+ * helyi util-jai (FR-092) most ezt importaljak — egy SOR konfiguracio +
9
+ * find-and-replace.
10
+ *
11
+ * User feedback ('az osszes rendszerunknek a lenyege az univerzalizalt,
12
+ * mindenhol hasznalhato, egysegesített megoldások'): every secret-pattern
13
+ * ennek a egyetlen DyFM_SecretMask_Util-nak a felelossege.
14
+ *
15
+ * Strategy — KETTOS:
16
+ * 1. **PATTERN-based**: ismert secret-formatumokra automatikus felismeres.
17
+ * 2. **VALUE-based**: a process.env-jenek secret-erteket overlay-eli minden szovegben.
18
+ *
19
+ * Identifiability config (`DyFM_SecretMask_Settings.partialReveal`):
20
+ * - DEFAULT: `{ prefix: 4, suffix: 4 }` — a kulcsok elso 4 + utolso 4 char-ja
21
+ * megorzodik, kozeppe `[redacted-<KIND>]` keruln, pl.:
22
+ * `ghp_abcdefghij1234567890abcdefghij12345678` → `ghp_abcd...5678 [redacted-github-pat]`
23
+ * - User-extensible: csokkentett vagy 0-os reveal a tobb-biztonsagos
24
+ * deploymentekhez (`{ prefix: 0, suffix: 0 }` → tisztan opaque).
25
+ *
26
+ * Per memory `[[feedback_rich_error_handling]]`: a maszkolt token jelzes ne
27
+ * legyen `***` opaque; legyen `[redacted-<KIND>]` hogy ranezessel lassuk MILYEN
28
+ * tipusu szivargast szuntunk meg.
29
+ *
30
+ * Pattern-mapping per memory `[[feedback_individual_plans]]` — single source of
31
+ * truth: minden uj secret-format hozzaadando a `DyFM_SECRET_PATTERNS` array-hez;
32
+ * a tobbi rendszerben (Overseer/runner/bedrock packages) automatikusan
33
+ * megjelenik a fsm-bump utan.
34
+ */
35
+ export const DyFM_DEFAULT_SECRET_MASK_SETTINGS = {
36
+ partialReveal: {
37
+ prefix: 4,
38
+ suffix: 4,
39
+ },
40
+ minEnvValueLength: 8,
41
+ envNameSecretRx: /(?:TOKEN|SECRET|KEY|PASSWORD|PASSWD|PAT|HMAC|AUTH|PRIVATE|CREDENTIAL|API_KEY|WEBHOOK)/i,
42
+ };
43
+ const defaultRevealReplacement = (matched, kind, settings) => {
44
+ const p = Math.max(0, settings.partialReveal.prefix);
45
+ const s = Math.max(0, settings.partialReveal.suffix);
46
+ // Ha a kulcs tul rovid az osszes reveal-osszeghez kepest, ne reveal-juk
47
+ // (kulonben az egesz secret elerhetonek osszetapadna).
48
+ if (matched.length <= p + s + 4) {
49
+ return `[redacted-${kind}]`;
50
+ }
51
+ if (p === 0 && s === 0) {
52
+ return `[redacted-${kind}]`;
53
+ }
54
+ const head = matched.slice(0, p);
55
+ const tail = matched.slice(matched.length - s);
56
+ return `${head}...${tail} [redacted-${kind}]`;
57
+ };
58
+ export const DyFM_SECRET_PATTERNS = [
59
+ // URL-embedded basic auth — BARMELY scheme (`http(s)`, `mongodb`, `postgres`, `redis`,
60
+ // `amqp`, `mysql` stb.), nem csak http: a `mongodb://user:pass@host` connection-string a
61
+ // leggyakoribb DB-secret-leak vektor a CI-logokban. A `user:pass@` szerkezet kotelezo →
62
+ // nincs false-positive a sima URL-ekre (port `host:8080/` sem, mert nincs utana `@`).
63
+ // A sajat replace-pattern megorzi a scheme-et ($1) + host-ot.
64
+ {
65
+ kind: 'url-cred',
66
+ regex: /\b([a-z][a-z0-9+.-]*:\/\/)([^/\s:@]*):([^\s@]+)@/gi,
67
+ redactWith: (_m) => '$1[redacted-url-cred]@',
68
+ },
69
+ // GitHub PATs
70
+ { kind: 'github-pat', regex: /\bgh[ps]_[A-Za-z0-9]{36,}\b/g },
71
+ { kind: 'github-pat-fine', regex: /\bgithub_pat_[A-Za-z0-9_]{82,}\b/g },
72
+ { kind: 'github-oauth', regex: /\bgho_[A-Za-z0-9]{36,}\b/g },
73
+ { kind: 'github-refresh', regex: /\bghr_[A-Za-z0-9]{36,}\b/g },
74
+ // NPM token
75
+ { kind: 'npm-token', regex: /\bnpm_[A-Za-z0-9]{36,}\b/g },
76
+ // Docker Hub PAT
77
+ { kind: 'docker-pat', regex: /\bdckr_pat_[A-Za-z0-9_\-]{20,}\b/g },
78
+ // Slack token
79
+ { kind: 'slack-token', regex: /\bxox[abprs]-[A-Za-z0-9-]{10,}\b/g },
80
+ // Anthropic key (BEFORE OpenAI — `sk-ant-*` more specific than `sk-*`)
81
+ { kind: 'anthropic-key', regex: /\bsk-ant-[A-Za-z0-9\-_]{32,}\b/g },
82
+ // OpenAI / generic `sk-*` key
83
+ { kind: 'openai-key', regex: /\bsk-[A-Za-z0-9]{32,}\b/g },
84
+ // Google API key
85
+ { kind: 'google-api-key', regex: /\bAIza[0-9A-Za-z\-_]{35}\b/g },
86
+ // Discord webhook URL (id + token in URL)
87
+ {
88
+ kind: 'discord-webhook',
89
+ regex: /\bhttps?:\/\/(?:discord(?:app)?\.com|discordapp\.com)\/api\/webhooks\/\d+\/[A-Za-z0-9_\-]+/g,
90
+ redactWith: (_m) => '[redacted-discord-webhook]',
91
+ },
92
+ // Bearer token in HTTP header style — megorizzuk a 'Bearer ' prefixet (literally), a token-t pedig reveal-eljuk.
93
+ {
94
+ kind: 'bearer-token',
95
+ regex: /\b(Bearer)\s+([A-Za-z0-9\-._~+/=]{20,})/gi,
96
+ redactWith: (matched, settings) => {
97
+ const tokenStart = matched.search(/\s+/);
98
+ const prefix = matched.slice(0, tokenStart + 1); // 'Bearer '
99
+ const token = matched.slice(tokenStart + 1);
100
+ return prefix + defaultRevealReplacement(token, 'token', settings);
101
+ },
102
+ },
103
+ // JWT (eyJ + .* + .*)
104
+ { kind: 'jwt', regex: /\beyJ[A-Za-z0-9_\-]{10,}\.[A-Za-z0-9_\-]{10,}\.[A-Za-z0-9_\-]{10,}\b/g },
105
+ // AWS Access Key
106
+ { kind: 'aws-access-key', regex: /\bAKIA[0-9A-Z]{16}\b/g },
107
+ // Env-style secret-name = value
108
+ {
109
+ kind: 'env-style-secret',
110
+ regex: /\b([A-Z][A-Z0-9_]*(?:TOKEN|SECRET|KEY|PASSWORD|PASSWD|PAT|HMAC|AUTH|PRIVATE)[A-Z0-9_]*)\s*[:=]\s*['"]?([^\s'"]+)['"]?/g,
111
+ redactWith: (matched, settings) => {
112
+ // Pull out the key name + value via re-match (avoids capturing groups in redactWith signature)
113
+ const m = matched.match(/\b([A-Z][A-Z0-9_]*(?:TOKEN|SECRET|KEY|PASSWORD|PASSWD|PAT|HMAC|AUTH|PRIVATE)[A-Z0-9_]*)\s*[:=]\s*['"]?([^\s'"]+)/);
114
+ if (!m) {
115
+ return matched;
116
+ }
117
+ const keyName = m[1];
118
+ const value = m[2];
119
+ const sep = matched.includes(': ') ? '=' : '=';
120
+ const revealed = defaultRevealReplacement(value, 'env-value', settings);
121
+ return `${keyName}${sep}${revealed}`;
122
+ },
123
+ },
124
+ ];
125
+ /**
126
+ * `process.env`-bol kigyujti azokat a kulcsokat ahol a NEV titkos-jellegu
127
+ * ÉS a value >= minEnvValueLength. Visszaad egy listat — ezeket szovegben
128
+ * minden elofordulasban partial-reveal-el felulrak-juk.
129
+ */
130
+ const collectEnvSecretValues = (settings) => {
131
+ const out = [];
132
+ for (const [key, raw] of Object.entries(process.env)) {
133
+ if (!raw || raw.length < settings.minEnvValueLength) {
134
+ continue;
135
+ }
136
+ if (!settings.envNameSecretRx.test(key)) {
137
+ continue;
138
+ }
139
+ if (/^(true|false|0|1)$/i.test(raw)) {
140
+ continue;
141
+ }
142
+ out.push({ value: raw, key: key });
143
+ }
144
+ // Sort by value length DESC — hosszabb ertekekkel kezdjuk, igy egy rovid
145
+ // prefix nem sealeze el a hosszabb kornyezetet.
146
+ out.sort((a, b) => b.value.length - a.value.length);
147
+ return out;
148
+ };
149
+ /**
150
+ * `DyFM_maskSecrets` — universal pre-Discord-send + pre-log-persist masking.
151
+ *
152
+ * @param text bemenet (ha nem string, JSON-szerializalaskor maskoljuk)
153
+ * @param settings konfiguracio (default a DyFM_DEFAULT_SECRET_MASK_SETTINGS)
154
+ * @returns maszkolt szoveg
155
+ */
156
+ export function DyFM_maskSecrets(text, settings = DyFM_DEFAULT_SECRET_MASK_SETTINGS) {
157
+ if (text === null || text === undefined) {
158
+ return '';
159
+ }
160
+ let str;
161
+ if (typeof text === 'string') {
162
+ str = text;
163
+ }
164
+ else {
165
+ try {
166
+ str = JSON.stringify(text);
167
+ }
168
+ catch {
169
+ str = String(text);
170
+ }
171
+ }
172
+ // 1. PATTERN-based maszkolas
173
+ for (const p of DyFM_SECRET_PATTERNS) {
174
+ str = str.replace(p.regex, (matched, ...groups) => {
175
+ // Drop the `offset` + `wholeString` args at the end of `groups`
176
+ if (p.redactWith) {
177
+ return p.redactWith(matched, settings)
178
+ .replace(/\$1/g, groups[0] ?? '')
179
+ .replace(/\$2/g, groups[1] ?? '');
180
+ }
181
+ // Default: partial-reveal with kind
182
+ return defaultRevealReplacement(matched, p.kind, settings);
183
+ });
184
+ }
185
+ // 2. ENV-secret value-alapu overlay
186
+ const envSecrets = collectEnvSecretValues(settings);
187
+ for (const { value, key } of envSecrets) {
188
+ if (!str.includes(value)) {
189
+ continue;
190
+ }
191
+ const revealed = defaultRevealReplacement(value, `env-${key}`, settings);
192
+ str = str.split(value).join(revealed);
193
+ }
194
+ return str;
195
+ }
196
+ /**
197
+ * Recursive object-masker — JSON-szeru struktura minden string-ertekeben alkalmazza
198
+ * a DyFM_maskSecrets-t. Pl. errors-table additionalContent / logTail tomb / cdpReport
199
+ * objektum elotti masking-hez.
200
+ */
201
+ export function DyFM_maskSecretsDeep(input, settings = DyFM_DEFAULT_SECRET_MASK_SETTINGS) {
202
+ if (input === null || input === undefined) {
203
+ return input;
204
+ }
205
+ if (typeof input === 'string') {
206
+ return DyFM_maskSecrets(input, settings);
207
+ }
208
+ if (typeof input !== 'object') {
209
+ return input;
210
+ }
211
+ if (Array.isArray(input)) {
212
+ return input.map((it) => DyFM_maskSecretsDeep(it, settings));
213
+ }
214
+ const out = {};
215
+ for (const [k, v] of Object.entries(input)) {
216
+ out[k] = DyFM_maskSecretsDeep(v, settings);
217
+ }
218
+ return out;
219
+ }
@@ -0,0 +1,126 @@
1
+ import { DyFM_Log } from './log.util';
2
+ /**
3
+ * Get the stack location of the constructor call
4
+ * use it in the constructor of a class to get the stack location of the constructor call
5
+ * @param level - The level of the stack to get the location of
6
+ * @returns The stack location of the constructor call
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const stackLocation = DyFM_getConstructionStackLocation();
11
+ * console.log(stackLocation); // The stack location of the constructor call
12
+ * ```
13
+ */
14
+ export function DyFM_getConstructionStackLocation(level = 0) {
15
+ const stack = new Error().stack;
16
+ // Split the stack into lines and remove the first line (Error:)
17
+ let stackLines = stack?.split('\n')?.slice(2);
18
+ // Find the line that contains the constructor call
19
+ // It will be the FIRST line that doesn't contain 'getStackLocation'
20
+ let constructorLine = stackLines?.find(line => line &&
21
+ !line.includes('getStackLocation') &&
22
+ !line.includes('new') &&
23
+ !line.includes('node_modules') &&
24
+ !line.includes('node:'));
25
+ if (isNaN(level)) {
26
+ throw new Error('level must be a number');
27
+ }
28
+ if (level) {
29
+ while (level) {
30
+ stackLines = stackLines?.filter(line => line !== constructorLine);
31
+ level--;
32
+ constructorLine = stackLines?.find(line => line &&
33
+ !line.includes('getConstructionStackLocation') &&
34
+ !line.includes('new') &&
35
+ !line.includes('node_modules') &&
36
+ !line.includes('node:'));
37
+ }
38
+ }
39
+ if (!constructorLine) {
40
+ constructorLine = stack?.split(' at ')?.find(line => line &&
41
+ !line.includes('getConstructionStackLocation') &&
42
+ !line.includes('new') &&
43
+ !line.includes('node_modules') &&
44
+ !line.includes('node:'));
45
+ if (!constructorLine) {
46
+ DyFM_Log.warn(`No constructor line found (0)\n${typeof stack}\n${stack?.slice(0, 300)?.split('\n') + '...'}`, {
47
+ stack,
48
+ });
49
+ return '';
50
+ }
51
+ }
52
+ // Remove the 'constructorLine at ... (' and the ')'
53
+ if (constructorLine?.includes('(')) {
54
+ constructorLine = constructorLine?.split('(')[1];
55
+ }
56
+ if (constructorLine?.includes(')')) {
57
+ constructorLine = constructorLine?.split(')')[0];
58
+ }
59
+ if (!constructorLine) {
60
+ DyFM_Log.warn(`No constructor line found (1)\n${typeof stack}\n${stack?.slice(0, 300)?.split('\n') + '...'}`, {
61
+ stack,
62
+ });
63
+ return '';
64
+ }
65
+ return constructorLine;
66
+ }
67
+ /**
68
+ * Get the stack location of the local call
69
+ * use it in the local function to get the stack location of the local call
70
+ * @param level - The level of the stack to get the location of
71
+ * @returns The stack location of the local call
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * const stackLocation = DyFM_getLocalStackLocation(1);
76
+ * console.log(stackLocation); // The stack location of the local call
77
+ * ```
78
+ */
79
+ export function DyFM_getLocalStackLocation(level = 0) {
80
+ let stack = new Error().stack;
81
+ // Split the stack into lines and remove the first line (Error:) and the second line (DyFM_getLocalStackLocation)
82
+ let stackLines = stack?.split('\n')?.slice(2);
83
+ // Find the line that contains the location
84
+ // It will be the FIRST line that doesn't contain 'node_modules' or 'node:'
85
+ let locationLine = stackLines?.find(line => line &&
86
+ !line.includes('node_modules') &&
87
+ !line.includes('node:'));
88
+ if (isNaN(level)) {
89
+ throw new Error('level must be a number');
90
+ }
91
+ if (level) {
92
+ while (level) {
93
+ stackLines = stackLines?.filter(line => line !== locationLine);
94
+ level--;
95
+ locationLine = stackLines?.find(line => line &&
96
+ !line.includes('node_modules') &&
97
+ !line.includes('node:'));
98
+ }
99
+ }
100
+ if (!locationLine) {
101
+ locationLine = stack?.split(' at ')?.find(line => line &&
102
+ !line.includes('node_modules') &&
103
+ !line.includes('node:'));
104
+ if (!locationLine) {
105
+ DyFM_Log.warn(`No location line found outside of node_modules or node: (0)` +
106
+ `\n${typeof stack}\n${stack?.slice(0, 300)?.split('\n') + '...'}`, {
107
+ stack,
108
+ });
109
+ return '';
110
+ }
111
+ }
112
+ // Remove the 'constructorLine at ... (' and the ')'
113
+ if (locationLine?.includes('(')) {
114
+ locationLine = locationLine?.split('(')[1];
115
+ }
116
+ if (locationLine?.includes(')')) {
117
+ locationLine = locationLine?.split(')')[0];
118
+ }
119
+ if (!locationLine) {
120
+ DyFM_Log.warn(`No location line found (1)\n${typeof stack}\n${stack?.slice(0, 300)?.split('\n') + '...'}`, {
121
+ stack,
122
+ });
123
+ return '';
124
+ }
125
+ return locationLine;
126
+ }