taon-typeorm 18.0.24 → 19.0.0
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/assets/shared/shared_folder_info.txt +1 -1
- package/browser/README.md +24 -24
- package/client/README.md +24 -24
- package/index.js.map +1 -1
- package/lib/build-info._auto-generated_.js.map +1 -1
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/typeorm/cache/DbQueryResultCache.js.map +1 -1
- package/lib/typeorm/cache/QueryResultCache.js.map +1 -1
- package/lib/typeorm/cache/QueryResultCacheFactory.js.map +1 -1
- package/lib/typeorm/cache/QueryResultCacheOptions.js.map +1 -1
- package/lib/typeorm/cache/RedisQueryResultCache.js.map +1 -1
- package/lib/typeorm/cli-ts-node-commonjs.js.map +1 -1
- package/lib/typeorm/cli-ts-node-esm.js.map +1 -1
- package/lib/typeorm/cli.js.map +1 -1
- package/lib/typeorm/commands/CacheClearCommand.js.map +1 -1
- package/lib/typeorm/commands/CommandUtils.js.map +1 -1
- package/lib/typeorm/commands/EntityCreateCommand.js.map +1 -1
- package/lib/typeorm/commands/InitCommand.js.map +1 -1
- package/lib/typeorm/commands/MigrationCreateCommand.js.map +1 -1
- package/lib/typeorm/commands/MigrationGenerateCommand.js.map +1 -1
- package/lib/typeorm/commands/MigrationRevertCommand.js.map +1 -1
- package/lib/typeorm/commands/MigrationRunCommand.js.map +1 -1
- package/lib/typeorm/commands/MigrationShowCommand.js.map +1 -1
- package/lib/typeorm/commands/QueryCommand.js.map +1 -1
- package/lib/typeorm/commands/SchemaDropCommand.js.map +1 -1
- package/lib/typeorm/commands/SchemaLogCommand.js.map +1 -1
- package/lib/typeorm/commands/SchemaSyncCommand.js.map +1 -1
- package/lib/typeorm/commands/SubscriberCreateCommand.js.map +1 -1
- package/lib/typeorm/commands/VersionCommand.js.map +1 -1
- package/lib/typeorm/common/DeepPartial.js.map +1 -1
- package/lib/typeorm/common/EntityTarget.js.map +1 -1
- package/lib/typeorm/common/MixedList.js.map +1 -1
- package/lib/typeorm/common/NonNever.js.map +1 -1
- package/lib/typeorm/common/ObjectLiteral.js.map +1 -1
- package/lib/typeorm/common/ObjectType.js.map +1 -1
- package/lib/typeorm/common/RelationType.js.map +1 -1
- package/lib/typeorm/connection/BaseConnectionOptions.js.map +1 -1
- package/lib/typeorm/connection/Connection.js.map +1 -1
- package/lib/typeorm/connection/ConnectionManager.js.map +1 -1
- package/lib/typeorm/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/lib/typeorm/connection/ConnectionOptions.js.map +1 -1
- package/lib/typeorm/connection/ConnectionOptionsReader.js.map +1 -1
- package/lib/typeorm/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/lib/typeorm/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
- package/lib/typeorm/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
- package/lib/typeorm/constants.js.map +1 -1
- package/lib/typeorm/container.js.map +1 -1
- package/lib/typeorm/data-source/BaseDataSourceOptions.js.map +1 -1
- package/lib/typeorm/data-source/DataSource.js.map +1 -1
- package/lib/typeorm/data-source/DataSourceOptions.js.map +1 -1
- package/lib/typeorm/data-source/index.js.map +1 -1
- package/lib/typeorm/decorator/Check.js.map +1 -1
- package/lib/typeorm/decorator/EntityRepository.js.map +1 -1
- package/lib/typeorm/decorator/Exclusion.js.map +1 -1
- package/lib/typeorm/decorator/Generated.js.map +1 -1
- package/lib/typeorm/decorator/Index.js.map +1 -1
- package/lib/typeorm/decorator/Unique.js.map +1 -1
- package/lib/typeorm/decorator/columns/Column.js.map +1 -1
- package/lib/typeorm/decorator/columns/CreateDateColumn.js.map +1 -1
- package/lib/typeorm/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/lib/typeorm/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/lib/typeorm/decorator/columns/PrimaryColumn.js.map +1 -1
- package/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/lib/typeorm/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/lib/typeorm/decorator/columns/VersionColumn.js.map +1 -1
- package/lib/typeorm/decorator/columns/ViewColumn.js.map +1 -1
- package/lib/typeorm/decorator/columns/VirtualColumn.js.map +1 -1
- package/lib/typeorm/decorator/entity/ChildEntity.js.map +1 -1
- package/lib/typeorm/decorator/entity/Entity.js.map +1 -1
- package/lib/typeorm/decorator/entity/TableInheritance.js.map +1 -1
- package/lib/typeorm/decorator/entity-view/ViewEntity.js.map +1 -1
- package/lib/typeorm/decorator/listeners/AfterInsert.js.map +1 -1
- package/lib/typeorm/decorator/listeners/AfterLoad.js.map +1 -1
- package/lib/typeorm/decorator/listeners/AfterRecover.js.map +1 -1
- package/lib/typeorm/decorator/listeners/AfterRemove.js.map +1 -1
- package/lib/typeorm/decorator/listeners/AfterSoftRemove.js.map +1 -1
- package/lib/typeorm/decorator/listeners/AfterUpdate.js.map +1 -1
- package/lib/typeorm/decorator/listeners/BeforeInsert.js.map +1 -1
- package/lib/typeorm/decorator/listeners/BeforeRecover.js.map +1 -1
- package/lib/typeorm/decorator/listeners/BeforeRemove.js.map +1 -1
- package/lib/typeorm/decorator/listeners/BeforeSoftRemove.js.map +1 -1
- package/lib/typeorm/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/lib/typeorm/decorator/listeners/EventSubscriber.js.map +1 -1
- package/lib/typeorm/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/ColumnEnumOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/ColumnHstoreOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/ColumnOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/ColumnWithLengthOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/ColumnWithWidthOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/EntityOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/IndexOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/JoinColumnOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/JoinTableOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/RelationOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/TransactionOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/UniqueOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/ValueTransformer.js.map +1 -1
- package/lib/typeorm/decorator/options/ViewColumnOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/ViewEntityOptions.js.map +1 -1
- package/lib/typeorm/decorator/options/VirtualColumnOptions.js.map +1 -1
- package/lib/typeorm/decorator/relations/JoinColumn.js.map +1 -1
- package/lib/typeorm/decorator/relations/JoinTable.js.map +1 -1
- package/lib/typeorm/decorator/relations/ManyToMany.js.map +1 -1
- package/lib/typeorm/decorator/relations/ManyToOne.js.map +1 -1
- package/lib/typeorm/decorator/relations/OneToMany.js.map +1 -1
- package/lib/typeorm/decorator/relations/OneToOne.js.map +1 -1
- package/lib/typeorm/decorator/relations/RelationCount.js.map +1 -1
- package/lib/typeorm/decorator/relations/RelationId.js.map +1 -1
- package/lib/typeorm/decorator/tree/Tree.js.map +1 -1
- package/lib/typeorm/decorator/tree/TreeChildren.js.map +1 -1
- package/lib/typeorm/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/lib/typeorm/decorator/tree/TreeParent.js.map +1 -1
- package/lib/typeorm/driver/Driver.js.map +1 -1
- package/lib/typeorm/driver/DriverFactory.js.map +1 -1
- package/lib/typeorm/driver/DriverUtils.js.map +1 -1
- package/lib/typeorm/driver/Query.js.map +1 -1
- package/lib/typeorm/driver/SqlInMemory.js.map +1 -1
- package/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
- package/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
- package/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/lib/typeorm/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
- package/lib/typeorm/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/lib/typeorm/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/lib/typeorm/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/lib/typeorm/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
- package/lib/typeorm/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/lib/typeorm/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/cordova/CordovaConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/cordova/CordovaDriver.js.map +1 -1
- package/lib/typeorm/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/expo/ExpoConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/expo/ExpoDriver.js.map +1 -1
- package/lib/typeorm/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/mongodb/MongoDriver.js.map +1 -1
- package/lib/typeorm/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/mongodb/typings.js.map +1 -1
- package/lib/typeorm/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/lib/typeorm/driver/mysql/MysqlConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/mysql/MysqlDriver.js.map +1 -1
- package/lib/typeorm/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/lib/typeorm/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
- package/lib/typeorm/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/oracle/OracleDriver.js.map +1 -1
- package/lib/typeorm/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
- package/lib/typeorm/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/postgres/PostgresDriver.js.map +1 -1
- package/lib/typeorm/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/lib/typeorm/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
- package/lib/typeorm/driver/sap/SapConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/sap/SapDriver.js.map +1 -1
- package/lib/typeorm/driver/sap/SapQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
- package/lib/typeorm/driver/spanner/SpannerConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/spanner/SpannerDriver.js.map +1 -1
- package/lib/typeorm/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/sqlite/SqliteDriver.js.map +1 -1
- package/lib/typeorm/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/sqljs/SqljsDriver.js.map +1 -1
- package/lib/typeorm/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
- package/lib/typeorm/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
- package/lib/typeorm/driver/types/ColumnTypes.js.map +1 -1
- package/lib/typeorm/driver/types/CteCapabilities.js.map +1 -1
- package/lib/typeorm/driver/types/DataTypeDefaults.js.map +1 -1
- package/lib/typeorm/driver/types/DatabaseType.js.map +1 -1
- package/lib/typeorm/driver/types/IsolationLevel.js.map +1 -1
- package/lib/typeorm/driver/types/MappedColumnTypes.js.map +1 -1
- package/lib/typeorm/driver/types/MetadataTableType.js.map +1 -1
- package/lib/typeorm/driver/types/ReplicationMode.js.map +1 -1
- package/lib/typeorm/driver/types/UpsertType.js.map +1 -1
- package/lib/typeorm/entity-manager/EntityManager.js.map +1 -1
- package/lib/typeorm/entity-manager/EntityManagerFactory.js.map +1 -1
- package/lib/typeorm/entity-manager/MongoEntityManager.js.map +1 -1
- package/lib/typeorm/entity-manager/SqljsEntityManager.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchema.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
- package/lib/typeorm/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/lib/typeorm/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/lib/typeorm/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/lib/typeorm/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/lib/typeorm/error/CannotDetermineEntityError.js.map +1 -1
- package/lib/typeorm/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/lib/typeorm/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/lib/typeorm/error/CircularRelationsError.js.map +1 -1
- package/lib/typeorm/error/ColumnTypeUndefinedError.js.map +1 -1
- package/lib/typeorm/error/ConnectionIsNotSetError.js.map +1 -1
- package/lib/typeorm/error/ConnectionNotFoundError.js.map +1 -1
- package/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/lib/typeorm/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/lib/typeorm/error/DataTypeNotSupportedError.js.map +1 -1
- package/lib/typeorm/error/DriverOptionNotSetError.js.map +1 -1
- package/lib/typeorm/error/DriverPackageNotInstalledError.js.map +1 -1
- package/lib/typeorm/error/EntityMetadataNotFoundError.js.map +1 -1
- package/lib/typeorm/error/EntityNotFoundError.js.map +1 -1
- package/lib/typeorm/error/EntityPropertyNotFoundError.js.map +1 -1
- package/lib/typeorm/error/FindRelationsNotFoundError.js.map +1 -1
- package/lib/typeorm/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
- package/lib/typeorm/error/InitializedRelationError.js.map +1 -1
- package/lib/typeorm/error/InsertValuesMissingError.js.map +1 -1
- package/lib/typeorm/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/lib/typeorm/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/lib/typeorm/error/MetadataAlreadyExistsError.js.map +1 -1
- package/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/lib/typeorm/error/MissingDeleteDateColumnError.js.map +1 -1
- package/lib/typeorm/error/MissingDriverError.js.map +1 -1
- package/lib/typeorm/error/MissingJoinColumnError.js.map +1 -1
- package/lib/typeorm/error/MissingJoinTableError.js.map +1 -1
- package/lib/typeorm/error/MissingPrimaryColumnError.js.map +1 -1
- package/lib/typeorm/error/MustBeEntityError.js.map +1 -1
- package/lib/typeorm/error/NamingStrategyNotFoundError.js.map +1 -1
- package/lib/typeorm/error/NestedSetMultipleRootError.js.map +1 -1
- package/lib/typeorm/error/NoConnectionForRepositoryError.js.map +1 -1
- package/lib/typeorm/error/NoConnectionOptionError.js.map +1 -1
- package/lib/typeorm/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/lib/typeorm/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/lib/typeorm/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/lib/typeorm/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/lib/typeorm/error/PersistedEntityNotFoundError.js.map +1 -1
- package/lib/typeorm/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/lib/typeorm/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/lib/typeorm/error/QueryFailedError.js.map +1 -1
- package/lib/typeorm/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/lib/typeorm/error/RepositoryNotTreeError.js.map +1 -1
- package/lib/typeorm/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/lib/typeorm/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/lib/typeorm/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/lib/typeorm/error/TransactionAlreadyStartedError.js.map +1 -1
- package/lib/typeorm/error/TransactionNotStartedError.js.map +1 -1
- package/lib/typeorm/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/lib/typeorm/error/TypeORMError.js.map +1 -1
- package/lib/typeorm/error/UpdateValuesMissingError.js.map +1 -1
- package/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/lib/typeorm/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/lib/typeorm/error/index.js.map +1 -1
- package/lib/typeorm/find-options/EqualOperator.js.map +1 -1
- package/lib/typeorm/find-options/FindManyOptions.js.map +1 -1
- package/lib/typeorm/find-options/FindOneOptions.js.map +1 -1
- package/lib/typeorm/find-options/FindOperator.js.map +1 -1
- package/lib/typeorm/find-options/FindOperatorType.js.map +1 -1
- package/lib/typeorm/find-options/FindOptionsOrder.js.map +1 -1
- package/lib/typeorm/find-options/FindOptionsRelations.js.map +1 -1
- package/lib/typeorm/find-options/FindOptionsSelect.js.map +1 -1
- package/lib/typeorm/find-options/FindOptionsUtils.js.map +1 -1
- package/lib/typeorm/find-options/FindOptionsWhere.js.map +1 -1
- package/lib/typeorm/find-options/FindTreeOptions.js.map +1 -1
- package/lib/typeorm/find-options/JoinOptions.js.map +1 -1
- package/lib/typeorm/find-options/OrderByCondition.js.map +1 -1
- package/lib/typeorm/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
- package/lib/typeorm/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
- package/lib/typeorm/find-options/operator/And.js.map +1 -1
- package/lib/typeorm/find-options/operator/Any.js.map +1 -1
- package/lib/typeorm/find-options/operator/ArrayContainedBy.js.map +1 -1
- package/lib/typeorm/find-options/operator/ArrayContains.js.map +1 -1
- package/lib/typeorm/find-options/operator/ArrayOverlap.js.map +1 -1
- package/lib/typeorm/find-options/operator/Between.js.map +1 -1
- package/lib/typeorm/find-options/operator/Equal.js.map +1 -1
- package/lib/typeorm/find-options/operator/ILike.js.map +1 -1
- package/lib/typeorm/find-options/operator/In.js.map +1 -1
- package/lib/typeorm/find-options/operator/IsNull.js.map +1 -1
- package/lib/typeorm/find-options/operator/LessThan.js.map +1 -1
- package/lib/typeorm/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/lib/typeorm/find-options/operator/Like.js.map +1 -1
- package/lib/typeorm/find-options/operator/MoreThan.js.map +1 -1
- package/lib/typeorm/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/lib/typeorm/find-options/operator/Not.js.map +1 -1
- package/lib/typeorm/find-options/operator/Raw.js.map +1 -1
- package/lib/typeorm/globals.js.map +1 -1
- package/lib/typeorm/index.js.map +1 -1
- package/lib/typeorm/logger/AdvancedConsoleLogger.js.map +1 -1
- package/lib/typeorm/logger/DebugLogger.js.map +1 -1
- package/lib/typeorm/logger/FileLogger.js.map +1 -1
- package/lib/typeorm/logger/Logger.js.map +1 -1
- package/lib/typeorm/logger/LoggerFactory.js.map +1 -1
- package/lib/typeorm/logger/LoggerOptions.js.map +1 -1
- package/lib/typeorm/logger/SimpleConsoleLogger.js.map +1 -1
- package/lib/typeorm/metadata/CheckMetadata.js.map +1 -1
- package/lib/typeorm/metadata/ColumnMetadata.js.map +1 -1
- package/lib/typeorm/metadata/EmbeddedMetadata.js.map +1 -1
- package/lib/typeorm/metadata/EntityListenerMetadata.js.map +1 -1
- package/lib/typeorm/metadata/EntityMetadata.js.map +1 -1
- package/lib/typeorm/metadata/ExclusionMetadata.js.map +1 -1
- package/lib/typeorm/metadata/ForeignKeyMetadata.js.map +1 -1
- package/lib/typeorm/metadata/IndexMetadata.js.map +1 -1
- package/lib/typeorm/metadata/RelationCountMetadata.js.map +1 -1
- package/lib/typeorm/metadata/RelationIdMetadata.js.map +1 -1
- package/lib/typeorm/metadata/RelationMetadata.js.map +1 -1
- package/lib/typeorm/metadata/UniqueMetadata.js.map +1 -1
- package/lib/typeorm/metadata/types/ClosureTreeOptions.js.map +1 -1
- package/lib/typeorm/metadata/types/DeferrableType.js.map +1 -1
- package/lib/typeorm/metadata/types/EventListenerTypes.js.map +1 -1
- package/lib/typeorm/metadata/types/OnDeleteType.js.map +1 -1
- package/lib/typeorm/metadata/types/OnUpdateType.js.map +1 -1
- package/lib/typeorm/metadata/types/PropertyTypeInFunction.js.map +1 -1
- package/lib/typeorm/metadata/types/RelationTypeInFunction.js.map +1 -1
- package/lib/typeorm/metadata/types/RelationTypes.js.map +1 -1
- package/lib/typeorm/metadata/types/TableTypes.js.map +1 -1
- package/lib/typeorm/metadata/types/TreeTypes.js.map +1 -1
- package/lib/typeorm/metadata-args/CheckMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/ColumnMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/ExclusionMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/GeneratedMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/InheritanceMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/RelationCountMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/RelationIdMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/RelationMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/TableMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/UniqueMetadataArgs.js.map +1 -1
- package/lib/typeorm/metadata-args/types/ColumnMode.js.map +1 -1
- package/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/lib/typeorm/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/lib/typeorm/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/lib/typeorm/metadata-builder/MetadataUtils.js.map +1 -1
- package/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/lib/typeorm/migration/Migration.js.map +1 -1
- package/lib/typeorm/migration/MigrationExecutor.js.map +1 -1
- package/lib/typeorm/migration/MigrationInterface.js.map +1 -1
- package/lib/typeorm/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/lib/typeorm/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/lib/typeorm/persistence/EntityPersistExecutor.js.map +1 -1
- package/lib/typeorm/persistence/Subject.js.map +1 -1
- package/lib/typeorm/persistence/SubjectChangeMap.js.map +1 -1
- package/lib/typeorm/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/lib/typeorm/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/lib/typeorm/persistence/SubjectExecutor.js.map +1 -1
- package/lib/typeorm/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/lib/typeorm/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/lib/typeorm/platform/PlatformTools.js.map +1 -1
- package/lib/typeorm/query-builder/Alias.js.map +1 -1
- package/lib/typeorm/query-builder/Brackets.js.map +1 -1
- package/lib/typeorm/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/lib/typeorm/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/lib/typeorm/query-builder/InsertQueryBuilder.js.map +1 -1
- package/lib/typeorm/query-builder/JoinAttribute.js.map +1 -1
- package/lib/typeorm/query-builder/JoinOptions.js.map +1 -1
- package/lib/typeorm/query-builder/NotBrackets.js.map +1 -1
- package/lib/typeorm/query-builder/QueryBuilder.js.map +1 -1
- package/lib/typeorm/query-builder/QueryBuilderCte.js.map +1 -1
- package/lib/typeorm/query-builder/QueryBuilderUtils.js.map +1 -1
- package/lib/typeorm/query-builder/QueryExpressionMap.js.map +1 -1
- package/lib/typeorm/query-builder/QueryPartialEntity.js.map +1 -1
- package/lib/typeorm/query-builder/RelationIdLoader.js.map +1 -1
- package/lib/typeorm/query-builder/RelationLoader.js.map +1 -1
- package/lib/typeorm/query-builder/RelationQueryBuilder.js.map +1 -1
- package/lib/typeorm/query-builder/RelationRemover.js.map +1 -1
- package/lib/typeorm/query-builder/RelationUpdater.js.map +1 -1
- package/lib/typeorm/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/lib/typeorm/query-builder/SelectQuery.js.map +1 -1
- package/lib/typeorm/query-builder/SelectQueryBuilder.js.map +1 -1
- package/lib/typeorm/query-builder/SelectQueryBuilderOption.js.map +1 -1
- package/lib/typeorm/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/lib/typeorm/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/lib/typeorm/query-builder/WhereClause.js.map +1 -1
- package/lib/typeorm/query-builder/WhereExpressionBuilder.js.map +1 -1
- package/lib/typeorm/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
- package/lib/typeorm/query-builder/relation-count/RelationCountLoader.js.map +1 -1
- package/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
- package/lib/typeorm/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
- package/lib/typeorm/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/lib/typeorm/query-builder/result/DeleteResult.js.map +1 -1
- package/lib/typeorm/query-builder/result/InsertResult.js.map +1 -1
- package/lib/typeorm/query-builder/result/UpdateResult.js.map +1 -1
- package/lib/typeorm/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/lib/typeorm/query-runner/BaseQueryRunner.js.map +1 -1
- package/lib/typeorm/query-runner/QueryLock.js.map +1 -1
- package/lib/typeorm/query-runner/QueryResult.js.map +1 -1
- package/lib/typeorm/query-runner/QueryRunner.js.map +1 -1
- package/lib/typeorm/repository/AbstractRepository.js.map +1 -1
- package/lib/typeorm/repository/BaseEntity.js.map +1 -1
- package/lib/typeorm/repository/EntityId.js.map +1 -1
- package/lib/typeorm/repository/FindTreesOptions.js.map +1 -1
- package/lib/typeorm/repository/MongoRepository.js.map +1 -1
- package/lib/typeorm/repository/RemoveOptions.js.map +1 -1
- package/lib/typeorm/repository/Repository.js.map +1 -1
- package/lib/typeorm/repository/SaveOptions.js.map +1 -1
- package/lib/typeorm/repository/TreeRepository.js.map +1 -1
- package/lib/typeorm/repository/UpsertOptions.js.map +1 -1
- package/lib/typeorm/schema-builder/MongoSchemaBuilder.js.map +1 -1
- package/lib/typeorm/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/lib/typeorm/schema-builder/SchemaBuilder.js.map +1 -1
- package/lib/typeorm/schema-builder/options/TableCheckOptions.js.map +1 -1
- package/lib/typeorm/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/lib/typeorm/schema-builder/options/TableExclusionOptions.js.map +1 -1
- package/lib/typeorm/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/lib/typeorm/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/lib/typeorm/schema-builder/options/TableOptions.js.map +1 -1
- package/lib/typeorm/schema-builder/options/TableUniqueOptions.js.map +1 -1
- package/lib/typeorm/schema-builder/options/ViewOptions.js.map +1 -1
- package/lib/typeorm/schema-builder/table/Table.js.map +1 -1
- package/lib/typeorm/schema-builder/table/TableCheck.js.map +1 -1
- package/lib/typeorm/schema-builder/table/TableColumn.js.map +1 -1
- package/lib/typeorm/schema-builder/table/TableExclusion.js.map +1 -1
- package/lib/typeorm/schema-builder/table/TableForeignKey.js.map +1 -1
- package/lib/typeorm/schema-builder/table/TableIndex.js.map +1 -1
- package/lib/typeorm/schema-builder/table/TableUnique.js.map +1 -1
- package/lib/typeorm/schema-builder/util/TableUtils.js.map +1 -1
- package/lib/typeorm/schema-builder/util/ViewUtils.js.map +1 -1
- package/lib/typeorm/schema-builder/view/View.js.map +1 -1
- package/lib/typeorm/subscriber/Broadcaster.js.map +1 -1
- package/lib/typeorm/subscriber/BroadcasterResult.js.map +1 -1
- package/lib/typeorm/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/lib/typeorm/subscriber/event/InsertEvent.js.map +1 -1
- package/lib/typeorm/subscriber/event/LoadEvent.js.map +1 -1
- package/lib/typeorm/subscriber/event/RecoverEvent.js.map +1 -1
- package/lib/typeorm/subscriber/event/RemoveEvent.js.map +1 -1
- package/lib/typeorm/subscriber/event/SoftRemoveEvent.js.map +1 -1
- package/lib/typeorm/subscriber/event/TransactionCommitEvent.js.map +1 -1
- package/lib/typeorm/subscriber/event/TransactionRollbackEvent.js.map +1 -1
- package/lib/typeorm/subscriber/event/TransactionStartEvent.js.map +1 -1
- package/lib/typeorm/subscriber/event/UpdateEvent.js.map +1 -1
- package/lib/typeorm/util/ApplyValueTransformers.js.map +1 -1
- package/lib/typeorm/util/DateUtils.js.map +1 -1
- package/lib/typeorm/util/DepGraph.js.map +1 -1
- package/lib/typeorm/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/lib/typeorm/util/ImportUtils.js.map +1 -1
- package/lib/typeorm/util/InstanceChecker.js.map +1 -1
- package/lib/typeorm/util/ObjectUtils.js.map +1 -1
- package/lib/typeorm/util/OrmUtils.js.map +1 -1
- package/lib/typeorm/util/PathUtils.js.map +1 -1
- package/lib/typeorm/util/RandomGenerator.js.map +1 -1
- package/lib/typeorm/util/StringUtils.js.map +1 -1
- package/lib/typeorm/util/TreeRepositoryUtils.js.map +1 -1
- package/lib/typeorm/util/VersionUtils.js.map +1 -1
- package/lib/typeorm/util/escapeRegExp.js.map +1 -1
- package/migrations/index.js.map +1 -1
- package/migrations/migrations_index._auto-generated_.js.map +1 -1
- package/package.json +1 -1
- package/tmp-environment.json +3 -3
- package/websql/README.md +24 -24
- package/browser/esm2022/lib/index.mjs +0 -4
- package/browser/esm2022/lib/typeorm/cache/DbQueryResultCache.mjs +0 -251
- package/browser/esm2022/lib/typeorm/cache/QueryResultCache.mjs +0 -4
- package/browser/esm2022/lib/typeorm/cache/QueryResultCacheFactory.mjs +0 -33
- package/browser/esm2022/lib/typeorm/cache/QueryResultCacheOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/cache/RedisQueryResultCache.mjs +0 -185
- package/browser/esm2022/lib/typeorm/common/DeepPartial.mjs +0 -3
- package/browser/esm2022/lib/typeorm/common/EntityTarget.mjs +0 -3
- package/browser/esm2022/lib/typeorm/common/MixedList.mjs +0 -3
- package/browser/esm2022/lib/typeorm/common/ObjectLiteral.mjs +0 -4
- package/browser/esm2022/lib/typeorm/common/ObjectType.mjs +0 -3
- package/browser/esm2022/lib/typeorm/common/RelationType.mjs +0 -3
- package/browser/esm2022/lib/typeorm/connection/Connection.mjs +0 -13
- package/browser/esm2022/lib/typeorm/connection/ConnectionManager.mjs +0 -57
- package/browser/esm2022/lib/typeorm/connection/ConnectionMetadataBuilder.mjs +0 -63
- package/browser/esm2022/lib/typeorm/connection/ConnectionOptions.mjs +0 -3
- package/browser/esm2022/lib/typeorm/connection/ConnectionOptionsReader.mjs +0 -237
- package/browser/esm2022/lib/typeorm/constants.mjs +0 -4
- package/browser/esm2022/lib/typeorm/container.mjs +0 -57
- package/browser/esm2022/lib/typeorm/data-source/BaseDataSourceOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/data-source/DataSource.mjs +0 -458
- package/browser/esm2022/lib/typeorm/data-source/DataSourceOptions.mjs +0 -11
- package/browser/esm2022/lib/typeorm/data-source/index.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/Check.mjs +0 -25
- package/browser/esm2022/lib/typeorm/decorator/EntityRepository.mjs +0 -19
- package/browser/esm2022/lib/typeorm/decorator/Exclusion.mjs +0 -25
- package/browser/esm2022/lib/typeorm/decorator/Generated.mjs +0 -22
- package/browser/esm2022/lib/typeorm/decorator/Index.mjs +0 -52
- package/browser/esm2022/lib/typeorm/decorator/Unique.mjs +0 -48
- package/browser/esm2022/lib/typeorm/decorator/columns/Column.mjs +0 -67
- package/browser/esm2022/lib/typeorm/decorator/columns/CreateDateColumn.mjs +0 -19
- package/browser/esm2022/lib/typeorm/decorator/columns/DeleteDateColumn.mjs +0 -18
- package/browser/esm2022/lib/typeorm/decorator/columns/ObjectIdColumn.mjs +0 -23
- package/browser/esm2022/lib/typeorm/decorator/columns/PrimaryColumn.mjs +0 -54
- package/browser/esm2022/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.mjs +0 -52
- package/browser/esm2022/lib/typeorm/decorator/columns/UpdateDateColumn.mjs +0 -18
- package/browser/esm2022/lib/typeorm/decorator/columns/VersionColumn.mjs +0 -19
- package/browser/esm2022/lib/typeorm/decorator/columns/ViewColumn.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/columns/VirtualColumn.mjs +0 -41
- package/browser/esm2022/lib/typeorm/decorator/entity/ChildEntity.mjs +0 -21
- package/browser/esm2022/lib/typeorm/decorator/entity/Entity.mjs +0 -28
- package/browser/esm2022/lib/typeorm/decorator/entity/TableInheritance.mjs +0 -20
- package/browser/esm2022/lib/typeorm/decorator/entity-view/ViewEntity.mjs +0 -30
- package/browser/esm2022/lib/typeorm/decorator/listeners/AfterInsert.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/AfterLoad.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/AfterRecover.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/AfterRemove.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/AfterSoftRemove.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/AfterUpdate.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeInsert.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeRecover.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeRemove.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeSoftRemove.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/BeforeUpdate.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/listeners/EventSubscriber.mjs +0 -15
- package/browser/esm2022/lib/typeorm/decorator/options/ColumnCommonOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ColumnEmbeddedOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ColumnEnumOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ColumnHstoreOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ColumnNumericOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ColumnOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ColumnWithLengthOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ColumnWithWidthOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/EntityOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/IndexOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/JoinColumnOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/JoinTableOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/RelationOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/SpatialColumnOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/UniqueOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ValueTransformer.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ViewColumnOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/ViewEntityOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/options/VirtualColumnOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/decorator/relations/JoinColumn.mjs +0 -25
- package/browser/esm2022/lib/typeorm/decorator/relations/JoinTable.mjs +0 -31
- package/browser/esm2022/lib/typeorm/decorator/relations/ManyToMany.mjs +0 -40
- package/browser/esm2022/lib/typeorm/decorator/relations/ManyToOne.mjs +0 -40
- package/browser/esm2022/lib/typeorm/decorator/relations/OneToMany.mjs +0 -32
- package/browser/esm2022/lib/typeorm/decorator/relations/OneToOne.mjs +0 -39
- package/browser/esm2022/lib/typeorm/decorator/relations/RelationCount.mjs +0 -20
- package/browser/esm2022/lib/typeorm/decorator/relations/RelationId.mjs +0 -20
- package/browser/esm2022/lib/typeorm/decorator/tree/Tree.mjs +0 -19
- package/browser/esm2022/lib/typeorm/decorator/tree/TreeChildren.mjs +0 -34
- package/browser/esm2022/lib/typeorm/decorator/tree/TreeLevelColumn.mjs +0 -17
- package/browser/esm2022/lib/typeorm/decorator/tree/TreeParent.mjs +0 -34
- package/browser/esm2022/lib/typeorm/driver/Driver.mjs +0 -4
- package/browser/esm2022/lib/typeorm/driver/DriverFactory.mjs +0 -99
- package/browser/esm2022/lib/typeorm/driver/DriverUtils.mjs +0 -213
- package/browser/esm2022/lib/typeorm/driver/Query.mjs +0 -13
- package/browser/esm2022/lib/typeorm/driver/SqlInMemory.mjs +0 -12
- package/browser/esm2022/lib/typeorm/driver/cordova/CordovaConnectionOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/driver/cordova/CordovaDriver.mjs +0 -63
- package/browser/esm2022/lib/typeorm/driver/cordova/CordovaQueryRunner.mjs +0 -152
- package/browser/esm2022/lib/typeorm/driver/mongodb/typings.mjs +0 -6516
- package/browser/esm2022/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/driver/nativescript/NativescriptDriver.mjs +0 -82
- package/browser/esm2022/lib/typeorm/driver/nativescript/NativescriptQueryRunner.mjs +0 -82
- package/browser/esm2022/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/driver/react-native/ReactNativeDriver.mjs +0 -69
- package/browser/esm2022/lib/typeorm/driver/react-native/ReactNativeQueryRunner.mjs +0 -81
- package/browser/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.mjs +0 -582
- package/browser/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.mjs +0 -1421
- package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsConnectionOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +0 -249
- package/browser/esm2022/lib/typeorm/driver/sqljs/SqljsQueryRunner.mjs +0 -107
- package/browser/esm2022/lib/typeorm/driver/types/ColumnTypes.mjs +0 -3
- package/browser/esm2022/lib/typeorm/driver/types/CteCapabilities.mjs +0 -4
- package/browser/esm2022/lib/typeorm/driver/types/DataTypeDefaults.mjs +0 -4
- package/browser/esm2022/lib/typeorm/driver/types/DatabaseType.mjs +0 -3
- package/browser/esm2022/lib/typeorm/driver/types/IsolationLevel.mjs +0 -3
- package/browser/esm2022/lib/typeorm/driver/types/MappedColumnTypes.mjs +0 -4
- package/browser/esm2022/lib/typeorm/driver/types/MetadataTableType.mjs +0 -9
- package/browser/esm2022/lib/typeorm/driver/types/ReplicationMode.mjs +0 -3
- package/browser/esm2022/lib/typeorm/driver/types/UpsertType.mjs +0 -3
- package/browser/esm2022/lib/typeorm/entity-manager/EntityManager.mjs +0 -743
- package/browser/esm2022/lib/typeorm/entity-manager/EntityManagerFactory.mjs +0 -23
- package/browser/esm2022/lib/typeorm/entity-manager/SqljsEntityManager.mjs +0 -35
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchema.mjs +0 -12
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaCheckOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaColumnOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.mjs +0 -5
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.mjs +0 -15
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaIndexOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaOptions.mjs +0 -8
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaTransformer.mjs +0 -268
- package/browser/esm2022/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/error/AlreadyHasActiveConnectionError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/CannotAttachTreeChildrenEntityError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/CannotConnectAlreadyConnectedError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/CannotCreateEntityIdMapError.mjs +0 -18
- package/browser/esm2022/lib/typeorm/error/CannotDetermineEntityError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/CannotExecuteNotConnectedError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/CannotReflectMethodParameterTypeError.mjs +0 -15
- package/browser/esm2022/lib/typeorm/error/CircularRelationsError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/ColumnTypeUndefinedError.mjs +0 -16
- package/browser/esm2022/lib/typeorm/error/ConnectionIsNotSetError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/ConnectionNotFoundError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.mjs +0 -15
- package/browser/esm2022/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.mjs +0 -15
- package/browser/esm2022/lib/typeorm/error/CustomRepositoryNotFoundError.mjs +0 -15
- package/browser/esm2022/lib/typeorm/error/DataTypeNotSupportedError.mjs +0 -11
- package/browser/esm2022/lib/typeorm/error/DriverOptionNotSetError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/DriverPackageNotInstalledError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/EntityMetadataNotFoundError.mjs +0 -26
- package/browser/esm2022/lib/typeorm/error/EntityNotFoundError.mjs +0 -37
- package/browser/esm2022/lib/typeorm/error/EntityPropertyNotFoundError.mjs +0 -14
- package/browser/esm2022/lib/typeorm/error/FindRelationsNotFoundError.mjs +0 -20
- package/browser/esm2022/lib/typeorm/error/InitializedRelationError.mjs +0 -17
- package/browser/esm2022/lib/typeorm/error/InsertValuesMissingError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/LimitOnUpdateNotSupportedError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/LockNotSupportedOnGivenDriverError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/MetadataAlreadyExistsError.mjs +0 -15
- package/browser/esm2022/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/MissingDeleteDateColumnError.mjs +0 -9
- package/browser/esm2022/lib/typeorm/error/MissingDriverError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/MissingJoinColumnError.mjs +0 -20
- package/browser/esm2022/lib/typeorm/error/MissingJoinTableError.mjs +0 -20
- package/browser/esm2022/lib/typeorm/error/MissingPrimaryColumnError.mjs +0 -10
- package/browser/esm2022/lib/typeorm/error/MustBeEntityError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/NamingStrategyNotFoundError.mjs +0 -18
- package/browser/esm2022/lib/typeorm/error/NestedSetMultipleRootError.mjs +0 -9
- package/browser/esm2022/lib/typeorm/error/NoConnectionForRepositoryError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/NoConnectionOptionError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/NoNeedToReleaseEntityManagerError.mjs +0 -14
- package/browser/esm2022/lib/typeorm/error/NoVersionOrUpdateDateColumnError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.mjs +0 -14
- package/browser/esm2022/lib/typeorm/error/OptimisticLockCanNotBeUsedError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/OptimisticLockVersionMismatchError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/PersistedEntityNotFoundError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/PessimisticLockTransactionRequiredError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/PrimaryColumnCannotBeNullableError.mjs +0 -10
- package/browser/esm2022/lib/typeorm/error/QueryFailedError.mjs +0 -27
- package/browser/esm2022/lib/typeorm/error/QueryRunnerAlreadyReleasedError.mjs +0 -9
- package/browser/esm2022/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/RepositoryNotTreeError.mjs +0 -29
- package/browser/esm2022/lib/typeorm/error/ReturningStatementNotSupportedError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/SubjectRemovedAndUpdatedError.mjs +0 -13
- package/browser/esm2022/lib/typeorm/error/SubjectWithoutIdentifierError.mjs +0 -14
- package/browser/esm2022/lib/typeorm/error/TransactionAlreadyStartedError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/TransactionNotStartedError.mjs +0 -12
- package/browser/esm2022/lib/typeorm/error/TreeRepositoryNotSupportedError.mjs +0 -9
- package/browser/esm2022/lib/typeorm/error/TypeORMError.mjs +0 -18
- package/browser/esm2022/lib/typeorm/error/UpdateValuesMissingError.mjs +0 -9
- package/browser/esm2022/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.mjs +0 -10
- package/browser/esm2022/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.mjs +0 -11
- package/browser/esm2022/lib/typeorm/error/UsingJoinTableIsNotAllowedError.mjs +0 -11
- package/browser/esm2022/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.mjs +0 -11
- package/browser/esm2022/lib/typeorm/error/index.mjs +0 -63
- package/browser/esm2022/lib/typeorm/find-options/EqualOperator.mjs +0 -10
- package/browser/esm2022/lib/typeorm/find-options/FindManyOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/find-options/FindOneOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/find-options/FindOperator.mjs +0 -74
- package/browser/esm2022/lib/typeorm/find-options/FindOperatorType.mjs +0 -3
- package/browser/esm2022/lib/typeorm/find-options/FindOptionsOrder.mjs +0 -3
- package/browser/esm2022/lib/typeorm/find-options/FindOptionsRelations.mjs +0 -3
- package/browser/esm2022/lib/typeorm/find-options/FindOptionsSelect.mjs +0 -5
- package/browser/esm2022/lib/typeorm/find-options/FindOptionsUtils.mjs +0 -293
- package/browser/esm2022/lib/typeorm/find-options/FindOptionsWhere.mjs +0 -3
- package/browser/esm2022/lib/typeorm/find-options/FindTreeOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/find-options/JoinOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/find-options/OrderByCondition.mjs +0 -3
- package/browser/esm2022/lib/typeorm/find-options/operator/Any.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/ArrayContainedBy.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/ArrayContains.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/ArrayOverlap.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/Between.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/Equal.mjs +0 -15
- package/browser/esm2022/lib/typeorm/find-options/operator/ILike.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/In.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/IsNull.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/LessThan.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/LessThanOrEqual.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/Like.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/MoreThan.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/MoreThanOrEqual.mjs +0 -11
- package/browser/esm2022/lib/typeorm/find-options/operator/Not.mjs +0 -12
- package/browser/esm2022/lib/typeorm/find-options/operator/Raw.mjs +0 -10
- package/browser/esm2022/lib/typeorm/globals.mjs +0 -165
- package/browser/esm2022/lib/typeorm/index.mjs +0 -157
- package/browser/esm2022/lib/typeorm/logger/AdvancedConsoleLogger.mjs +0 -109
- package/browser/esm2022/lib/typeorm/logger/DebugLogger.mjs +0 -94
- package/browser/esm2022/lib/typeorm/logger/Logger.mjs +0 -4
- package/browser/esm2022/lib/typeorm/logger/LoggerFactory.mjs +0 -36
- package/browser/esm2022/lib/typeorm/logger/LoggerOptions.mjs +0 -3
- package/browser/esm2022/lib/typeorm/logger/SimpleConsoleLogger.mjs +0 -108
- package/browser/esm2022/lib/typeorm/metadata/CheckMetadata.mjs +0 -26
- package/browser/esm2022/lib/typeorm/metadata/ColumnMetadata.mjs +0 -553
- package/browser/esm2022/lib/typeorm/metadata/EmbeddedMetadata.mjs +0 -206
- package/browser/esm2022/lib/typeorm/metadata/EntityListenerMetadata.mjs +0 -52
- package/browser/esm2022/lib/typeorm/metadata/EntityMetadata.mjs +0 -636
- package/browser/esm2022/lib/typeorm/metadata/ExclusionMetadata.mjs +0 -26
- package/browser/esm2022/lib/typeorm/metadata/ForeignKeyMetadata.mjs +0 -48
- package/browser/esm2022/lib/typeorm/metadata/IndexMetadata.mjs +0 -131
- package/browser/esm2022/lib/typeorm/metadata/RelationCountMetadata.mjs +0 -30
- package/browser/esm2022/lib/typeorm/metadata/RelationIdMetadata.mjs +0 -50
- package/browser/esm2022/lib/typeorm/metadata/RelationMetadata.mjs +0 -398
- package/browser/esm2022/lib/typeorm/metadata/UniqueMetadata.mjs +0 -90
- package/browser/esm2022/lib/typeorm/metadata/types/ClosureTreeOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata/types/DeferrableType.mjs +0 -3
- package/browser/esm2022/lib/typeorm/metadata/types/EventListenerTypes.mjs +0 -19
- package/browser/esm2022/lib/typeorm/metadata/types/OnDeleteType.mjs +0 -3
- package/browser/esm2022/lib/typeorm/metadata/types/OnUpdateType.mjs +0 -3
- package/browser/esm2022/lib/typeorm/metadata/types/PropertyTypeInFunction.mjs +0 -3
- package/browser/esm2022/lib/typeorm/metadata/types/RelationTypeInFunction.mjs +0 -3
- package/browser/esm2022/lib/typeorm/metadata/types/RelationTypes.mjs +0 -3
- package/browser/esm2022/lib/typeorm/metadata/types/TableTypes.mjs +0 -3
- package/browser/esm2022/lib/typeorm/metadata/types/TreeTypes.mjs +0 -3
- package/browser/esm2022/lib/typeorm/metadata-args/CheckMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/ColumnMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/EmbeddedMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/EntityListenerMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/ExclusionMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/GeneratedMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/IndexMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/InheritanceMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/JoinColumnMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/JoinTableMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/MetadataArgsStorage.mjs +0 -217
- package/browser/esm2022/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/RelationCountMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/RelationIdMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/RelationMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/TableMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/TreeMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/UniqueMetadataArgs.mjs +0 -4
- package/browser/esm2022/lib/typeorm/metadata-args/types/ColumnMode.mjs +0 -3
- package/browser/esm2022/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.mjs +0 -131
- package/browser/esm2022/lib/typeorm/metadata-builder/EntityMetadataBuilder.mjs +0 -678
- package/browser/esm2022/lib/typeorm/metadata-builder/EntityMetadataValidator.mjs +0 -183
- package/browser/esm2022/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.mjs +0 -262
- package/browser/esm2022/lib/typeorm/metadata-builder/MetadataUtils.mjs +0 -41
- package/browser/esm2022/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.mjs +0 -167
- package/browser/esm2022/lib/typeorm/migration/Migration.mjs +0 -14
- package/browser/esm2022/lib/typeorm/migration/MigrationExecutor.mjs +0 -454
- package/browser/esm2022/lib/typeorm/migration/MigrationInterface.mjs +0 -4
- package/browser/esm2022/lib/typeorm/naming-strategy/DefaultNamingStrategy.mjs +0 -140
- package/browser/esm2022/lib/typeorm/naming-strategy/NamingStrategyInterface.mjs +0 -4
- package/browser/esm2022/lib/typeorm/persistence/EntityPersistExecutor.mjs +0 -125
- package/browser/esm2022/lib/typeorm/persistence/Subject.mjs +0 -212
- package/browser/esm2022/lib/typeorm/persistence/SubjectChangeMap.mjs +0 -4
- package/browser/esm2022/lib/typeorm/persistence/SubjectChangedColumnsComputer.mjs +0 -164
- package/browser/esm2022/lib/typeorm/persistence/SubjectDatabaseEntityLoader.mjs +0 -125
- package/browser/esm2022/lib/typeorm/persistence/SubjectExecutor.mjs +0 -721
- package/browser/esm2022/lib/typeorm/persistence/SubjectTopoligicalSorter.mjs +0 -151
- package/browser/esm2022/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.mjs +0 -84
- package/browser/esm2022/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.mjs +0 -153
- package/browser/esm2022/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.mjs +0 -117
- package/browser/esm2022/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.mjs +0 -95
- package/browser/esm2022/lib/typeorm/persistence/tree/ClosureSubjectExecutor.mjs +0 -220
- package/browser/esm2022/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.mjs +0 -97
- package/browser/esm2022/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.mjs +0 -250
- package/browser/esm2022/lib/typeorm/platform/PlatformTools.mjs +0 -346
- package/browser/esm2022/lib/typeorm/query-builder/Alias.mjs +0 -26
- package/browser/esm2022/lib/typeorm/query-builder/Brackets.mjs +0 -16
- package/browser/esm2022/lib/typeorm/query-builder/DeleteQueryBuilder.mjs +0 -181
- package/browser/esm2022/lib/typeorm/query-builder/InsertOrUpdateOptions.mjs +0 -3
- package/browser/esm2022/lib/typeorm/query-builder/InsertQueryBuilder.mjs +0 -651
- package/browser/esm2022/lib/typeorm/query-builder/JoinAttribute.mjs +0 -153
- package/browser/esm2022/lib/typeorm/query-builder/NotBrackets.mjs +0 -14
- package/browser/esm2022/lib/typeorm/query-builder/QueryBuilder.mjs +0 -967
- package/browser/esm2022/lib/typeorm/query-builder/QueryBuilderCte.mjs +0 -4
- package/browser/esm2022/lib/typeorm/query-builder/QueryBuilderUtils.mjs +0 -22
- package/browser/esm2022/lib/typeorm/query-builder/QueryExpressionMap.mjs +0 -309
- package/browser/esm2022/lib/typeorm/query-builder/QueryPartialEntity.mjs +0 -3
- package/browser/esm2022/lib/typeorm/query-builder/RelationIdLoader.mjs +0 -452
- package/browser/esm2022/lib/typeorm/query-builder/RelationLoader.mjs +0 -262
- package/browser/esm2022/lib/typeorm/query-builder/RelationQueryBuilder.mjs +0 -147
- package/browser/esm2022/lib/typeorm/query-builder/RelationRemover.mjs +0 -130
- package/browser/esm2022/lib/typeorm/query-builder/RelationUpdater.mjs +0 -141
- package/browser/esm2022/lib/typeorm/query-builder/ReturningResultsEntityUpdator.mjs +0 -141
- package/browser/esm2022/lib/typeorm/query-builder/SelectQuery.mjs +0 -4
- package/browser/esm2022/lib/typeorm/query-builder/SelectQueryBuilder.mjs +0 -2278
- package/browser/esm2022/lib/typeorm/query-builder/SelectQueryBuilderOption.mjs +0 -3
- package/browser/esm2022/lib/typeorm/query-builder/SoftDeleteQueryBuilder.mjs +0 -348
- package/browser/esm2022/lib/typeorm/query-builder/UpdateQueryBuilder.mjs +0 -510
- package/browser/esm2022/lib/typeorm/query-builder/WhereClause.mjs +0 -3
- package/browser/esm2022/lib/typeorm/query-builder/WhereExpressionBuilder.mjs +0 -4
- package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountAttribute.mjs +0 -71
- package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.mjs +0 -4
- package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoader.mjs +0 -142
- package/browser/esm2022/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.mjs +0 -33
- package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdAttribute.mjs +0 -79
- package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.mjs +0 -4
- package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoader.mjs +0 -247
- package/browser/esm2022/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.mjs +0 -33
- package/browser/esm2022/lib/typeorm/query-builder/result/DeleteResult.mjs +0 -14
- package/browser/esm2022/lib/typeorm/query-builder/result/InsertResult.mjs +0 -25
- package/browser/esm2022/lib/typeorm/query-builder/result/UpdateResult.mjs +0 -25
- package/browser/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.mjs +0 -101
- package/browser/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.mjs +0 -67
- package/browser/esm2022/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.mjs +0 -366
- package/browser/esm2022/lib/typeorm/query-runner/BaseQueryRunner.mjs +0 -392
- package/browser/esm2022/lib/typeorm/query-runner/QueryResult.mjs +0 -14
- package/browser/esm2022/lib/typeorm/query-runner/QueryRunner.mjs +0 -4
- package/browser/esm2022/lib/typeorm/repository/AbstractRepository.mjs +0 -80
- package/browser/esm2022/lib/typeorm/repository/BaseEntity.mjs +0 -283
- package/browser/esm2022/lib/typeorm/repository/FindTreesOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/repository/RemoveOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/repository/Repository.mjs +0 -275
- package/browser/esm2022/lib/typeorm/repository/SaveOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/repository/TreeRepository.mjs +0 -254
- package/browser/esm2022/lib/typeorm/repository/UpsertOptions.mjs +0 -7
- package/browser/esm2022/lib/typeorm/schema-builder/RdbmsSchemaBuilder.mjs +0 -770
- package/browser/esm2022/lib/typeorm/schema-builder/SchemaBuilder.mjs +0 -4
- package/browser/esm2022/lib/typeorm/schema-builder/options/TableCheckOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/schema-builder/options/TableColumnOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/schema-builder/options/TableExclusionOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/schema-builder/options/TableForeignKeyOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/schema-builder/options/TableIndexOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/schema-builder/options/TableOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/schema-builder/options/TableUniqueOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/schema-builder/options/ViewOptions.mjs +0 -4
- package/browser/esm2022/lib/typeorm/schema-builder/table/Table.mjs +0 -274
- package/browser/esm2022/lib/typeorm/schema-builder/table/TableCheck.mjs +0 -37
- package/browser/esm2022/lib/typeorm/schema-builder/table/TableColumn.mjs +0 -108
- package/browser/esm2022/lib/typeorm/schema-builder/table/TableExclusion.mjs +0 -31
- package/browser/esm2022/lib/typeorm/schema-builder/table/TableForeignKey.mjs +0 -60
- package/browser/esm2022/lib/typeorm/schema-builder/table/TableIndex.mjs +0 -53
- package/browser/esm2022/lib/typeorm/schema-builder/table/TableUnique.mjs +0 -38
- package/browser/esm2022/lib/typeorm/schema-builder/util/TableUtils.mjs +0 -38
- package/browser/esm2022/lib/typeorm/schema-builder/util/ViewUtils.mjs +0 -24
- package/browser/esm2022/lib/typeorm/schema-builder/view/View.mjs +0 -43
- package/browser/esm2022/lib/typeorm/subscriber/Broadcaster.mjs +0 -596
- package/browser/esm2022/lib/typeorm/subscriber/BroadcasterResult.mjs +0 -27
- package/browser/esm2022/lib/typeorm/subscriber/EntitySubscriberInterface.mjs +0 -4
- package/browser/esm2022/lib/typeorm/subscriber/event/InsertEvent.mjs +0 -4
- package/browser/esm2022/lib/typeorm/subscriber/event/LoadEvent.mjs +0 -4
- package/browser/esm2022/lib/typeorm/subscriber/event/RecoverEvent.mjs +0 -4
- package/browser/esm2022/lib/typeorm/subscriber/event/RemoveEvent.mjs +0 -4
- package/browser/esm2022/lib/typeorm/subscriber/event/SoftRemoveEvent.mjs +0 -4
- package/browser/esm2022/lib/typeorm/subscriber/event/TransactionCommitEvent.mjs +0 -4
- package/browser/esm2022/lib/typeorm/subscriber/event/TransactionRollbackEvent.mjs +0 -4
- package/browser/esm2022/lib/typeorm/subscriber/event/TransactionStartEvent.mjs +0 -4
- package/browser/esm2022/lib/typeorm/subscriber/event/UpdateEvent.mjs +0 -4
- package/browser/esm2022/lib/typeorm/util/ApplyValueTransformers.mjs +0 -22
- package/browser/esm2022/lib/typeorm/util/DateUtils.mjs +0 -216
- package/browser/esm2022/lib/typeorm/util/DepGraph.mjs +0 -222
- package/browser/esm2022/lib/typeorm/util/DirectoryExportedClassesLoader.mjs +0 -76
- package/browser/esm2022/lib/typeorm/util/ImportUtils.mjs +0 -86
- package/browser/esm2022/lib/typeorm/util/InstanceChecker.mjs +0 -114
- package/browser/esm2022/lib/typeorm/util/ObjectUtils.mjs +0 -38
- package/browser/esm2022/lib/typeorm/util/OrmUtils.mjs +0 -310
- package/browser/esm2022/lib/typeorm/util/PathUtils.mjs +0 -38
- package/browser/esm2022/lib/typeorm/util/RandomGenerator.mjs +0 -150
- package/browser/esm2022/lib/typeorm/util/StringUtils.mjs +0 -108
- package/browser/esm2022/lib/typeorm/util/TreeRepositoryUtils.mjs +0 -53
- package/browser/esm2022/lib/typeorm/util/VersionUtils.mjs +0 -17
- package/browser/esm2022/lib/typeorm/util/escapeRegExp.mjs +0 -4
- package/browser/esm2022/public-api.mjs +0 -2
- package/browser/esm2022/taon-typeorm.mjs +0 -5
- package/client/esm2022/lib/index.mjs +0 -4
- package/client/esm2022/lib/typeorm/cache/DbQueryResultCache.mjs +0 -251
- package/client/esm2022/lib/typeorm/cache/QueryResultCache.mjs +0 -4
- package/client/esm2022/lib/typeorm/cache/QueryResultCacheFactory.mjs +0 -33
- package/client/esm2022/lib/typeorm/cache/QueryResultCacheOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/cache/RedisQueryResultCache.mjs +0 -185
- package/client/esm2022/lib/typeorm/common/DeepPartial.mjs +0 -3
- package/client/esm2022/lib/typeorm/common/EntityTarget.mjs +0 -3
- package/client/esm2022/lib/typeorm/common/MixedList.mjs +0 -3
- package/client/esm2022/lib/typeorm/common/ObjectLiteral.mjs +0 -4
- package/client/esm2022/lib/typeorm/common/ObjectType.mjs +0 -3
- package/client/esm2022/lib/typeorm/common/RelationType.mjs +0 -3
- package/client/esm2022/lib/typeorm/connection/Connection.mjs +0 -13
- package/client/esm2022/lib/typeorm/connection/ConnectionManager.mjs +0 -57
- package/client/esm2022/lib/typeorm/connection/ConnectionMetadataBuilder.mjs +0 -63
- package/client/esm2022/lib/typeorm/connection/ConnectionOptions.mjs +0 -3
- package/client/esm2022/lib/typeorm/connection/ConnectionOptionsReader.mjs +0 -237
- package/client/esm2022/lib/typeorm/constants.mjs +0 -4
- package/client/esm2022/lib/typeorm/container.mjs +0 -57
- package/client/esm2022/lib/typeorm/data-source/BaseDataSourceOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/data-source/DataSource.mjs +0 -458
- package/client/esm2022/lib/typeorm/data-source/DataSourceOptions.mjs +0 -11
- package/client/esm2022/lib/typeorm/data-source/index.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/Check.mjs +0 -25
- package/client/esm2022/lib/typeorm/decorator/EntityRepository.mjs +0 -19
- package/client/esm2022/lib/typeorm/decorator/Exclusion.mjs +0 -25
- package/client/esm2022/lib/typeorm/decorator/Generated.mjs +0 -22
- package/client/esm2022/lib/typeorm/decorator/Index.mjs +0 -52
- package/client/esm2022/lib/typeorm/decorator/Unique.mjs +0 -48
- package/client/esm2022/lib/typeorm/decorator/columns/Column.mjs +0 -67
- package/client/esm2022/lib/typeorm/decorator/columns/CreateDateColumn.mjs +0 -19
- package/client/esm2022/lib/typeorm/decorator/columns/DeleteDateColumn.mjs +0 -18
- package/client/esm2022/lib/typeorm/decorator/columns/ObjectIdColumn.mjs +0 -23
- package/client/esm2022/lib/typeorm/decorator/columns/PrimaryColumn.mjs +0 -54
- package/client/esm2022/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.mjs +0 -52
- package/client/esm2022/lib/typeorm/decorator/columns/UpdateDateColumn.mjs +0 -18
- package/client/esm2022/lib/typeorm/decorator/columns/VersionColumn.mjs +0 -19
- package/client/esm2022/lib/typeorm/decorator/columns/ViewColumn.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/columns/VirtualColumn.mjs +0 -41
- package/client/esm2022/lib/typeorm/decorator/entity/ChildEntity.mjs +0 -21
- package/client/esm2022/lib/typeorm/decorator/entity/Entity.mjs +0 -28
- package/client/esm2022/lib/typeorm/decorator/entity/TableInheritance.mjs +0 -20
- package/client/esm2022/lib/typeorm/decorator/entity-view/ViewEntity.mjs +0 -30
- package/client/esm2022/lib/typeorm/decorator/listeners/AfterInsert.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/AfterLoad.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/AfterRecover.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/AfterRemove.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/AfterSoftRemove.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/AfterUpdate.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/BeforeInsert.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/BeforeRecover.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/BeforeRemove.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/BeforeSoftRemove.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/BeforeUpdate.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/listeners/EventSubscriber.mjs +0 -15
- package/client/esm2022/lib/typeorm/decorator/options/ColumnCommonOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ColumnEmbeddedOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ColumnEnumOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ColumnHstoreOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ColumnNumericOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ColumnOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ColumnWithLengthOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ColumnWithWidthOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/EntityOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/IndexOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/JoinColumnOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/JoinTableOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/RelationOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/SpatialColumnOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/UniqueOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ValueTransformer.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ViewColumnOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/ViewEntityOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/options/VirtualColumnOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/decorator/relations/JoinColumn.mjs +0 -25
- package/client/esm2022/lib/typeorm/decorator/relations/JoinTable.mjs +0 -31
- package/client/esm2022/lib/typeorm/decorator/relations/ManyToMany.mjs +0 -40
- package/client/esm2022/lib/typeorm/decorator/relations/ManyToOne.mjs +0 -40
- package/client/esm2022/lib/typeorm/decorator/relations/OneToMany.mjs +0 -32
- package/client/esm2022/lib/typeorm/decorator/relations/OneToOne.mjs +0 -39
- package/client/esm2022/lib/typeorm/decorator/relations/RelationCount.mjs +0 -20
- package/client/esm2022/lib/typeorm/decorator/relations/RelationId.mjs +0 -20
- package/client/esm2022/lib/typeorm/decorator/tree/Tree.mjs +0 -19
- package/client/esm2022/lib/typeorm/decorator/tree/TreeChildren.mjs +0 -34
- package/client/esm2022/lib/typeorm/decorator/tree/TreeLevelColumn.mjs +0 -17
- package/client/esm2022/lib/typeorm/decorator/tree/TreeParent.mjs +0 -34
- package/client/esm2022/lib/typeorm/driver/Driver.mjs +0 -4
- package/client/esm2022/lib/typeorm/driver/DriverFactory.mjs +0 -99
- package/client/esm2022/lib/typeorm/driver/DriverUtils.mjs +0 -213
- package/client/esm2022/lib/typeorm/driver/Query.mjs +0 -13
- package/client/esm2022/lib/typeorm/driver/SqlInMemory.mjs +0 -12
- package/client/esm2022/lib/typeorm/driver/cordova/CordovaConnectionOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/driver/cordova/CordovaDriver.mjs +0 -63
- package/client/esm2022/lib/typeorm/driver/cordova/CordovaQueryRunner.mjs +0 -152
- package/client/esm2022/lib/typeorm/driver/mongodb/typings.mjs +0 -6516
- package/client/esm2022/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/driver/nativescript/NativescriptDriver.mjs +0 -82
- package/client/esm2022/lib/typeorm/driver/nativescript/NativescriptQueryRunner.mjs +0 -82
- package/client/esm2022/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/driver/react-native/ReactNativeDriver.mjs +0 -69
- package/client/esm2022/lib/typeorm/driver/react-native/ReactNativeQueryRunner.mjs +0 -81
- package/client/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.mjs +0 -582
- package/client/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.mjs +0 -1421
- package/client/esm2022/lib/typeorm/driver/sqljs/SqljsConnectionOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +0 -249
- package/client/esm2022/lib/typeorm/driver/sqljs/SqljsQueryRunner.mjs +0 -107
- package/client/esm2022/lib/typeorm/driver/types/ColumnTypes.mjs +0 -3
- package/client/esm2022/lib/typeorm/driver/types/CteCapabilities.mjs +0 -4
- package/client/esm2022/lib/typeorm/driver/types/DataTypeDefaults.mjs +0 -4
- package/client/esm2022/lib/typeorm/driver/types/DatabaseType.mjs +0 -3
- package/client/esm2022/lib/typeorm/driver/types/IsolationLevel.mjs +0 -3
- package/client/esm2022/lib/typeorm/driver/types/MappedColumnTypes.mjs +0 -4
- package/client/esm2022/lib/typeorm/driver/types/MetadataTableType.mjs +0 -9
- package/client/esm2022/lib/typeorm/driver/types/ReplicationMode.mjs +0 -3
- package/client/esm2022/lib/typeorm/driver/types/UpsertType.mjs +0 -3
- package/client/esm2022/lib/typeorm/entity-manager/EntityManager.mjs +0 -743
- package/client/esm2022/lib/typeorm/entity-manager/EntityManagerFactory.mjs +0 -23
- package/client/esm2022/lib/typeorm/entity-manager/SqljsEntityManager.mjs +0 -35
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchema.mjs +0 -12
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaCheckOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaColumnOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.mjs +0 -5
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.mjs +0 -15
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaIndexOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaOptions.mjs +0 -8
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaTransformer.mjs +0 -268
- package/client/esm2022/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/error/AlreadyHasActiveConnectionError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/CannotAttachTreeChildrenEntityError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/CannotConnectAlreadyConnectedError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/CannotCreateEntityIdMapError.mjs +0 -18
- package/client/esm2022/lib/typeorm/error/CannotDetermineEntityError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/CannotExecuteNotConnectedError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/CannotReflectMethodParameterTypeError.mjs +0 -15
- package/client/esm2022/lib/typeorm/error/CircularRelationsError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/ColumnTypeUndefinedError.mjs +0 -16
- package/client/esm2022/lib/typeorm/error/ConnectionIsNotSetError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/ConnectionNotFoundError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.mjs +0 -15
- package/client/esm2022/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.mjs +0 -15
- package/client/esm2022/lib/typeorm/error/CustomRepositoryNotFoundError.mjs +0 -15
- package/client/esm2022/lib/typeorm/error/DataTypeNotSupportedError.mjs +0 -11
- package/client/esm2022/lib/typeorm/error/DriverOptionNotSetError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/DriverPackageNotInstalledError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/EntityMetadataNotFoundError.mjs +0 -26
- package/client/esm2022/lib/typeorm/error/EntityNotFoundError.mjs +0 -37
- package/client/esm2022/lib/typeorm/error/EntityPropertyNotFoundError.mjs +0 -14
- package/client/esm2022/lib/typeorm/error/FindRelationsNotFoundError.mjs +0 -20
- package/client/esm2022/lib/typeorm/error/InitializedRelationError.mjs +0 -17
- package/client/esm2022/lib/typeorm/error/InsertValuesMissingError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/LimitOnUpdateNotSupportedError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/LockNotSupportedOnGivenDriverError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/MetadataAlreadyExistsError.mjs +0 -15
- package/client/esm2022/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/MissingDeleteDateColumnError.mjs +0 -9
- package/client/esm2022/lib/typeorm/error/MissingDriverError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/MissingJoinColumnError.mjs +0 -20
- package/client/esm2022/lib/typeorm/error/MissingJoinTableError.mjs +0 -20
- package/client/esm2022/lib/typeorm/error/MissingPrimaryColumnError.mjs +0 -10
- package/client/esm2022/lib/typeorm/error/MustBeEntityError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/NamingStrategyNotFoundError.mjs +0 -18
- package/client/esm2022/lib/typeorm/error/NestedSetMultipleRootError.mjs +0 -9
- package/client/esm2022/lib/typeorm/error/NoConnectionForRepositoryError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/NoConnectionOptionError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/NoNeedToReleaseEntityManagerError.mjs +0 -14
- package/client/esm2022/lib/typeorm/error/NoVersionOrUpdateDateColumnError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.mjs +0 -14
- package/client/esm2022/lib/typeorm/error/OptimisticLockCanNotBeUsedError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/OptimisticLockVersionMismatchError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/PersistedEntityNotFoundError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/PessimisticLockTransactionRequiredError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/PrimaryColumnCannotBeNullableError.mjs +0 -10
- package/client/esm2022/lib/typeorm/error/QueryFailedError.mjs +0 -27
- package/client/esm2022/lib/typeorm/error/QueryRunnerAlreadyReleasedError.mjs +0 -9
- package/client/esm2022/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/RepositoryNotTreeError.mjs +0 -29
- package/client/esm2022/lib/typeorm/error/ReturningStatementNotSupportedError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/SubjectRemovedAndUpdatedError.mjs +0 -13
- package/client/esm2022/lib/typeorm/error/SubjectWithoutIdentifierError.mjs +0 -14
- package/client/esm2022/lib/typeorm/error/TransactionAlreadyStartedError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/TransactionNotStartedError.mjs +0 -12
- package/client/esm2022/lib/typeorm/error/TreeRepositoryNotSupportedError.mjs +0 -9
- package/client/esm2022/lib/typeorm/error/TypeORMError.mjs +0 -18
- package/client/esm2022/lib/typeorm/error/UpdateValuesMissingError.mjs +0 -9
- package/client/esm2022/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.mjs +0 -10
- package/client/esm2022/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.mjs +0 -11
- package/client/esm2022/lib/typeorm/error/UsingJoinTableIsNotAllowedError.mjs +0 -11
- package/client/esm2022/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.mjs +0 -11
- package/client/esm2022/lib/typeorm/error/index.mjs +0 -63
- package/client/esm2022/lib/typeorm/find-options/EqualOperator.mjs +0 -10
- package/client/esm2022/lib/typeorm/find-options/FindManyOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/find-options/FindOneOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/find-options/FindOperator.mjs +0 -74
- package/client/esm2022/lib/typeorm/find-options/FindOperatorType.mjs +0 -3
- package/client/esm2022/lib/typeorm/find-options/FindOptionsOrder.mjs +0 -3
- package/client/esm2022/lib/typeorm/find-options/FindOptionsRelations.mjs +0 -3
- package/client/esm2022/lib/typeorm/find-options/FindOptionsSelect.mjs +0 -5
- package/client/esm2022/lib/typeorm/find-options/FindOptionsUtils.mjs +0 -293
- package/client/esm2022/lib/typeorm/find-options/FindOptionsWhere.mjs +0 -3
- package/client/esm2022/lib/typeorm/find-options/FindTreeOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/find-options/JoinOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/find-options/OrderByCondition.mjs +0 -3
- package/client/esm2022/lib/typeorm/find-options/operator/Any.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/ArrayContainedBy.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/ArrayContains.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/ArrayOverlap.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/Between.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/Equal.mjs +0 -15
- package/client/esm2022/lib/typeorm/find-options/operator/ILike.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/In.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/IsNull.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/LessThan.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/LessThanOrEqual.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/Like.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/MoreThan.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/MoreThanOrEqual.mjs +0 -11
- package/client/esm2022/lib/typeorm/find-options/operator/Not.mjs +0 -12
- package/client/esm2022/lib/typeorm/find-options/operator/Raw.mjs +0 -10
- package/client/esm2022/lib/typeorm/globals.mjs +0 -165
- package/client/esm2022/lib/typeorm/index.mjs +0 -157
- package/client/esm2022/lib/typeorm/logger/AdvancedConsoleLogger.mjs +0 -109
- package/client/esm2022/lib/typeorm/logger/DebugLogger.mjs +0 -94
- package/client/esm2022/lib/typeorm/logger/Logger.mjs +0 -4
- package/client/esm2022/lib/typeorm/logger/LoggerFactory.mjs +0 -36
- package/client/esm2022/lib/typeorm/logger/LoggerOptions.mjs +0 -3
- package/client/esm2022/lib/typeorm/logger/SimpleConsoleLogger.mjs +0 -108
- package/client/esm2022/lib/typeorm/metadata/CheckMetadata.mjs +0 -26
- package/client/esm2022/lib/typeorm/metadata/ColumnMetadata.mjs +0 -553
- package/client/esm2022/lib/typeorm/metadata/EmbeddedMetadata.mjs +0 -206
- package/client/esm2022/lib/typeorm/metadata/EntityListenerMetadata.mjs +0 -52
- package/client/esm2022/lib/typeorm/metadata/EntityMetadata.mjs +0 -636
- package/client/esm2022/lib/typeorm/metadata/ExclusionMetadata.mjs +0 -26
- package/client/esm2022/lib/typeorm/metadata/ForeignKeyMetadata.mjs +0 -48
- package/client/esm2022/lib/typeorm/metadata/IndexMetadata.mjs +0 -131
- package/client/esm2022/lib/typeorm/metadata/RelationCountMetadata.mjs +0 -30
- package/client/esm2022/lib/typeorm/metadata/RelationIdMetadata.mjs +0 -50
- package/client/esm2022/lib/typeorm/metadata/RelationMetadata.mjs +0 -398
- package/client/esm2022/lib/typeorm/metadata/UniqueMetadata.mjs +0 -90
- package/client/esm2022/lib/typeorm/metadata/types/ClosureTreeOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata/types/DeferrableType.mjs +0 -3
- package/client/esm2022/lib/typeorm/metadata/types/EventListenerTypes.mjs +0 -19
- package/client/esm2022/lib/typeorm/metadata/types/OnDeleteType.mjs +0 -3
- package/client/esm2022/lib/typeorm/metadata/types/OnUpdateType.mjs +0 -3
- package/client/esm2022/lib/typeorm/metadata/types/PropertyTypeInFunction.mjs +0 -3
- package/client/esm2022/lib/typeorm/metadata/types/RelationTypeInFunction.mjs +0 -3
- package/client/esm2022/lib/typeorm/metadata/types/RelationTypes.mjs +0 -3
- package/client/esm2022/lib/typeorm/metadata/types/TableTypes.mjs +0 -3
- package/client/esm2022/lib/typeorm/metadata/types/TreeTypes.mjs +0 -3
- package/client/esm2022/lib/typeorm/metadata-args/CheckMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/ColumnMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/EmbeddedMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/EntityListenerMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/ExclusionMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/GeneratedMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/IndexMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/InheritanceMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/JoinColumnMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/JoinTableMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/MetadataArgsStorage.mjs +0 -217
- package/client/esm2022/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/RelationCountMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/RelationIdMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/RelationMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/TableMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/TreeMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/UniqueMetadataArgs.mjs +0 -4
- package/client/esm2022/lib/typeorm/metadata-args/types/ColumnMode.mjs +0 -3
- package/client/esm2022/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.mjs +0 -131
- package/client/esm2022/lib/typeorm/metadata-builder/EntityMetadataBuilder.mjs +0 -678
- package/client/esm2022/lib/typeorm/metadata-builder/EntityMetadataValidator.mjs +0 -183
- package/client/esm2022/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.mjs +0 -262
- package/client/esm2022/lib/typeorm/metadata-builder/MetadataUtils.mjs +0 -41
- package/client/esm2022/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.mjs +0 -167
- package/client/esm2022/lib/typeorm/migration/Migration.mjs +0 -14
- package/client/esm2022/lib/typeorm/migration/MigrationExecutor.mjs +0 -454
- package/client/esm2022/lib/typeorm/migration/MigrationInterface.mjs +0 -4
- package/client/esm2022/lib/typeorm/naming-strategy/DefaultNamingStrategy.mjs +0 -140
- package/client/esm2022/lib/typeorm/naming-strategy/NamingStrategyInterface.mjs +0 -4
- package/client/esm2022/lib/typeorm/persistence/EntityPersistExecutor.mjs +0 -125
- package/client/esm2022/lib/typeorm/persistence/Subject.mjs +0 -212
- package/client/esm2022/lib/typeorm/persistence/SubjectChangeMap.mjs +0 -4
- package/client/esm2022/lib/typeorm/persistence/SubjectChangedColumnsComputer.mjs +0 -164
- package/client/esm2022/lib/typeorm/persistence/SubjectDatabaseEntityLoader.mjs +0 -125
- package/client/esm2022/lib/typeorm/persistence/SubjectExecutor.mjs +0 -721
- package/client/esm2022/lib/typeorm/persistence/SubjectTopoligicalSorter.mjs +0 -151
- package/client/esm2022/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.mjs +0 -84
- package/client/esm2022/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.mjs +0 -153
- package/client/esm2022/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.mjs +0 -117
- package/client/esm2022/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.mjs +0 -95
- package/client/esm2022/lib/typeorm/persistence/tree/ClosureSubjectExecutor.mjs +0 -220
- package/client/esm2022/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.mjs +0 -97
- package/client/esm2022/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.mjs +0 -250
- package/client/esm2022/lib/typeorm/platform/PlatformTools.mjs +0 -346
- package/client/esm2022/lib/typeorm/query-builder/Alias.mjs +0 -26
- package/client/esm2022/lib/typeorm/query-builder/Brackets.mjs +0 -16
- package/client/esm2022/lib/typeorm/query-builder/DeleteQueryBuilder.mjs +0 -181
- package/client/esm2022/lib/typeorm/query-builder/InsertOrUpdateOptions.mjs +0 -3
- package/client/esm2022/lib/typeorm/query-builder/InsertQueryBuilder.mjs +0 -651
- package/client/esm2022/lib/typeorm/query-builder/JoinAttribute.mjs +0 -153
- package/client/esm2022/lib/typeorm/query-builder/NotBrackets.mjs +0 -14
- package/client/esm2022/lib/typeorm/query-builder/QueryBuilder.mjs +0 -967
- package/client/esm2022/lib/typeorm/query-builder/QueryBuilderCte.mjs +0 -4
- package/client/esm2022/lib/typeorm/query-builder/QueryBuilderUtils.mjs +0 -22
- package/client/esm2022/lib/typeorm/query-builder/QueryExpressionMap.mjs +0 -309
- package/client/esm2022/lib/typeorm/query-builder/QueryPartialEntity.mjs +0 -3
- package/client/esm2022/lib/typeorm/query-builder/RelationIdLoader.mjs +0 -452
- package/client/esm2022/lib/typeorm/query-builder/RelationLoader.mjs +0 -262
- package/client/esm2022/lib/typeorm/query-builder/RelationQueryBuilder.mjs +0 -147
- package/client/esm2022/lib/typeorm/query-builder/RelationRemover.mjs +0 -130
- package/client/esm2022/lib/typeorm/query-builder/RelationUpdater.mjs +0 -141
- package/client/esm2022/lib/typeorm/query-builder/ReturningResultsEntityUpdator.mjs +0 -141
- package/client/esm2022/lib/typeorm/query-builder/SelectQuery.mjs +0 -4
- package/client/esm2022/lib/typeorm/query-builder/SelectQueryBuilder.mjs +0 -2278
- package/client/esm2022/lib/typeorm/query-builder/SelectQueryBuilderOption.mjs +0 -3
- package/client/esm2022/lib/typeorm/query-builder/SoftDeleteQueryBuilder.mjs +0 -348
- package/client/esm2022/lib/typeorm/query-builder/UpdateQueryBuilder.mjs +0 -510
- package/client/esm2022/lib/typeorm/query-builder/WhereClause.mjs +0 -3
- package/client/esm2022/lib/typeorm/query-builder/WhereExpressionBuilder.mjs +0 -4
- package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountAttribute.mjs +0 -71
- package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.mjs +0 -4
- package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoader.mjs +0 -142
- package/client/esm2022/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.mjs +0 -33
- package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdAttribute.mjs +0 -79
- package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.mjs +0 -4
- package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoader.mjs +0 -247
- package/client/esm2022/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.mjs +0 -33
- package/client/esm2022/lib/typeorm/query-builder/result/DeleteResult.mjs +0 -14
- package/client/esm2022/lib/typeorm/query-builder/result/InsertResult.mjs +0 -25
- package/client/esm2022/lib/typeorm/query-builder/result/UpdateResult.mjs +0 -25
- package/client/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.mjs +0 -101
- package/client/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.mjs +0 -67
- package/client/esm2022/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.mjs +0 -366
- package/client/esm2022/lib/typeorm/query-runner/BaseQueryRunner.mjs +0 -392
- package/client/esm2022/lib/typeorm/query-runner/QueryResult.mjs +0 -14
- package/client/esm2022/lib/typeorm/query-runner/QueryRunner.mjs +0 -4
- package/client/esm2022/lib/typeorm/repository/AbstractRepository.mjs +0 -80
- package/client/esm2022/lib/typeorm/repository/BaseEntity.mjs +0 -283
- package/client/esm2022/lib/typeorm/repository/FindTreesOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/repository/RemoveOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/repository/Repository.mjs +0 -275
- package/client/esm2022/lib/typeorm/repository/SaveOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/repository/TreeRepository.mjs +0 -254
- package/client/esm2022/lib/typeorm/repository/UpsertOptions.mjs +0 -7
- package/client/esm2022/lib/typeorm/schema-builder/RdbmsSchemaBuilder.mjs +0 -770
- package/client/esm2022/lib/typeorm/schema-builder/SchemaBuilder.mjs +0 -4
- package/client/esm2022/lib/typeorm/schema-builder/options/TableCheckOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/schema-builder/options/TableColumnOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/schema-builder/options/TableExclusionOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/schema-builder/options/TableForeignKeyOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/schema-builder/options/TableIndexOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/schema-builder/options/TableOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/schema-builder/options/TableUniqueOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/schema-builder/options/ViewOptions.mjs +0 -4
- package/client/esm2022/lib/typeorm/schema-builder/table/Table.mjs +0 -274
- package/client/esm2022/lib/typeorm/schema-builder/table/TableCheck.mjs +0 -37
- package/client/esm2022/lib/typeorm/schema-builder/table/TableColumn.mjs +0 -108
- package/client/esm2022/lib/typeorm/schema-builder/table/TableExclusion.mjs +0 -31
- package/client/esm2022/lib/typeorm/schema-builder/table/TableForeignKey.mjs +0 -60
- package/client/esm2022/lib/typeorm/schema-builder/table/TableIndex.mjs +0 -53
- package/client/esm2022/lib/typeorm/schema-builder/table/TableUnique.mjs +0 -38
- package/client/esm2022/lib/typeorm/schema-builder/util/TableUtils.mjs +0 -38
- package/client/esm2022/lib/typeorm/schema-builder/util/ViewUtils.mjs +0 -24
- package/client/esm2022/lib/typeorm/schema-builder/view/View.mjs +0 -43
- package/client/esm2022/lib/typeorm/subscriber/Broadcaster.mjs +0 -596
- package/client/esm2022/lib/typeorm/subscriber/BroadcasterResult.mjs +0 -27
- package/client/esm2022/lib/typeorm/subscriber/EntitySubscriberInterface.mjs +0 -4
- package/client/esm2022/lib/typeorm/subscriber/event/InsertEvent.mjs +0 -4
- package/client/esm2022/lib/typeorm/subscriber/event/LoadEvent.mjs +0 -4
- package/client/esm2022/lib/typeorm/subscriber/event/RecoverEvent.mjs +0 -4
- package/client/esm2022/lib/typeorm/subscriber/event/RemoveEvent.mjs +0 -4
- package/client/esm2022/lib/typeorm/subscriber/event/SoftRemoveEvent.mjs +0 -4
- package/client/esm2022/lib/typeorm/subscriber/event/TransactionCommitEvent.mjs +0 -4
- package/client/esm2022/lib/typeorm/subscriber/event/TransactionRollbackEvent.mjs +0 -4
- package/client/esm2022/lib/typeorm/subscriber/event/TransactionStartEvent.mjs +0 -4
- package/client/esm2022/lib/typeorm/subscriber/event/UpdateEvent.mjs +0 -4
- package/client/esm2022/lib/typeorm/util/ApplyValueTransformers.mjs +0 -22
- package/client/esm2022/lib/typeorm/util/DateUtils.mjs +0 -216
- package/client/esm2022/lib/typeorm/util/DepGraph.mjs +0 -222
- package/client/esm2022/lib/typeorm/util/DirectoryExportedClassesLoader.mjs +0 -76
- package/client/esm2022/lib/typeorm/util/ImportUtils.mjs +0 -86
- package/client/esm2022/lib/typeorm/util/InstanceChecker.mjs +0 -114
- package/client/esm2022/lib/typeorm/util/ObjectUtils.mjs +0 -38
- package/client/esm2022/lib/typeorm/util/OrmUtils.mjs +0 -310
- package/client/esm2022/lib/typeorm/util/PathUtils.mjs +0 -38
- package/client/esm2022/lib/typeorm/util/RandomGenerator.mjs +0 -150
- package/client/esm2022/lib/typeorm/util/StringUtils.mjs +0 -108
- package/client/esm2022/lib/typeorm/util/TreeRepositoryUtils.mjs +0 -53
- package/client/esm2022/lib/typeorm/util/VersionUtils.mjs +0 -17
- package/client/esm2022/lib/typeorm/util/escapeRegExp.mjs +0 -4
- package/client/esm2022/public-api.mjs +0 -2
- package/client/esm2022/taon-typeorm.mjs +0 -5
- package/taon.jsonc +0 -10
- package/websql/esm2022/lib/index.mjs +0 -4
- package/websql/esm2022/lib/typeorm/cache/DbQueryResultCache.mjs +0 -251
- package/websql/esm2022/lib/typeorm/cache/QueryResultCache.mjs +0 -4
- package/websql/esm2022/lib/typeorm/cache/QueryResultCacheFactory.mjs +0 -33
- package/websql/esm2022/lib/typeorm/cache/QueryResultCacheOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/cache/RedisQueryResultCache.mjs +0 -185
- package/websql/esm2022/lib/typeorm/common/DeepPartial.mjs +0 -3
- package/websql/esm2022/lib/typeorm/common/EntityTarget.mjs +0 -3
- package/websql/esm2022/lib/typeorm/common/MixedList.mjs +0 -3
- package/websql/esm2022/lib/typeorm/common/ObjectLiteral.mjs +0 -4
- package/websql/esm2022/lib/typeorm/common/ObjectType.mjs +0 -3
- package/websql/esm2022/lib/typeorm/common/RelationType.mjs +0 -3
- package/websql/esm2022/lib/typeorm/connection/Connection.mjs +0 -13
- package/websql/esm2022/lib/typeorm/connection/ConnectionManager.mjs +0 -57
- package/websql/esm2022/lib/typeorm/connection/ConnectionMetadataBuilder.mjs +0 -63
- package/websql/esm2022/lib/typeorm/connection/ConnectionOptions.mjs +0 -3
- package/websql/esm2022/lib/typeorm/connection/ConnectionOptionsReader.mjs +0 -237
- package/websql/esm2022/lib/typeorm/constants.mjs +0 -4
- package/websql/esm2022/lib/typeorm/container.mjs +0 -57
- package/websql/esm2022/lib/typeorm/data-source/BaseDataSourceOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/data-source/DataSource.mjs +0 -458
- package/websql/esm2022/lib/typeorm/data-source/DataSourceOptions.mjs +0 -11
- package/websql/esm2022/lib/typeorm/data-source/index.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/Check.mjs +0 -25
- package/websql/esm2022/lib/typeorm/decorator/EntityRepository.mjs +0 -19
- package/websql/esm2022/lib/typeorm/decorator/Exclusion.mjs +0 -25
- package/websql/esm2022/lib/typeorm/decorator/Generated.mjs +0 -22
- package/websql/esm2022/lib/typeorm/decorator/Index.mjs +0 -52
- package/websql/esm2022/lib/typeorm/decorator/Unique.mjs +0 -48
- package/websql/esm2022/lib/typeorm/decorator/columns/Column.mjs +0 -67
- package/websql/esm2022/lib/typeorm/decorator/columns/CreateDateColumn.mjs +0 -19
- package/websql/esm2022/lib/typeorm/decorator/columns/DeleteDateColumn.mjs +0 -18
- package/websql/esm2022/lib/typeorm/decorator/columns/ObjectIdColumn.mjs +0 -23
- package/websql/esm2022/lib/typeorm/decorator/columns/PrimaryColumn.mjs +0 -54
- package/websql/esm2022/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.mjs +0 -52
- package/websql/esm2022/lib/typeorm/decorator/columns/UpdateDateColumn.mjs +0 -18
- package/websql/esm2022/lib/typeorm/decorator/columns/VersionColumn.mjs +0 -19
- package/websql/esm2022/lib/typeorm/decorator/columns/ViewColumn.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/columns/VirtualColumn.mjs +0 -41
- package/websql/esm2022/lib/typeorm/decorator/entity/ChildEntity.mjs +0 -21
- package/websql/esm2022/lib/typeorm/decorator/entity/Entity.mjs +0 -28
- package/websql/esm2022/lib/typeorm/decorator/entity/TableInheritance.mjs +0 -20
- package/websql/esm2022/lib/typeorm/decorator/entity-view/ViewEntity.mjs +0 -30
- package/websql/esm2022/lib/typeorm/decorator/listeners/AfterInsert.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/AfterLoad.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/AfterRecover.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/AfterRemove.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/AfterSoftRemove.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/AfterUpdate.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeInsert.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeRecover.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeRemove.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeSoftRemove.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/BeforeUpdate.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/listeners/EventSubscriber.mjs +0 -15
- package/websql/esm2022/lib/typeorm/decorator/options/ColumnCommonOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ColumnEmbeddedOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ColumnEnumOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ColumnHstoreOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ColumnNumericOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ColumnOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ColumnWithLengthOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ColumnWithWidthOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/EntityOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/IndexOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/JoinColumnOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/JoinTableOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/RelationOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/SpatialColumnOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/UniqueOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ValueTransformer.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ViewColumnOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/ViewEntityOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/options/VirtualColumnOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/decorator/relations/JoinColumn.mjs +0 -25
- package/websql/esm2022/lib/typeorm/decorator/relations/JoinTable.mjs +0 -31
- package/websql/esm2022/lib/typeorm/decorator/relations/ManyToMany.mjs +0 -40
- package/websql/esm2022/lib/typeorm/decorator/relations/ManyToOne.mjs +0 -40
- package/websql/esm2022/lib/typeorm/decorator/relations/OneToMany.mjs +0 -32
- package/websql/esm2022/lib/typeorm/decorator/relations/OneToOne.mjs +0 -39
- package/websql/esm2022/lib/typeorm/decorator/relations/RelationCount.mjs +0 -20
- package/websql/esm2022/lib/typeorm/decorator/relations/RelationId.mjs +0 -20
- package/websql/esm2022/lib/typeorm/decorator/tree/Tree.mjs +0 -19
- package/websql/esm2022/lib/typeorm/decorator/tree/TreeChildren.mjs +0 -34
- package/websql/esm2022/lib/typeorm/decorator/tree/TreeLevelColumn.mjs +0 -17
- package/websql/esm2022/lib/typeorm/decorator/tree/TreeParent.mjs +0 -34
- package/websql/esm2022/lib/typeorm/driver/Driver.mjs +0 -4
- package/websql/esm2022/lib/typeorm/driver/DriverFactory.mjs +0 -99
- package/websql/esm2022/lib/typeorm/driver/DriverUtils.mjs +0 -213
- package/websql/esm2022/lib/typeorm/driver/Query.mjs +0 -13
- package/websql/esm2022/lib/typeorm/driver/SqlInMemory.mjs +0 -12
- package/websql/esm2022/lib/typeorm/driver/cordova/CordovaConnectionOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/driver/cordova/CordovaDriver.mjs +0 -63
- package/websql/esm2022/lib/typeorm/driver/cordova/CordovaQueryRunner.mjs +0 -152
- package/websql/esm2022/lib/typeorm/driver/mongodb/typings.mjs +0 -6516
- package/websql/esm2022/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/driver/nativescript/NativescriptDriver.mjs +0 -82
- package/websql/esm2022/lib/typeorm/driver/nativescript/NativescriptQueryRunner.mjs +0 -82
- package/websql/esm2022/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/driver/react-native/ReactNativeDriver.mjs +0 -69
- package/websql/esm2022/lib/typeorm/driver/react-native/ReactNativeQueryRunner.mjs +0 -81
- package/websql/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.mjs +0 -582
- package/websql/esm2022/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.mjs +0 -1421
- package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsConnectionOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsDriver.mjs +0 -249
- package/websql/esm2022/lib/typeorm/driver/sqljs/SqljsQueryRunner.mjs +0 -107
- package/websql/esm2022/lib/typeorm/driver/types/ColumnTypes.mjs +0 -3
- package/websql/esm2022/lib/typeorm/driver/types/CteCapabilities.mjs +0 -4
- package/websql/esm2022/lib/typeorm/driver/types/DataTypeDefaults.mjs +0 -4
- package/websql/esm2022/lib/typeorm/driver/types/DatabaseType.mjs +0 -3
- package/websql/esm2022/lib/typeorm/driver/types/IsolationLevel.mjs +0 -3
- package/websql/esm2022/lib/typeorm/driver/types/MappedColumnTypes.mjs +0 -4
- package/websql/esm2022/lib/typeorm/driver/types/MetadataTableType.mjs +0 -9
- package/websql/esm2022/lib/typeorm/driver/types/ReplicationMode.mjs +0 -3
- package/websql/esm2022/lib/typeorm/driver/types/UpsertType.mjs +0 -3
- package/websql/esm2022/lib/typeorm/entity-manager/EntityManager.mjs +0 -743
- package/websql/esm2022/lib/typeorm/entity-manager/EntityManagerFactory.mjs +0 -23
- package/websql/esm2022/lib/typeorm/entity-manager/SqljsEntityManager.mjs +0 -35
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchema.mjs +0 -12
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaCheckOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaColumnOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.mjs +0 -5
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.mjs +0 -15
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaIndexOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaOptions.mjs +0 -8
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaRelationOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaTransformer.mjs +0 -268
- package/websql/esm2022/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/error/AlreadyHasActiveConnectionError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/CannotAttachTreeChildrenEntityError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/CannotConnectAlreadyConnectedError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/CannotCreateEntityIdMapError.mjs +0 -18
- package/websql/esm2022/lib/typeorm/error/CannotDetermineEntityError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/CannotExecuteNotConnectedError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/CannotReflectMethodParameterTypeError.mjs +0 -15
- package/websql/esm2022/lib/typeorm/error/CircularRelationsError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/ColumnTypeUndefinedError.mjs +0 -16
- package/websql/esm2022/lib/typeorm/error/ConnectionIsNotSetError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/ConnectionNotFoundError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.mjs +0 -15
- package/websql/esm2022/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.mjs +0 -15
- package/websql/esm2022/lib/typeorm/error/CustomRepositoryNotFoundError.mjs +0 -15
- package/websql/esm2022/lib/typeorm/error/DataTypeNotSupportedError.mjs +0 -11
- package/websql/esm2022/lib/typeorm/error/DriverOptionNotSetError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/DriverPackageNotInstalledError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/EntityMetadataNotFoundError.mjs +0 -26
- package/websql/esm2022/lib/typeorm/error/EntityNotFoundError.mjs +0 -37
- package/websql/esm2022/lib/typeorm/error/EntityPropertyNotFoundError.mjs +0 -14
- package/websql/esm2022/lib/typeorm/error/FindRelationsNotFoundError.mjs +0 -20
- package/websql/esm2022/lib/typeorm/error/InitializedRelationError.mjs +0 -17
- package/websql/esm2022/lib/typeorm/error/InsertValuesMissingError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/LimitOnUpdateNotSupportedError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/LockNotSupportedOnGivenDriverError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/MetadataAlreadyExistsError.mjs +0 -15
- package/websql/esm2022/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/MissingDeleteDateColumnError.mjs +0 -9
- package/websql/esm2022/lib/typeorm/error/MissingDriverError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/MissingJoinColumnError.mjs +0 -20
- package/websql/esm2022/lib/typeorm/error/MissingJoinTableError.mjs +0 -20
- package/websql/esm2022/lib/typeorm/error/MissingPrimaryColumnError.mjs +0 -10
- package/websql/esm2022/lib/typeorm/error/MustBeEntityError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/NamingStrategyNotFoundError.mjs +0 -18
- package/websql/esm2022/lib/typeorm/error/NestedSetMultipleRootError.mjs +0 -9
- package/websql/esm2022/lib/typeorm/error/NoConnectionForRepositoryError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/NoConnectionOptionError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/NoNeedToReleaseEntityManagerError.mjs +0 -14
- package/websql/esm2022/lib/typeorm/error/NoVersionOrUpdateDateColumnError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.mjs +0 -14
- package/websql/esm2022/lib/typeorm/error/OptimisticLockCanNotBeUsedError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/OptimisticLockVersionMismatchError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/PersistedEntityNotFoundError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/PessimisticLockTransactionRequiredError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/PrimaryColumnCannotBeNullableError.mjs +0 -10
- package/websql/esm2022/lib/typeorm/error/QueryFailedError.mjs +0 -27
- package/websql/esm2022/lib/typeorm/error/QueryRunnerAlreadyReleasedError.mjs +0 -9
- package/websql/esm2022/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/RepositoryNotTreeError.mjs +0 -29
- package/websql/esm2022/lib/typeorm/error/ReturningStatementNotSupportedError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/SubjectRemovedAndUpdatedError.mjs +0 -13
- package/websql/esm2022/lib/typeorm/error/SubjectWithoutIdentifierError.mjs +0 -14
- package/websql/esm2022/lib/typeorm/error/TransactionAlreadyStartedError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/TransactionNotStartedError.mjs +0 -12
- package/websql/esm2022/lib/typeorm/error/TreeRepositoryNotSupportedError.mjs +0 -9
- package/websql/esm2022/lib/typeorm/error/TypeORMError.mjs +0 -18
- package/websql/esm2022/lib/typeorm/error/UpdateValuesMissingError.mjs +0 -9
- package/websql/esm2022/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.mjs +0 -10
- package/websql/esm2022/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.mjs +0 -11
- package/websql/esm2022/lib/typeorm/error/UsingJoinTableIsNotAllowedError.mjs +0 -11
- package/websql/esm2022/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.mjs +0 -11
- package/websql/esm2022/lib/typeorm/error/index.mjs +0 -63
- package/websql/esm2022/lib/typeorm/find-options/EqualOperator.mjs +0 -10
- package/websql/esm2022/lib/typeorm/find-options/FindManyOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/find-options/FindOneOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/find-options/FindOperator.mjs +0 -74
- package/websql/esm2022/lib/typeorm/find-options/FindOperatorType.mjs +0 -3
- package/websql/esm2022/lib/typeorm/find-options/FindOptionsOrder.mjs +0 -3
- package/websql/esm2022/lib/typeorm/find-options/FindOptionsRelations.mjs +0 -3
- package/websql/esm2022/lib/typeorm/find-options/FindOptionsSelect.mjs +0 -5
- package/websql/esm2022/lib/typeorm/find-options/FindOptionsUtils.mjs +0 -293
- package/websql/esm2022/lib/typeorm/find-options/FindOptionsWhere.mjs +0 -3
- package/websql/esm2022/lib/typeorm/find-options/FindTreeOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/find-options/JoinOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/find-options/OrderByCondition.mjs +0 -3
- package/websql/esm2022/lib/typeorm/find-options/operator/Any.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/ArrayContainedBy.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/ArrayContains.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/ArrayOverlap.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/Between.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/Equal.mjs +0 -15
- package/websql/esm2022/lib/typeorm/find-options/operator/ILike.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/In.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/IsNull.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/LessThan.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/LessThanOrEqual.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/Like.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/MoreThan.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/MoreThanOrEqual.mjs +0 -11
- package/websql/esm2022/lib/typeorm/find-options/operator/Not.mjs +0 -12
- package/websql/esm2022/lib/typeorm/find-options/operator/Raw.mjs +0 -10
- package/websql/esm2022/lib/typeorm/globals.mjs +0 -165
- package/websql/esm2022/lib/typeorm/index.mjs +0 -157
- package/websql/esm2022/lib/typeorm/logger/AdvancedConsoleLogger.mjs +0 -109
- package/websql/esm2022/lib/typeorm/logger/DebugLogger.mjs +0 -94
- package/websql/esm2022/lib/typeorm/logger/Logger.mjs +0 -4
- package/websql/esm2022/lib/typeorm/logger/LoggerFactory.mjs +0 -36
- package/websql/esm2022/lib/typeorm/logger/LoggerOptions.mjs +0 -3
- package/websql/esm2022/lib/typeorm/logger/SimpleConsoleLogger.mjs +0 -108
- package/websql/esm2022/lib/typeorm/metadata/CheckMetadata.mjs +0 -26
- package/websql/esm2022/lib/typeorm/metadata/ColumnMetadata.mjs +0 -553
- package/websql/esm2022/lib/typeorm/metadata/EmbeddedMetadata.mjs +0 -206
- package/websql/esm2022/lib/typeorm/metadata/EntityListenerMetadata.mjs +0 -52
- package/websql/esm2022/lib/typeorm/metadata/EntityMetadata.mjs +0 -636
- package/websql/esm2022/lib/typeorm/metadata/ExclusionMetadata.mjs +0 -26
- package/websql/esm2022/lib/typeorm/metadata/ForeignKeyMetadata.mjs +0 -48
- package/websql/esm2022/lib/typeorm/metadata/IndexMetadata.mjs +0 -131
- package/websql/esm2022/lib/typeorm/metadata/RelationCountMetadata.mjs +0 -30
- package/websql/esm2022/lib/typeorm/metadata/RelationIdMetadata.mjs +0 -50
- package/websql/esm2022/lib/typeorm/metadata/RelationMetadata.mjs +0 -398
- package/websql/esm2022/lib/typeorm/metadata/UniqueMetadata.mjs +0 -90
- package/websql/esm2022/lib/typeorm/metadata/types/ClosureTreeOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata/types/DeferrableType.mjs +0 -3
- package/websql/esm2022/lib/typeorm/metadata/types/EventListenerTypes.mjs +0 -19
- package/websql/esm2022/lib/typeorm/metadata/types/OnDeleteType.mjs +0 -3
- package/websql/esm2022/lib/typeorm/metadata/types/OnUpdateType.mjs +0 -3
- package/websql/esm2022/lib/typeorm/metadata/types/PropertyTypeInFunction.mjs +0 -3
- package/websql/esm2022/lib/typeorm/metadata/types/RelationTypeInFunction.mjs +0 -3
- package/websql/esm2022/lib/typeorm/metadata/types/RelationTypes.mjs +0 -3
- package/websql/esm2022/lib/typeorm/metadata/types/TableTypes.mjs +0 -3
- package/websql/esm2022/lib/typeorm/metadata/types/TreeTypes.mjs +0 -3
- package/websql/esm2022/lib/typeorm/metadata-args/CheckMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/ColumnMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/EmbeddedMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/EntityListenerMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/ExclusionMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/GeneratedMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/IndexMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/InheritanceMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/JoinColumnMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/JoinTableMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/MetadataArgsStorage.mjs +0 -217
- package/websql/esm2022/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/RelationCountMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/RelationIdMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/RelationMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/TableMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/TreeMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/UniqueMetadataArgs.mjs +0 -4
- package/websql/esm2022/lib/typeorm/metadata-args/types/ColumnMode.mjs +0 -3
- package/websql/esm2022/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.mjs +0 -131
- package/websql/esm2022/lib/typeorm/metadata-builder/EntityMetadataBuilder.mjs +0 -678
- package/websql/esm2022/lib/typeorm/metadata-builder/EntityMetadataValidator.mjs +0 -183
- package/websql/esm2022/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.mjs +0 -262
- package/websql/esm2022/lib/typeorm/metadata-builder/MetadataUtils.mjs +0 -41
- package/websql/esm2022/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.mjs +0 -167
- package/websql/esm2022/lib/typeorm/migration/Migration.mjs +0 -14
- package/websql/esm2022/lib/typeorm/migration/MigrationExecutor.mjs +0 -454
- package/websql/esm2022/lib/typeorm/migration/MigrationInterface.mjs +0 -4
- package/websql/esm2022/lib/typeorm/naming-strategy/DefaultNamingStrategy.mjs +0 -140
- package/websql/esm2022/lib/typeorm/naming-strategy/NamingStrategyInterface.mjs +0 -4
- package/websql/esm2022/lib/typeorm/persistence/EntityPersistExecutor.mjs +0 -125
- package/websql/esm2022/lib/typeorm/persistence/Subject.mjs +0 -212
- package/websql/esm2022/lib/typeorm/persistence/SubjectChangeMap.mjs +0 -4
- package/websql/esm2022/lib/typeorm/persistence/SubjectChangedColumnsComputer.mjs +0 -164
- package/websql/esm2022/lib/typeorm/persistence/SubjectDatabaseEntityLoader.mjs +0 -125
- package/websql/esm2022/lib/typeorm/persistence/SubjectExecutor.mjs +0 -721
- package/websql/esm2022/lib/typeorm/persistence/SubjectTopoligicalSorter.mjs +0 -151
- package/websql/esm2022/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.mjs +0 -84
- package/websql/esm2022/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.mjs +0 -153
- package/websql/esm2022/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.mjs +0 -117
- package/websql/esm2022/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.mjs +0 -95
- package/websql/esm2022/lib/typeorm/persistence/tree/ClosureSubjectExecutor.mjs +0 -220
- package/websql/esm2022/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.mjs +0 -97
- package/websql/esm2022/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.mjs +0 -250
- package/websql/esm2022/lib/typeorm/platform/PlatformTools.mjs +0 -331
- package/websql/esm2022/lib/typeorm/query-builder/Alias.mjs +0 -26
- package/websql/esm2022/lib/typeorm/query-builder/Brackets.mjs +0 -16
- package/websql/esm2022/lib/typeorm/query-builder/DeleteQueryBuilder.mjs +0 -181
- package/websql/esm2022/lib/typeorm/query-builder/InsertOrUpdateOptions.mjs +0 -3
- package/websql/esm2022/lib/typeorm/query-builder/InsertQueryBuilder.mjs +0 -651
- package/websql/esm2022/lib/typeorm/query-builder/JoinAttribute.mjs +0 -153
- package/websql/esm2022/lib/typeorm/query-builder/NotBrackets.mjs +0 -14
- package/websql/esm2022/lib/typeorm/query-builder/QueryBuilder.mjs +0 -967
- package/websql/esm2022/lib/typeorm/query-builder/QueryBuilderCte.mjs +0 -4
- package/websql/esm2022/lib/typeorm/query-builder/QueryBuilderUtils.mjs +0 -22
- package/websql/esm2022/lib/typeorm/query-builder/QueryExpressionMap.mjs +0 -309
- package/websql/esm2022/lib/typeorm/query-builder/QueryPartialEntity.mjs +0 -3
- package/websql/esm2022/lib/typeorm/query-builder/RelationIdLoader.mjs +0 -452
- package/websql/esm2022/lib/typeorm/query-builder/RelationLoader.mjs +0 -262
- package/websql/esm2022/lib/typeorm/query-builder/RelationQueryBuilder.mjs +0 -147
- package/websql/esm2022/lib/typeorm/query-builder/RelationRemover.mjs +0 -130
- package/websql/esm2022/lib/typeorm/query-builder/RelationUpdater.mjs +0 -141
- package/websql/esm2022/lib/typeorm/query-builder/ReturningResultsEntityUpdator.mjs +0 -141
- package/websql/esm2022/lib/typeorm/query-builder/SelectQuery.mjs +0 -4
- package/websql/esm2022/lib/typeorm/query-builder/SelectQueryBuilder.mjs +0 -2278
- package/websql/esm2022/lib/typeorm/query-builder/SelectQueryBuilderOption.mjs +0 -3
- package/websql/esm2022/lib/typeorm/query-builder/SoftDeleteQueryBuilder.mjs +0 -348
- package/websql/esm2022/lib/typeorm/query-builder/UpdateQueryBuilder.mjs +0 -510
- package/websql/esm2022/lib/typeorm/query-builder/WhereClause.mjs +0 -3
- package/websql/esm2022/lib/typeorm/query-builder/WhereExpressionBuilder.mjs +0 -4
- package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountAttribute.mjs +0 -71
- package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.mjs +0 -4
- package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountLoader.mjs +0 -142
- package/websql/esm2022/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.mjs +0 -33
- package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdAttribute.mjs +0 -79
- package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.mjs +0 -4
- package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdLoader.mjs +0 -247
- package/websql/esm2022/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.mjs +0 -33
- package/websql/esm2022/lib/typeorm/query-builder/result/DeleteResult.mjs +0 -14
- package/websql/esm2022/lib/typeorm/query-builder/result/InsertResult.mjs +0 -25
- package/websql/esm2022/lib/typeorm/query-builder/result/UpdateResult.mjs +0 -25
- package/websql/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.mjs +0 -101
- package/websql/esm2022/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.mjs +0 -67
- package/websql/esm2022/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.mjs +0 -366
- package/websql/esm2022/lib/typeorm/query-runner/BaseQueryRunner.mjs +0 -392
- package/websql/esm2022/lib/typeorm/query-runner/QueryResult.mjs +0 -14
- package/websql/esm2022/lib/typeorm/query-runner/QueryRunner.mjs +0 -4
- package/websql/esm2022/lib/typeorm/repository/AbstractRepository.mjs +0 -80
- package/websql/esm2022/lib/typeorm/repository/BaseEntity.mjs +0 -283
- package/websql/esm2022/lib/typeorm/repository/FindTreesOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/repository/RemoveOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/repository/Repository.mjs +0 -275
- package/websql/esm2022/lib/typeorm/repository/SaveOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/repository/TreeRepository.mjs +0 -254
- package/websql/esm2022/lib/typeorm/repository/UpsertOptions.mjs +0 -7
- package/websql/esm2022/lib/typeorm/schema-builder/RdbmsSchemaBuilder.mjs +0 -770
- package/websql/esm2022/lib/typeorm/schema-builder/SchemaBuilder.mjs +0 -4
- package/websql/esm2022/lib/typeorm/schema-builder/options/TableCheckOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/schema-builder/options/TableColumnOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/schema-builder/options/TableExclusionOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/schema-builder/options/TableForeignKeyOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/schema-builder/options/TableIndexOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/schema-builder/options/TableOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/schema-builder/options/TableUniqueOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/schema-builder/options/ViewOptions.mjs +0 -4
- package/websql/esm2022/lib/typeorm/schema-builder/table/Table.mjs +0 -274
- package/websql/esm2022/lib/typeorm/schema-builder/table/TableCheck.mjs +0 -37
- package/websql/esm2022/lib/typeorm/schema-builder/table/TableColumn.mjs +0 -108
- package/websql/esm2022/lib/typeorm/schema-builder/table/TableExclusion.mjs +0 -31
- package/websql/esm2022/lib/typeorm/schema-builder/table/TableForeignKey.mjs +0 -60
- package/websql/esm2022/lib/typeorm/schema-builder/table/TableIndex.mjs +0 -53
- package/websql/esm2022/lib/typeorm/schema-builder/table/TableUnique.mjs +0 -38
- package/websql/esm2022/lib/typeorm/schema-builder/util/TableUtils.mjs +0 -38
- package/websql/esm2022/lib/typeorm/schema-builder/util/ViewUtils.mjs +0 -24
- package/websql/esm2022/lib/typeorm/schema-builder/view/View.mjs +0 -43
- package/websql/esm2022/lib/typeorm/subscriber/Broadcaster.mjs +0 -596
- package/websql/esm2022/lib/typeorm/subscriber/BroadcasterResult.mjs +0 -27
- package/websql/esm2022/lib/typeorm/subscriber/EntitySubscriberInterface.mjs +0 -4
- package/websql/esm2022/lib/typeorm/subscriber/event/InsertEvent.mjs +0 -4
- package/websql/esm2022/lib/typeorm/subscriber/event/LoadEvent.mjs +0 -4
- package/websql/esm2022/lib/typeorm/subscriber/event/RecoverEvent.mjs +0 -4
- package/websql/esm2022/lib/typeorm/subscriber/event/RemoveEvent.mjs +0 -4
- package/websql/esm2022/lib/typeorm/subscriber/event/SoftRemoveEvent.mjs +0 -4
- package/websql/esm2022/lib/typeorm/subscriber/event/TransactionCommitEvent.mjs +0 -4
- package/websql/esm2022/lib/typeorm/subscriber/event/TransactionRollbackEvent.mjs +0 -4
- package/websql/esm2022/lib/typeorm/subscriber/event/TransactionStartEvent.mjs +0 -4
- package/websql/esm2022/lib/typeorm/subscriber/event/UpdateEvent.mjs +0 -4
- package/websql/esm2022/lib/typeorm/util/ApplyValueTransformers.mjs +0 -22
- package/websql/esm2022/lib/typeorm/util/DateUtils.mjs +0 -216
- package/websql/esm2022/lib/typeorm/util/DepGraph.mjs +0 -222
- package/websql/esm2022/lib/typeorm/util/DirectoryExportedClassesLoader.mjs +0 -76
- package/websql/esm2022/lib/typeorm/util/ImportUtils.mjs +0 -86
- package/websql/esm2022/lib/typeorm/util/InstanceChecker.mjs +0 -114
- package/websql/esm2022/lib/typeorm/util/ObjectUtils.mjs +0 -38
- package/websql/esm2022/lib/typeorm/util/OrmUtils.mjs +0 -310
- package/websql/esm2022/lib/typeorm/util/PathUtils.mjs +0 -38
- package/websql/esm2022/lib/typeorm/util/RandomGenerator.mjs +0 -150
- package/websql/esm2022/lib/typeorm/util/StringUtils.mjs +0 -108
- package/websql/esm2022/lib/typeorm/util/TreeRepositoryUtils.mjs +0 -53
- package/websql/esm2022/lib/typeorm/util/VersionUtils.mjs +0 -17
- package/websql/esm2022/lib/typeorm/util/escapeRegExp.mjs +0 -4
- package/websql/esm2022/public-api.mjs +0 -2
- package/websql/esm2022/taon-typeorm.mjs +0 -5
|
@@ -1,678 +0,0 @@
|
|
|
1
|
-
import { EntityMetadata } from "../metadata/EntityMetadata";
|
|
2
|
-
import { ColumnMetadata } from "../metadata/ColumnMetadata";
|
|
3
|
-
import { IndexMetadata } from "../metadata/IndexMetadata";
|
|
4
|
-
import { RelationMetadata } from "../metadata/RelationMetadata";
|
|
5
|
-
import { EmbeddedMetadata } from "../metadata/EmbeddedMetadata";
|
|
6
|
-
import { RelationIdMetadata } from "../metadata/RelationIdMetadata";
|
|
7
|
-
import { RelationCountMetadata } from "../metadata/RelationCountMetadata";
|
|
8
|
-
import { EventListenerTypes } from "../metadata/types/EventListenerTypes";
|
|
9
|
-
import { MetadataUtils } from "./MetadataUtils";
|
|
10
|
-
import { JunctionEntityMetadataBuilder } from "./JunctionEntityMetadataBuilder";
|
|
11
|
-
import { ClosureJunctionEntityMetadataBuilder } from "./ClosureJunctionEntityMetadataBuilder";
|
|
12
|
-
import { RelationJoinColumnBuilder } from "./RelationJoinColumnBuilder";
|
|
13
|
-
import { EntityListenerMetadata } from "../metadata/EntityListenerMetadata";
|
|
14
|
-
import { UniqueMetadata } from "../metadata/UniqueMetadata";
|
|
15
|
-
import { CheckMetadata } from "../metadata/CheckMetadata";
|
|
16
|
-
import { ExclusionMetadata } from "../metadata/ExclusionMetadata";
|
|
17
|
-
import { TypeORMError } from "../error";
|
|
18
|
-
import { DriverUtils } from "../driver/DriverUtils";
|
|
19
|
-
/**
|
|
20
|
-
* Builds EntityMetadata objects and all its sub-metadatas.
|
|
21
|
-
*/
|
|
22
|
-
export class EntityMetadataBuilder {
|
|
23
|
-
constructor(connection, metadataArgsStorage) {
|
|
24
|
-
this.connection = connection;
|
|
25
|
-
this.metadataArgsStorage = metadataArgsStorage;
|
|
26
|
-
this.junctionEntityMetadataBuilder = new JunctionEntityMetadataBuilder(connection);
|
|
27
|
-
this.closureJunctionEntityMetadataBuilder =
|
|
28
|
-
new ClosureJunctionEntityMetadataBuilder(connection);
|
|
29
|
-
this.relationJoinColumnBuilder = new RelationJoinColumnBuilder(connection);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Builds a complete entity metadatas for the given entity classes.
|
|
33
|
-
*/
|
|
34
|
-
build(entityClasses) {
|
|
35
|
-
const allTables = entityClasses
|
|
36
|
-
? this.metadataArgsStorage.filterTables(entityClasses)
|
|
37
|
-
: this.metadataArgsStorage.tables;
|
|
38
|
-
const realTables = allTables.filter((table) => table.type === "regular" ||
|
|
39
|
-
table.type === "closure" ||
|
|
40
|
-
table.type === "entity-child" ||
|
|
41
|
-
table.type === "view");
|
|
42
|
-
const entityMetadatas = realTables.map((tableArgs) => this.createEntityMetadata(tableArgs));
|
|
43
|
-
entityMetadatas.forEach((entityMetadata) => this.computeParentEntityMetadata(entityMetadatas, entityMetadata));
|
|
44
|
-
entityMetadatas.forEach((metadata) => {
|
|
45
|
-
metadata.childEntityMetadatas = entityMetadatas.filter((childMetadata) => {
|
|
46
|
-
return (typeof metadata.target === "function" &&
|
|
47
|
-
typeof childMetadata.target === "function" &&
|
|
48
|
-
MetadataUtils.isInherited(childMetadata.target, metadata.target));
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
entityMetadatas
|
|
52
|
-
.filter((entityMetadata) => entityMetadata.tableType !== "entity-child")
|
|
53
|
-
.forEach((entityMetadata) => entityMetadata.build());
|
|
54
|
-
entityMetadatas
|
|
55
|
-
.filter((entityMetadata) => entityMetadata.tableType === "entity-child")
|
|
56
|
-
.forEach((entityMetadata) => entityMetadata.build());
|
|
57
|
-
entityMetadatas
|
|
58
|
-
.filter((entityMetadata) => entityMetadata.tableType !== "entity-child")
|
|
59
|
-
.forEach((entityMetadata) => this.computeEntityMetadataStep1(entityMetadatas, entityMetadata));
|
|
60
|
-
entityMetadatas
|
|
61
|
-
.filter((entityMetadata) => entityMetadata.tableType === "entity-child")
|
|
62
|
-
.forEach((entityMetadata) => this.computeEntityMetadataStep1(entityMetadatas, entityMetadata));
|
|
63
|
-
entityMetadatas.forEach((entityMetadata) => this.computeEntityMetadataStep2(entityMetadata));
|
|
64
|
-
entityMetadatas.forEach((entityMetadata) => this.computeInverseProperties(entityMetadata, entityMetadatas));
|
|
65
|
-
entityMetadatas
|
|
66
|
-
.filter((entityMetadata) => entityMetadata.tableType !== "entity-child")
|
|
67
|
-
.forEach((entityMetadata) => {
|
|
68
|
-
entityMetadata.relations
|
|
69
|
-
.filter((relation) => relation.isOneToOne || relation.isManyToOne)
|
|
70
|
-
.forEach((relation) => {
|
|
71
|
-
const joinColumns = this.metadataArgsStorage.filterJoinColumns(relation.target, relation.propertyName);
|
|
72
|
-
const { foreignKey, columns, uniqueConstraint } = this.relationJoinColumnBuilder.build(joinColumns, relation); // create a foreign key based on its metadata args
|
|
73
|
-
if (foreignKey) {
|
|
74
|
-
relation.registerForeignKeys(foreignKey); // push it to the relation and thus register there a join column
|
|
75
|
-
entityMetadata.foreignKeys.push(foreignKey);
|
|
76
|
-
}
|
|
77
|
-
if (columns) {
|
|
78
|
-
relation.registerJoinColumns(columns);
|
|
79
|
-
}
|
|
80
|
-
if (uniqueConstraint) {
|
|
81
|
-
if (DriverUtils.isMySQLFamily(this.connection.driver) ||
|
|
82
|
-
this.connection.driver.options.type ===
|
|
83
|
-
"aurora-mysql" ||
|
|
84
|
-
this.connection.driver.options.type ===
|
|
85
|
-
"mssql" ||
|
|
86
|
-
this.connection.driver.options.type === "sap" ||
|
|
87
|
-
this.connection.driver.options.type ===
|
|
88
|
-
"spanner") {
|
|
89
|
-
const index = new IndexMetadata({
|
|
90
|
-
entityMetadata: uniqueConstraint.entityMetadata,
|
|
91
|
-
columns: uniqueConstraint.columns,
|
|
92
|
-
args: {
|
|
93
|
-
target: uniqueConstraint.target,
|
|
94
|
-
name: uniqueConstraint.name,
|
|
95
|
-
unique: true,
|
|
96
|
-
synchronize: true,
|
|
97
|
-
},
|
|
98
|
-
});
|
|
99
|
-
if (this.connection.driver.options.type ===
|
|
100
|
-
"mssql") {
|
|
101
|
-
index.where = index.columns
|
|
102
|
-
.map((column) => {
|
|
103
|
-
return `${this.connection.driver.escape(column.databaseName)} IS NOT NULL`;
|
|
104
|
-
})
|
|
105
|
-
.join(" AND ");
|
|
106
|
-
}
|
|
107
|
-
if (this.connection.driver.options.type ===
|
|
108
|
-
"spanner") {
|
|
109
|
-
index.isNullFiltered = true;
|
|
110
|
-
}
|
|
111
|
-
if (relation.embeddedMetadata) {
|
|
112
|
-
relation.embeddedMetadata.indices.push(index);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
relation.entityMetadata.ownIndices.push(index);
|
|
116
|
-
}
|
|
117
|
-
this.computeEntityMetadataStep2(entityMetadata);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
if (relation.embeddedMetadata) {
|
|
121
|
-
relation.embeddedMetadata.uniques.push(uniqueConstraint);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
relation.entityMetadata.ownUniques.push(uniqueConstraint);
|
|
125
|
-
}
|
|
126
|
-
this.computeEntityMetadataStep2(entityMetadata);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
if (foreignKey &&
|
|
130
|
-
this.connection.driver.options.type ===
|
|
131
|
-
"cockroachdb") {
|
|
132
|
-
const index = new IndexMetadata({
|
|
133
|
-
entityMetadata: relation.entityMetadata,
|
|
134
|
-
columns: foreignKey.columns,
|
|
135
|
-
args: {
|
|
136
|
-
target: relation.entityMetadata.target,
|
|
137
|
-
synchronize: true,
|
|
138
|
-
},
|
|
139
|
-
});
|
|
140
|
-
if (relation.embeddedMetadata) {
|
|
141
|
-
relation.embeddedMetadata.indices.push(index);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
relation.entityMetadata.ownIndices.push(index);
|
|
145
|
-
}
|
|
146
|
-
this.computeEntityMetadataStep2(entityMetadata);
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
entityMetadata.relations
|
|
150
|
-
.filter((relation) => relation.isManyToMany)
|
|
151
|
-
.forEach((relation) => {
|
|
152
|
-
const joinTable = this.metadataArgsStorage.findJoinTable(relation.target, relation.propertyName);
|
|
153
|
-
if (!joinTable)
|
|
154
|
-
return; // no join table set - no need to do anything (it means this is many-to-many inverse side)
|
|
155
|
-
const junctionEntityMetadata = this.junctionEntityMetadataBuilder.build(relation, joinTable);
|
|
156
|
-
relation.registerForeignKeys(...junctionEntityMetadata.foreignKeys);
|
|
157
|
-
relation.registerJoinColumns(junctionEntityMetadata.ownIndices[0].columns, junctionEntityMetadata.ownIndices[1].columns);
|
|
158
|
-
relation.registerJunctionEntityMetadata(junctionEntityMetadata);
|
|
159
|
-
this.computeEntityMetadataStep2(junctionEntityMetadata);
|
|
160
|
-
this.computeInverseProperties(junctionEntityMetadata, entityMetadatas);
|
|
161
|
-
entityMetadatas.push(junctionEntityMetadata);
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
entityMetadatas.forEach((entityMetadata) => {
|
|
165
|
-
entityMetadata.relationsWithJoinColumns =
|
|
166
|
-
entityMetadata.relations.filter((relation) => relation.isWithJoinColumn);
|
|
167
|
-
entityMetadata.hasNonNullableRelations =
|
|
168
|
-
entityMetadata.relationsWithJoinColumns.some((relation) => !relation.isNullable || relation.isPrimary);
|
|
169
|
-
});
|
|
170
|
-
entityMetadatas
|
|
171
|
-
.filter((metadata) => metadata.treeType === "closure-table")
|
|
172
|
-
.forEach((entityMetadata) => {
|
|
173
|
-
const closureJunctionEntityMetadata = this.closureJunctionEntityMetadataBuilder.build(entityMetadata);
|
|
174
|
-
entityMetadata.closureJunctionTable =
|
|
175
|
-
closureJunctionEntityMetadata;
|
|
176
|
-
this.computeEntityMetadataStep2(closureJunctionEntityMetadata);
|
|
177
|
-
this.computeInverseProperties(closureJunctionEntityMetadata, entityMetadatas);
|
|
178
|
-
entityMetadatas.push(closureJunctionEntityMetadata);
|
|
179
|
-
});
|
|
180
|
-
entityMetadatas
|
|
181
|
-
.filter((metadata) => metadata.inheritancePattern === "STI" &&
|
|
182
|
-
metadata.discriminatorColumn)
|
|
183
|
-
.forEach((entityMetadata) => this.createKeysForTableInheritance(entityMetadata));
|
|
184
|
-
entityMetadatas.forEach((entityMetadata) => {
|
|
185
|
-
entityMetadata.indices.forEach((index) => index.build(this.connection.namingStrategy));
|
|
186
|
-
});
|
|
187
|
-
entityMetadatas.forEach((entityMetadata) => {
|
|
188
|
-
entityMetadata.uniques.forEach((unique) => unique.build(this.connection.namingStrategy));
|
|
189
|
-
});
|
|
190
|
-
entityMetadatas.forEach((entityMetadata) => {
|
|
191
|
-
entityMetadata.checks.forEach((check) => check.build(this.connection.namingStrategy));
|
|
192
|
-
});
|
|
193
|
-
entityMetadatas.forEach((entityMetadata) => {
|
|
194
|
-
entityMetadata.exclusions.forEach((exclusion) => exclusion.build(this.connection.namingStrategy));
|
|
195
|
-
});
|
|
196
|
-
entityMetadatas
|
|
197
|
-
.filter((metadata) => typeof metadata.target === "function")
|
|
198
|
-
.forEach((entityMetadata) => {
|
|
199
|
-
entityMetadata.relations
|
|
200
|
-
.filter((relation) => relation.isLazy)
|
|
201
|
-
.forEach((relation) => {
|
|
202
|
-
this.connection.relationLoader.enableLazyLoad(relation, entityMetadata.target.prototype);
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
entityMetadatas.forEach((entityMetadata) => {
|
|
206
|
-
entityMetadata.columns.forEach((column) => {
|
|
207
|
-
const generated = this.metadataArgsStorage.findGenerated(column.target, column.propertyName);
|
|
208
|
-
if (generated) {
|
|
209
|
-
column.isGenerated = true;
|
|
210
|
-
column.generationStrategy = generated.strategy;
|
|
211
|
-
if (generated.strategy === "uuid") {
|
|
212
|
-
column.type = "uuid";
|
|
213
|
-
}
|
|
214
|
-
else if (generated.strategy === "rowid") {
|
|
215
|
-
column.type = "int";
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
column.type = column.type || Number;
|
|
219
|
-
}
|
|
220
|
-
column.build(this.connection);
|
|
221
|
-
this.computeEntityMetadataStep2(entityMetadata);
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
});
|
|
225
|
-
return entityMetadatas;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Creates entity metadata from the given table args.
|
|
229
|
-
* Creates column, relation, etc. metadatas for everything this entity metadata owns.
|
|
230
|
-
*/
|
|
231
|
-
createEntityMetadata(tableArgs) {
|
|
232
|
-
const inheritanceTree = typeof tableArgs.target === "function"
|
|
233
|
-
? MetadataUtils.getInheritanceTree(tableArgs.target)
|
|
234
|
-
: [tableArgs.target]; // todo: implement later here inheritance for string-targets
|
|
235
|
-
const tableInheritance = this.metadataArgsStorage.findInheritanceType(tableArgs.target);
|
|
236
|
-
const tableTree = this.metadataArgsStorage.findTree(tableArgs.target);
|
|
237
|
-
let singleTableChildrenTargets;
|
|
238
|
-
if ((tableInheritance && tableInheritance.pattern === "STI") ||
|
|
239
|
-
tableArgs.type === "entity-child") {
|
|
240
|
-
singleTableChildrenTargets = this.metadataArgsStorage
|
|
241
|
-
.filterSingleTableChildren(tableArgs.target)
|
|
242
|
-
.map((args) => args.target)
|
|
243
|
-
.filter((target) => typeof target === "function");
|
|
244
|
-
inheritanceTree.push(...singleTableChildrenTargets);
|
|
245
|
-
}
|
|
246
|
-
return new EntityMetadata({
|
|
247
|
-
connection: this.connection,
|
|
248
|
-
args: tableArgs,
|
|
249
|
-
inheritanceTree: inheritanceTree,
|
|
250
|
-
tableTree: tableTree,
|
|
251
|
-
inheritancePattern: tableInheritance
|
|
252
|
-
? tableInheritance.pattern
|
|
253
|
-
: undefined,
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
computeParentEntityMetadata(allEntityMetadatas, entityMetadata) {
|
|
257
|
-
if (entityMetadata.tableType === "entity-child") {
|
|
258
|
-
entityMetadata.parentEntityMetadata = allEntityMetadatas.find((allEntityMetadata) => {
|
|
259
|
-
return (allEntityMetadata.inheritanceTree.indexOf(entityMetadata.target) !== -1 &&
|
|
260
|
-
allEntityMetadata.inheritancePattern === "STI");
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
computeEntityMetadataStep1(allEntityMetadatas, entityMetadata) {
|
|
265
|
-
const entityInheritance = this.metadataArgsStorage.findInheritanceType(entityMetadata.target);
|
|
266
|
-
const discriminatorValue = this.metadataArgsStorage.findDiscriminatorValue(entityMetadata.target);
|
|
267
|
-
if (typeof discriminatorValue !== "undefined") {
|
|
268
|
-
entityMetadata.discriminatorValue = discriminatorValue.value;
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
entityMetadata.discriminatorValue = entityMetadata.target.name;
|
|
272
|
-
}
|
|
273
|
-
entityMetadata.embeddeds = this.createEmbeddedsRecursively(entityMetadata, this.metadataArgsStorage.filterEmbeddeds(entityMetadata.inheritanceTree)).map((embedded) => {
|
|
274
|
-
if (entityMetadata.inheritancePattern === "STI") {
|
|
275
|
-
embedded.columns = embedded.columns.map((column) => {
|
|
276
|
-
column.isNullable = true;
|
|
277
|
-
return column;
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
return embedded;
|
|
281
|
-
});
|
|
282
|
-
entityMetadata.ownColumns = this.metadataArgsStorage
|
|
283
|
-
.filterColumns(entityMetadata.inheritanceTree)
|
|
284
|
-
.map((args) => {
|
|
285
|
-
if (entityMetadata.tableType === "entity-child")
|
|
286
|
-
return entityMetadata.parentEntityMetadata.ownColumns.find((column) => column.propertyName === args.propertyName);
|
|
287
|
-
const column = new ColumnMetadata({
|
|
288
|
-
connection: this.connection,
|
|
289
|
-
entityMetadata,
|
|
290
|
-
args,
|
|
291
|
-
});
|
|
292
|
-
const columnInSingleTableInheritedChild = allEntityMetadatas.find((otherEntityMetadata) => otherEntityMetadata.tableType === "entity-child" &&
|
|
293
|
-
otherEntityMetadata.target === args.target);
|
|
294
|
-
if (columnInSingleTableInheritedChild)
|
|
295
|
-
column.isNullable = true;
|
|
296
|
-
return column;
|
|
297
|
-
});
|
|
298
|
-
//
|
|
299
|
-
if (entityInheritance && entityInheritance.column) {
|
|
300
|
-
const discriminatorColumnName = entityInheritance.column && entityInheritance.column.name
|
|
301
|
-
? entityInheritance.column.name
|
|
302
|
-
: "type";
|
|
303
|
-
let discriminatorColumn = entityMetadata.ownColumns.find((column) => column.propertyName === discriminatorColumnName);
|
|
304
|
-
if (!discriminatorColumn) {
|
|
305
|
-
discriminatorColumn = new ColumnMetadata({
|
|
306
|
-
connection: this.connection,
|
|
307
|
-
entityMetadata: entityMetadata,
|
|
308
|
-
args: {
|
|
309
|
-
target: entityMetadata.target,
|
|
310
|
-
mode: "virtual",
|
|
311
|
-
propertyName: discriminatorColumnName,
|
|
312
|
-
options: entityInheritance.column || {
|
|
313
|
-
name: discriminatorColumnName,
|
|
314
|
-
type: "varchar",
|
|
315
|
-
nullable: false,
|
|
316
|
-
},
|
|
317
|
-
},
|
|
318
|
-
});
|
|
319
|
-
discriminatorColumn.isVirtual = true;
|
|
320
|
-
discriminatorColumn.isDiscriminator = true;
|
|
321
|
-
entityMetadata.ownColumns.push(discriminatorColumn);
|
|
322
|
-
}
|
|
323
|
-
else {
|
|
324
|
-
discriminatorColumn.isDiscriminator = true;
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
if (entityMetadata.tableType === "entity-child") {
|
|
328
|
-
const discriminatorColumn = entityMetadata.parentEntityMetadata.ownColumns.find((column) => column.isDiscriminator);
|
|
329
|
-
if (discriminatorColumn &&
|
|
330
|
-
!entityMetadata.ownColumns.find((column) => column === discriminatorColumn)) {
|
|
331
|
-
entityMetadata.ownColumns.push(discriminatorColumn);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
const { namingStrategy } = this.connection;
|
|
335
|
-
if (entityMetadata.treeType === "materialized-path") {
|
|
336
|
-
entityMetadata.ownColumns.push(new ColumnMetadata({
|
|
337
|
-
connection: this.connection,
|
|
338
|
-
entityMetadata: entityMetadata,
|
|
339
|
-
materializedPath: true,
|
|
340
|
-
args: {
|
|
341
|
-
target: entityMetadata.target,
|
|
342
|
-
mode: "virtual",
|
|
343
|
-
propertyName: "mpath",
|
|
344
|
-
options: /*tree.column || */ {
|
|
345
|
-
name: namingStrategy.materializedPathColumnName,
|
|
346
|
-
type: String,
|
|
347
|
-
nullable: true,
|
|
348
|
-
default: "",
|
|
349
|
-
},
|
|
350
|
-
},
|
|
351
|
-
}));
|
|
352
|
-
}
|
|
353
|
-
else if (entityMetadata.treeType === "nested-set") {
|
|
354
|
-
const { left, right } = namingStrategy.nestedSetColumnNames;
|
|
355
|
-
entityMetadata.ownColumns.push(new ColumnMetadata({
|
|
356
|
-
connection: this.connection,
|
|
357
|
-
entityMetadata: entityMetadata,
|
|
358
|
-
nestedSetLeft: true,
|
|
359
|
-
args: {
|
|
360
|
-
target: entityMetadata.target,
|
|
361
|
-
mode: "virtual",
|
|
362
|
-
propertyName: left,
|
|
363
|
-
options: /*tree.column || */ {
|
|
364
|
-
name: left,
|
|
365
|
-
type: Number,
|
|
366
|
-
nullable: false,
|
|
367
|
-
default: 1,
|
|
368
|
-
},
|
|
369
|
-
},
|
|
370
|
-
}));
|
|
371
|
-
entityMetadata.ownColumns.push(new ColumnMetadata({
|
|
372
|
-
connection: this.connection,
|
|
373
|
-
entityMetadata: entityMetadata,
|
|
374
|
-
nestedSetRight: true,
|
|
375
|
-
args: {
|
|
376
|
-
target: entityMetadata.target,
|
|
377
|
-
mode: "virtual",
|
|
378
|
-
propertyName: right,
|
|
379
|
-
options: /*tree.column || */ {
|
|
380
|
-
name: right,
|
|
381
|
-
type: Number,
|
|
382
|
-
nullable: false,
|
|
383
|
-
default: 2,
|
|
384
|
-
},
|
|
385
|
-
},
|
|
386
|
-
}));
|
|
387
|
-
}
|
|
388
|
-
entityMetadata.ownRelations = this.metadataArgsStorage
|
|
389
|
-
.filterRelations(entityMetadata.inheritanceTree)
|
|
390
|
-
.map((args) => {
|
|
391
|
-
if (entityMetadata.tableType === "entity-child") {
|
|
392
|
-
const parentRelation = entityMetadata.parentEntityMetadata.ownRelations.find((relation) => relation.propertyName === args.propertyName);
|
|
393
|
-
const type = typeof args.type === "function"
|
|
394
|
-
? args.type()
|
|
395
|
-
: args.type;
|
|
396
|
-
if (parentRelation.type !== type) {
|
|
397
|
-
const clone = Object.create(parentRelation);
|
|
398
|
-
clone.type = type;
|
|
399
|
-
return clone;
|
|
400
|
-
}
|
|
401
|
-
return parentRelation;
|
|
402
|
-
}
|
|
403
|
-
return new RelationMetadata({ entityMetadata, args });
|
|
404
|
-
});
|
|
405
|
-
entityMetadata.relationIds = this.metadataArgsStorage
|
|
406
|
-
.filterRelationIds(entityMetadata.inheritanceTree)
|
|
407
|
-
.map((args) => {
|
|
408
|
-
if (entityMetadata.tableType === "entity-child")
|
|
409
|
-
return entityMetadata.parentEntityMetadata.relationIds.find((relationId) => relationId.propertyName === args.propertyName);
|
|
410
|
-
return new RelationIdMetadata({ entityMetadata, args });
|
|
411
|
-
});
|
|
412
|
-
entityMetadata.relationCounts = this.metadataArgsStorage
|
|
413
|
-
.filterRelationCounts(entityMetadata.inheritanceTree)
|
|
414
|
-
.map((args) => {
|
|
415
|
-
if (entityMetadata.tableType === "entity-child")
|
|
416
|
-
return entityMetadata.parentEntityMetadata.relationCounts.find((relationCount) => relationCount.propertyName === args.propertyName);
|
|
417
|
-
return new RelationCountMetadata({ entityMetadata, args });
|
|
418
|
-
});
|
|
419
|
-
entityMetadata.ownListeners = this.metadataArgsStorage
|
|
420
|
-
.filterListeners(entityMetadata.inheritanceTree)
|
|
421
|
-
.map((args) => {
|
|
422
|
-
return new EntityListenerMetadata({
|
|
423
|
-
entityMetadata: entityMetadata,
|
|
424
|
-
args: args,
|
|
425
|
-
});
|
|
426
|
-
});
|
|
427
|
-
entityMetadata.checks = this.metadataArgsStorage
|
|
428
|
-
.filterChecks(entityMetadata.inheritanceTree)
|
|
429
|
-
.map((args) => {
|
|
430
|
-
return new CheckMetadata({ entityMetadata, args });
|
|
431
|
-
});
|
|
432
|
-
if (this.connection.driver.options.type === "postgres") {
|
|
433
|
-
entityMetadata.exclusions = this.metadataArgsStorage
|
|
434
|
-
.filterExclusions(entityMetadata.inheritanceTree)
|
|
435
|
-
.map((args) => {
|
|
436
|
-
return new ExclusionMetadata({ entityMetadata, args });
|
|
437
|
-
});
|
|
438
|
-
}
|
|
439
|
-
if (this.connection.driver.options.type === "cockroachdb") {
|
|
440
|
-
entityMetadata.ownIndices = this.metadataArgsStorage
|
|
441
|
-
.filterIndices(entityMetadata.inheritanceTree)
|
|
442
|
-
.filter((args) => !args.unique)
|
|
443
|
-
.map((args) => {
|
|
444
|
-
return new IndexMetadata({ entityMetadata, args });
|
|
445
|
-
});
|
|
446
|
-
const uniques = this.metadataArgsStorage
|
|
447
|
-
.filterIndices(entityMetadata.inheritanceTree)
|
|
448
|
-
.filter((args) => args.unique)
|
|
449
|
-
.map((args) => {
|
|
450
|
-
return new UniqueMetadata({
|
|
451
|
-
entityMetadata: entityMetadata,
|
|
452
|
-
args: {
|
|
453
|
-
target: args.target,
|
|
454
|
-
name: args.name,
|
|
455
|
-
columns: args.columns,
|
|
456
|
-
},
|
|
457
|
-
});
|
|
458
|
-
});
|
|
459
|
-
entityMetadata.ownUniques.push(...uniques);
|
|
460
|
-
}
|
|
461
|
-
else {
|
|
462
|
-
entityMetadata.ownIndices = this.metadataArgsStorage
|
|
463
|
-
.filterIndices(entityMetadata.inheritanceTree)
|
|
464
|
-
.map((args) => {
|
|
465
|
-
return new IndexMetadata({ entityMetadata, args });
|
|
466
|
-
});
|
|
467
|
-
}
|
|
468
|
-
if (DriverUtils.isMySQLFamily(this.connection.driver) ||
|
|
469
|
-
this.connection.driver.options.type === "aurora-mysql" ||
|
|
470
|
-
this.connection.driver.options.type === "sap" ||
|
|
471
|
-
this.connection.driver.options.type === "spanner") {
|
|
472
|
-
const indices = this.metadataArgsStorage
|
|
473
|
-
.filterUniques(entityMetadata.inheritanceTree)
|
|
474
|
-
.map((args) => {
|
|
475
|
-
return new IndexMetadata({
|
|
476
|
-
entityMetadata: entityMetadata,
|
|
477
|
-
args: {
|
|
478
|
-
target: args.target,
|
|
479
|
-
name: args.name,
|
|
480
|
-
columns: args.columns,
|
|
481
|
-
unique: true,
|
|
482
|
-
synchronize: true,
|
|
483
|
-
},
|
|
484
|
-
});
|
|
485
|
-
});
|
|
486
|
-
entityMetadata.ownIndices.push(...indices);
|
|
487
|
-
}
|
|
488
|
-
else {
|
|
489
|
-
const uniques = this.metadataArgsStorage
|
|
490
|
-
.filterUniques(entityMetadata.inheritanceTree)
|
|
491
|
-
.map((args) => {
|
|
492
|
-
return new UniqueMetadata({ entityMetadata, args });
|
|
493
|
-
});
|
|
494
|
-
entityMetadata.ownUniques.push(...uniques);
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
/**
|
|
498
|
-
* Creates from the given embedded metadata args real embedded metadatas with its columns and relations,
|
|
499
|
-
* and does the same for all its sub-embeddeds (goes recursively).
|
|
500
|
-
*/
|
|
501
|
-
createEmbeddedsRecursively(entityMetadata, embeddedArgs) {
|
|
502
|
-
return embeddedArgs.map((embeddedArgs) => {
|
|
503
|
-
const embeddedMetadata = new EmbeddedMetadata({
|
|
504
|
-
entityMetadata: entityMetadata,
|
|
505
|
-
args: embeddedArgs,
|
|
506
|
-
});
|
|
507
|
-
const targets = typeof embeddedMetadata.type === "function"
|
|
508
|
-
? MetadataUtils.getInheritanceTree(embeddedMetadata.type)
|
|
509
|
-
: [embeddedMetadata.type]; // todo: implement later here inheritance for string-targets
|
|
510
|
-
embeddedMetadata.columns = this.metadataArgsStorage
|
|
511
|
-
.filterColumns(targets)
|
|
512
|
-
.map((args) => {
|
|
513
|
-
return new ColumnMetadata({
|
|
514
|
-
connection: this.connection,
|
|
515
|
-
entityMetadata,
|
|
516
|
-
embeddedMetadata,
|
|
517
|
-
args,
|
|
518
|
-
});
|
|
519
|
-
});
|
|
520
|
-
embeddedMetadata.relations = this.metadataArgsStorage
|
|
521
|
-
.filterRelations(targets)
|
|
522
|
-
.map((args) => {
|
|
523
|
-
return new RelationMetadata({
|
|
524
|
-
entityMetadata,
|
|
525
|
-
embeddedMetadata,
|
|
526
|
-
args,
|
|
527
|
-
});
|
|
528
|
-
});
|
|
529
|
-
embeddedMetadata.listeners = this.metadataArgsStorage
|
|
530
|
-
.filterListeners(targets)
|
|
531
|
-
.map((args) => {
|
|
532
|
-
return new EntityListenerMetadata({
|
|
533
|
-
entityMetadata,
|
|
534
|
-
embeddedMetadata,
|
|
535
|
-
args,
|
|
536
|
-
});
|
|
537
|
-
});
|
|
538
|
-
embeddedMetadata.indices = this.metadataArgsStorage
|
|
539
|
-
.filterIndices(targets)
|
|
540
|
-
.map((args) => {
|
|
541
|
-
return new IndexMetadata({
|
|
542
|
-
entityMetadata,
|
|
543
|
-
embeddedMetadata,
|
|
544
|
-
args,
|
|
545
|
-
});
|
|
546
|
-
});
|
|
547
|
-
embeddedMetadata.uniques = this.metadataArgsStorage
|
|
548
|
-
.filterUniques(targets)
|
|
549
|
-
.map((args) => {
|
|
550
|
-
return new UniqueMetadata({
|
|
551
|
-
entityMetadata,
|
|
552
|
-
embeddedMetadata,
|
|
553
|
-
args,
|
|
554
|
-
});
|
|
555
|
-
});
|
|
556
|
-
embeddedMetadata.relationIds = this.metadataArgsStorage
|
|
557
|
-
.filterRelationIds(targets)
|
|
558
|
-
.map((args) => {
|
|
559
|
-
return new RelationIdMetadata({ entityMetadata, args });
|
|
560
|
-
});
|
|
561
|
-
embeddedMetadata.relationCounts = this.metadataArgsStorage
|
|
562
|
-
.filterRelationCounts(targets)
|
|
563
|
-
.map((args) => {
|
|
564
|
-
return new RelationCountMetadata({ entityMetadata, args });
|
|
565
|
-
});
|
|
566
|
-
embeddedMetadata.embeddeds = this.createEmbeddedsRecursively(entityMetadata, this.metadataArgsStorage.filterEmbeddeds(targets));
|
|
567
|
-
embeddedMetadata.embeddeds.forEach((subEmbedded) => (subEmbedded.parentEmbeddedMetadata = embeddedMetadata));
|
|
568
|
-
entityMetadata.allEmbeddeds.push(embeddedMetadata);
|
|
569
|
-
return embeddedMetadata;
|
|
570
|
-
});
|
|
571
|
-
}
|
|
572
|
-
/**
|
|
573
|
-
* Computes all entity metadata's computed properties, and all its sub-metadatas (relations, columns, embeds, etc).
|
|
574
|
-
*/
|
|
575
|
-
computeEntityMetadataStep2(entityMetadata) {
|
|
576
|
-
entityMetadata.embeddeds.forEach((embedded) => embedded.build(this.connection));
|
|
577
|
-
entityMetadata.embeddeds.forEach((embedded) => {
|
|
578
|
-
embedded.columnsFromTree.forEach((column) => column.build(this.connection));
|
|
579
|
-
embedded.relationsFromTree.forEach((relation) => relation.build());
|
|
580
|
-
});
|
|
581
|
-
entityMetadata.ownColumns.forEach((column) => column.build(this.connection));
|
|
582
|
-
entityMetadata.ownRelations.forEach((relation) => relation.build());
|
|
583
|
-
entityMetadata.relations = entityMetadata.embeddeds.reduce((relations, embedded) => relations.concat(embedded.relationsFromTree), entityMetadata.ownRelations);
|
|
584
|
-
entityMetadata.eagerRelations = entityMetadata.relations.filter((relation) => relation.isEager);
|
|
585
|
-
entityMetadata.lazyRelations = entityMetadata.relations.filter((relation) => relation.isLazy);
|
|
586
|
-
entityMetadata.oneToOneRelations = entityMetadata.relations.filter((relation) => relation.isOneToOne);
|
|
587
|
-
entityMetadata.oneToManyRelations = entityMetadata.relations.filter((relation) => relation.isOneToMany);
|
|
588
|
-
entityMetadata.manyToOneRelations = entityMetadata.relations.filter((relation) => relation.isManyToOne);
|
|
589
|
-
entityMetadata.manyToManyRelations = entityMetadata.relations.filter((relation) => relation.isManyToMany);
|
|
590
|
-
entityMetadata.ownerOneToOneRelations = entityMetadata.relations.filter((relation) => relation.isOneToOneOwner);
|
|
591
|
-
entityMetadata.ownerManyToManyRelations =
|
|
592
|
-
entityMetadata.relations.filter((relation) => relation.isManyToManyOwner);
|
|
593
|
-
entityMetadata.treeParentRelation = entityMetadata.relations.find((relation) => relation.isTreeParent);
|
|
594
|
-
entityMetadata.treeChildrenRelation = entityMetadata.relations.find((relation) => relation.isTreeChildren);
|
|
595
|
-
entityMetadata.columns = entityMetadata.embeddeds.reduce((columns, embedded) => columns.concat(embedded.columnsFromTree), entityMetadata.ownColumns);
|
|
596
|
-
entityMetadata.listeners = entityMetadata.embeddeds.reduce((listeners, embedded) => listeners.concat(embedded.listenersFromTree), entityMetadata.ownListeners);
|
|
597
|
-
entityMetadata.afterLoadListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_LOAD);
|
|
598
|
-
entityMetadata.afterInsertListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_INSERT);
|
|
599
|
-
entityMetadata.afterUpdateListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_UPDATE);
|
|
600
|
-
entityMetadata.afterRemoveListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_REMOVE);
|
|
601
|
-
entityMetadata.afterSoftRemoveListeners =
|
|
602
|
-
entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_SOFT_REMOVE);
|
|
603
|
-
entityMetadata.afterRecoverListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.AFTER_RECOVER);
|
|
604
|
-
entityMetadata.beforeInsertListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_INSERT);
|
|
605
|
-
entityMetadata.beforeUpdateListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_UPDATE);
|
|
606
|
-
entityMetadata.beforeRemoveListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_REMOVE);
|
|
607
|
-
entityMetadata.beforeSoftRemoveListeners =
|
|
608
|
-
entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_SOFT_REMOVE);
|
|
609
|
-
entityMetadata.beforeRecoverListeners = entityMetadata.listeners.filter((listener) => listener.type === EventListenerTypes.BEFORE_RECOVER);
|
|
610
|
-
entityMetadata.indices = entityMetadata.embeddeds.reduce((indices, embedded) => indices.concat(embedded.indicesFromTree), entityMetadata.ownIndices);
|
|
611
|
-
entityMetadata.uniques = entityMetadata.embeddeds.reduce((uniques, embedded) => uniques.concat(embedded.uniquesFromTree), entityMetadata.ownUniques);
|
|
612
|
-
entityMetadata.primaryColumns = entityMetadata.columns.filter((column) => column.isPrimary);
|
|
613
|
-
entityMetadata.nonVirtualColumns = entityMetadata.columns.filter((column) => !column.isVirtual);
|
|
614
|
-
entityMetadata.ancestorColumns = entityMetadata.columns.filter((column) => column.closureType === "ancestor");
|
|
615
|
-
entityMetadata.descendantColumns = entityMetadata.columns.filter((column) => column.closureType === "descendant");
|
|
616
|
-
entityMetadata.hasMultiplePrimaryKeys =
|
|
617
|
-
entityMetadata.primaryColumns.length > 1;
|
|
618
|
-
entityMetadata.generatedColumns = entityMetadata.columns.filter((column) => column.isGenerated || column.isObjectId);
|
|
619
|
-
entityMetadata.hasUUIDGeneratedColumns =
|
|
620
|
-
entityMetadata.columns.filter((column) => column.isGenerated || column.generationStrategy === "uuid").length > 0;
|
|
621
|
-
entityMetadata.createDateColumn = entityMetadata.columns.find((column) => column.isCreateDate);
|
|
622
|
-
entityMetadata.updateDateColumn = entityMetadata.columns.find((column) => column.isUpdateDate);
|
|
623
|
-
entityMetadata.deleteDateColumn = entityMetadata.columns.find((column) => column.isDeleteDate);
|
|
624
|
-
entityMetadata.versionColumn = entityMetadata.columns.find((column) => column.isVersion);
|
|
625
|
-
entityMetadata.discriminatorColumn = entityMetadata.columns.find((column) => column.isDiscriminator);
|
|
626
|
-
entityMetadata.treeLevelColumn = entityMetadata.columns.find((column) => column.isTreeLevel);
|
|
627
|
-
entityMetadata.nestedSetLeftColumn = entityMetadata.columns.find((column) => column.isNestedSetLeft);
|
|
628
|
-
entityMetadata.nestedSetRightColumn = entityMetadata.columns.find((column) => column.isNestedSetRight);
|
|
629
|
-
entityMetadata.materializedPathColumn = entityMetadata.columns.find((column) => column.isMaterializedPath);
|
|
630
|
-
entityMetadata.objectIdColumn = entityMetadata.columns.find((column) => column.isObjectId);
|
|
631
|
-
entityMetadata.foreignKeys.forEach((foreignKey) => foreignKey.build(this.connection.namingStrategy));
|
|
632
|
-
entityMetadata.propertiesMap = entityMetadata.createPropertiesMap();
|
|
633
|
-
entityMetadata.relationIds.forEach((relationId) => relationId.build());
|
|
634
|
-
entityMetadata.relationCounts.forEach((relationCount) => relationCount.build());
|
|
635
|
-
entityMetadata.embeddeds.forEach((embedded) => {
|
|
636
|
-
embedded.relationIdsFromTree.forEach((relationId) => relationId.build());
|
|
637
|
-
embedded.relationCountsFromTree.forEach((relationCount) => relationCount.build());
|
|
638
|
-
});
|
|
639
|
-
}
|
|
640
|
-
/**
|
|
641
|
-
* Computes entity metadata's relations inverse side properties.
|
|
642
|
-
*/
|
|
643
|
-
computeInverseProperties(entityMetadata, entityMetadatas) {
|
|
644
|
-
entityMetadata.relations.forEach((relation) => {
|
|
645
|
-
const inverseEntityMetadata = entityMetadatas.find((m) => m.target === relation.type ||
|
|
646
|
-
(typeof relation.type === "string" &&
|
|
647
|
-
(m.targetName === relation.type ||
|
|
648
|
-
m.givenTableName === relation.type)));
|
|
649
|
-
if (!inverseEntityMetadata)
|
|
650
|
-
throw new TypeORMError("Entity metadata for " +
|
|
651
|
-
entityMetadata.name +
|
|
652
|
-
"#" +
|
|
653
|
-
relation.propertyPath +
|
|
654
|
-
" was not found. Check if you specified a correct entity object and if it's connected in the connection options.");
|
|
655
|
-
relation.inverseEntityMetadata = inverseEntityMetadata;
|
|
656
|
-
relation.inverseSidePropertyPath =
|
|
657
|
-
relation.buildInverseSidePropertyPath();
|
|
658
|
-
relation.inverseRelation = inverseEntityMetadata.relations.find((foundRelation) => foundRelation.propertyPath ===
|
|
659
|
-
relation.inverseSidePropertyPath);
|
|
660
|
-
});
|
|
661
|
-
}
|
|
662
|
-
/**
|
|
663
|
-
* Creates indices for the table of single table inheritance.
|
|
664
|
-
*/
|
|
665
|
-
createKeysForTableInheritance(entityMetadata) {
|
|
666
|
-
entityMetadata.indices.push(new IndexMetadata({
|
|
667
|
-
entityMetadata: entityMetadata,
|
|
668
|
-
columns: [entityMetadata.discriminatorColumn],
|
|
669
|
-
args: {
|
|
670
|
-
target: entityMetadata.target,
|
|
671
|
-
unique: false,
|
|
672
|
-
},
|
|
673
|
-
}));
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
;
|
|
677
|
-
({}); // @--end-of-file-for-module=taon-typeorm lib/typeorm/metadata-builder/EntityMetadataBuilder.ts
|
|
678
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW50aXR5TWV0YWRhdGFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi10eXBlb3JtL3Byb2plY3RzL3Rhb24tdHlwZW9ybS9zcmMvbGliL3R5cGVvcm0vbWV0YWRhdGEtYnVpbGRlci9FbnRpdHlNZXRhZGF0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFHL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRS9DLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQy9FLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBRXZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDekQsT0FB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LEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ25ELENBQUE7WUFDRCxJQUFJLENBQUMscUJBQXFCO2dCQUN0QixNQUFNLElBQUksWUFBWSxDQUNsQixzQkFBc0I7b0JBQ2xCLGNBQWMsQ0FBQyxJQUFJO29CQUNuQixHQUFHO29CQUNILFFBQVEsQ0FBQyxZQUFZO29CQUNyQixpSEFBaUgsQ0FDeEgsQ0FBQTtZQUVMLFFBQVEsQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQTtZQUN0RCxRQUFRLENBQUMsdUJBQXVCO2dCQUM1QixRQUFRLENBQUMsNEJBQTRCLEVBQUUsQ0FBQTtZQUczQyxRQUFRLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzNELENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FDZCxhQUFhLENBQUMsWUFBWTtnQkFDMUIsUUFBUSxDQUFDLHVCQUF1QixDQUN2QyxDQUFBO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDTyw2QkFBNkIsQ0FBQyxjQUE4QjtRQUNsRSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdkIsSUFBSSxhQUFhLENBQUM7WUFDZCxjQUFjLEVBQUUsY0FBYztZQUM5QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsbUJBQW9CLENBQUM7WUFDOUMsSUFBSSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTTtnQkFDN0IsTUFBTSxFQUFFLEtBQUs7YUFDaEI7U0FDSixDQUFDLENBQ0wsQ0FBQTtJQUNMLENBQUM7Q0FDSjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0ZBQStGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IEVudGl0eU1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL0VudGl0eU1ldGFkYXRhXCJcbmltcG9ydCB7IENvbHVtbk1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL0NvbHVtbk1ldGFkYXRhXCJcbmltcG9ydCB7IEluZGV4TWV0YWRhdGEgfSBmcm9tIFwiLi4vbWV0YWRhdGEvSW5kZXhNZXRhZGF0YVwiXG5pbXBvcnQgeyBSZWxhdGlvbk1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL1JlbGF0aW9uTWV0YWRhdGFcIlxuaW1wb3J0IHsgRW1iZWRkZWRNZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9FbWJlZGRlZE1ldGFkYXRhXCJcbmltcG9ydCB7IE1ldGFkYXRhQXJnc1N0b3JhZ2UgfSBmcm9tIFwiLi4vbWV0YWRhdGEtYXJncy9NZXRhZGF0YUFyZ3NTdG9yYWdlXCJcbmltcG9ydCB7IEVtYmVkZGVkTWV0YWRhdGFBcmdzIH0gZnJvbSBcIi4uL21ldGFkYXRhLWFyZ3MvRW1iZWRkZWRNZXRhZGF0YUFyZ3NcIlxuaW1wb3J0IHsgUmVsYXRpb25JZE1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL1JlbGF0aW9uSWRNZXRhZGF0YVwiXG5pbXBvcnQgeyBSZWxhdGlvbkNvdW50TWV0YWRhdGEgfSBmcm9tIFwiLi4vbWV0YWRhdGEvUmVsYXRpb25Db3VudE1ldGFkYXRhXCJcbmltcG9ydCB7IEV2ZW50TGlzdGVuZXJUeXBlcyB9IGZyb20gXCIuLi9tZXRhZGF0YS90eXBlcy9FdmVudExpc3RlbmVyVHlwZXNcIlxuaW1wb3J0IHsgTWV0YWRhdGFVdGlscyB9IGZyb20gXCIuL01ldGFkYXRhVXRpbHNcIlxuaW1wb3J0IHsgVGFibGVNZXRhZGF0YUFyZ3MgfSBmcm9tIFwiLi4vbWV0YWRhdGEtYXJncy9UYWJsZU1ldGFkYXRhQXJnc1wiXG5pbXBvcnQgeyBKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlciB9IGZyb20gXCIuL0p1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyXCJcbmltcG9ydCB7IENsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlciB9IGZyb20gXCIuL0Nsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlclwiXG5pbXBvcnQgeyBSZWxhdGlvbkpvaW5Db2x1bW5CdWlsZGVyIH0gZnJvbSBcIi4vUmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlclwiXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIi4uL2RhdGEtc291cmNlL0RhdGFTb3VyY2VcIlxuaW1wb3J0IHsgRW50aXR5TGlzdGVuZXJNZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9FbnRpdHlMaXN0ZW5lck1ldGFkYXRhXCJcbmltcG9ydCB7IFVuaXF1ZU1ldGFkYXRhIH0gZnJvbSBcIi4uL21ldGFkYXRhL1VuaXF1ZU1ldGFkYXRhXCJcbmltcG9ydCB7IENoZWNrTWV0YWRhdGEgfSBmcm9tIFwiLi4vbWV0YWRhdGEvQ2hlY2tNZXRhZGF0YVwiXG5pbXBvcnQgeyBFeGNsdXNpb25NZXRhZGF0YSB9IGZyb20gXCIuLi9tZXRhZGF0YS9FeGNsdXNpb25NZXRhZGF0YVwiXG5pbXBvcnQgeyBUeXBlT1JNRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JcIlxuaW1wb3J0IHsgRHJpdmVyVXRpbHMgfSBmcm9tIFwiLi4vZHJpdmVyL0RyaXZlclV0aWxzXCJcblxuLyoqXG4gKiBCdWlsZHMgRW50aXR5TWV0YWRhdGEgb2JqZWN0cyBhbmQgYWxsIGl0cyBzdWItbWV0YWRhdGFzLlxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5TWV0YWRhdGFCdWlsZGVyIHtcblxuXG5cblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gYnVpbGQgZW50aXR5IG1ldGFkYXRhcyBvZiB0aGUganVuY3Rpb24gZW50aXRpZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyOiBKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlclxuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBidWlsZCBlbnRpdHkgbWV0YWRhdGFzIG9mIHRoZSBjbG9zdXJlIGp1bmN0aW9uIGVudGl0aWVzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXI6IENsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhQnVpbGRlclxuXG4gICAgLyoqXG4gICAgICogVXNlZCB0byBidWlsZCBqb2luIGNvbHVtbnMgb2YgdGhlIHJlbGF0aW9ucy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlcjogUmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlclxuXG5cblxuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb25uZWN0aW9uOiBEYXRhU291cmNlLFxuICAgICAgICBwcml2YXRlIG1ldGFkYXRhQXJnc1N0b3JhZ2U6IE1ldGFkYXRhQXJnc1N0b3JhZ2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuanVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIgPSBuZXcgSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIoXG4gICAgICAgICAgICBjb25uZWN0aW9uLFxuICAgICAgICApXG4gICAgICAgIHRoaXMuY2xvc3VyZUp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyID1cbiAgICAgICAgICAgIG5ldyBDbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIoY29ubmVjdGlvbilcbiAgICAgICAgdGhpcy5yZWxhdGlvbkpvaW5Db2x1bW5CdWlsZGVyID0gbmV3IFJlbGF0aW9uSm9pbkNvbHVtbkJ1aWxkZXIoXG4gICAgICAgICAgICBjb25uZWN0aW9uLFxuICAgICAgICApXG4gICAgfVxuXG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBCdWlsZHMgYSBjb21wbGV0ZSBlbnRpdHkgbWV0YWRhdGFzIGZvciB0aGUgZ2l2ZW4gZW50aXR5IGNsYXNzZXMuXG4gICAgICovXG4gICAgYnVpbGQoZW50aXR5Q2xhc3Nlcz86IEZ1bmN0aW9uW10pOiBFbnRpdHlNZXRhZGF0YVtdIHtcblxuICAgICAgICBjb25zdCBhbGxUYWJsZXMgPSBlbnRpdHlDbGFzc2VzXG4gICAgICAgICAgICA/IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maWx0ZXJUYWJsZXMoZW50aXR5Q2xhc3NlcylcbiAgICAgICAgICAgIDogdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLnRhYmxlc1xuXG5cbiAgICAgICAgY29uc3QgcmVhbFRhYmxlcyA9IGFsbFRhYmxlcy5maWx0ZXIoXG4gICAgICAgICAgICAodGFibGUpID0+XG4gICAgICAgICAgICAgICAgdGFibGUudHlwZSA9PT0gXCJyZWd1bGFyXCIgfHxcbiAgICAgICAgICAgICAgICB0YWJsZS50eXBlID09PSBcImNsb3N1cmVcIiB8fFxuICAgICAgICAgICAgICAgIHRhYmxlLnR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIgfHxcbiAgICAgICAgICAgICAgICB0YWJsZS50eXBlID09PSBcInZpZXdcIixcbiAgICAgICAgKVxuXG5cbiAgICAgICAgY29uc3QgZW50aXR5TWV0YWRhdGFzID0gcmVhbFRhYmxlcy5tYXAoKHRhYmxlQXJncykgPT5cbiAgICAgICAgICAgIHRoaXMuY3JlYXRlRW50aXR5TWV0YWRhdGEodGFibGVBcmdzKSxcbiAgICAgICAgKVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgdGhpcy5jb21wdXRlUGFyZW50RW50aXR5TWV0YWRhdGEoZW50aXR5TWV0YWRhdGFzLCBlbnRpdHlNZXRhZGF0YSksXG4gICAgICAgIClcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChtZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgbWV0YWRhdGEuY2hpbGRFbnRpdHlNZXRhZGF0YXMgPSBlbnRpdHlNZXRhZGF0YXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChjaGlsZE1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgbWV0YWRhdGEudGFyZ2V0ID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBjaGlsZE1ldGFkYXRhLnRhcmdldCA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBNZXRhZGF0YVV0aWxzLmlzSW5oZXJpdGVkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkTWV0YWRhdGEudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGVudGl0eU1ldGFkYXRhKSA9PiBlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgIT09IFwiZW50aXR5LWNoaWxkXCIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+IGVudGl0eU1ldGFkYXRhLmJ1aWxkKCkpXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGVudGl0eU1ldGFkYXRhKSA9PiBlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+IGVudGl0eU1ldGFkYXRhLmJ1aWxkKCkpXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGVudGl0eU1ldGFkYXRhKSA9PiBlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgIT09IFwiZW50aXR5LWNoaWxkXCIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlRW50aXR5TWV0YWRhdGFTdGVwMShcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGFzLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChlbnRpdHlNZXRhZGF0YSkgPT4gZW50aXR5TWV0YWRhdGEudGFibGVUeXBlID09PSBcImVudGl0eS1jaGlsZFwiLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUVudGl0eU1ldGFkYXRhU3RlcDEoXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhcyxcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT5cbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZUVudGl0eU1ldGFkYXRhU3RlcDIoZW50aXR5TWV0YWRhdGEpLFxuICAgICAgICApXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXMuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVJbnZlcnNlUHJvcGVydGllcyhlbnRpdHlNZXRhZGF0YSwgZW50aXR5TWV0YWRhdGFzKSxcbiAgICAgICAgKVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChlbnRpdHlNZXRhZGF0YSkgPT4gZW50aXR5TWV0YWRhdGEudGFibGVUeXBlICE9PSBcImVudGl0eS1jaGlsZFwiLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZWxhdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5pc09uZVRvT25lIHx8IHJlbGF0aW9uLmlzTWFueVRvT25lLFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChyZWxhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgam9pbkNvbHVtbnMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maWx0ZXJKb2luQ29sdW1ucyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24udGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmb3JlaWduS2V5LCBjb2x1bW5zLCB1bmlxdWVDb25zdHJhaW50IH0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpb25Kb2luQ29sdW1uQnVpbGRlci5idWlsZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam9pbkNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLy8gY3JlYXRlIGEgZm9yZWlnbiBrZXkgYmFzZWQgb24gaXRzIG1ldGFkYXRhIGFyZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3JlaWduS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24ucmVnaXN0ZXJGb3JlaWduS2V5cyhmb3JlaWduS2V5KSAvLyBwdXNoIGl0IHRvIHRoZSByZWxhdGlvbiBhbmQgdGh1cyByZWdpc3RlciB0aGVyZSBhIGpvaW4gY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuZm9yZWlnbktleXMucHVzaChmb3JlaWduS2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5yZWdpc3RlckpvaW5Db2x1bW5zKGNvbHVtbnMpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5pcXVlQ29uc3RyYWludCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJpdmVyVXRpbHMuaXNNeVNRTEZhbWlseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImF1cm9yYS1teXNxbFwiIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtc3NxbFwiIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PSBcInNhcFwiIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJzcGFubmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBuZXcgSW5kZXhNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVDb25zdHJhaW50LmVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogdW5pcXVlQ29uc3RyYWludC5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogdW5pcXVlQ29uc3RyYWludC50YXJnZXQhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHVuaXF1ZUNvbnN0cmFpbnQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtc3NxbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgud2hlcmUgPSBpbmRleC5jb2x1bW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLmVzY2FwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi5kYXRhYmFzZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9IElTIE5PVCBOVUxMYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCIgQU5EIFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInNwYW5uZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LmlzTnVsbEZpbHRlcmVkID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEuaW5kaWNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24uZW50aXR5TWV0YWRhdGEub3duSW5kaWNlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUVudGl0eU1ldGFkYXRhU3RlcDIoZW50aXR5TWV0YWRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEudW5pcXVlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZUNvbnN0cmFpbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5lbnRpdHlNZXRhZGF0YS5vd25VbmlxdWVzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVlQ29uc3RyYWludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ25LZXkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb2Nrcm9hY2hkYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IG5ldyBJbmRleE1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IHJlbGF0aW9uLmVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zOiBmb3JlaWduS2V5LmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogcmVsYXRpb24uZW50aXR5TWV0YWRhdGEudGFyZ2V0ISxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uLmVtYmVkZGVkTWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24uZW1iZWRkZWRNZXRhZGF0YS5pbmRpY2VzLnB1c2goaW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24uZW50aXR5TWV0YWRhdGEub3duSW5kaWNlcy5wdXNoKGluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzTWFueVRvTWFueSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqb2luVGFibGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maW5kSm9pblRhYmxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFqb2luVGFibGUpIHJldHVybiAvLyBubyBqb2luIHRhYmxlIHNldCAtIG5vIG5lZWQgdG8gZG8gYW55dGhpbmcgKGl0IG1lYW5zIHRoaXMgaXMgbWFueS10by1tYW55IGludmVyc2Ugc2lkZSlcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBqdW5jdGlvbkVudGl0eU1ldGFkYXRhID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmp1bmN0aW9uRW50aXR5TWV0YWRhdGFCdWlsZGVyLmJ1aWxkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgam9pblRhYmxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnJlZ2lzdGVyRm9yZWlnbktleXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uanVuY3Rpb25FbnRpdHlNZXRhZGF0YS5mb3JlaWduS2V5cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnJlZ2lzdGVySm9pbkNvbHVtbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVuY3Rpb25FbnRpdHlNZXRhZGF0YS5vd25JbmRpY2VzWzBdLmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVuY3Rpb25FbnRpdHlNZXRhZGF0YS5vd25JbmRpY2VzWzFdLmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5yZWdpc3Rlckp1bmN0aW9uRW50aXR5TWV0YWRhdGEoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganVuY3Rpb25FbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGp1bmN0aW9uRW50aXR5TWV0YWRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVJbnZlcnNlUHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW5jdGlvbkVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhcy5wdXNoKGp1bmN0aW9uRW50aXR5TWV0YWRhdGEpXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnNXaXRoSm9pbkNvbHVtbnMgPVxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChyZWxhdGlvbikgPT4gcmVsYXRpb24uaXNXaXRoSm9pbkNvbHVtbixcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5oYXNOb25OdWxsYWJsZVJlbGF0aW9ucyA9XG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zV2l0aEpvaW5Db2x1bW5zLnNvbWUoXG4gICAgICAgICAgICAgICAgICAgIChyZWxhdGlvbikgPT4gIXJlbGF0aW9uLmlzTnVsbGFibGUgfHwgcmVsYXRpb24uaXNQcmltYXJ5LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgfSlcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhc1xuICAgICAgICAgICAgLmZpbHRlcigobWV0YWRhdGEpID0+IG1ldGFkYXRhLnRyZWVUeXBlID09PSBcImNsb3N1cmUtdGFibGVcIilcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YUJ1aWxkZXIuYnVpbGQoXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmNsb3N1cmVKdW5jdGlvblRhYmxlID1cbiAgICAgICAgICAgICAgICAgICAgY2xvc3VyZUp1bmN0aW9uRW50aXR5TWV0YWRhdGFcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGNsb3N1cmVKdW5jdGlvbkVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUludmVyc2VQcm9wZXJ0aWVzKFxuICAgICAgICAgICAgICAgICAgICBjbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGFzLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YXMucHVzaChjbG9zdXJlSnVuY3Rpb25FbnRpdHlNZXRhZGF0YSlcbiAgICAgICAgICAgIH0pXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKG1ldGFkYXRhKSA9PlxuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5pbmhlcml0YW5jZVBhdHRlcm4gPT09IFwiU1RJXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuZGlzY3JpbWluYXRvckNvbHVtbixcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUtleXNGb3JUYWJsZUluaGVyaXRhbmNlKGVudGl0eU1ldGFkYXRhKSxcbiAgICAgICAgICAgIClcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuaW5kaWNlcy5mb3JFYWNoKChpbmRleCkgPT5cbiAgICAgICAgICAgICAgICBpbmRleC5idWlsZCh0aGlzLmNvbm5lY3Rpb24ubmFtaW5nU3RyYXRlZ3kpLFxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS51bmlxdWVzLmZvckVhY2goKHVuaXF1ZSkgPT5cbiAgICAgICAgICAgICAgICB1bmlxdWUuYnVpbGQodGhpcy5jb25uZWN0aW9uLm5hbWluZ1N0cmF0ZWd5KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcblxuXG4gICAgICAgIGVudGl0eU1ldGFkYXRhcy5mb3JFYWNoKChlbnRpdHlNZXRhZGF0YSkgPT4ge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuY2hlY2tzLmZvckVhY2goKGNoZWNrKSA9PlxuICAgICAgICAgICAgICAgIGNoZWNrLmJ1aWxkKHRoaXMuY29ubmVjdGlvbi5uYW1pbmdTdHJhdGVneSksXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YXMuZm9yRWFjaCgoZW50aXR5TWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmV4Y2x1c2lvbnMuZm9yRWFjaCgoZXhjbHVzaW9uKSA9PlxuICAgICAgICAgICAgICAgIGV4Y2x1c2lvbi5idWlsZCh0aGlzLmNvbm5lY3Rpb24ubmFtaW5nU3RyYXRlZ3kpLFxuICAgICAgICAgICAgKVxuICAgICAgICB9KVxuXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzXG4gICAgICAgICAgICAuZmlsdGVyKChtZXRhZGF0YSkgPT4gdHlwZW9mIG1ldGFkYXRhLnRhcmdldCA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc0xhenkpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChyZWxhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLnJlbGF0aW9uTG9hZGVyLmVuYWJsZUxhenlMb2FkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRpdHlNZXRhZGF0YS50YXJnZXQgYXMgRnVuY3Rpb24pLnByb3RvdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgZW50aXR5TWV0YWRhdGFzLmZvckVhY2goKGVudGl0eU1ldGFkYXRhKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZ2VuZXJhdGVkID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLmZpbmRHZW5lcmF0ZWQoXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uLmlzR2VuZXJhdGVkID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4uZ2VuZXJhdGlvblN0cmF0ZWd5ID0gZ2VuZXJhdGVkLnN0cmF0ZWd5XG4gICAgICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0ZWQuc3RyYXRlZ3kgPT09IFwidXVpZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4udHlwZSA9IFwidXVpZFwiXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2VuZXJhdGVkLnN0cmF0ZWd5ID09PSBcInJvd2lkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbi50eXBlID0gXCJpbnRcIlxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLnR5cGUgPSBjb2x1bW4udHlwZSB8fCBOdW1iZXJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4uYnVpbGQodGhpcy5jb25uZWN0aW9uKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAyKGVudGl0eU1ldGFkYXRhKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIGVudGl0eU1ldGFkYXRhc1xuICAgIH1cblxuXG5cblxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBlbnRpdHkgbWV0YWRhdGEgZnJvbSB0aGUgZ2l2ZW4gdGFibGUgYXJncy5cbiAgICAgKiBDcmVhdGVzIGNvbHVtbiwgcmVsYXRpb24sIGV0Yy4gbWV0YWRhdGFzIGZvciBldmVyeXRoaW5nIHRoaXMgZW50aXR5IG1ldGFkYXRhIG93bnMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUVudGl0eU1ldGFkYXRhKFxuICAgICAgICB0YWJsZUFyZ3M6IFRhYmxlTWV0YWRhdGFBcmdzLFxuICAgICk6IEVudGl0eU1ldGFkYXRhIHtcblxuXG5cbiAgICAgICAgY29uc3QgaW5oZXJpdGFuY2VUcmVlOiBhbnlbXSA9XG4gICAgICAgICAgICB0eXBlb2YgdGFibGVBcmdzLnRhcmdldCA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgPyBNZXRhZGF0YVV0aWxzLmdldEluaGVyaXRhbmNlVHJlZSh0YWJsZUFyZ3MudGFyZ2V0KVxuICAgICAgICAgICAgICAgIDogW3RhYmxlQXJncy50YXJnZXRdIC8vIHRvZG86IGltcGxlbWVudCBsYXRlciBoZXJlIGluaGVyaXRhbmNlIGZvciBzdHJpbmctdGFyZ2V0c1xuXG4gICAgICAgIGNvbnN0IHRhYmxlSW5oZXJpdGFuY2UgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmluZEluaGVyaXRhbmNlVHlwZShcbiAgICAgICAgICAgIHRhYmxlQXJncy50YXJnZXQsXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgdGFibGVUcmVlID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlLmZpbmRUcmVlKHRhYmxlQXJncy50YXJnZXQpXG5cblxuICAgICAgICBsZXQgc2luZ2xlVGFibGVDaGlsZHJlblRhcmdldHM6IGFueVtdXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0YWJsZUluaGVyaXRhbmNlICYmIHRhYmxlSW5oZXJpdGFuY2UucGF0dGVybiA9PT0gXCJTVElcIikgfHxcbiAgICAgICAgICAgIHRhYmxlQXJncy50eXBlID09PSBcImVudGl0eS1jaGlsZFwiXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2luZ2xlVGFibGVDaGlsZHJlblRhcmdldHMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyU2luZ2xlVGFibGVDaGlsZHJlbih0YWJsZUFyZ3MudGFyZ2V0KVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IGFyZ3MudGFyZ2V0KVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHRhcmdldCkgPT4gdHlwZW9mIHRhcmdldCA9PT0gXCJmdW5jdGlvblwiKVxuXG4gICAgICAgICAgICBpbmhlcml0YW5jZVRyZWUucHVzaCguLi5zaW5nbGVUYWJsZUNoaWxkcmVuVGFyZ2V0cylcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgRW50aXR5TWV0YWRhdGEoe1xuICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgYXJnczogdGFibGVBcmdzLFxuICAgICAgICAgICAgaW5oZXJpdGFuY2VUcmVlOiBpbmhlcml0YW5jZVRyZWUsXG4gICAgICAgICAgICB0YWJsZVRyZWU6IHRhYmxlVHJlZSxcbiAgICAgICAgICAgIGluaGVyaXRhbmNlUGF0dGVybjogdGFibGVJbmhlcml0YW5jZVxuICAgICAgICAgICAgICAgID8gdGFibGVJbmhlcml0YW5jZS5wYXR0ZXJuXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVQYXJlbnRFbnRpdHlNZXRhZGF0YShcbiAgICAgICAgYWxsRW50aXR5TWV0YWRhdGFzOiBFbnRpdHlNZXRhZGF0YVtdLFxuICAgICAgICBlbnRpdHlNZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsXG4gICAgKSB7XG5cbiAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIikge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucGFyZW50RW50aXR5TWV0YWRhdGEgPSBhbGxFbnRpdHlNZXRhZGF0YXMuZmluZChcbiAgICAgICAgICAgICAgICAoYWxsRW50aXR5TWV0YWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbEVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZS5pbmRleE9mKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnRhcmdldCBhcyBGdW5jdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICkgIT09IC0xICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGxFbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVBhdHRlcm4gPT09IFwiU1RJXCJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApIVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVFbnRpdHlNZXRhZGF0YVN0ZXAxKFxuICAgICAgICBhbGxFbnRpdHlNZXRhZGF0YXM6IEVudGl0eU1ldGFkYXRhW10sXG4gICAgICAgIGVudGl0eU1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YSxcbiAgICApIHtcbiAgICAgICAgY29uc3QgZW50aXR5SW5oZXJpdGFuY2UgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmluZEluaGVyaXRhbmNlVHlwZShcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IGRpc2NyaW1pbmF0b3JWYWx1ZSA9XG4gICAgICAgICAgICB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmluZERpc2NyaW1pbmF0b3JWYWx1ZShcbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS50YXJnZXQsXG4gICAgICAgICAgICApXG5cbiAgICAgICAgaWYgKHR5cGVvZiBkaXNjcmltaW5hdG9yVmFsdWUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmRpc2NyaW1pbmF0b3JWYWx1ZSA9IGRpc2NyaW1pbmF0b3JWYWx1ZS52YWx1ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuZGlzY3JpbWluYXRvclZhbHVlID0gKFxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnRhcmdldCBhcyBhbnlcbiAgICAgICAgICAgICkubmFtZVxuICAgICAgICB9XG5cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMgPSB0aGlzLmNyZWF0ZUVtYmVkZGVkc1JlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2UuZmlsdGVyRW1iZWRkZWRzKFxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICkubWFwKChlbWJlZGRlZDogRW1iZWRkZWRNZXRhZGF0YSk6IEVtYmVkZGVkTWV0YWRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlUGF0dGVybiA9PT0gXCJTVElcIikge1xuICAgICAgICAgICAgICAgIGVtYmVkZGVkLmNvbHVtbnMgPSBlbWJlZGRlZC5jb2x1bW5zLm1hcChcbiAgICAgICAgICAgICAgICAgICAgKGNvbHVtbjogQ29sdW1uTWV0YWRhdGEpOiBDb2x1bW5NZXRhZGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4uaXNOdWxsYWJsZSA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZW1iZWRkZWRcbiAgICAgICAgfSlcblxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAuZmlsdGVyQ29sdW1ucyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBpZiAoZW50aXR5TWV0YWRhdGEudGFibGVUeXBlID09PSBcImVudGl0eS1jaGlsZFwiKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50aXR5TWV0YWRhdGEucGFyZW50RW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLnByb3BlcnR5TmFtZSA9PT0gYXJncy5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICkhXG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOiB0aGlzLmNvbm5lY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgICAgIH0pXG5cblxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbkluU2luZ2xlVGFibGVJbmhlcml0ZWRDaGlsZCA9XG4gICAgICAgICAgICAgICAgICAgIGFsbEVudGl0eU1ldGFkYXRhcy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKG90aGVyRW50aXR5TWV0YWRhdGEpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJFbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlckVudGl0eU1ldGFkYXRhLnRhcmdldCA9PT0gYXJncy50YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uSW5TaW5nbGVUYWJsZUluaGVyaXRlZENoaWxkKSBjb2x1bW4uaXNOdWxsYWJsZSA9IHRydWVcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sdW1uXG4gICAgICAgICAgICB9KVxuXG5cbiAgICAgICAgLy9cbiAgICAgICAgaWYgKGVudGl0eUluaGVyaXRhbmNlICYmIGVudGl0eUluaGVyaXRhbmNlLmNvbHVtbikge1xuICAgICAgICAgICAgY29uc3QgZGlzY3JpbWluYXRvckNvbHVtbk5hbWUgPVxuICAgICAgICAgICAgICAgIGVudGl0eUluaGVyaXRhbmNlLmNvbHVtbiAmJiBlbnRpdHlJbmhlcml0YW5jZS5jb2x1bW4ubmFtZVxuICAgICAgICAgICAgICAgICAgICA/IGVudGl0eUluaGVyaXRhbmNlLmNvbHVtbi5uYW1lXG4gICAgICAgICAgICAgICAgICAgIDogXCJ0eXBlXCJcbiAgICAgICAgICAgIGxldCBkaXNjcmltaW5hdG9yQ29sdW1uID0gZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5wcm9wZXJ0eU5hbWUgPT09IGRpc2NyaW1pbmF0b3JDb2x1bW5OYW1lLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKCFkaXNjcmltaW5hdG9yQ29sdW1uKSB7XG4gICAgICAgICAgICAgICAgZGlzY3JpbWluYXRvckNvbHVtbiA9IG5ldyBDb2x1bW5NZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb246IHRoaXMuY29ubmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IFwidmlydHVhbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiBkaXNjcmltaW5hdG9yQ29sdW1uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGVudGl0eUluaGVyaXRhbmNlLmNvbHVtbiB8fCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogZGlzY3JpbWluYXRvckNvbHVtbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ2YXJjaGFyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGRpc2NyaW1pbmF0b3JDb2x1bW4uaXNWaXJ0dWFsID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGRpc2NyaW1pbmF0b3JDb2x1bW4uaXNEaXNjcmltaW5hdG9yID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkNvbHVtbnMucHVzaChkaXNjcmltaW5hdG9yQ29sdW1uKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkaXNjcmltaW5hdG9yQ29sdW1uLmlzRGlzY3JpbWluYXRvciA9IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cblxuICAgICAgICBpZiAoZW50aXR5TWV0YWRhdGEudGFibGVUeXBlID09PSBcImVudGl0eS1jaGlsZFwiKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNjcmltaW5hdG9yQ29sdW1uID1cbiAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5wYXJlbnRFbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc0Rpc2NyaW1pbmF0b3IsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGRpc2NyaW1pbmF0b3JDb2x1bW4gJiZcbiAgICAgICAgICAgICAgICAhZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4gPT09IGRpc2NyaW1pbmF0b3JDb2x1bW4sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucy5wdXNoKGRpc2NyaW1pbmF0b3JDb2x1bW4pXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IG5hbWluZ1N0cmF0ZWd5IH0gPSB0aGlzLmNvbm5lY3Rpb25cblxuXG4gICAgICAgIGlmIChlbnRpdHlNZXRhZGF0YS50cmVlVHlwZSA9PT0gXCJtYXRlcmlhbGl6ZWQtcGF0aFwiKSB7XG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IENvbHVtbk1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG1hdGVyaWFsaXplZFBhdGg6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogZW50aXR5TWV0YWRhdGEudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogXCJ2aXJ0dWFsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IFwibXBhdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IC8qdHJlZS5jb2x1bW4gfHwgKi8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWluZ1N0cmF0ZWd5Lm1hdGVyaWFsaXplZFBhdGhDb2x1bW5OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChlbnRpdHlNZXRhZGF0YS50cmVlVHlwZSA9PT0gXCJuZXN0ZWQtc2V0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbGVmdCwgcmlnaHQgfSA9IG5hbWluZ1N0cmF0ZWd5Lm5lc3RlZFNldENvbHVtbk5hbWVzXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IENvbHVtbk1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG5lc3RlZFNldExlZnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogZW50aXR5TWV0YWRhdGEudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogXCJ2aXJ0dWFsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGxlZnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiAvKnRyZWUuY29sdW1uIHx8ICovIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25Db2x1bW5zLnB1c2goXG4gICAgICAgICAgICAgICAgbmV3IENvbHVtbk1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG5lc3RlZFNldFJpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6IFwidmlydHVhbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lOiByaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IC8qdHJlZS5jb2x1bW4gfHwgKi8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogMixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25SZWxhdGlvbnMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgIC5maWx0ZXJSZWxhdGlvbnMoZW50aXR5TWV0YWRhdGEuaW5oZXJpdGFuY2VUcmVlKVxuICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRSZWxhdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5wYXJlbnRFbnRpdHlNZXRhZGF0YS5vd25SZWxhdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVsYXRpb24pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uLnByb3BlcnR5TmFtZSA9PT0gYXJncy5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICApIVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBhcmdzLnR5cGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGFyZ3MudHlwZSBhcyAoKSA9PiBhbnkpKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFyZ3MudHlwZVxuICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50UmVsYXRpb24udHlwZSAhPT0gdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xvbmUgPSBPYmplY3QuY3JlYXRlKHBhcmVudFJlbGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xvbmUudHlwZSA9IHR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjbG9uZVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudFJlbGF0aW9uXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWxhdGlvbk1ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9uSWRzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAuZmlsdGVyUmVsYXRpb25JZHMoZW50aXR5TWV0YWRhdGEuaW5oZXJpdGFuY2VUcmVlKVxuICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuXG4gICAgICAgICAgICAgICAgaWYgKGVudGl0eU1ldGFkYXRhLnRhYmxlVHlwZSA9PT0gXCJlbnRpdHktY2hpbGRcIilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudGl0eU1ldGFkYXRhLnBhcmVudEVudGl0eU1ldGFkYXRhLnJlbGF0aW9uSWRzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVsYXRpb25JZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvbklkLnByb3BlcnR5TmFtZSA9PT0gYXJncy5wcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICkhXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlbGF0aW9uSWRNZXRhZGF0YSh7IGVudGl0eU1ldGFkYXRhLCBhcmdzIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbkNvdW50cyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgLmZpbHRlclJlbGF0aW9uQ291bnRzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcblxuICAgICAgICAgICAgICAgIGlmIChlbnRpdHlNZXRhZGF0YS50YWJsZVR5cGUgPT09IFwiZW50aXR5LWNoaWxkXCIpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRpdHlNZXRhZGF0YS5wYXJlbnRFbnRpdHlNZXRhZGF0YS5yZWxhdGlvbkNvdW50cy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlbGF0aW9uQ291bnQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25Db3VudC5wcm9wZXJ0eU5hbWUgPT09IGFyZ3MucHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICAgICAgICApIVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWxhdGlvbkNvdW50TWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub3duTGlzdGVuZXJzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAuZmlsdGVyTGlzdGVuZXJzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVudGl0eUxpc3RlbmVyTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IGFyZ3MsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmNoZWNrcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgLmZpbHRlckNoZWNrcyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDaGVja01ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgIH0pXG5cblxuICAgICAgICBpZiAodGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwicG9zdGdyZXNcIikge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEuZXhjbHVzaW9ucyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJFeGNsdXNpb25zKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXhjbHVzaW9uTWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwiY29ja3JvYWNoZGJcIikge1xuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duSW5kaWNlcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJJbmRpY2VzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChhcmdzKSA9PiAhYXJncy51bmlxdWUpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEluZGV4TWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZXMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVySW5kaWNlcyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYXJncykgPT4gYXJncy51bmlxdWUpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuaXF1ZU1ldGFkYXRhKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGFyZ3MudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGFyZ3MubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zOiBhcmdzLmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25VbmlxdWVzLnB1c2goLi4udW5pcXVlcylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkluZGljZXMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVySW5kaWNlcyhlbnRpdHlNZXRhZGF0YS5pbmhlcml0YW5jZVRyZWUpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEluZGV4TWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIERyaXZlclV0aWxzLmlzTXlTUUxGYW1pbHkodGhpcy5jb25uZWN0aW9uLmRyaXZlcikgfHxcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbi5kcml2ZXIub3B0aW9ucy50eXBlID09PSBcImF1cm9yYS1teXNxbFwiIHx8XG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZHJpdmVyLm9wdGlvbnMudHlwZSA9PT0gXCJzYXBcIiB8fFxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmRyaXZlci5vcHRpb25zLnR5cGUgPT09IFwic3Bhbm5lclwiXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgaW5kaWNlcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJVbmlxdWVzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSW5kZXhNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YTogZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBhcmdzLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBhcmdzLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogYXJncy5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkluZGljZXMucHVzaCguLi5pbmRpY2VzKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgdW5pcXVlcyA9IHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZVxuICAgICAgICAgICAgICAgIC5maWx0ZXJVbmlxdWVzKGVudGl0eU1ldGFkYXRhLmluaGVyaXRhbmNlVHJlZSlcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5pcXVlTWV0YWRhdGEoeyBlbnRpdHlNZXRhZGF0YSwgYXJncyB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25VbmlxdWVzLnB1c2goLi4udW5pcXVlcylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgZnJvbSB0aGUgZ2l2ZW4gZW1iZWRkZWQgbWV0YWRhdGEgYXJncyByZWFsIGVtYmVkZGVkIG1ldGFkYXRhcyB3aXRoIGl0cyBjb2x1bW5zIGFuZCByZWxhdGlvbnMsXG4gICAgICogYW5kIGRvZXMgdGhlIHNhbWUgZm9yIGFsbCBpdHMgc3ViLWVtYmVkZGVkcyAoZ29lcyByZWN1cnNpdmVseSkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUVtYmVkZGVkc1JlY3Vyc2l2ZWx5KFxuICAgICAgICBlbnRpdHlNZXRhZGF0YTogRW50aXR5TWV0YWRhdGEsXG4gICAgICAgIGVtYmVkZGVkQXJnczogRW1iZWRkZWRNZXRhZGF0YUFyZ3NbXSxcbiAgICApOiBFbWJlZGRlZE1ldGFkYXRhW10ge1xuICAgICAgICByZXR1cm4gZW1iZWRkZWRBcmdzLm1hcCgoZW1iZWRkZWRBcmdzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRlZE1ldGFkYXRhID0gbmV3IEVtYmVkZGVkTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhOiBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICBhcmdzOiBlbWJlZGRlZEFyZ3MsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0czogYW55W10gPVxuICAgICAgICAgICAgICAgIHR5cGVvZiBlbWJlZGRlZE1ldGFkYXRhLnR5cGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICA/IE1ldGFkYXRhVXRpbHMuZ2V0SW5oZXJpdGFuY2VUcmVlKGVtYmVkZGVkTWV0YWRhdGEudHlwZSlcbiAgICAgICAgICAgICAgICAgICAgOiBbZW1iZWRkZWRNZXRhZGF0YS50eXBlXSAvLyB0b2RvOiBpbXBsZW1lbnQgbGF0ZXIgaGVyZSBpbmhlcml0YW5jZSBmb3Igc3RyaW5nLXRhcmdldHNcblxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5jb2x1bW5zID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlckNvbHVtbnModGFyZ2V0cylcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ29sdW1uTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbjogdGhpcy5jb25uZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5yZWxhdGlvbnMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyUmVsYXRpb25zKHRhcmdldHMpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlbGF0aW9uTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5saXN0ZW5lcnMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyTGlzdGVuZXJzKHRhcmdldHMpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVudGl0eUxpc3RlbmVyTWV0YWRhdGEoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5pbmRpY2VzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlckluZGljZXModGFyZ2V0cylcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSW5kZXhNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLnVuaXF1ZXMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyVW5pcXVlcyh0YXJnZXRzKVxuICAgICAgICAgICAgICAgIC5tYXAoKGFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmlxdWVNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHlNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLnJlbGF0aW9uSWRzID0gdGhpcy5tZXRhZGF0YUFyZ3NTdG9yYWdlXG4gICAgICAgICAgICAgICAgLmZpbHRlclJlbGF0aW9uSWRzKHRhcmdldHMpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlbGF0aW9uSWRNZXRhZGF0YSh7IGVudGl0eU1ldGFkYXRhLCBhcmdzIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGVtYmVkZGVkTWV0YWRhdGEucmVsYXRpb25Db3VudHMgPSB0aGlzLm1ldGFkYXRhQXJnc1N0b3JhZ2VcbiAgICAgICAgICAgICAgICAuZmlsdGVyUmVsYXRpb25Db3VudHModGFyZ2V0cylcbiAgICAgICAgICAgICAgICAubWFwKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVsYXRpb25Db3VudE1ldGFkYXRhKHsgZW50aXR5TWV0YWRhdGEsIGFyZ3MgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgZW1iZWRkZWRNZXRhZGF0YS5lbWJlZGRlZHMgPSB0aGlzLmNyZWF0ZUVtYmVkZGVkc1JlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIHRoaXMubWV0YWRhdGFBcmdzU3RvcmFnZS5maWx0ZXJFbWJlZGRlZHModGFyZ2V0cyksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBlbWJlZGRlZE1ldGFkYXRhLmVtYmVkZGVkcy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgIChzdWJFbWJlZGRlZCkgPT5cbiAgICAgICAgICAgICAgICAgICAgKHN1YkVtYmVkZGVkLnBhcmVudEVtYmVkZGVkTWV0YWRhdGEgPSBlbWJlZGRlZE1ldGFkYXRhKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmFsbEVtYmVkZGVkcy5wdXNoKGVtYmVkZGVkTWV0YWRhdGEpXG4gICAgICAgICAgICByZXR1cm4gZW1iZWRkZWRNZXRhZGF0YVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVzIGFsbCBlbnRpdHkgbWV0YWRhdGEncyBjb21wdXRlZCBwcm9wZXJ0aWVzLCBhbmQgYWxsIGl0cyBzdWItbWV0YWRhdGFzIChyZWxhdGlvbnMsIGNvbHVtbnMsIGVtYmVkcywgZXRjKS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY29tcHV0ZUVudGl0eU1ldGFkYXRhU3RlcDIoZW50aXR5TWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhKSB7XG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmVtYmVkZGVkcy5mb3JFYWNoKChlbWJlZGRlZCkgPT5cbiAgICAgICAgICAgIGVtYmVkZGVkLmJ1aWxkKHRoaXMuY29ubmVjdGlvbiksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZW1iZWRkZWRzLmZvckVhY2goKGVtYmVkZGVkKSA9PiB7XG4gICAgICAgICAgICBlbWJlZGRlZC5jb2x1bW5zRnJvbVRyZWUuZm9yRWFjaCgoY29sdW1uKSA9PlxuICAgICAgICAgICAgICAgIGNvbHVtbi5idWlsZCh0aGlzLmNvbm5lY3Rpb24pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgZW1iZWRkZWQucmVsYXRpb25zRnJvbVRyZWUuZm9yRWFjaCgocmVsYXRpb24pID0+IHJlbGF0aW9uLmJ1aWxkKCkpXG4gICAgICAgIH0pXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm93bkNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PlxuICAgICAgICAgICAgY29sdW1uLmJ1aWxkKHRoaXMuY29ubmVjdGlvbiksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub3duUmVsYXRpb25zLmZvckVhY2goKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5idWlsZCgpKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMucmVkdWNlKFxuICAgICAgICAgICAgKHJlbGF0aW9ucywgZW1iZWRkZWQpID0+XG4gICAgICAgICAgICAgICAgcmVsYXRpb25zLmNvbmNhdChlbWJlZGRlZC5yZWxhdGlvbnNGcm9tVHJlZSksXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25SZWxhdGlvbnMsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZWFnZXJSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc0VhZ2VyLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmxhenlSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc0xhenksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub25lVG9PbmVSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc09uZVRvT25lLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm9uZVRvTWFueVJlbGF0aW9ucyA9IGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzT25lVG9NYW55LFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm1hbnlUb09uZVJlbGF0aW9ucyA9IGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzTWFueVRvT25lLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLm1hbnlUb01hbnlSZWxhdGlvbnMgPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKHJlbGF0aW9uKSA9PiByZWxhdGlvbi5pc01hbnlUb01hbnksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEub3duZXJPbmVUb09uZVJlbGF0aW9ucyA9IGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzT25lVG9PbmVPd25lcixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25lck1hbnlUb01hbnlSZWxhdGlvbnMgPVxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbHRlcihcbiAgICAgICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzTWFueVRvTWFueU93bmVyLFxuICAgICAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS50cmVlUGFyZW50UmVsYXRpb24gPSBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbnMuZmluZChcbiAgICAgICAgICAgIChyZWxhdGlvbikgPT4gcmVsYXRpb24uaXNUcmVlUGFyZW50LFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnRyZWVDaGlsZHJlblJlbGF0aW9uID0gZW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbmQoXG4gICAgICAgICAgICAocmVsYXRpb24pID0+IHJlbGF0aW9uLmlzVHJlZUNoaWxkcmVuLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmNvbHVtbnMgPSBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMucmVkdWNlKFxuICAgICAgICAgICAgKGNvbHVtbnMsIGVtYmVkZGVkKSA9PiBjb2x1bW5zLmNvbmNhdChlbWJlZGRlZC5jb2x1bW5zRnJvbVRyZWUpLFxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duQ29sdW1ucyxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMucmVkdWNlKFxuICAgICAgICAgICAgKGxpc3RlbmVycywgZW1iZWRkZWQpID0+XG4gICAgICAgICAgICAgICAgbGlzdGVuZXJzLmNvbmNhdChlbWJlZGRlZC5saXN0ZW5lcnNGcm9tVHJlZSksXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25MaXN0ZW5lcnMsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuYWZ0ZXJMb2FkTGlzdGVuZXJzID0gZW50aXR5TWV0YWRhdGEubGlzdGVuZXJzLmZpbHRlcihcbiAgICAgICAgICAgIChsaXN0ZW5lcikgPT4gbGlzdGVuZXIudHlwZSA9PT0gRXZlbnRMaXN0ZW5lclR5cGVzLkFGVEVSX0xPQUQsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuYWZ0ZXJJbnNlcnRMaXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQUZURVJfSU5TRVJULFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmFmdGVyVXBkYXRlTGlzdGVuZXJzID0gZW50aXR5TWV0YWRhdGEubGlzdGVuZXJzLmZpbHRlcihcbiAgICAgICAgICAgIChsaXN0ZW5lcikgPT4gbGlzdGVuZXIudHlwZSA9PT0gRXZlbnRMaXN0ZW5lclR5cGVzLkFGVEVSX1VQREFURSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5hZnRlclJlbW92ZUxpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5BRlRFUl9SRU1PVkUsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuYWZ0ZXJTb2Z0UmVtb3ZlTGlzdGVuZXJzID1cbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGxpc3RlbmVyKSA9PlxuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQUZURVJfU09GVF9SRU1PVkUsXG4gICAgICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmFmdGVyUmVjb3Zlckxpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5BRlRFUl9SRUNPVkVSLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZUluc2VydExpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5CRUZPUkVfSU5TRVJULFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZVVwZGF0ZUxpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5CRUZPUkVfVVBEQVRFLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZVJlbW92ZUxpc3RlbmVycyA9IGVudGl0eU1ldGFkYXRhLmxpc3RlbmVycy5maWx0ZXIoXG4gICAgICAgICAgICAobGlzdGVuZXIpID0+IGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5CRUZPUkVfUkVNT1ZFLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZVNvZnRSZW1vdmVMaXN0ZW5lcnMgPVxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEubGlzdGVuZXJzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAobGlzdGVuZXIpID0+XG4gICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyLnR5cGUgPT09IEV2ZW50TGlzdGVuZXJUeXBlcy5CRUZPUkVfU09GVF9SRU1PVkUsXG4gICAgICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmJlZm9yZVJlY292ZXJMaXN0ZW5lcnMgPSBlbnRpdHlNZXRhZGF0YS5saXN0ZW5lcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGxpc3RlbmVyKSA9PiBsaXN0ZW5lci50eXBlID09PSBFdmVudExpc3RlbmVyVHlwZXMuQkVGT1JFX1JFQ09WRVIsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuaW5kaWNlcyA9IGVudGl0eU1ldGFkYXRhLmVtYmVkZGVkcy5yZWR1Y2UoXG4gICAgICAgICAgICAoaW5kaWNlcywgZW1iZWRkZWQpID0+IGluZGljZXMuY29uY2F0KGVtYmVkZGVkLmluZGljZXNGcm9tVHJlZSksXG4gICAgICAgICAgICBlbnRpdHlNZXRhZGF0YS5vd25JbmRpY2VzLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnVuaXF1ZXMgPSBlbnRpdHlNZXRhZGF0YS5lbWJlZGRlZHMucmVkdWNlKFxuICAgICAgICAgICAgKHVuaXF1ZXMsIGVtYmVkZGVkKSA9PiB1bmlxdWVzLmNvbmNhdChlbWJlZGRlZC51bmlxdWVzRnJvbVRyZWUpLFxuICAgICAgICAgICAgZW50aXR5TWV0YWRhdGEub3duVW5pcXVlcyxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5wcmltYXJ5Q29sdW1ucyA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzUHJpbWFyeSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5ub25WaXJ0dWFsQ29sdW1ucyA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gIWNvbHVtbi5pc1ZpcnR1YWwsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuYW5jZXN0b3JDb2x1bW5zID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maWx0ZXIoXG4gICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uY2xvc3VyZVR5cGUgPT09IFwiYW5jZXN0b3JcIixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5kZXNjZW5kYW50Q29sdW1ucyA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmNsb3N1cmVUeXBlID09PSBcImRlc2NlbmRhbnRcIixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5oYXNNdWx0aXBsZVByaW1hcnlLZXlzID1cbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLnByaW1hcnlDb2x1bW5zLmxlbmd0aCA+IDFcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZ2VuZXJhdGVkQ29sdW1ucyA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzR2VuZXJhdGVkIHx8IGNvbHVtbi5pc09iamVjdElkLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmhhc1VVSURHZW5lcmF0ZWRDb2x1bW5zID1cbiAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChjb2x1bW4pID0+XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi5pc0dlbmVyYXRlZCB8fCBjb2x1bW4uZ2VuZXJhdGlvblN0cmF0ZWd5ID09PSBcInV1aWRcIixcbiAgICAgICAgICAgICkubGVuZ3RoID4gMFxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5jcmVhdGVEYXRlQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzQ3JlYXRlRGF0ZSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS51cGRhdGVEYXRlQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzVXBkYXRlRGF0ZSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5kZWxldGVEYXRlQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzRGVsZXRlRGF0ZSxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS52ZXJzaW9uQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzVmVyc2lvbixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5kaXNjcmltaW5hdG9yQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzRGlzY3JpbWluYXRvcixcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS50cmVlTGV2ZWxDb2x1bW4gPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uaXNUcmVlTGV2ZWwsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEubmVzdGVkU2V0TGVmdENvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc05lc3RlZFNldExlZnQsXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEubmVzdGVkU2V0UmlnaHRDb2x1bW4gPSBlbnRpdHlNZXRhZGF0YS5jb2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAoY29sdW1uKSA9PiBjb2x1bW4uaXNOZXN0ZWRTZXRSaWdodCxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5tYXRlcmlhbGl6ZWRQYXRoQ29sdW1uID0gZW50aXR5TWV0YWRhdGEuY29sdW1ucy5maW5kKFxuICAgICAgICAgICAgKGNvbHVtbikgPT4gY29sdW1uLmlzTWF0ZXJpYWxpemVkUGF0aCxcbiAgICAgICAgKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5vYmplY3RJZENvbHVtbiA9IGVudGl0eU1ldGFkYXRhLmNvbHVtbnMuZmluZChcbiAgICAgICAgICAgIChjb2x1bW4pID0+IGNvbHVtbi5pc09iamVjdElkLFxuICAgICAgICApXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLmZvcmVpZ25LZXlzLmZvckVhY2goKGZvcmVpZ25LZXkpID0+XG4gICAgICAgICAgICBmb3JlaWduS2V5LmJ1aWxkKHRoaXMuY29ubmVjdGlvbi5uYW1pbmdTdHJhdGVneSksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEucHJvcGVydGllc01hcCA9IGVudGl0eU1ldGFkYXRhLmNyZWF0ZVByb3BlcnRpZXNNYXAoKVxuICAgICAgICBlbnRpdHlNZXRhZGF0YS5yZWxhdGlvbklkcy5mb3JFYWNoKChyZWxhdGlvbklkKSA9PiByZWxhdGlvbklkLmJ1aWxkKCkpXG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9uQ291bnRzLmZvckVhY2goKHJlbGF0aW9uQ291bnQpID0+XG4gICAgICAgICAgICByZWxhdGlvbkNvdW50LmJ1aWxkKCksXG4gICAgICAgIClcbiAgICAgICAgZW50aXR5TWV0YWRhdGEuZW1iZWRkZWRzLmZvckVhY2goKGVtYmVkZGVkKSA9PiB7XG4gICAgICAgICAgICBlbWJlZGRlZC5yZWxhdGlvbklkc0Zyb21UcmVlLmZvckVhY2goKHJlbGF0aW9uSWQpID0+XG4gICAgICAgICAgICAgICAgcmVsYXRpb25JZC5idWlsZCgpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgZW1iZWRkZWQucmVsYXRpb25Db3VudHNGcm9tVHJlZS5mb3JFYWNoKChyZWxhdGlvbkNvdW50KSA9PlxuICAgICAgICAgICAgICAgIHJlbGF0aW9uQ291bnQuYnVpbGQoKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wdXRlcyBlbnRpdHkgbWV0YWRhdGEncyByZWxhdGlvbnMgaW52ZXJzZSBzaWRlIHByb3BlcnRpZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVJbnZlcnNlUHJvcGVydGllcyhcbiAgICAgICAgZW50aXR5TWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhLFxuICAgICAgICBlbnRpdHlNZXRhZGF0YXM6IEVudGl0eU1ldGFkYXRhW10sXG4gICAgKSB7XG4gICAgICAgIGVudGl0eU1ldGFkYXRhLnJlbGF0aW9ucy5mb3JFYWNoKChyZWxhdGlvbikgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBpbnZlcnNlRW50aXR5TWV0YWRhdGEgPSBlbnRpdHlNZXRhZGF0YXMuZmluZChcbiAgICAgICAgICAgICAgICAobSkgPT5cbiAgICAgICAgICAgICAgICAgICAgbS50YXJnZXQgPT09IHJlbGF0aW9uLnR5cGUgfHxcbiAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiByZWxhdGlvbi50eXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAobS50YXJnZXROYW1lID09PSByZWxhdGlvbi50eXBlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5naXZlblRhYmxlTmFtZSA9PT0gcmVsYXRpb24udHlwZSkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKCFpbnZlcnNlRW50aXR5TWV0YWRhdGEpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVPUk1FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJFbnRpdHkgbWV0YWRhdGEgZm9yIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eU1ldGFkYXRhLm5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIjXCIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb24ucHJvcGVydHlQYXRoICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIHdhcyBub3QgZm91bmQuIENoZWNrIGlmIHlvdSBzcGVjaWZpZWQgYSBjb3JyZWN0IGVudGl0eSBvYmplY3QgYW5kIGlmIGl0J3MgY29ubmVjdGVkIGluIHRoZSBjb25uZWN0aW9uIG9wdGlvbnMuXCIsXG4gICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICByZWxhdGlvbi5pbnZlcnNlRW50aXR5TWV0YWRhdGEgPSBpbnZlcnNlRW50aXR5TWV0YWRhdGFcbiAgICAgICAgICAgIHJlbGF0aW9uLmludmVyc2VTaWRlUHJvcGVydHlQYXRoID1cbiAgICAgICAgICAgICAgICByZWxhdGlvbi5idWlsZEludmVyc2VTaWRlUHJvcGVydHlQYXRoKClcblxuXG4gICAgICAgICAgICByZWxhdGlvbi5pbnZlcnNlUmVsYXRpb24gPSBpbnZlcnNlRW50aXR5TWV0YWRhdGEucmVsYXRpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKGZvdW5kUmVsYXRpb24pID0+XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kUmVsYXRpb24ucHJvcGVydHlQYXRoID09PVxuICAgICAgICAgICAgICAgICAgICByZWxhdGlvbi5pbnZlcnNlU2lkZVByb3BlcnR5UGF0aCxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGluZGljZXMgZm9yIHRoZSB0YWJsZSBvZiBzaW5nbGUgdGFibGUgaW5oZXJpdGFuY2UuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUtleXNGb3JUYWJsZUluaGVyaXRhbmNlKGVudGl0eU1ldGFkYXRhOiBFbnRpdHlNZXRhZGF0YSkge1xuICAgICAgICBlbnRpdHlNZXRhZGF0YS5pbmRpY2VzLnB1c2goXG4gICAgICAgICAgICBuZXcgSW5kZXhNZXRhZGF0YSh7XG4gICAgICAgICAgICAgICAgZW50aXR5TWV0YWRhdGE6IGVudGl0eU1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIGNvbHVtbnM6IFtlbnRpdHlNZXRhZGF0YS5kaXNjcmltaW5hdG9yQ29sdW1uIV0sXG4gICAgICAgICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGVudGl0eU1ldGFkYXRhLnRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICB9XG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uLXR5cGVvcm0gbGliL3R5cGVvcm0vbWV0YWRhdGEtYnVpbGRlci9FbnRpdHlNZXRhZGF0YUJ1aWxkZXIudHMiXX0=
|