@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.
- package/build/_models/control-models/data-model-params.control-model.d.ts +0 -1
- package/build/_models/control-models/data-model-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/data-model-params.control-model.js +1 -4
- package/build/_models/control-models/data-model-params.control-model.js.map +1 -1
- package/build/_models/control-models/data-property-params.control-model.d.ts +0 -1
- package/build/_models/control-models/data-property-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/data-property-params.control-model.js +1 -4
- package/build/_models/control-models/data-property-params.control-model.js.map +1 -1
- package/build/_models/control-models/service-endpoint-settings-base.control-model.d.ts +0 -1
- package/build/_models/control-models/service-endpoint-settings-base.control-model.d.ts.map +1 -1
- package/build/_models/control-models/service-endpoint-settings-base.control-model.js +4 -4
- package/build/_models/control-models/service-endpoint-settings-base.control-model.js.map +1 -1
- package/build/_modules/data-handler/_models/data-handler-settings.control-model.d.ts +0 -3
- package/build/_modules/data-handler/_models/data-handler-settings.control-model.d.ts.map +1 -1
- package/build/_modules/data-handler/_models/data-handler-settings.control-model.js +4 -10
- package/build/_modules/data-handler/_models/data-handler-settings.control-model.js.map +1 -1
- package/build/_modules/data-handler/_models/data-list-handler.control-model.d.ts +1 -1
- package/build/_modules/data-handler/_models/data-list-handler.control-model.d.ts.map +1 -1
- package/build/_modules/data-handler/_models/data-search-handler.control-model.d.ts +1 -1
- package/build/_modules/data-handler/_models/data-search-handler.control-model.d.ts.map +1 -1
- package/build/_modules/data-handler/_models/list-collector-data-handler.control-model.d.ts +1 -1
- package/build/_modules/data-handler/_models/list-collector-data-handler.control-model.d.ts.map +1 -1
- package/build/_modules/data-handler/index.d.ts +3 -0
- package/build/_modules/data-handler/index.d.ts.map +1 -1
- package/build/_modules/data-handler/index.js +3 -0
- package/build/_modules/data-handler/index.js.map +1 -1
- package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.d.ts +0 -3
- package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.d.ts.map +1 -1
- package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js +4 -10
- package/build/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js.map +1 -1
- package/build/_modules/ngx-models/index.d.ts +3 -0
- package/build/_modules/ngx-models/index.d.ts.map +1 -1
- package/build/_modules/ngx-models/index.js +3 -0
- package/build/_modules/ngx-models/index.js.map +1 -1
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -0
- package/build/index.js.map +1 -1
- package/build-esm/_collections/constants/data-sizes.const.js +37 -0
- package/build-esm/_collections/constants/error-defaults.const.js +17 -0
- package/build-esm/_collections/constants/global-settings.const.js +17 -0
- package/build-esm/_collections/constants/numbers.const.js +36 -0
- package/build-esm/_collections/constants/times.const.js +38 -0
- package/build-esm/_collections/utils/array.util.js +632 -0
- package/build-esm/_collections/utils/async.util.js +183 -0
- package/build-esm/_collections/utils/data.util.js +203 -0
- package/build-esm/_collections/utils/extract-error-message.util.js +183 -0
- package/build-esm/_collections/utils/json-error-helper.util.js +251 -0
- package/build-esm/_collections/utils/log.util.js +555 -0
- package/build-esm/_collections/utils/math/box-bounds.util.js +159 -0
- package/build-esm/_collections/utils/math/math.util.js +183 -0
- package/build-esm/_collections/utils/math/random.util.js +117 -0
- package/build-esm/_collections/utils/math/trigonometry.util.js +89 -0
- package/build-esm/_collections/utils/math/vector2.util.js +587 -0
- package/build-esm/_collections/utils/object.util.js +591 -0
- package/build-esm/_collections/utils/operation-authz.util.js +136 -0
- package/build-esm/_collections/utils/operation-guardrails.util.js +220 -0
- package/build-esm/_collections/utils/operation-run.util.js +81 -0
- package/build-esm/_collections/utils/operation-schema.util.js +159 -0
- package/build-esm/_collections/utils/regex/password-regex.util.js +56 -0
- package/build-esm/_collections/utils/regex/regex.util.js +1 -0
- package/build-esm/_collections/utils/regex/username-regex.util.js +28 -0
- package/build-esm/_collections/utils/require-env.util.js +90 -0
- package/build-esm/_collections/utils/round-list.util.js +108 -0
- package/build-esm/_collections/utils/secret-mask.util.js +219 -0
- package/build-esm/_collections/utils/stack.util.js +126 -0
- package/build-esm/_collections/utils/string-case.util.js +332 -0
- package/build-esm/_collections/utils/string.util.js +366 -0
- package/build-esm/_collections/utils/time.util.js +431 -0
- package/build-esm/_collections/utils/type-cloning-facility.util.js +122 -0
- package/build-esm/_collections/utils/utilities.util.js +61 -0
- package/build-esm/_collections/utils/uuid.util.js +33 -0
- package/build-esm/_enums/basic-property-type.enum.js +18 -0
- package/build-esm/_enums/data-model-type.enum.js +24 -0
- package/build-esm/_enums/environment-flag.enum.js +26 -0
- package/build-esm/_enums/error-level.enum.js +35 -0
- package/build-esm/_enums/error-status.enum.js +28 -0
- package/build-esm/_enums/http/http-call-type.enum.js +42 -0
- package/build-esm/_enums/http/http-event-type.enum.js +39 -0
- package/build-esm/_enums/http/http-response-type.enum.js +18 -0
- package/build-esm/_enums/log-style.enum.js +38 -0
- package/build-esm/_enums/operation-auth.type-enum.js +19 -0
- package/build-esm/_enums/operation-if-match.type-enum.js +17 -0
- package/build-esm/_enums/operation-patch-field.type-enum.js +40 -0
- package/build-esm/_enums/server-connection-status.enum.js +5 -0
- package/build-esm/_enums/time/day-of-week.enum.js +47 -0
- package/build-esm/_enums/time/month.enum.js +23 -0
- package/build-esm/_enums/time/relative-date.enum.js +19 -0
- package/build-esm/_models/control-models/data-model-params.control-model.js +259 -0
- package/build-esm/_models/control-models/data-model-settings.control-model.js +63 -0
- package/build-esm/_models/control-models/data-property-params.control-model.js +101 -0
- package/build-esm/_models/control-models/data-property-settings.control-model.js +61 -0
- package/build-esm/_models/control-models/error.control-model.js +787 -0
- package/build-esm/_models/control-models/http/http-error-response.control-model.js +48 -0
- package/build-esm/_models/control-models/http/http-headers.control-model.js +43 -0
- package/build-esm/_models/control-models/http/http-response.model-base.js +62 -0
- package/build-esm/_models/control-models/operation-context.control-model.js +110 -0
- package/build-esm/_models/control-models/operation-settings.control-model.js +184 -0
- package/build-esm/_models/control-models/poll.control-model.js +202 -0
- package/build-esm/_models/control-models/range-value.control-model.js +247 -0
- package/build-esm/_models/control-models/server-route-settings-base.control-model.js +19 -0
- package/build-esm/_models/control-models/server-status.control-model.js +73 -0
- package/build-esm/_models/control-models/service-endpoint-settings-base.control-model.js +110 -0
- package/build-esm/_models/data-models/errors.data-model.js +156 -0
- package/build-esm/_models/data-models/metadata.data-model.js +120 -0
- package/build-esm/_models/interfaces/box-bounds.interface.js +1 -0
- package/build-esm/_models/interfaces/environment/global-log-settings.interface.js +1 -0
- package/build-esm/_models/interfaces/environment/global-settings.interface.js +1 -0
- package/build-esm/_models/interfaces/error-defaults.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-authz-result.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-authz.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-exposure.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-guardrails.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-input-settings.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-json-schema.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-patch-field.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-patch-result.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-patch-violation.interface.js +1 -0
- package/build-esm/_models/interfaces/operation-run-result.interface.js +1 -0
- package/build-esm/_models/interfaces/paged.interface.js +1 -0
- package/build-esm/_models/interfaces/poll-handle.interface.js +1 -0
- package/build-esm/_models/interfaces/random-weight.interface.js +1 -0
- package/build-esm/_models/interfaces/route-settings.interface.js +1 -0
- package/build-esm/_models/interfaces/search-query.interface.js +1 -0
- package/build-esm/_models/interfaces/search-result.interface.js +1 -0
- package/build-esm/_models/interfaces/server-error-statistics.interface.js +1 -0
- package/build-esm/_models/interfaces/vector2.interface.js +1 -0
- package/build-esm/_models/types/db-filter.type.js +1 -0
- package/build-esm/_models/types/db-sort.type.js +1 -0
- package/build-esm/_models/types/deprecated-boolean-alias.type.js +1 -0
- package/build-esm/_models/types/ds-filter.type.js +15 -0
- package/build-esm/_models/types/ds-sort.type.js +1 -0
- package/build-esm/_modules/ai/_collections/ai-media-provenance.util.js +24 -0
- package/build-esm/_modules/ai/_collections/ai-model-ref.util.js +70 -0
- package/build-esm/_modules/ai/_collections/ai-model-registry.util.js +37 -0
- package/build-esm/_modules/ai/_enums/ai-message-role.enum.js +8 -0
- package/build-esm/_modules/ai/_enums/ai-model-type.enum.js +8 -0
- package/build-esm/_modules/ai/_enums/ai-provider.enum.js +8 -0
- package/build-esm/_modules/ai/_models/ai-call-settings.interface.js +88 -0
- package/build-esm/_modules/ai/_models/ai-config.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-embedding-request.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-embedding-response.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-image-request.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-image-response.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-llm-request.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-llm-response.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-media-file.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-media-provenance.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-message.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-model-capabilities.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-model-info.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-model-settings-schema.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-model3d-request.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-model3d-response.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-provider-capabilities.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-settings.interface.js +10 -0
- package/build-esm/_modules/ai/_models/ai-speech-request.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-speech-response.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-tool-call.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-tool-handler.type.js +1 -0
- package/build-esm/_modules/ai/_models/ai-tool-result.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-tool.interface.js +1 -0
- package/build-esm/_modules/ai/_models/ai-user-provider-config.control-model.js +31 -0
- package/build-esm/_modules/ai/_modules/anthropic/_collections/aai-models.const.js +130 -0
- package/build-esm/_modules/ai/_modules/anthropic/_enums/aai-model.enum.js +17 -0
- package/build-esm/_modules/ai/_modules/anthropic/_models/aai-call-settings.control-model.js +23 -0
- package/build-esm/_modules/ai/_modules/anthropic/_models/aai-client-options.interface.js +1 -0
- package/build-esm/_modules/ai/_modules/anthropic/_models/aai-settings.control-model.js +25 -0
- package/build-esm/_modules/ai/_modules/anthropic/_models/aai-user-provider-config.control-model.js +22 -0
- package/build-esm/_modules/ai/_modules/anthropic/index.js +9 -0
- package/build-esm/_modules/ai/_modules/document-ai/_models/dai-embedding-info.interface.js +1 -0
- package/build-esm/_modules/ai/_modules/document-ai/_models/dai-vector-search-params.interface.js +1 -0
- package/build-esm/_modules/ai/_modules/document-ai/index.js +3 -0
- package/build-esm/_modules/ai/_modules/fdp-ai/_collections/fdpai-models.const.js +38 -0
- package/build-esm/_modules/ai/_modules/fdp-ai/_enums/fdpai-model.enum.js +7 -0
- package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-call-settings.control-model.js +21 -0
- package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-client-options.interface.js +1 -0
- package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-settings.control-model.js +24 -0
- package/build-esm/_modules/ai/_modules/fdp-ai/_models/fdpai-user-provider-config.control-model.js +22 -0
- package/build-esm/_modules/ai/_modules/fdp-ai/index.js +9 -0
- package/build-esm/_modules/ai/_modules/google-ai/_collections/gai-models.const.js +155 -0
- package/build-esm/_modules/ai/_modules/google-ai/_enums/gai-model.enum.js +14 -0
- package/build-esm/_modules/ai/_modules/google-ai/_models/gai-call-settings.control-model.js +23 -0
- package/build-esm/_modules/ai/_modules/google-ai/_models/gai-client-options.interface.js +1 -0
- package/build-esm/_modules/ai/_modules/google-ai/_models/gai-settings.control-model.js +25 -0
- package/build-esm/_modules/ai/_modules/google-ai/_models/gai-user-provider-config.control-model.js +22 -0
- package/build-esm/_modules/ai/_modules/google-ai/index.js +9 -0
- package/build-esm/_modules/ai/_modules/local-ai/_collections/lai-models.const.js +57 -0
- package/build-esm/_modules/ai/_modules/local-ai/_enums/lai-model.enum.js +5 -0
- package/build-esm/_modules/ai/_modules/local-ai/_models/lai-call-settings.control-model.js +19 -0
- package/build-esm/_modules/ai/_modules/local-ai/_models/lai-client-options.interface.js +1 -0
- package/build-esm/_modules/ai/_modules/local-ai/_models/lai-settings.control-model.js +22 -0
- package/build-esm/_modules/ai/_modules/local-ai/index.js +8 -0
- package/build-esm/_modules/ai/_modules/open-ai/_collections/oai-embedding-model-dimensions.const.js +6 -0
- package/build-esm/_modules/ai/_modules/open-ai/_collections/oai-models.const.js +455 -0
- package/build-esm/_modules/ai/_modules/open-ai/_enums/oai-model.enum.js +146 -0
- package/build-esm/_modules/ai/_modules/open-ai/_models/oai-call-settings.control-model.js +23 -0
- package/build-esm/_modules/ai/_modules/open-ai/_models/oai-client-options.interface.js +1 -0
- package/build-esm/_modules/ai/_modules/open-ai/_models/oai-embedding-info.interface.js +1 -0
- package/build-esm/_modules/ai/_modules/open-ai/_models/oai-settings.control-model.js +25 -0
- package/build-esm/_modules/ai/_modules/open-ai/_models/oai-user-provider-config.control-model.js +23 -0
- package/build-esm/_modules/ai/_modules/open-ai/index.js +19 -0
- package/build-esm/_modules/ai/index.js +34 -0
- package/build-esm/_modules/application-alert/_collections/application-alert-envelope.util.js +267 -0
- package/build-esm/_modules/application-alert/_enums/application-alert-evaluation-state.type-enum.js +6 -0
- package/build-esm/_modules/application-alert/_enums/application-alert-severity.type-enum.js +8 -0
- package/build-esm/_modules/application-alert/_models/application-alert.interface.js +1 -0
- package/build-esm/_modules/application-alert/index.js +4 -0
- package/build-esm/_modules/ci-tools/_enums/cit-ci-result-code.enum.js +9 -0
- package/build-esm/_modules/ci-tools/_enums/cit-ci-step-result-code.enum.js +9 -0
- package/build-esm/_modules/ci-tools/_models/cit-ci-result-info.data-models.js +63 -0
- package/build-esm/_modules/ci-tools/_models/cit-ci-step-result.interface.js +1 -0
- package/build-esm/_modules/ci-tools/index.js +6 -0
- package/build-esm/_modules/crypto/_collections/crypto-v1.util.js +199 -0
- package/build-esm/_modules/crypto/_collections/crypto-v2.util.js +273 -0
- package/build-esm/_modules/crypto/_collections/crypto-v4.util.js +605 -0
- package/build-esm/_modules/crypto/_collections/crypto.util.js +651 -0
- package/build-esm/_modules/crypto/_models/artifact-signature.interface.js +1 -0
- package/build-esm/_modules/crypto/_services/artifact-signature.control-service.js +276 -0
- package/build-esm/_modules/crypto/index.js +11 -0
- package/build-esm/_modules/custom-data/_collections/cud-module-settings.const.js +18 -0
- package/build-esm/_modules/custom-data/_models/cud.data-model.js +30 -0
- package/build-esm/_modules/custom-data/index.js +4 -0
- package/build-esm/_modules/data-handler/_models/data-handler-settings.control-model.js +78 -0
- package/build-esm/_modules/data-handler/_models/data-handler.control-model.js +386 -0
- package/build-esm/_modules/data-handler/_models/data-list-handler-settings.control-model.js +11 -0
- package/build-esm/_modules/data-handler/_models/data-list-handler.control-model.js +222 -0
- package/build-esm/_modules/data-handler/_models/data-search-handler-settings.control-model.js +25 -0
- package/build-esm/_modules/data-handler/_models/data-search-handler.control-model.js +334 -0
- package/build-esm/_modules/data-handler/_models/list-collector-data-handler-settings.control-model.js +12 -0
- package/build-esm/_modules/data-handler/_models/list-collector-data-handler.control-model.js +243 -0
- package/build-esm/_modules/data-handler/index.js +9 -0
- package/build-esm/_modules/deployment/_collections/atomic-rollback-manifest.util.js +348 -0
- package/build-esm/_modules/deployment/_models/atomic-rollback-manifest.interface.js +1 -0
- package/build-esm/_modules/deployment/index.js +2 -0
- package/build-esm/_modules/game/_collections/audio-mixer.util.js +109 -0
- package/build-esm/_modules/game/_collections/audio-scale.util.js +100 -0
- package/build-esm/_modules/game/_enums/audio-channel.enum.js +21 -0
- package/build-esm/_modules/game/_models/audio-mixer-config.interface.js +1 -0
- package/build-esm/_modules/game/_models/audio-mixer-settings.interface.js +1 -0
- package/build-esm/_modules/game/_models/audio-mixer-state.interface.js +1 -0
- package/build-esm/_modules/game/_models/audio-mixer.control-model.js +337 -0
- package/build-esm/_modules/game/_models/audio-scale.interface.js +1 -0
- package/build-esm/_modules/game/_models/flying-effect.control-model.js +212 -0
- package/build-esm/_modules/game/_models/flying-effect.interface.js +1 -0
- package/build-esm/_modules/game/_models/seeded-random-registry.control-model.js +124 -0
- package/build-esm/_modules/game/_models/seeded-random-registry.interface.js +1 -0
- package/build-esm/_modules/game/_models/seeded-random-state.interface.js +1 -0
- package/build-esm/_modules/game/_models/seeded-random.control-model.js +261 -0
- package/build-esm/_modules/game/index.js +17 -0
- package/build-esm/_modules/location/_collections/assets/country-codes-ISO-3166.json +3239 -0
- package/build-esm/_modules/location/_collections/assets/country-divisions-ISO-3166-all-list.json +19036 -0
- package/build-esm/_modules/location/_collections/assets/country-phone-codes.json +1202 -0
- package/build-esm/_modules/location/_collections/loc-country-divisions.const.js +3 -0
- package/build-esm/_modules/location/_collections/loc-country-isos.const.js +2 -0
- package/build-esm/_modules/location/_collections/loc-regions.util.js +107 -0
- package/build-esm/_modules/location/_collections/loc.util.js +56 -0
- package/build-esm/_modules/location/_enums/loc-region.enum.js +11 -0
- package/build-esm/_modules/location/_enums/loc-sub-region.enum.js +23 -0
- package/build-esm/_modules/location/_enums/loc-subdivision-region-type.enum.js +45 -0
- package/build-esm/_modules/location/_models/loc-coordinates.interface.js +1 -0
- package/build-esm/_modules/location/_models/loc-country-division.interface.js +1 -0
- package/build-esm/_modules/location/_models/loc-country-iso.interface.js +1 -0
- package/build-esm/_modules/location/_models/loc-country-phone-code.interface.js +1 -0
- package/build-esm/_modules/location/_models/loc-division-collection.interface.js +1 -0
- package/build-esm/_modules/location/_models/loc-division-region-data.interface.js +1 -0
- package/build-esm/_modules/location/_models/loc-geo-ip-location.interface.js +1 -0
- package/build-esm/_modules/location/index.js +17 -0
- package/build-esm/_modules/messaging/_collections/msg-module-settings.const.js +44 -0
- package/build-esm/_modules/messaging/_enums/msg-attachment-type.enum.js +21 -0
- package/build-esm/_modules/messaging/_enums/msg-conversation-type.enum.js +17 -0
- package/build-esm/_modules/messaging/_enums/msg-delivery-status.enum.js +15 -0
- package/build-esm/_modules/messaging/_enums/msg-event-key.enum.js +28 -0
- package/build-esm/_modules/messaging/_enums/msg-participant-role.enum.js +17 -0
- package/build-esm/_modules/messaging/_enums/msg-provider-type.enum.js +8 -0
- package/build-esm/_modules/messaging/_enums/msg-status.enum.js +21 -0
- package/build-esm/_modules/messaging/_enums/msg-type.enum.js +19 -0
- package/build-esm/_modules/messaging/_models/msg-attachment.interface.js +1 -0
- package/build-esm/_modules/messaging/_models/msg-conversation.data-model.js +80 -0
- package/build-esm/_modules/messaging/_models/msg-mention.interface.js +1 -0
- package/build-esm/_modules/messaging/_models/msg-message.data-model.js +102 -0
- package/build-esm/_modules/messaging/_models/msg-participant.interface.js +1 -0
- package/build-esm/_modules/messaging/_models/msg-reaction.interface.js +1 -0
- package/build-esm/_modules/messaging/_models/msg-thread-info.interface.js +1 -0
- package/build-esm/_modules/messaging/_modules/agent/_enums/agt-process-step-type.enum.js +27 -0
- package/build-esm/_modules/messaging/_modules/agent/_enums/agt-tool-status.enum.js +19 -0
- package/build-esm/_modules/messaging/_modules/agent/_models/agt-process-step.interface.js +1 -0
- package/build-esm/_modules/messaging/_modules/agent/_models/agt-reasoning-info.interface.js +1 -0
- package/build-esm/_modules/messaging/_modules/agent/_models/agt-tool-usage.interface.js +1 -0
- package/build-esm/_modules/messaging/_modules/agent/index.js +7 -0
- package/build-esm/_modules/messaging/index.js +25 -0
- package/build-esm/_modules/ngx-models/_collections/angular-placeholders.js +1 -0
- package/build-esm/_modules/ngx-models/_collections/button-new-style-settings-presets.const.js +170 -0
- package/build-esm/_modules/ngx-models/_collections/dynamo-global.settings.js +88 -0
- package/build-esm/_modules/ngx-models/_enums/button-new/button-new-border-radius.enum.js +14 -0
- package/build-esm/_modules/ngx-models/_enums/button-new/button-new-icon-style-type.enum.js +12 -0
- package/build-esm/_modules/ngx-models/_enums/button-new/button-new-size.enum.js +15 -0
- package/build-esm/_modules/ngx-models/_enums/button-new/button-new-style-type.enum.js +17 -0
- package/build-esm/_modules/ngx-models/_enums/button-type.enum.js +35 -0
- package/build-esm/_modules/ngx-models/_enums/checkbox-label-position.enum.js +8 -0
- package/build-esm/_modules/ngx-models/_enums/container-type.enum.js +11 -0
- package/build-esm/_modules/ngx-models/_enums/errors/error-level.enum.js +14 -0
- package/build-esm/_modules/ngx-models/_enums/errors/error-notification-color.enum.js +14 -0
- package/build-esm/_modules/ngx-models/_enums/errors/error-ui-mode.enum.js +14 -0
- package/build-esm/_modules/ngx-models/_enums/field-appearance.enum.js +13 -0
- package/build-esm/_modules/ngx-models/_enums/field-type.enum.js +49 -0
- package/build-esm/_modules/ngx-models/_enums/file-type.enum.js +12 -0
- package/build-esm/_modules/ngx-models/_enums/flex/flex-layout-align.enum.js +21 -0
- package/build-esm/_modules/ngx-models/_enums/flex/flex-layout.enum.js +6 -0
- package/build-esm/_modules/ngx-models/_enums/form-access.enum.js +9 -0
- package/build-esm/_modules/ngx-models/_enums/form-reset-data.enum.js +12 -0
- package/build-esm/_modules/ngx-models/_enums/form-store-on.enum.js +8 -0
- package/build-esm/_modules/ngx-models/_enums/forms-new/field-new-validator-type.enum.js +21 -0
- package/build-esm/_modules/ngx-models/_enums/frames/header-item-type.enum.js +16 -0
- package/build-esm/_modules/ngx-models/_enums/frames/header-position.enum.js +11 -0
- package/build-esm/_modules/ngx-models/_enums/frames/side-nav-badge-color.enum.js +14 -0
- package/build-esm/_modules/ngx-models/_enums/html/input-types.enum.js +26 -0
- package/build-esm/_modules/ngx-models/_enums/material-color.enum.js +14 -0
- package/build-esm/_modules/ngx-models/_enums/material-tooltip-position.enum.js +13 -0
- package/build-esm/_modules/ngx-models/_enums/preconfigured-field-type.enum.js +8 -0
- package/build-esm/_modules/ngx-models/_enums/storage-type.enum.js +13 -0
- package/build-esm/_modules/ngx-models/_enums/validator-type.enum.js +7 -0
- package/build-esm/_modules/ngx-models/_enums/voice/audio-mime-type.enum.js +15 -0
- package/build-esm/_modules/ngx-models/_enums/voice/voice-provider-type.enum.js +32 -0
- package/build-esm/_modules/ngx-models/_enums/voice/voice-recorder-state.enum.js +21 -0
- package/build-esm/_modules/ngx-models/_models/control-models/button-new-style-settings.control-model.js +44 -0
- package/build-esm/_modules/ngx-models/_models/control-models/button-params.control-model.js +304 -0
- package/build-esm/_modules/ngx-models/_models/control-models/chat/chat-column-layout-settings.control-model.js +59 -0
- package/build-esm/_modules/ngx-models/_models/control-models/data-handler-settings.control-model.js +94 -0
- package/build-esm/_modules/ngx-models/_models/control-models/data-handler.control-model.js +407 -0
- package/build-esm/_modules/ngx-models/_models/control-models/errors/error-notification.control-model.js +43 -0
- package/build-esm/_modules/ngx-models/_models/control-models/errors/error-settings.control-model.js +64 -0
- package/build-esm/_modules/ngx-models/_models/control-models/errors/errors-settings.control-model.js +52 -0
- package/build-esm/_modules/ngx-models/_models/control-models/field-settings.control-model.js +207 -0
- package/build-esm/_modules/ngx-models/_models/control-models/form-settings.control-model.js +275 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/checkbox-field-new-settings.control-model.js +29 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/color-picker-field-new-settings.control-model.js +36 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/date-field-new-settings.control-model.js +31 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/date-range-field-new-settings.control-model.js +46 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/datetime-field-new-settings.control-model.js +38 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/datetime-range-field-new-settings.control-model.js +48 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/emoji-picker-field-new-settings.control-model.js +21 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/field-new-settings.control-model.js +91 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/field-new-types.js +1 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/form-new-settings.control-model.js +39 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/icon-picker-field-new-settings.control-model.js +39 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/index.js +23 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/multiselect-field-new-settings.control-model.js +31 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/number-field-new-settings.control-model.js +29 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/password-field-new-settings.control-model.js +51 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/picker-field-new-option.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/radio-select-field-new-settings.control-model.js +38 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/select-field-new-settings.control-model.js +35 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/slider-field-new-settings.control-model.js +50 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/slider-range-field-new-settings.control-model.js +47 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/text-field-new-settings.control-model.js +35 -0
- package/build-esm/_modules/ngx-models/_models/control-models/forms-new/textarea-field-new-settings.control-model.js +27 -0
- package/build-esm/_modules/ngx-models/_models/control-models/frames/header-item-settings.control-model.js +44 -0
- package/build-esm/_modules/ngx-models/_models/control-models/frames/main-frame-settings.control-model.js +56 -0
- package/build-esm/_modules/ngx-models/_models/control-models/frames/side-nav-item-settings.control-model.js +58 -0
- package/build-esm/_modules/ngx-models/_models/control-models/frames/side-nav-settings.control-model.js +38 -0
- package/build-esm/_modules/ngx-models/_models/control-models/select.control-model.js +27 -0
- package/build-esm/_modules/ngx-models/_models/control-models/signal-data-list-handler-settings.control-model.js +23 -0
- package/build-esm/_modules/ngx-models/_models/control-models/signal-data-search-handler-settings.control-model.js +25 -0
- package/build-esm/_modules/ngx-models/_models/control-models/signal-list-collector-data-handler-settings.control-model.js +12 -0
- package/build-esm/_modules/ngx-models/_models/control-models/voice/voice-providers-settings.control-model.js +22 -0
- package/build-esm/_modules/ngx-models/_models/control-models/voice/voice-record-button-settings.control-model.js +91 -0
- package/build-esm/_modules/ngx-models/_models/control-models/voice/voice-recorder-settings.control-model.js +42 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/button-new-settings.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/confirm-settings.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/global-settings.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/select-options-custom-constructor.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/storage.service.js +40 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/voice/speak-options.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/voice/speak-result.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/voice/transcribe-options.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/voice/transcribe-result.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/voice/voice-profile.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_models/interfaces/voice/voice-provider-init.interface.js +1 -0
- package/build-esm/_modules/ngx-models/_utils/shared.service.js +407 -0
- package/build-esm/_modules/ngx-models/index.js +89 -0
- package/build-esm/_modules/operation-control/_collections/operation-lease.util.js +323 -0
- package/build-esm/_modules/operation-control/_enums/operation-decision-code.type-enum.js +22 -0
- package/build-esm/_modules/operation-control/_enums/operation-state.type-enum.js +9 -0
- package/build-esm/_modules/operation-control/_models/operation-lease.interface.js +1 -0
- package/build-esm/_modules/operation-control/index.js +4 -0
- package/build-esm/_modules/pipe/_collections/pip-transforms.const.js +32 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-country-pipe.util.js +29 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-custom-pipe.util.js +22 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-division-pipe.util.js +21 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-json-pipe.util.js +18 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-list-pipe.util.js +19 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-multi-pipe-pipe.util.js +164 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-obj-key-pipe.util.js +16 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-range-pipe.util.js +64 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-region-pipe.util.js +22 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-replace-pipe.util.js +15 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-slider-pipe.util.js +26 -0
- package/build-esm/_modules/pipe/_collections/utils/pip-smart-replace-pipe.util.js +40 -0
- package/build-esm/_modules/pipe/_enums/pip-range-pipe-setting.enum.js +14 -0
- package/build-esm/_modules/pipe/_enums/pip.enum.js +48 -0
- package/build-esm/_modules/pipe/_models/pip-multi-pipe-settings.type.js +1 -0
- package/build-esm/_modules/pipe/_models/pip-transforms.interface.js +1 -0
- package/build-esm/_modules/pipe/index.js +22 -0
- package/build-esm/_modules/request-safety/_collections/request-safety-inspector.util.js +317 -0
- package/build-esm/_modules/request-safety/_enums/request-safety-finding.type-enum.js +39 -0
- package/build-esm/_modules/request-safety/_models/request-safety.interface.js +1 -0
- package/build-esm/_modules/request-safety/index.js +3 -0
- package/build-esm/_modules/sandbox-runtime/_collections/zero-egress-receipt.util.js +154 -0
- package/build-esm/_modules/sandbox-runtime/_collections/zero-egress-result-code.const.js +36 -0
- package/build-esm/_modules/sandbox-runtime/_enums/zero-egress-outcome.type-enum.js +11 -0
- package/build-esm/_modules/sandbox-runtime/_models/zero-egress-receipt.interface.js +1 -0
- package/build-esm/_modules/sandbox-runtime/index.js +4 -0
- package/build-esm/_modules/security/_collections/stored-secret.util.js +68 -0
- package/build-esm/_modules/security/_models/stored-secret.control-model.js +52 -0
- package/build-esm/_modules/security/index.js +7 -0
- package/build-esm/_modules/socket/_enums/sck-event-key.enum.js +18 -0
- package/build-esm/_modules/socket/_models/sck-client-params.control-model.js +47 -0
- package/build-esm/_modules/socket/_models/sck-socket-event.control-model.js +133 -0
- package/build-esm/_modules/socket/_services/sck-client.service-base.js +314 -0
- package/build-esm/_modules/socket/index.js +7 -0
- package/build-esm/_modules/state-machine/_models/state-machine-config.interface.js +1 -0
- package/build-esm/_modules/state-machine/_models/state-machine-event.interface.js +1 -0
- package/build-esm/_modules/state-machine/_models/state-machine.control-model.js +262 -0
- package/build-esm/_modules/state-machine/_models/state-transition-result.interface.js +1 -0
- package/build-esm/_modules/state-machine/_models/state-transition.interface.js +1 -0
- package/build-esm/_modules/state-machine/index.js +6 -0
- package/build-esm/_modules/test/_collections/tst-module-settings.const.js +38 -0
- package/build-esm/_modules/test/index.js +2 -0
- package/build-esm/_modules/usage/_collections/usg-module-settings.const.js +16 -0
- package/build-esm/_modules/usage/_models/usg-action.control-model.js +25 -0
- package/build-esm/_modules/usage/_models/usg-daily-usage-data.control-model.js +30 -0
- package/build-esm/_modules/usage/_models/usg-data.control-model.js +30 -0
- package/build-esm/_modules/usage/_models/usg-session.data-model.js +60 -0
- package/build-esm/_modules/usage/index.js +7 -0
- package/build-esm/index.js +108 -0
- package/package.json +85 -84
|
@@ -0,0 +1,591 @@
|
|
|
1
|
+
import { DyFM_Log } from './log.util';
|
|
2
|
+
import { DyFM_JsonErrorHelper } from './json-error-helper.util';
|
|
3
|
+
import { DyFM_String } from './string.util';
|
|
4
|
+
export class DyFM_Object {
|
|
5
|
+
static defaultErrorMsg = ' failed. ' +
|
|
6
|
+
'\nThis might be happening because the object you trying to clone, ' +
|
|
7
|
+
'contains object hooks for its own objects, therefore its creating an object loop. ' +
|
|
8
|
+
'See further information in the detailed error:\n\n';
|
|
9
|
+
/**
|
|
10
|
+
* returns remapped object list by path list
|
|
11
|
+
* @param objList object list to map
|
|
12
|
+
* @param paths string list of path etc.:
|
|
13
|
+
* ```ts
|
|
14
|
+
* [ [ 'first', 'sub', 'label' ], [ 'first', 'dif', 'name' ] ]
|
|
15
|
+
* ```
|
|
16
|
+
* will be...
|
|
17
|
+
* from
|
|
18
|
+
* ```ts
|
|
19
|
+
* {
|
|
20
|
+
* first: {
|
|
21
|
+
* sub: {
|
|
22
|
+
* label: 'vlmi'
|
|
23
|
+
* },
|
|
24
|
+
* dif: {
|
|
25
|
+
* name: 'asd'
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
* }[]
|
|
29
|
+
* ```
|
|
30
|
+
* to
|
|
31
|
+
* ```
|
|
32
|
+
* { label: 'vlmi', name: 'asd' }[]
|
|
33
|
+
* ```
|
|
34
|
+
* @returns remapped object list (the final obj will use the deepest keys)
|
|
35
|
+
*/
|
|
36
|
+
static mapObjList(objList, paths) {
|
|
37
|
+
let newObjList = [...objList];
|
|
38
|
+
newObjList = newObjList.map((obj) => {
|
|
39
|
+
const newObj = {};
|
|
40
|
+
paths.forEach((path) => {
|
|
41
|
+
newObj[path[path.length - 1]] = this.getNestedData(obj, path);
|
|
42
|
+
});
|
|
43
|
+
return newObj;
|
|
44
|
+
});
|
|
45
|
+
return newObjList;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* returns nested value from object
|
|
49
|
+
* @param parentObj data source object
|
|
50
|
+
* @param nestedDataKeys path of value as string list
|
|
51
|
+
* etc.: ['nestLvl1', 'nestLvl2', 'nestLvl3'] as parentObj.nestLvl1.nestLvl2.nestLvl3
|
|
52
|
+
* @returns data from object by path
|
|
53
|
+
*/
|
|
54
|
+
static getNestedData(parentObj, nestedDataKeys) {
|
|
55
|
+
let newData = this.clone(parentObj); // {...parentObj};
|
|
56
|
+
nestedDataKeys.forEach((dk) => {
|
|
57
|
+
if (newData) {
|
|
58
|
+
newData = newData[dk];
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
return newData;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* recursive function that nests data
|
|
65
|
+
* @param newData the object that that is needed to be updated
|
|
66
|
+
* @param nestKeys the path where the data should be updated
|
|
67
|
+
* @param dataToSet the actual value that will be setted
|
|
68
|
+
* @returns modified data
|
|
69
|
+
*/
|
|
70
|
+
static nestData(parentObj, nestKeys, dataToSet) {
|
|
71
|
+
const newData = this.clone(parentObj); // {...parentObj};
|
|
72
|
+
if (nestKeys.length > 1) {
|
|
73
|
+
const keys = [...nestKeys];
|
|
74
|
+
const nextNestKey = keys.shift();
|
|
75
|
+
newData[nextNestKey] = this.nestData(newData[nextNestKey], keys, dataToSet);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
newData[nestKeys[0]] = dataToSet;
|
|
79
|
+
}
|
|
80
|
+
return newData;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* recursive function that adds to nested data
|
|
84
|
+
* @param newData the object that that is needed to be updated
|
|
85
|
+
* @param nestKeys the path where the data should be updated
|
|
86
|
+
* @param dataToAdd the actual value that will be setted
|
|
87
|
+
* @returns modified data
|
|
88
|
+
*/
|
|
89
|
+
static addToNestedData(parentObj, nestKeys, dataToAdd) {
|
|
90
|
+
const newData = this.clone(parentObj); // {...parentObj};
|
|
91
|
+
if (nestKeys.length > 1) {
|
|
92
|
+
const keys = [...nestKeys];
|
|
93
|
+
const nextNestKey = keys.shift();
|
|
94
|
+
newData[nextNestKey] = this.addToNestedData(newData[nextNestKey], keys, dataToAdd);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
newData[nestKeys[0]] += dataToAdd;
|
|
98
|
+
}
|
|
99
|
+
return newData;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* recursive function that pushes to nested data
|
|
103
|
+
* @param newData the object that that is needed to be updated
|
|
104
|
+
* @param nestKeys the path where the data should be updated
|
|
105
|
+
* @param dataToPush the actual value that will be setted
|
|
106
|
+
* @returns modified data
|
|
107
|
+
*/
|
|
108
|
+
static pushToNestedData(parentObj, nestKeys, dataToPush) {
|
|
109
|
+
const newData = this.clone(parentObj); // {...parentObj};
|
|
110
|
+
if (nestKeys.length > 1) {
|
|
111
|
+
const keys = [...nestKeys];
|
|
112
|
+
const nextNestKey = keys.shift();
|
|
113
|
+
newData[nextNestKey] = this.pushToNestedData(newData[nextNestKey], keys, dataToPush);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
if (Array.isArray(newData[nestKeys[0]])) {
|
|
117
|
+
newData[nestKeys[0]].push(dataToPush);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
newData[nestKeys[0]] = [dataToPush];
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return newData;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* recursive function that nests data on recursive data structure etc.: xData: { ..., 'nestedListKey': xData[] }
|
|
127
|
+
* @param newData the object that that is needed to be updated
|
|
128
|
+
* @param nestedListKey the location of nested dataList
|
|
129
|
+
* @param nestIndexes path to the subject ect.: xData.listKey[1].listKey[4].listKey[0] will be [1, 4, 0]
|
|
130
|
+
* @param dataToSet the actual value that will be seted on location
|
|
131
|
+
* @returns modified data
|
|
132
|
+
*/
|
|
133
|
+
static nestRecursiveListedData(parentObj, nestedListKey, nestIndexes, dataToSet) {
|
|
134
|
+
const newData = this.clone(parentObj); // parentObj; // {...parentObj};
|
|
135
|
+
if (nestIndexes.length > 1) {
|
|
136
|
+
const indexes = [...nestIndexes];
|
|
137
|
+
const nextLevelKey = indexes.shift();
|
|
138
|
+
newData[nestedListKey][nextLevelKey] = this.nestRecursiveListedData(newData[nestedListKey][nextLevelKey], nestedListKey, indexes, dataToSet);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
newData[nestedListKey][nestIndexes[0]] = dataToSet;
|
|
142
|
+
}
|
|
143
|
+
return newData;
|
|
144
|
+
}
|
|
145
|
+
static removeCirculation = this.resolveCirculation;
|
|
146
|
+
/**
|
|
147
|
+
* THIS STILL NOT WORKING AS IT SHOULD
|
|
148
|
+
*
|
|
149
|
+
* recursive function that returns mutated data structure,
|
|
150
|
+
* with locations at which circular references are found
|
|
151
|
+
*/
|
|
152
|
+
static resolveCirculation(data, location = [('ROOT;' + data?.constructor?.name)], objs = []) {
|
|
153
|
+
if (!data || typeof data !== 'object') {
|
|
154
|
+
return data;
|
|
155
|
+
}
|
|
156
|
+
else if (objs.includes(data)) {
|
|
157
|
+
return 'CIRCULATION:' + location.join('.');
|
|
158
|
+
}
|
|
159
|
+
let newData;
|
|
160
|
+
if (Array.isArray(data)) {
|
|
161
|
+
newData = [];
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
newData = {};
|
|
165
|
+
}
|
|
166
|
+
// using the utility that Object.keys will return array keys if the data is an array
|
|
167
|
+
Object.keys(data).forEach((key) => {
|
|
168
|
+
newData[key] = this.resolveCirculation(data[key], [...location, key], [...objs, data]);
|
|
169
|
+
});
|
|
170
|
+
return newData;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* looks for circular references in object
|
|
174
|
+
* returns duplicated object's all location paths and the object itself
|
|
175
|
+
*
|
|
176
|
+
* {
|
|
177
|
+
* object: any,
|
|
178
|
+
* pathsOfAllDuplications: string[],
|
|
179
|
+
* }[]
|
|
180
|
+
*
|
|
181
|
+
* paths are in a single string, separated by '.'
|
|
182
|
+
*/
|
|
183
|
+
static findCirculations(data, location = [('ROOT;' + data?.constructor?.name)], objs = [], duplications = []) {
|
|
184
|
+
if (!data || typeof data !== 'object') {
|
|
185
|
+
return duplications;
|
|
186
|
+
}
|
|
187
|
+
else if (objs.includes(data)) {
|
|
188
|
+
duplications.push({
|
|
189
|
+
object: data,
|
|
190
|
+
pathsOfAllDuplications: location,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
Object.keys(data).forEach((key) => {
|
|
194
|
+
this.findCirculations(data[key], [...location, key], [...objs, data], duplications);
|
|
195
|
+
});
|
|
196
|
+
return duplications;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* removes all undefined (will keep all null, false, 0, '', NaN etc.)
|
|
200
|
+
*
|
|
201
|
+
* (not supports lists in lists!)
|
|
202
|
+
*
|
|
203
|
+
* (this also modifies the original object in place)
|
|
204
|
+
*/
|
|
205
|
+
static safeCleanObject(obj) {
|
|
206
|
+
try {
|
|
207
|
+
return this.cleanObject(obj);
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
DyFM_Log.error('Error cleaning object:', error);
|
|
211
|
+
return obj;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* cleans the object, by removing all undefined values (but keeps all null, false, 0, '', NaN etc.)
|
|
216
|
+
* (this is a deep clean)
|
|
217
|
+
*
|
|
218
|
+
* (this also modifies the original object in place)
|
|
219
|
+
*/
|
|
220
|
+
static cleanObject(obj, cleanings = []) {
|
|
221
|
+
if (!obj || typeof obj !== 'object' || cleanings.includes(obj)) {
|
|
222
|
+
return obj;
|
|
223
|
+
}
|
|
224
|
+
cleanings.push(obj);
|
|
225
|
+
Object.keys(obj).forEach((key) => {
|
|
226
|
+
if (obj[key] === undefined) {
|
|
227
|
+
delete obj[key];
|
|
228
|
+
}
|
|
229
|
+
else if (Array.isArray(obj[key])) {
|
|
230
|
+
obj[key].forEach((item) => {
|
|
231
|
+
if (typeof item === 'object') {
|
|
232
|
+
this.cleanObject(item, cleanings);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
else if (typeof obj[key] === 'object') {
|
|
237
|
+
this.cleanObject(obj[key], cleanings);
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
return obj;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* merges two objects, if the target object is not an object, it will be replaced by the source object
|
|
244
|
+
* it will iterate through the source object
|
|
245
|
+
* and will set the values to the target object
|
|
246
|
+
* (like a patch, with deep merge)
|
|
247
|
+
*
|
|
248
|
+
* (this also modifies the original target object in place)
|
|
249
|
+
*/
|
|
250
|
+
static mergeObjects(target, source) {
|
|
251
|
+
if (typeof source === 'object') {
|
|
252
|
+
target ??= {};
|
|
253
|
+
for (const key in source) {
|
|
254
|
+
if (source[key] instanceof Object) {
|
|
255
|
+
target[key] = this.mergeObjects(target[key], source[key]);
|
|
256
|
+
}
|
|
257
|
+
else if (Array.isArray(source[key])) {
|
|
258
|
+
target[key] ??= [];
|
|
259
|
+
source[key].forEach(item => {
|
|
260
|
+
if (!target[key].includes(item) &&
|
|
261
|
+
!(target[key].some(targetItem => this.sameObjects(item, targetItem)))) {
|
|
262
|
+
target[key].push(item);
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
target[key] = source[key];
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return target;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* cleans the source object and merges it to the target object
|
|
275
|
+
*
|
|
276
|
+
* (this also modifies the original objects in place! (source AND target))
|
|
277
|
+
*/
|
|
278
|
+
static patchObject(target, source) {
|
|
279
|
+
this.cleanObject(source);
|
|
280
|
+
return this.mergeObjects(target, source);
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* parses the JSON list, if it fails, it returns the answer as a single item in an array
|
|
284
|
+
*
|
|
285
|
+
* (uses {@link DyFM_safeParseJSON})
|
|
286
|
+
*/
|
|
287
|
+
static safeParseList(textedJSON, disableErrorLog) {
|
|
288
|
+
const parsed = this.safeParseJSON(textedJSON, true);
|
|
289
|
+
if (Array.isArray(parsed)) {
|
|
290
|
+
return parsed;
|
|
291
|
+
}
|
|
292
|
+
else if (typeof parsed === 'object') {
|
|
293
|
+
if (!disableErrorLog) {
|
|
294
|
+
DyFM_Log.warn('DyFM_Object.safeParseList result is an object, returning its values', {
|
|
295
|
+
parsed: parsed,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
return Object.values(parsed);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
if (!disableErrorLog) {
|
|
302
|
+
DyFM_Log.warn('DyFM_Object.safeParseList result is not an array or object, returning it as a single item', {
|
|
303
|
+
parsed: parsed,
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
return [parsed];
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* parses the JSON, if it fails, it returns { unparsableResult: textedJSON }
|
|
311
|
+
*
|
|
312
|
+
* (uses {@link DyFM_failableSafeParseJSON})
|
|
313
|
+
*/
|
|
314
|
+
static safeParseJSON(textedJSON, disableErrorLog) {
|
|
315
|
+
try {
|
|
316
|
+
return this.failableSafeParseJSON(textedJSON);
|
|
317
|
+
}
|
|
318
|
+
catch (error) {
|
|
319
|
+
if (!disableErrorLog) {
|
|
320
|
+
DyFM_Log.error('Unable to parse JSON answer:', {
|
|
321
|
+
unparsedJSON: textedJSON,
|
|
322
|
+
error: error,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
return { unparsableResult: textedJSON };
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* parses the JSON, if it fails, it throws an error
|
|
330
|
+
* (also will extract the JSON from "```json ... ```" wrapper)
|
|
331
|
+
* Uses enhanced error reporting with line context
|
|
332
|
+
*/
|
|
333
|
+
static failableSafeParseJSON_old(textedJSON) {
|
|
334
|
+
if (!textedJSON) {
|
|
335
|
+
throw new Error(`No content provided to JSON parse ("${textedJSON}")`);
|
|
336
|
+
}
|
|
337
|
+
const match = textedJSON.match(/```json(.*)```/s);
|
|
338
|
+
// TODO; ez nem lesz az igazi, mert kiszedi a tartalmakból is a sortöréseket!!! (ugyan ez pár sorral lejjebb)
|
|
339
|
+
const cleanedTextedJSON = textedJSON.replaceAll('\n', '');
|
|
340
|
+
if (match) {
|
|
341
|
+
return DyFM_JsonErrorHelper.parseJsonWithEnhancedError(match[1].replaceAll('\n', ''));
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
return DyFM_JsonErrorHelper.parseJsonWithEnhancedError(cleanedTextedJSON.replaceAll('```json', '').replaceAll('```', ''));
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* parses the JSON, if it fails, it throws an error
|
|
349
|
+
* (also will extract the JSON from "```json ... ```" wrapper)
|
|
350
|
+
* Uses enhanced error reporting with line context
|
|
351
|
+
*/
|
|
352
|
+
static failableSafeParseJSON(textedJSON) {
|
|
353
|
+
if (!textedJSON) {
|
|
354
|
+
throw new Error(`No content provided to JSON parse ("${textedJSON}")`);
|
|
355
|
+
}
|
|
356
|
+
if (textedJSON.includes('```json')) {
|
|
357
|
+
// Extract content from code block, preserving newlines for error context
|
|
358
|
+
/* const extractedJson = match[1].trim(); */
|
|
359
|
+
const extractedJson = DyFM_String.multiBracketSplitDetailed(textedJSON, [
|
|
360
|
+
{ opening: '```json', closing: '```' },
|
|
361
|
+
{ opening: '{', closing: '}' },
|
|
362
|
+
{ opening: '[', closing: ']' },
|
|
363
|
+
], 1);
|
|
364
|
+
// Check if we have extracted content and handle undefined cases
|
|
365
|
+
if (extractedJson.length > 1 && extractedJson[1] && extractedJson[1].brackets?.opening === '```json') {
|
|
366
|
+
return DyFM_JsonErrorHelper.parseJsonWithEnhancedError(extractedJson[1].content);
|
|
367
|
+
}
|
|
368
|
+
else if (extractedJson.length > 0 && extractedJson[0]) {
|
|
369
|
+
return DyFM_JsonErrorHelper.parseJsonWithEnhancedError(extractedJson[0].content);
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
// Fallback if extraction fails - use original text minus markdown wrapper
|
|
373
|
+
const cleanedText = textedJSON.replace(/```json\s*/, '').replace(/\s*```$/, '').trim();
|
|
374
|
+
return DyFM_JsonErrorHelper.parseJsonWithEnhancedError(cleanedText);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
return DyFM_JsonErrorHelper.parseJsonWithEnhancedError(textedJSON.trim());
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Clone an object
|
|
383
|
+
* @param object - The object to clone
|
|
384
|
+
* @returns The cloned object
|
|
385
|
+
*/
|
|
386
|
+
static clone(object) {
|
|
387
|
+
try {
|
|
388
|
+
return object ? JSON.parse(JSON.stringify(object)) : object;
|
|
389
|
+
}
|
|
390
|
+
catch (error) {
|
|
391
|
+
DyFM_Log.error('clone()' + this.defaultErrorMsg, error);
|
|
392
|
+
throw error;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
static copy = this.clone;
|
|
396
|
+
/**
|
|
397
|
+
* Surface clone an object
|
|
398
|
+
* @param object - The object to surface clone
|
|
399
|
+
* @returns The surface cloned object
|
|
400
|
+
*/
|
|
401
|
+
static surfaceClone(object) {
|
|
402
|
+
try {
|
|
403
|
+
const result = {};
|
|
404
|
+
Object.keys(object).forEach((key) => {
|
|
405
|
+
result[key] = object[key];
|
|
406
|
+
});
|
|
407
|
+
return result;
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
DyFM_Log.error('surfaceClone()' + this.defaultErrorMsg, error);
|
|
411
|
+
throw error;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
static surfaceCopy = this.surfaceClone;
|
|
415
|
+
/**
|
|
416
|
+
* Deep clone an object
|
|
417
|
+
* @param object - The object to deep clone
|
|
418
|
+
* @returns The deep cloned object
|
|
419
|
+
*/
|
|
420
|
+
static deepClone(object) {
|
|
421
|
+
try {
|
|
422
|
+
const result = {};
|
|
423
|
+
if (!object) {
|
|
424
|
+
return result;
|
|
425
|
+
}
|
|
426
|
+
Object.keys(object).forEach((key) => {
|
|
427
|
+
if (typeof object[key] === 'object') {
|
|
428
|
+
result[key] = this.deepClone(object[key]);
|
|
429
|
+
}
|
|
430
|
+
else if (Array.isArray(object[key])) {
|
|
431
|
+
result[key] = object[key].map((item) => this.deepClone(item));
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
result[key] = object[key];
|
|
435
|
+
}
|
|
436
|
+
});
|
|
437
|
+
return result;
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
DyFM_Log.error('deepClone()' + this.defaultErrorMsg, error);
|
|
441
|
+
throw error;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* A simple object comparison function that uses JSON.stringify() to compare objects.
|
|
446
|
+
*
|
|
447
|
+
* We experienced that sameObjects() function is not working properly for cases when
|
|
448
|
+
* deleting a key from the objects (to prevent strict results).
|
|
449
|
+
* So, we created orderedSameObject() function to prevent that issue.
|
|
450
|
+
* But be aware that, that function is not as fast as sameObjects() function.
|
|
451
|
+
*/
|
|
452
|
+
static sameObjects(objA, objB) {
|
|
453
|
+
try {
|
|
454
|
+
return JSON.stringify(objA) === JSON.stringify(objB);
|
|
455
|
+
}
|
|
456
|
+
catch (error) {
|
|
457
|
+
DyFM_Log.error('sameObjects()' + this.defaultErrorMsg, error);
|
|
458
|
+
throw error;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* We experienced that sameObjects() function is not working properly for cases when
|
|
463
|
+
* deleting a key from the objects (to prevent strict results).
|
|
464
|
+
*
|
|
465
|
+
* This function is created to prevent that issue.
|
|
466
|
+
* But be aware that this function is not as fast as sameObjects() function.
|
|
467
|
+
*/
|
|
468
|
+
static orderedSameObject(objA, objB) {
|
|
469
|
+
try {
|
|
470
|
+
if (typeof objA !== 'object' ||
|
|
471
|
+
typeof objB !== 'object' ||
|
|
472
|
+
Array.isArray(objA) ||
|
|
473
|
+
Array.isArray(objB) ||
|
|
474
|
+
objA === null ||
|
|
475
|
+
objB === null ||
|
|
476
|
+
objA === undefined ||
|
|
477
|
+
objB === undefined) {
|
|
478
|
+
return JSON.stringify(objA) === JSON.stringify(objB);
|
|
479
|
+
}
|
|
480
|
+
const keysA = Object.keys(objA);
|
|
481
|
+
const keysB = Object.keys(objB);
|
|
482
|
+
if (keysA.length !== keysB.length) {
|
|
483
|
+
return false;
|
|
484
|
+
}
|
|
485
|
+
keysA.sort();
|
|
486
|
+
keysB.sort();
|
|
487
|
+
for (let i = 0; i < keysA.length; i++) {
|
|
488
|
+
if (JSON.stringify(keysA[i]) !== JSON.stringify(keysB[i])) {
|
|
489
|
+
return false;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
return true;
|
|
493
|
+
}
|
|
494
|
+
catch (error) {
|
|
495
|
+
/* try {
|
|
496
|
+
return DyFM_Object.orderedSameObject2(objA, objB);
|
|
497
|
+
} catch (error) { */
|
|
498
|
+
DyFM_Log.error('orderedSameObject()' + this.defaultErrorMsg, error);
|
|
499
|
+
throw error;
|
|
500
|
+
/* } */
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* We experienced that sameObjects() function is not working properly for cases when
|
|
505
|
+
* deleting a key from the objects (to prevent strict results).
|
|
506
|
+
*
|
|
507
|
+
* This function is created to prevent that issue.
|
|
508
|
+
* But be aware that this function is not as fast as sameObjects() function.
|
|
509
|
+
*/
|
|
510
|
+
static orderedSameObject2(objA, objB) {
|
|
511
|
+
try {
|
|
512
|
+
console.log('using orderedSameObject2');
|
|
513
|
+
if (typeof objA !== 'object' ||
|
|
514
|
+
typeof objB !== 'object' ||
|
|
515
|
+
Array.isArray(objA) ||
|
|
516
|
+
Array.isArray(objB) ||
|
|
517
|
+
objA === null ||
|
|
518
|
+
objB === null ||
|
|
519
|
+
objA === undefined ||
|
|
520
|
+
objB === undefined) {
|
|
521
|
+
return JSON.stringify(objA) === JSON.stringify(objB);
|
|
522
|
+
}
|
|
523
|
+
return JSON.stringify(objA, Object.keys(objA).sort()) === JSON.stringify(objB, Object.keys(objB).sort());
|
|
524
|
+
}
|
|
525
|
+
catch (error) {
|
|
526
|
+
DyFM_Log.error('sameObjects()' + this.defaultErrorMsg, error);
|
|
527
|
+
throw error;
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* compares the surface of two objects
|
|
532
|
+
* @param objA
|
|
533
|
+
* @param objB
|
|
534
|
+
* @returns
|
|
535
|
+
*/
|
|
536
|
+
static sameObjectSurface(objA, objB) {
|
|
537
|
+
let result = true;
|
|
538
|
+
for (const key in objA) {
|
|
539
|
+
if (objA[key] !== objB[key]) {
|
|
540
|
+
result = false;
|
|
541
|
+
break;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
return result;
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* sets values if its existing on To, even if its null (but if undefined)
|
|
548
|
+
* @param setOn
|
|
549
|
+
* @param setTo
|
|
550
|
+
*/
|
|
551
|
+
static setExistingValuesOnly(setOn, setTo) {
|
|
552
|
+
for (const key in setTo) {
|
|
553
|
+
if (setTo[key] != undefined) {
|
|
554
|
+
setOn[key] = setTo[key];
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* converts a JSONList to an array
|
|
560
|
+
* @param JSONList
|
|
561
|
+
* @returns
|
|
562
|
+
*/
|
|
563
|
+
static JSONListify(JSONList) {
|
|
564
|
+
const result = [];
|
|
565
|
+
for (let i = 0; JSONList[i]; i++) {
|
|
566
|
+
result.push(JSONList[i]);
|
|
567
|
+
}
|
|
568
|
+
return result;
|
|
569
|
+
}
|
|
570
|
+
static cleanAssign(target, source) {
|
|
571
|
+
source = this.cleanObject(source);
|
|
572
|
+
return Object.assign(target, source);
|
|
573
|
+
}
|
|
574
|
+
static hardParseJSON(input) {
|
|
575
|
+
try {
|
|
576
|
+
return JSON.parse(input);
|
|
577
|
+
}
|
|
578
|
+
catch (error) {
|
|
579
|
+
try {
|
|
580
|
+
return this.failableSafeParseJSON(input);
|
|
581
|
+
}
|
|
582
|
+
catch (error) {
|
|
583
|
+
const result = this.safeParseJSON(input);
|
|
584
|
+
if (result.unparsableResult) {
|
|
585
|
+
return result.unparsableResult;
|
|
586
|
+
}
|
|
587
|
+
return result;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|