@finos/legend-graph
Version:
Legend graph and graph manager
353 lines • 25.9 kB
JavaScript
/**
* Copyright (c) 2020-present, Goldman Sachs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { hashArray, hashObject, hashValue } from '@finos/legend-shared';
import { SOURCE_INFORMATION_PROPERTY_KEY_SUFFIX } from './MetaModelConst.js';
/**
* The main point of maintaining this enum is to keep lessen magic string in hash computation
* so that we are less error-prone in the process of defining hash.
*
* These tokens will be used in the definition of the hash as marker for the type of the strucure
* arguably some of these can be redundant since this information is encoded in the resulting hash
* code anyway, but sometimes when polymorphism manifests, such as when we have an array of structure
* which are subclasses of an abstract stucture, hashing the marker is sometimes the only way to
* discern between instances of different sub-structures
*
* TODO: when we refactor hashing, we could potentially move this to graphManager/changeDetection/
*/
export var CORE_HASH_STRUCTURE;
(function (CORE_HASH_STRUCTURE) {
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_ELEMENT"] = "INTERNAL__UNKNOWN_ELEMENT";
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_PACKAGEABLE_ELEMENT"] = "INTERNAL__UNKNOWN_PACKAGEABLE_ELEMENT";
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_FUNCTION_ACTIVATOR"] = "INTERNAL__UNKNOWN_FUNCTION_ACTIVATOR";
CORE_HASH_STRUCTURE["PACKAGE"] = "PACKAGE";
CORE_HASH_STRUCTURE["PACKAGEABLE_ELEMENT"] = "PACKAGEABLE_ELEMENT";
CORE_HASH_STRUCTURE["PACKAGEABLE_ELEMENT_POINTER"] = "PACKAGEABLE_ELEMENT_POINTER";
// domain
CORE_HASH_STRUCTURE["PROFILE"] = "PROFILE";
CORE_HASH_STRUCTURE["TAG_POINTER"] = "TAG_POINTER";
CORE_HASH_STRUCTURE["STEREOTYPE_POINTER"] = "STEREOTYPE_POINTER";
CORE_HASH_STRUCTURE["TAGGED_VALUE"] = "TAGGED_VALUE";
CORE_HASH_STRUCTURE["ENUMERATION"] = "ENUMERATION";
CORE_HASH_STRUCTURE["ENUM_VALUE"] = "ENUM_VALUE";
CORE_HASH_STRUCTURE["CLASS"] = "CLASS";
CORE_HASH_STRUCTURE["PROPERTY"] = "PROPERTY";
CORE_HASH_STRUCTURE["PROPERTY_DEFAULT_VALUE"] = "PROPERTY_DEFAULT_VALUE";
CORE_HASH_STRUCTURE["PROPERTY_POINTER"] = "PROPERTY_POINTER";
CORE_HASH_STRUCTURE["MULTIPLICITY"] = "MULTIPLICITY";
CORE_HASH_STRUCTURE["CONSTRAINT"] = "CONSTRAINT";
CORE_HASH_STRUCTURE["DERIVED_PROPERTY"] = "DERIVED_PROPERTY";
CORE_HASH_STRUCTURE["ASSOCIATION"] = "ASSOCIATION";
CORE_HASH_STRUCTURE["FUNCTION"] = "FUNCTION";
CORE_HASH_STRUCTURE["MEASURE"] = "MEASURE";
CORE_HASH_STRUCTURE["UNIT"] = "UNIT";
// function test
CORE_HASH_STRUCTURE["FUNCTION_TEST_SUITE"] = "FUNCTION_TEST_SUITE";
CORE_HASH_STRUCTURE["FUNCTION_TEST"] = "FUNCTION_TEST";
CORE_HASH_STRUCTURE["FUNCTION_STORE_TEST_DATA"] = "FUNCTION_STORE_TEST_DATA";
CORE_HASH_STRUCTURE["FUNCTION_PARAMETER_VALUE"] = "FUNCTION_PARAMETER_VALUE";
// Function Activator
CORE_HASH_STRUCTURE["FUNCTION_ACTIVATOR_POST_DEPLOYMENT_PROPERTIES"] = "FUNCTION_ACTIVATOR_POST_DEPLOYMENT_PROPERTIES";
// testable
CORE_HASH_STRUCTURE["ASSERT_FAIL"] = "ASSERT_FAIL";
CORE_HASH_STRUCTURE["ASSERT_PASS"] = "ASSERT_PASS";
CORE_HASH_STRUCTURE["EQUAL_TO_JSON_ASSERT_FAIL"] = "EQUAL_TO_JSON_ASSERT_FAIL";
CORE_HASH_STRUCTURE["EQUAL_TO"] = "EQUAL_TO";
CORE_HASH_STRUCTURE["EQUAL_TO_JSON"] = "EQUAL_TO_JSON";
CORE_HASH_STRUCTURE["EQUAL_TO_TDS"] = "EQUAL_TO_TDS";
// section index
CORE_HASH_STRUCTURE["SECTION_INDEX"] = "SECTION_INDEX";
CORE_HASH_STRUCTURE["SECTION"] = "SECTION";
CORE_HASH_STRUCTURE["IMPORT_AWARE_CODE_SECTION"] = "IMPORT_AWARE_CODE_SECTION";
CORE_HASH_STRUCTURE["DEFAULT_CODE_SECTION"] = "DEFAULT_CODE_SECTION";
// raw value specification
CORE_HASH_STRUCTURE["RAW_LAMBDA"] = "RAW_LAMBDA";
CORE_HASH_STRUCTURE["RAW_VARIABLE"] = "RAW_VARIABLE";
CORE_HASH_STRUCTURE["RAW_INSTANCE_VALUE"] = "RAW_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["BINDING_TRANSFORMER"] = "BINDING_TRANSFORMER";
// value specification
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_VALUE_SPECIFICATION"] = "INTERNAL__UNKNOWN_VALUE_SPECIFICATION";
CORE_HASH_STRUCTURE["INTERNAL__PROPAGATED_VALUE"] = "INTERNAL__PROPAGATED_VALUE";
CORE_HASH_STRUCTURE["VARIABLE_EXPRESSION"] = "VARIABLE_EXPRESSION";
CORE_HASH_STRUCTURE["EXPRESSION"] = "EXPRESSION";
CORE_HASH_STRUCTURE["FUNCTION_EXPRESSION"] = "FUNCTION_EXPRESSION";
CORE_HASH_STRUCTURE["SIMPLE_FUNCTION_EXPRESSION"] = "SIMPLE_FUNCTION_EXPRESSION";
CORE_HASH_STRUCTURE["ABSTRACT_PROPERTY_EXPRESSION"] = "ABSTRACT_PROPERTY_EXPRESSION";
CORE_HASH_STRUCTURE["INSTANCE_VALUE"] = "INSTANCE_VALUE";
CORE_HASH_STRUCTURE["PRIMITIVE_INSTANCE_VALUE"] = "PRIMITIVE_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["ENUM_INSTANCE_VALUE"] = "ENUM_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["KEY_EXPRESSION_INSTANCE_VALUE"] = "KEY_EXPRESSION_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["KEY_EXPRESSION_VALUE"] = "KEY_EXPRESSION_VALUE";
CORE_HASH_STRUCTURE["RUNTIME_INSTANCE_VALUE"] = "RUNTIME_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["PAIR_INSTANCE_VALUE"] = "PAIR_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["MAPPING_INSTANCE_VALUE"] = "MAPPING_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["PURE_LIST_INSTANCE_VALUE"] = "PURE_LIST_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["COLLECTION_INSTANCE_VALUE"] = "COLLECTION_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["LAMBDA_FUNCTION_INSTANCE_VALUE"] = "LAMBDA_FUNCTION_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["FUNCTION_TYPE"] = "FUNCTION_TYPE";
CORE_HASH_STRUCTURE["LAMBDA_FUNCTION"] = "LAMBDA_FUNCTION";
CORE_HASH_STRUCTURE["ALLOY_SERIALIZATION_CONFIG_INSTANCE_VALUE"] = "ALLOY_SERIALIZATION_CONFIG_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["ALLOY_SERIALIZATION_CONFIG"] = "ALLOY_SERIALIZATION_CONFIG";
CORE_HASH_STRUCTURE["ROOT_GRAPH_FETCH_TREE"] = "ROOT_GRAPH_FETCH_TREE";
CORE_HASH_STRUCTURE["PROPERTY_GRAPH_FETCH_TREE"] = "PROPERTY_GRAPH_FETCH_TREE";
CORE_HASH_STRUCTURE["SUBTYPE_GRAPH_FETCH_TREE"] = "SUBTYPE_GRAPH_FETCH_TREE";
CORE_HASH_STRUCTURE["SUBTYPE_GRAPH_FETCH_TREE_INSTANCE_VALUE"] = "SUBTYPE_GRAPH_FETCH_TREE_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["PROPERTY_GRAPH_FETCH_TREE_INSTANCE_VALUE"] = "PROEPRTY_GRAPH_FETCH_TREE_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["ROOT_GRAPH_FETCH_TREE_INSTANCE_VALUE"] = "ROOT_GRAPH_FETCH_TREE_INSTANCE_VALUE";
CORE_HASH_STRUCTURE["RELATION_COL_SPEC_ARRAY"] = "RELATION_COL_SPEC_ARRAY";
CORE_HASH_STRUCTURE["RELATION_COL_SPEC"] = "RELATION_COL_SPEC";
// ---------------------------------- DSL Mapping --------------------------------------
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_STORE"] = "INTERNAL__UNKNOWN_STORE";
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_CONNECTION"] = "INTERNAL__UNKNOWN_CONNECTION";
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_PROPERTY_MAPPING"] = "INTERNAL__UNKNOWN_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_CLASS_MAPPING"] = "INTERNAL__UNKNOWN_CLASS_MAPPING";
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_MAPPING_INCLUDE"] = "INTERNAL__UNKNOWN_MAPPING_INCLUDE";
CORE_HASH_STRUCTURE["MAPPING"] = "MAPPING";
CORE_HASH_STRUCTURE["MAPPING_INCLUDE_MAPPING"] = "MAPPING_INCLUDE_MAPPING";
CORE_HASH_STRUCTURE["ASSOCIATION_IMPLEMENTATION"] = "ASSOCIATION_IMPLEMENTATION";
CORE_HASH_STRUCTURE["RELATIONAL_ASSOCIATION_IMPLEMENTATION"] = "RELATIONAL_ASSOCIATION_IMPLEMENTATION";
CORE_HASH_STRUCTURE["XSTORE_ASSOCIATION_IMPLEMENTATION"] = "XSTORE_ASSOCIATION_IMPLEMENTATION";
CORE_HASH_STRUCTURE["ENUMERATION_MAPPING"] = "ENUMERATION_MAPPING";
CORE_HASH_STRUCTURE["ENUM_VALUE_MAPPING"] = "ENUM_VALUE_MAPPING";
CORE_HASH_STRUCTURE["SET_IMPLEMENTATION"] = "SET_IMPLEMENTATION";
CORE_HASH_STRUCTURE["OPERATION_SET_IMPLEMENTATION"] = "OPERATION_SET_IMPLEMENTATION";
CORE_HASH_STRUCTURE["PURE_INSTANCE_SET_IMPLEMENTATION"] = "PURE_INSTANCE_SET_IMPLEMENTATION";
CORE_HASH_STRUCTURE["PROPERTY_MAPPING"] = "PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["LOCAL_MAPPING_PROPERTY"] = "LOCAL_MAPPING_PROPERTY";
CORE_HASH_STRUCTURE["PURE_PROPERTY_MAPPING"] = "PURE_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["XSTORE_PROPERTY_MAPPING"] = "XSTORE_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["MAPPING_TEST_LEGACY"] = "MAPPING_TEST_LEGACY";
CORE_HASH_STRUCTURE["MAPPING_TEST_SUITE"] = "MAPPING_TEST_SUITE";
CORE_HASH_STRUCTURE["MAPPING_TEST"] = "MAPPING_TEST";
CORE_HASH_STRUCTURE["STORE_TEST_DATA"] = "STORE_TEST_DATA";
CORE_HASH_STRUCTURE["INPUT_DATA"] = "INPUT_DATA";
CORE_HASH_STRUCTURE["FLAT_DATA_INPUT_DATA"] = "FLAT_DATA_INPUT_DATA";
CORE_HASH_STRUCTURE["RELATIONAL_INPUT_DATA"] = "RELATIONAL_INPUT_DATA";
CORE_HASH_STRUCTURE["OBJECT_INPUT_DATA"] = "OBJECT_INPUT_DATA";
CORE_HASH_STRUCTURE["MAPPING_TEST_ASSERT"] = "MAPPING_TEST_ASSERT";
CORE_HASH_STRUCTURE["EXPECTED_OUTPUT_MAPPING_TEST_ASSERT"] = "EXPECTED_OUTPUT_MAPPING_TEST_ASSERT";
CORE_HASH_STRUCTURE["FILTER_MAPPING"] = "FILTER_MAPPING";
CORE_HASH_STRUCTURE["COLUMN_MAPPING"] = "COLUMN_MAPPING";
CORE_HASH_STRUCTURE["GROUP_BY_MAPPING"] = "GROUP_BY_MAPPING";
// runtime
CORE_HASH_STRUCTURE["RUNTIME"] = "RUNTIME";
CORE_HASH_STRUCTURE["PACKAGEABLE_RUNTIME"] = "PACKAGEABLE_RUNTIME";
CORE_HASH_STRUCTURE["ENGINE_RUNTIME"] = "ENGINE_RUNTIME";
CORE_HASH_STRUCTURE["SINGLE_ENGINE_RUNTIME"] = "SINGLE_ENGINE_RUNTIME";
CORE_HASH_STRUCTURE["LEGACY_RUNTIME"] = "LEGACY_RUNTIME";
CORE_HASH_STRUCTURE["LAKEHOUSE_RUNTIME"] = "LAKEHOUSE_RUNTIME";
CORE_HASH_STRUCTURE["RUNTIME_POINTER"] = "RUNTIME_POINTER";
CORE_HASH_STRUCTURE["STORE_CONNECTIONS"] = "STORE_CONNECTIONS";
CORE_HASH_STRUCTURE["IDENTIFIED_CONNECTION"] = "IDENTIFIED_CONNECTION";
// connection
CORE_HASH_STRUCTURE["PACKAGEABLE_CONNECTION"] = "PACKAGEABLE_CONNECTION";
CORE_HASH_STRUCTURE["CONNECTION_POINTER"] = "CONNECTION_POINTER";
CORE_HASH_STRUCTURE["XML_MODEL_CONNECTION"] = "XML_MODEL_CONNECTION";
CORE_HASH_STRUCTURE["JSON_MODEL_CONNECTION"] = "JSON_MODEL_CONNECTION";
CORE_HASH_STRUCTURE["MODEL_CHAIN_CONNECTION"] = "MODEL_CHAIN_CONNECTION";
CORE_HASH_STRUCTURE["FLAT_DATA_CONNECTION"] = "FLAT_DATA_CONNECTION";
// aggregation aware mapping
CORE_HASH_STRUCTURE["AGGREGATION_AWARE_MAPPING"] = "AGGREGATION_AWARE_MAPPING";
CORE_HASH_STRUCTURE["AGGREGATION_AWARE_SPECIFICATION"] = "AGGREGATION_AWARE_SPECIFICATION";
CORE_HASH_STRUCTURE["AGGREGATION_AWARE_SET_IMPLEMENTATION_CONTAINER"] = "AGGREGATION_AWARE_SET_IMPLEMENTATION_CONTAINER";
CORE_HASH_STRUCTURE["AGGREGATE_FUNCTION"] = "AGGREGATE_FUNCTION";
CORE_HASH_STRUCTURE["GROUP_BY_FUNCTION"] = "GROUP_BY_FUNCTION";
// ---------------------------------- DSL Generation --------------------------------------
CORE_HASH_STRUCTURE["GENERATION_TREE"] = "GENERATION_TREE";
CORE_HASH_STRUCTURE["GENERATION_TREE_NODE"] = "GENERATION_TREE_NODE";
CORE_HASH_STRUCTURE["FILE_GENERATION"] = "FILE_GENERATION";
CORE_HASH_STRUCTURE["CONFIGURATION_PROPERTY"] = "CONFIGURATION_PROPERTY";
// ---------------------------------- DSL Data --------------------------------------
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_EMBEDDED_DATA"] = "INTERNAL__UNKNOWN_EMBEDDED_DATA";
CORE_HASH_STRUCTURE["EXTERNAL_FORMAT_DATA"] = "EXTERNAL_FORMAT_DATA";
CORE_HASH_STRUCTURE["MODEL_STORE_DATA"] = "MODEL_STORE_DATA";
CORE_HASH_STRUCTURE["MODEL_DATA"] = "MODEL_DATA";
CORE_HASH_STRUCTURE["MODEL_EMBEDDED_DATA"] = "MODEL_EMBEDDED_DATA";
CORE_HASH_STRUCTURE["MODEL_INSTANCE_DATA"] = "MODEL_INSTANCE_DATA";
CORE_HASH_STRUCTURE["DATA_ELEMENT_REFERENCE"] = "DATA_ELEMENT_REFERENCE";
CORE_HASH_STRUCTURE["DATA_ELEMENT"] = "DATA_ELEMENT";
CORE_HASH_STRUCTURE["RELATIONAL_CSV_DATA"] = "RELATIONAL_CSV_DATA";
CORE_HASH_STRUCTURE["RELATIONAL_TDS"] = "RELATIONAL_TDS";
CORE_HASH_STRUCTURE["RELATIONAL_CSV_DATA_TABLE"] = "RELATIONAL_CSV_DATA_TABLE";
// ---------------------------------- DSL External Format --------------------------------------
CORE_HASH_STRUCTURE["BINDING"] = "BINDING";
CORE_HASH_STRUCTURE["SCHEMA_SET"] = "SCHEMA_SET";
CORE_HASH_STRUCTURE["SCHEMA"] = "SCHEMA";
CORE_HASH_STRUCTURE["MODEL_UNIT"] = "MODEL_UNIT";
CORE_HASH_STRUCTURE["URL_STREAM"] = "URL_STREAM";
CORE_HASH_STRUCTURE["EXTERNAL_FORMAT_CONNECTION"] = "EXTERNAL_FORMAT_CONNECTION";
// ---------------------------------- DSL Service --------------------------------------
CORE_HASH_STRUCTURE["SERVICE"] = "SERVICE";
CORE_HASH_STRUCTURE["SERVICE_OWNER"] = "SERVICE_OWNER";
CORE_HASH_STRUCTURE["SERVICE_PURE_EXECUTION"] = "SERVICE_PURE_EXECUTION";
CORE_HASH_STRUCTURE["SERVICE_PURE_SINGLE_EXECUTION"] = "SERVICE_PURE_SINGLE_EXECUTION";
CORE_HASH_STRUCTURE["SERVICE_KEYED_EXECUTION_PARAMETER"] = "SERVICE_KEYED_EXECUTION_PARAMETER";
CORE_HASH_STRUCTURE["SERVICE_PURE_MULTI_EXECUTION"] = "SERVICE_PURE_MULTI_EXECUTION";
CORE_HASH_STRUCTURE["SERVICE_TEST_CONTAINER"] = "SERVICE_TEST_CONTAINER";
CORE_HASH_STRUCTURE["SERVICE_LEGACY_SINGLE_EXECUTION_TEST"] = "SERVICE_LEGACY_SINGLE_EXECUTION_TEST";
CORE_HASH_STRUCTURE["SERVICE_LEGACY_KEYED_SINGLE_EXECUTION_TEST"] = "SERVICE_LEGACY_KEYED_SINGLE_EXECUTION_TEST";
CORE_HASH_STRUCTURE["SERVICE_LEGACY_MULTI_EXECUTION_TEST"] = "SERVICE_LEGACY_MULTI_EXECUTION_TEST";
CORE_HASH_STRUCTURE["SERVICE_CONNECTION_TEST_DATA"] = "SERVICE_CONNECTION_TEST_DATA";
CORE_HASH_STRUCTURE["SERVICE_TEST_DATA"] = "SERVICE_TEST_DATA";
CORE_HASH_STRUCTURE["SERVICE_TEST_SUITE"] = "SERVICE_TEST_SUITE";
CORE_HASH_STRUCTURE["SERVICE_TEST"] = "SERVICE_TEST";
CORE_HASH_STRUCTURE["SERVICE_PARAMETER_VALUE"] = "SERVICE_PARAMETER_VALUE";
CORE_HASH_STRUCTURE["SERVICE_POST_VALIDATION"] = "SERVICE_POST_VALIDATION";
CORE_HASH_STRUCTURE["SERVICE_POST_VALIDATION_ASSERTION"] = "SERVICE_POST_VALIDATION_ASSERTION";
// execution environment instance
CORE_HASH_STRUCTURE["EXECUTION_ENVIRONMENT_INSTANCE"] = "EXECUTION_ENVIRONMENT_INSTANCE";
CORE_HASH_STRUCTURE["SINGLE_EXECUTION_PARAMETER"] = "SINGLE_EXECUTION_PARAMETER";
CORE_HASH_STRUCTURE["MULTI_EXECUTION_PARAMETER"] = "MULTI_EXECUTION_PARAMETER";
CORE_HASH_STRUCTURE["RUNTIME_COMPONENTS"] = "RUNTIME_COMPONENTS";
// ---------------------------------- STO Relational --------------------------------------
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_DATASOURCE_SPECIFICATION"] = "INTERNAL__UNKNOWN_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_AUTHENTICATION_STRATEGY"] = "INTERNAL__UNKNOWN_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["INTERNAL__UNKNOWN_POST_PROCESSOR"] = "INTERNAL__UNKNOWN_POST_PROCESSOR";
// database
CORE_HASH_STRUCTURE["DATABASE"] = "DATABASE";
CORE_HASH_STRUCTURE["DATABASE_SCHEMA"] = "DATABASE_SCHEMA";
CORE_HASH_STRUCTURE["DATABASE_JOIN"] = "DATABASE_JOIN";
CORE_HASH_STRUCTURE["DATABASE_FILTER"] = "DATABASE_FILTER";
CORE_HASH_STRUCTURE["DATBASE_VIEW"] = "DATBASE_VIEW";
CORE_HASH_STRUCTURE["DATABASE_SCHEMA_TABLE"] = "DATABASE_SCHEMA_TABLE";
CORE_HASH_STRUCTURE["DATABASE_SCHEMA_TABULARFUNCTION"] = "DATABASE_SCHEMA_TABULARFUNCTION";
CORE_HASH_STRUCTURE["DATABASE_TABLE_COLUMN"] = "DATABASE_TABLE_COLUMN";
// relational operation element
CORE_HASH_STRUCTURE["RELATIONAL"] = "RELATIONAL";
CORE_HASH_STRUCTURE["RELATIONAL_OPERATION_DYNA_FUNC"] = "RELATIONAL_OPERATION_DYNA_FUNC";
CORE_HASH_STRUCTURE["RELATIONAL_OPERATION_ELEMENTS_WITH_JOINS"] = "RELATIONAL_OPERATION_ELEMENTS_WITH_JOINS";
CORE_HASH_STRUCTURE["RELATIONAL_OPERATION_LITERAL"] = "RELATIONAL_OPERATION_LITERAL";
CORE_HASH_STRUCTURE["RELATIONAL_OPERATION_LITERAL_LIST"] = "RELATIONAL_OPERATION_LITERAL_LIST";
CORE_HASH_STRUCTURE["RELATIONAL_OPERATION_TABLE_ALIAS_COLUMN"] = "RELATIONAL_OPERATION_TABLE_ALIAS_COLUMN";
CORE_HASH_STRUCTURE["RELATIONAL_OPERATION_TABLE_POINTER"] = "RELATIONAL_OPERATION_TABLE_POINTER";
CORE_HASH_STRUCTURE["RELATIONAL_OPERATION_JOIN_POINTER"] = "RELATIONAL_OPERATION_JOIN_POINTER";
// relational data type
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_VARCHAR"] = "RELATIONAL_DATATYPE_VARCHAR";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_CHAR"] = "RELATIONAL_DATATYPE_CHAR";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_VARBINARY"] = "RELATIONAL_DATATYPE_VARBINARY";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_BINARY"] = "RELATIONAL_DATATYPE_BINARY";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_BIT"] = "RELATIONAL_DATATYPE_BIT";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_INTEGER"] = "RELATIONAL_DATATYPE_INTEGER";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_BIGINT"] = "RELATIONAL_DATATYPE_BIGINT";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_SMALLINT"] = "RELATIONAL_DATATYPE_SMALLINT";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_TINYINT"] = "RELATIONAL_DATATYPE_TINYINT";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_NUMERIC"] = "RELATIONAL_DATATYPE_NUMERIC";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_DECIMAL"] = "RELATIONAL_DATATYPE_DECIMAL";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_DOUBLE"] = "RELATIONAL_DATATYPE_DOUBLE";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_FLOAT"] = "RELATIONAL_DATATYPE_FLOAT";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_REAL"] = "RELATIONAL_DATATYPE_REAL";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_DATE"] = "RELATIONAL_DATATYPE_DATE";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_TIMESTAMP"] = "RELATIONAL_DATATYPE_TIMESTAMP";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_OTHER"] = "RELATIONAL_DATATYPE_OTHER";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_SEMISTRUCTURED"] = "RELATIONAL_DATATYPE_SEMISTRUCTURED";
CORE_HASH_STRUCTURE["RELATIONAL_DATATYPE_JSON"] = "RELATIONAL_DATATYPE_JSON";
// relational mapping
CORE_HASH_STRUCTURE["ROOT_RELATIONAL_INSTANCE_SET_IMPLEMENTATION"] = "ROOT_RELATIONAL_INSTANCE_SET_IMPLEMENTATION";
CORE_HASH_STRUCTURE["RELATIONAL_INSTANCE_SET_IMPLEMENTATION"] = "RELATIONAL_INSTANCE_SET_IMPLEMENTATION";
CORE_HASH_STRUCTURE["REALTIONAL_PROPERTY_MAPPING"] = "REALTIONAL_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["EMBEDDED_REALTIONAL_PROPERTY_MAPPING"] = "EMBEDDED_REALTIONAL_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["INLINE_EMBEDDED_REALTIONAL_PROPERTY_MAPPING"] = "INLINE_EMBEDDED_REALTIONAL_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["OTHERWISE_EMBEDDED_REALTIONAL_PROPERTY_MAPPING"] = "OTHERWISE_EMBEDDED_REALTIONAL_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["RELATION_FUNCTION_INSTANCE_SET_IMPLEMENTATION"] = "RELATION_FUNCTION_INSTANCE_SET_IMPLEMENTATION";
CORE_HASH_STRUCTURE["RELATION_FUNCTION_PROPERTY_MAPPING"] = "RELATION_FUNCTION_PROPERTY_MAPPING";
// milestoning
CORE_HASH_STRUCTURE["BUSINESS_MILESTONING"] = "BUSINESS_MILESTONING";
CORE_HASH_STRUCTURE["BUSINESS_SNAPSHOT_MILESTONING"] = "BUSINESS_SNAPSHOT_MILESTONING";
CORE_HASH_STRUCTURE["PROCESSING_MILESTONING"] = "PROCESSING_MILESTONING";
// relational database connection
CORE_HASH_STRUCTURE["RELATIONAL_DATABASE_CONNECTION"] = "RELATIONAL_DATABASE_CONNECTION";
// relational database connection datasource specification
CORE_HASH_STRUCTURE["STATIC_DATASOURCE_SPECIFICATION"] = "STATIC_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["LOCAL_H2_DATASOURCE_SPECIFICATION"] = "LOCAL_H2_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["EMBEDDED_H2_DATASOURCE_SPECIFICATION"] = "EMBEDDED_H2_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["SNOWFLAKE_DATASOURCE_SPECIFICATION"] = "SNOWFLAKE_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["REDSHIFT_DATASOURCE_SPECIFICATION"] = "REDSHIFT_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["BIGQUERY_DATASOURCE_SPECIFICATION"] = "BIGQUERY_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["DATABRICKS_DATASOURCE_SPECIFICATION"] = "DATABRICKS_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["SPANNER_DATASOURCE_SPECIFICATION"] = "SPANNER_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["TRINO_DATASOURCE_SPECIFICATION"] = "TRINO_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["DUCKDB_DATASOURCE_SPECIFICATION"] = "DUCKDB_DATASOURCE_SPECIFICATION";
CORE_HASH_STRUCTURE["TRINO_SSL_SPECIFICATION"] = "TRINO_SSL_SPECIFICATION";
// relational database connection authentication strategy
CORE_HASH_STRUCTURE["DELEGRATED_KEREBEROS_AUTHENTICATION_STRATEGY"] = "DELEGRATED_KEREBEROS_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["DEFAULT_H2_AUTHENTICATION_STRATEGY"] = "DEFAULT_H2_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["TEST_AUTHENTICATION_STRATEGY"] = "TEST_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["SNOWFLAKE_PUBLIC_AUTHENTICATION_STRATEGY"] = "SNOWFLAKE_PUBLIC_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["API_TOKEN_AUTHENTICATION_STRATEGY"] = "API_TOKEN_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["GCP_APPLICATION_DEFAULT_CREDENTIALS_AUTHENTICATION_STRATEGY"] = "GCP_APPLICATION_DEFAULT_CREDENTIALS_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["USERNAME_PASSWORD_AUTHENTICATION_STRATEGY"] = "USERNAME_PASSWORD_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["OAUTH_AUTHENTICATION_STRATEGY"] = "OAUTH_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["GCP_WORKLOAD_IDENTITY_FEDERATION_AUTHENTICATION_STRATEGY"] = "GCP_WORKLOAD_IDENTITY_FEDERATION_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["MIDDLE_TIER_USERNAME_PASSWORD_AUTHENTICATION_STRATEGY"] = "MIDDLE_TIER_USERNAME_PASSWORD_AUTHENTICATION_STRATEGY";
CORE_HASH_STRUCTURE["TRINO_DELEGATED_KERBEROS_AUTHENTICATION_STRATEGY"] = "TRINO_KEREBEROS_AUTHENTICATION_STRATEGY";
// relational database connection post-processors
CORE_HASH_STRUCTURE["MAPPER_POST_PROCESSOR"] = "MAPPER_POST_PROCESSOR";
CORE_HASH_STRUCTURE["SCHEMA_MAPPER"] = "SCHEMA_MAPPER";
CORE_HASH_STRUCTURE["TABLE_MAPPER"] = "TABLE_MAPPER";
// relational database connection query generation config
CORE_HASH_STRUCTURE["GENERATION_FEATURES_CONFIG"] = "GENERATION_FEATURES_CONFIG";
// ---------------------------------- STO Flat-Data --------------------------------------
CORE_HASH_STRUCTURE["FLAT_DATA"] = "FLAT_DATA";
CORE_HASH_STRUCTURE["FLAT_DATA_SECTION"] = "FLAT_DATA_SECTION";
CORE_HASH_STRUCTURE["FLAT_DATA_PROPERTY"] = "FLAT_DATA_PROPERTY";
CORE_HASH_STRUCTURE["FLAT_DATA_ROOT_RECORD_TYPE"] = "FLAT_DATA_ROOT_RECORD_TYPE";
CORE_HASH_STRUCTURE["FLAT_DATA_RECORD_TYPE"] = "FLAT_DATA_RECORD_TYPE";
CORE_HASH_STRUCTURE["FLAT_DATA_RECORD_FIELD"] = "FLAT_DATA_RECORD_FIELD";
CORE_HASH_STRUCTURE["FLAT_DATA_STRING"] = "FLAT_DATA_STRING";
CORE_HASH_STRUCTURE["FLAT_DATA_BOOLEAN"] = "FLAT_DATA_BOOLEAN";
CORE_HASH_STRUCTURE["FLAT_DATA_NUMBER"] = "FLAT_DATA_NUMBER";
CORE_HASH_STRUCTURE["FLAT_DATA_INTEGER"] = "FLAT_DATA_INTEGER";
CORE_HASH_STRUCTURE["FLAT_DATA_FLOAT"] = "FLAT_DATA_FLOAT";
CORE_HASH_STRUCTURE["FLAT_DATA_DECIMAL"] = "FLAT_DATA_DECIMAL";
CORE_HASH_STRUCTURE["FLAT_DATA_DATE"] = "FLAT_DATA_DATE";
CORE_HASH_STRUCTURE["FLAT_DATA_DATE_TIME"] = "FLAT_DATA_DATE_TIME";
CORE_HASH_STRUCTURE["FLAT_DATA_STRICT_DATE"] = "FLAT_DATA_STRICT_DATE";
CORE_HASH_STRUCTURE["FLAT_DATA_INSTANCE_SET_IMPLEMENTATION"] = "FLAT_DATA_INSTANCE_SET_IMPLEMENTATION";
CORE_HASH_STRUCTURE["FLAT_DATA_PROPERTY_MAPPING"] = "FLAT_DATA_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["FLAT_DATA_ASSOCIATION_IMPLEMENTATION"] = "FLAT_DATA_ASSOCIATION_IMPLEMENTATION";
CORE_HASH_STRUCTURE["FLAT_DATA_ASSOCIATION_PROPERTY_MAPPING"] = "FLAT_DATA_ASSOCIATION_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["EMBEDDED_FLAT_DATA_PROPERTY_MAPPING"] = "EMBEDDED_FLAT_DATA_PROPERTY_MAPPING";
CORE_HASH_STRUCTURE["FLAT_DATA_SECTION_POINTER"] = "FLAT_DATA_SECTION_POINTER";
// -------------------------------------- Function Activator --------------------------------------
CORE_HASH_STRUCTURE["SNOWFLAKE_APP"] = "SNOWFLAKE_APP";
CORE_HASH_STRUCTURE["HOSTED_SERVICE"] = "HOSTED_SERVICE";
CORE_HASH_STRUCTURE["HOSTED_SERVICE_OWNER"] = "HOSTED_SERVICE_OWNER";
// ---------------------------------- Relation --------------------------------------
CORE_HASH_STRUCTURE["RELATION_TYPE"] = "RELATION_TYPE";
CORE_HASH_STRUCTURE["RELATION_COLUMN"] = "RELATION_COLUMN";
// ---------------------------------- Data Product --------------------------------------
CORE_HASH_STRUCTURE["DATA_PRODUCT"] = "DATA_PRODUCT";
CORE_HASH_STRUCTURE["DATA_PRODUCT_ACCESS_POINT_GROUP"] = "DATA_PRODUCT_ACCESS_POINT_GROUP";
CORE_HASH_STRUCTURE["DATA_PRODUCT_ACCESS_POINT"] = "DATA_PRODUCT_ACCESS_POINT";
CORE_HASH_STRUCTURE["LAKEHOUSE_ACCESS_POINT"] = "LAKEHOUSE_ACCESS_POINT";
CORE_HASH_STRUCTURE["UNKNOWN_ACCESS_POINT"] = "UNKNOWN_ACCESS_POINT";
})(CORE_HASH_STRUCTURE || (CORE_HASH_STRUCTURE = {}));
export const hashObjectWithoutSourceInformation = (val) => hashObject(val, {
/**
* NOTE: this is over-simplification as there could be source information fields with other names
* see note in {@link pruneSourceInformation}
*/
excludeKeys: (propKey) => propKey
.toLowerCase()
.endsWith(SOURCE_INFORMATION_PROPERTY_KEY_SUFFIX.toLowerCase()),
});
export const hashRawLambda = (parameters, body) => hashArray([
parameters ? hashObjectWithoutSourceInformation(parameters) : '',
body ? hashObjectWithoutSourceInformation(body) : '',
]);
export const hashElementPointer = (pointerType, path) => [CORE_HASH_STRUCTURE.PACKAGEABLE_ELEMENT_POINTER, pointerType ?? '', path]
.map(hashValue)
.join(',');
//# sourceMappingURL=Core_HashUtils.js.map