@ultipa-graph/ultipa-driver
Version:
NodeJS SDK for Ultipa GQL
237 lines • 22.9 kB
JavaScript
"use strict";
/**
* Error definitions for GQLDB Node.js driver.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.UnsupportedTypeError = exports.TypeConversionError = exports.InvalidTypeError = exports.ExportFailedError = exports.DeleteFailedError = exports.InsertFailedError = exports.DropGraphFailedError = exports.CreateGraphFailedError = exports.GraphExistsError = exports.GraphNotFoundError = exports.EmptyQueryError = exports.InvalidQueryError = exports.QueryTimeoutError = exports.QueryFailedError = exports.TransactionAlreadyOpenError = exports.TransactionNotFoundError = exports.TransactionFailedError = exports.NoTransactionError = exports.InvalidSessionError = exports.SessionExpiredError = exports.LogoutFailedError = exports.LoginFailedError = exports.NotLoggedInError = exports.HealthCheckFailedError = exports.AllHostsFailedError = exports.ConnectionFailedError = exports.ConnectionClosedError = exports.NoConnectionError = exports.InvalidTimeoutError = exports.NoHostsError = exports.GqldbError = void 0;
/** Base error class for GQLDB errors */
class GqldbError extends Error {
code;
cause;
constructor(message, code = 0, cause) {
super(message);
this.code = code;
this.cause = cause;
this.name = 'GqldbError';
}
}
exports.GqldbError = GqldbError;
// Configuration errors
class NoHostsError extends GqldbError {
constructor() {
super('No hosts configured');
this.name = 'NoHostsError';
}
}
exports.NoHostsError = NoHostsError;
class InvalidTimeoutError extends GqldbError {
constructor() {
super('Invalid timeout value');
this.name = 'InvalidTimeoutError';
}
}
exports.InvalidTimeoutError = InvalidTimeoutError;
// Connection errors
class NoConnectionError extends GqldbError {
constructor() {
super('No connection available');
this.name = 'NoConnectionError';
}
}
exports.NoConnectionError = NoConnectionError;
class ConnectionClosedError extends GqldbError {
constructor() {
super('Connection closed');
this.name = 'ConnectionClosedError';
}
}
exports.ConnectionClosedError = ConnectionClosedError;
class ConnectionFailedError extends GqldbError {
constructor(message = 'Connection failed', cause) {
super(message, 0, cause);
this.name = 'ConnectionFailedError';
}
}
exports.ConnectionFailedError = ConnectionFailedError;
class AllHostsFailedError extends GqldbError {
constructor() {
super('All hosts failed to connect');
this.name = 'AllHostsFailedError';
}
}
exports.AllHostsFailedError = AllHostsFailedError;
class HealthCheckFailedError extends GqldbError {
constructor() {
super('Health check failed');
this.name = 'HealthCheckFailedError';
}
}
exports.HealthCheckFailedError = HealthCheckFailedError;
// Session errors
class NotLoggedInError extends GqldbError {
constructor() {
super('Not logged in');
this.name = 'NotLoggedInError';
}
}
exports.NotLoggedInError = NotLoggedInError;
class LoginFailedError extends GqldbError {
constructor(message = 'Login failed', cause) {
super(message, 0, cause);
this.name = 'LoginFailedError';
}
}
exports.LoginFailedError = LoginFailedError;
class LogoutFailedError extends GqldbError {
constructor(message = 'Logout failed', cause) {
super(message, 0, cause);
this.name = 'LogoutFailedError';
}
}
exports.LogoutFailedError = LogoutFailedError;
class SessionExpiredError extends GqldbError {
constructor() {
super('Session expired');
this.name = 'SessionExpiredError';
}
}
exports.SessionExpiredError = SessionExpiredError;
class InvalidSessionError extends GqldbError {
constructor() {
super('Invalid session');
this.name = 'InvalidSessionError';
}
}
exports.InvalidSessionError = InvalidSessionError;
// Transaction errors
class NoTransactionError extends GqldbError {
constructor() {
super('No active transaction');
this.name = 'NoTransactionError';
}
}
exports.NoTransactionError = NoTransactionError;
class TransactionFailedError extends GqldbError {
constructor(message = 'Transaction failed', cause) {
super(message, 0, cause);
this.name = 'TransactionFailedError';
}
}
exports.TransactionFailedError = TransactionFailedError;
class TransactionNotFoundError extends GqldbError {
constructor() {
super('Transaction not found');
this.name = 'TransactionNotFoundError';
}
}
exports.TransactionNotFoundError = TransactionNotFoundError;
class TransactionAlreadyOpenError extends GqldbError {
constructor() {
super('Transaction already open');
this.name = 'TransactionAlreadyOpenError';
}
}
exports.TransactionAlreadyOpenError = TransactionAlreadyOpenError;
// Query errors
class QueryFailedError extends GqldbError {
constructor(message = 'Query failed', cause) {
super(message, 0, cause);
this.name = 'QueryFailedError';
}
}
exports.QueryFailedError = QueryFailedError;
class QueryTimeoutError extends GqldbError {
constructor() {
super('Query timeout');
this.name = 'QueryTimeoutError';
}
}
exports.QueryTimeoutError = QueryTimeoutError;
class InvalidQueryError extends GqldbError {
constructor(message = 'Invalid query') {
super(message);
this.name = 'InvalidQueryError';
}
}
exports.InvalidQueryError = InvalidQueryError;
class EmptyQueryError extends GqldbError {
constructor() {
super('Empty query');
this.name = 'EmptyQueryError';
}
}
exports.EmptyQueryError = EmptyQueryError;
// Graph errors
class GraphNotFoundError extends GqldbError {
constructor(graphName = '') {
super(graphName ? `Graph not found: ${graphName}` : 'Graph not found');
this.name = 'GraphNotFoundError';
}
}
exports.GraphNotFoundError = GraphNotFoundError;
class GraphExistsError extends GqldbError {
constructor(graphName = '') {
super(graphName ? `Graph already exists: ${graphName}` : 'Graph already exists');
this.name = 'GraphExistsError';
}
}
exports.GraphExistsError = GraphExistsError;
class CreateGraphFailedError extends GqldbError {
constructor(message = 'Create graph failed', cause) {
super(message, 0, cause);
this.name = 'CreateGraphFailedError';
}
}
exports.CreateGraphFailedError = CreateGraphFailedError;
class DropGraphFailedError extends GqldbError {
constructor(message = 'Drop graph failed', cause) {
super(message, 0, cause);
this.name = 'DropGraphFailedError';
}
}
exports.DropGraphFailedError = DropGraphFailedError;
// Data errors
class InsertFailedError extends GqldbError {
constructor(message = 'Insert failed', cause) {
super(message, 0, cause);
this.name = 'InsertFailedError';
}
}
exports.InsertFailedError = InsertFailedError;
class DeleteFailedError extends GqldbError {
constructor(message = 'Delete failed', cause) {
super(message, 0, cause);
this.name = 'DeleteFailedError';
}
}
exports.DeleteFailedError = DeleteFailedError;
class ExportFailedError extends GqldbError {
constructor(message = 'Export failed', cause) {
super(message, 0, cause);
this.name = 'ExportFailedError';
}
}
exports.ExportFailedError = ExportFailedError;
// Type errors
class InvalidTypeError extends GqldbError {
constructor(message = 'Invalid type') {
super(message);
this.name = 'InvalidTypeError';
}
}
exports.InvalidTypeError = InvalidTypeError;
class TypeConversionError extends GqldbError {
constructor(message = 'Type conversion failed') {
super(message);
this.name = 'TypeConversionError';
}
}
exports.TypeConversionError = TypeConversionError;
class UnsupportedTypeError extends GqldbError {
constructor(typeName = '') {
super(typeName ? `Unsupported type: ${typeName}` : 'Unsupported type');
this.name = 'UnsupportedTypeError';
}
}
exports.UnsupportedTypeError = UnsupportedTypeError;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILHdDQUF3QztBQUN4QyxNQUFhLFVBQVcsU0FBUSxLQUFLO0lBR2pCO0lBQ0E7SUFIbEIsWUFDRSxPQUFlLEVBQ0MsT0FBZSxDQUFDLEVBQ2hCLEtBQWE7UUFFN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBSEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBRzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQVRELGdDQVNDO0FBRUQsdUJBQXVCO0FBQ3ZCLE1BQWEsWUFBYSxTQUFRLFVBQVU7SUFDMUM7UUFDRSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFMRCxvQ0FLQztBQUVELE1BQWEsbUJBQW9CLFNBQVEsVUFBVTtJQUNqRDtRQUNFLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBTEQsa0RBS0M7QUFFRCxvQkFBb0I7QUFDcEIsTUFBYSxpQkFBa0IsU0FBUSxVQUFVO0lBQy9DO1FBQ0UsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFMRCw4Q0FLQztBQUVELE1BQWEscUJBQXNCLFNBQVEsVUFBVTtJQUNuRDtRQUNFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBTEQsc0RBS0M7QUFFRCxN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QUFHLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQUxELDhDQUtDO0FBRUQsY0FBYztBQUNkLE1BQWEsZ0JBQWlCLFNBQVEsVUFBVTtJQUM5QyxZQUFZLFVBQWtCLGNBQWM7UUFDMUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFMRCw0Q0FLQztBQUVELE1BQWEsbUJBQW9CLFNBQVEsVUFBVTtJQUNqRCxZQUFZLFVBQWtCLHdCQUF3QjtRQUNwRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUxELGtEQUtDO0FBRUQsTUFBYSxvQkFBcUIsU0FBUSxVQUFVO0lBQ2xELFlBQVksV0FBbUIsRUFBRTtRQUMvQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFMRCxvREFLQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXJyb3IgZGVmaW5pdGlvbnMgZm9yIEdRTERCIE5vZGUuanMgZHJpdmVyLlxuICovXG5cbi8qKiBCYXNlIGVycm9yIGNsYXNzIGZvciBHUUxEQiBlcnJvcnMgKi9cbmV4cG9ydCBjbGFzcyBHcWxkYkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGNvZGU6IG51bWJlciA9IDAsXG4gICAgcHVibGljIHJlYWRvbmx5IGNhdXNlPzogRXJyb3JcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0dxbGRiRXJyb3InO1xuICB9XG59XG5cbi8vIENvbmZpZ3VyYXRpb24gZXJyb3JzXG5leHBvcnQgY2xhc3MgTm9Ib3N0c0Vycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdObyBob3N0cyBjb25maWd1cmVkJyk7XG4gICAgdGhpcy5uYW1lID0gJ05vSG9zdHNFcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludmFsaWRUaW1lb3V0RXJyb3IgZXh0ZW5kcyBHcWxkYkVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0ludmFsaWQgdGltZW91dCB2YWx1ZScpO1xuICAgIHRoaXMubmFtZSA9ICdJbnZhbGlkVGltZW91dEVycm9yJztcbiAgfVxufVxuXG4vLyBDb25uZWN0aW9uIGVycm9yc1xuZXhwb3J0IGNsYXNzIE5vQ29ubmVjdGlvbkVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdObyBjb25uZWN0aW9uIGF2YWlsYWJsZScpO1xuICAgIHRoaXMubmFtZSA9ICdOb0Nvbm5lY3Rpb25FcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25DbG9zZWRFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignQ29ubmVjdGlvbiBjbG9zZWQnKTtcbiAgICB0aGlzLm5hbWUgPSAnQ29ubmVjdGlvbkNsb3NlZEVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvbkZhaWxlZEVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9ICdDb25uZWN0aW9uIGZhaWxlZCcsIGNhdXNlPzogRXJyb3IpIHtcbiAgICBzdXBlcihtZXNzYWdlLCAwLCBjYXVzZSk7XG4gICAgdGhpcy5uYW1lID0gJ0Nvbm5lY3Rpb25GYWlsZWRFcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFsbEhvc3RzRmFpbGVkRXJyb3IgZXh0ZW5kcyBHcWxkYkVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0FsbCBob3N0cyBmYWlsZWQgdG8gY29ubmVjdCcpO1xuICAgIHRoaXMubmFtZSA9ICdBbGxIb3N0c0ZhaWxlZEVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSGVhbHRoQ2hlY2tGYWlsZWRFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignSGVhbHRoIGNoZWNrIGZhaWxlZCcpO1xuICAgIHRoaXMubmFtZSA9ICdIZWFsdGhDaGVja0ZhaWxlZEVycm9yJztcbiAgfVxufVxuXG4vLyBTZXNzaW9uIGVycm9yc1xuZXhwb3J0IGNsYXNzIE5vdExvZ2dlZEluRXJyb3IgZXh0ZW5kcyBHcWxkYkVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ05vdCBsb2dnZWQgaW4nKTtcbiAgICB0aGlzLm5hbWUgPSAnTm90TG9nZ2VkSW5FcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExvZ2luRmFpbGVkRXJyb3IgZXh0ZW5kcyBHcWxkYkVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gJ0xvZ2luIGZhaWxlZCcsIGNhdXNlPzogRXJyb3IpIHtcbiAgICBzdXBlcihtZXNzYWdlLCAwLCBjYXVzZSk7XG4gICAgdGhpcy5uYW1lID0gJ0xvZ2luRmFpbGVkRXJyb3InO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dvdXRGYWlsZWRFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSAnTG9nb3V0IGZhaWxlZCcsIGNhdXNlPzogRXJyb3IpIHtcbiAgICBzdXBlcihtZXNzYWdlLCAwLCBjYXVzZSk7XG4gICAgdGhpcy5uYW1lID0gJ0xvZ291dEZhaWxlZEVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2Vzc2lvbkV4cGlyZWRFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignU2Vzc2lvbiBleHBpcmVkJyk7XG4gICAgdGhpcy5uYW1lID0gJ1Nlc3Npb25FeHBpcmVkRXJyb3InO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkU2Vzc2lvbkVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdJbnZhbGlkIHNlc3Npb24nKTtcbiAgICB0aGlzLm5hbWUgPSAnSW52YWxpZFNlc3Npb25FcnJvcic7XG4gIH1cbn1cblxuLy8gVHJhbnNhY3Rpb24gZXJyb3JzXG5leHBvcnQgY2xhc3MgTm9UcmFuc2FjdGlvbkVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdObyBhY3RpdmUgdHJhbnNhY3Rpb24nKTtcbiAgICB0aGlzLm5hbWUgPSAnTm9UcmFuc2FjdGlvbkVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25GYWlsZWRFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSAnVHJhbnNhY3Rpb24gZmFpbGVkJywgY2F1c2U/OiBFcnJvcikge1xuICAgIHN1cGVyKG1lc3NhZ2UsIDAsIGNhdXNlKTtcbiAgICB0aGlzLm5hbWUgPSAnVHJhbnNhY3Rpb25GYWlsZWRFcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTm90Rm91bmRFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignVHJhbnNhY3Rpb24gbm90IGZvdW5kJyk7XG4gICAgdGhpcy5uYW1lID0gJ1RyYW5zYWN0aW9uTm90Rm91bmRFcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQWxyZWFkeU9wZW5FcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignVHJhbnNhY3Rpb24gYWxyZWFkeSBvcGVuJyk7XG4gICAgdGhpcy5uYW1lID0gJ1RyYW5zYWN0aW9uQWxyZWFkeU9wZW5FcnJvcic7XG4gIH1cbn1cblxuLy8gUXVlcnkgZXJyb3JzXG5leHBvcnQgY2xhc3MgUXVlcnlGYWlsZWRFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSAnUXVlcnkgZmFpbGVkJywgY2F1c2U/OiBFcnJvcikge1xuICAgIHN1cGVyKG1lc3NhZ2UsIDAsIGNhdXNlKTtcbiAgICB0aGlzLm5hbWUgPSAnUXVlcnlGYWlsZWRFcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFF1ZXJ5VGltZW91dEVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdRdWVyeSB0aW1lb3V0Jyk7XG4gICAgdGhpcy5uYW1lID0gJ1F1ZXJ5VGltZW91dEVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52YWxpZFF1ZXJ5RXJyb3IgZXh0ZW5kcyBHcWxkYkVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gJ0ludmFsaWQgcXVlcnknKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0ludmFsaWRRdWVyeUVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW1wdHlRdWVyeUVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdFbXB0eSBxdWVyeScpO1xuICAgIHRoaXMubmFtZSA9ICdFbXB0eVF1ZXJ5RXJyb3InO1xuICB9XG59XG5cbi8vIEdyYXBoIGVycm9yc1xuZXhwb3J0IGNsYXNzIEdyYXBoTm90Rm91bmRFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihncmFwaE5hbWU6IHN0cmluZyA9ICcnKSB7XG4gICAgc3VwZXIoZ3JhcGhOYW1lID8gYEdyYXBoIG5vdCBmb3VuZDogJHtncmFwaE5hbWV9YCA6ICdHcmFwaCBub3QgZm91bmQnKTtcbiAgICB0aGlzLm5hbWUgPSAnR3JhcGhOb3RGb3VuZEVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgR3JhcGhFeGlzdHNFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihncmFwaE5hbWU6IHN0cmluZyA9ICcnKSB7XG4gICAgc3VwZXIoZ3JhcGhOYW1lID8gYEdyYXBoIGFscmVhZHkgZXhpc3RzOiAke2dyYXBoTmFtZX1gIDogJ0dyYXBoIGFscmVhZHkgZXhpc3RzJyk7XG4gICAgdGhpcy5uYW1lID0gJ0dyYXBoRXhpc3RzRXJyb3InO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDcmVhdGVHcmFwaEZhaWxlZEVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9ICdDcmVhdGUgZ3JhcGggZmFpbGVkJywgY2F1c2U/OiBFcnJvcikge1xuICAgIHN1cGVyKG1lc3NhZ2UsIDAsIGNhdXNlKTtcbiAgICB0aGlzLm5hbWUgPSAnQ3JlYXRlR3JhcGhGYWlsZWRFcnJvcic7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERyb3BHcmFwaEZhaWxlZEVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9ICdEcm9wIGdyYXBoIGZhaWxlZCcsIGNhdXNlPzogRXJyb3IpIHtcbiAgICBzdXBlcihtZXNzYWdlLCAwLCBjYXVzZSk7XG4gICAgdGhpcy5uYW1lID0gJ0Ryb3BHcmFwaEZhaWxlZEVycm9yJztcbiAgfVxufVxuXG4vLyBEYXRhIGVycm9yc1xuZXhwb3J0IGNsYXNzIEluc2VydEZhaWxlZEVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9ICdJbnNlcnQgZmFpbGVkJywgY2F1c2U/OiBFcnJvcikge1xuICAgIHN1cGVyKG1lc3NhZ2UsIDAsIGNhdXNlKTtcbiAgICB0aGlzLm5hbWUgPSAnSW5zZXJ0RmFpbGVkRXJyb3InO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVGYWlsZWRFcnJvciBleHRlbmRzIEdxbGRiRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSAnRGVsZXRlIGZhaWxlZCcsIGNhdXNlPzogRXJyb3IpIHtcbiAgICBzdXBlcihtZXNzYWdlLCAwLCBjYXVzZSk7XG4gICAgdGhpcy5uYW1lID0gJ0RlbGV0ZUZhaWxlZEVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXhwb3J0RmFpbGVkRXJyb3IgZXh0ZW5kcyBHcWxkYkVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gJ0V4cG9ydCBmYWlsZWQnLCBjYXVzZT86IEVycm9yKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgMCwgY2F1c2UpO1xuICAgIHRoaXMubmFtZSA9ICdFeHBvcnRGYWlsZWRFcnJvcic7XG4gIH1cbn1cblxuLy8gVHlwZSBlcnJvcnNcbmV4cG9ydCBjbGFzcyBJbnZhbGlkVHlwZUVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9ICdJbnZhbGlkIHR5cGUnKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0ludmFsaWRUeXBlRXJyb3InO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUeXBlQ29udmVyc2lvbkVycm9yIGV4dGVuZHMgR3FsZGJFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9ICdUeXBlIGNvbnZlcnNpb24gZmFpbGVkJykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdUeXBlQ29udmVyc2lvbkVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVW5zdXBwb3J0ZWRUeXBlRXJyb3IgZXh0ZW5kcyBHcWxkYkVycm9yIHtcbiAgY29uc3RydWN0b3IodHlwZU5hbWU6IHN0cmluZyA9ICcnKSB7XG4gICAgc3VwZXIodHlwZU5hbWUgPyBgVW5zdXBwb3J0ZWQgdHlwZTogJHt0eXBlTmFtZX1gIDogJ1Vuc3VwcG9ydGVkIHR5cGUnKTtcbiAgICB0aGlzLm5hbWUgPSAnVW5zdXBwb3J0ZWRUeXBlRXJyb3InO1xuICB9XG59XG4iXX0=