!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/mindsDb/node_modules/mindsdb-js-sdk/dist/models/   drwxr-xr-x
Free 13.32 GB of 57.97 GB (22.98%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     modelsRestApiClient.js (25.66 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
"use strict";
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (g && (g = 0, op[0] && (_ = 0)), _) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var modelsApiClient_1 = __importDefault(require("./modelsApiClient"));
var mysql_1 = __importDefault(require("mysql"));
var model_1 = require("./model");
var errors_1 = require("../errors");
/** Implementation of ModelsApiClient that goes through the REST API */
var ModelsRestApiClient = /** @class */ (function (_super) {
    __extends(ModelsRestApiClient, _super);
    /**
     *
     * @param {SqlApiClient} sqlClient - SQL API client to send all SQL query requests.
     */
    function ModelsRestApiClient(sqlClient) {
        var _this = _super.call(this) || this;
        _this.sqlClient = sqlClient;
        return _this;
    }
    ModelsRestApiClient.prototype.makeRetrainClause = function (name, project) {
        return "RETRAIN ".concat(mysql_1.default.escapeId(project), ".").concat(mysql_1.default.escapeId(name));
    };
    ModelsRestApiClient.prototype.makeTrainingCreateClause = function (name, project) {
        return "CREATE MODEL ".concat(mysql_1.default.escapeId(project), ".").concat(mysql_1.default.escapeId(name));
    };
    ModelsRestApiClient.prototype.makeTrainingFromClause = function (options) {
        var integration = options['integration'];
        if (integration) {
            return "FROM ".concat(mysql_1.default.escapeId(integration));
        }
        return '';
    };
    ModelsRestApiClient.prototype.makeTrainingSelectClause = function (options) {
        var select = options['select'];
        if (select) {
            return "(".concat(select, ")");
        }
        return '';
    };
    ModelsRestApiClient.prototype.makeTrainingPredictClause = function (targetColumn) {
        return "PREDICT ".concat(mysql_1.default.escapeId(targetColumn));
    };
    ModelsRestApiClient.prototype.makeTrainingOrderByClause = function (trainingOptions) {
        var orderByColumn = trainingOptions['orderBy'];
        if (!orderByColumn) {
            return '';
        }
        return "ORDER BY ".concat(mysql_1.default.escapeId(orderByColumn));
    };
    ModelsRestApiClient.prototype.makeTrainingGroupByClause = function (trainingOptions) {
        var groupByColumn = trainingOptions['groupBy'];
        if (!groupByColumn) {
            return '';
        }
        return "GROUP BY ".concat(mysql_1.default.escapeId(groupByColumn));
    };
    ModelsRestApiClient.prototype.makeTrainingWindowHorizonClause = function (trainingOptions) {
        var window = trainingOptions['window'];
        var horizon = trainingOptions['horizon'];
        if (!window || !horizon) {
            return '';
        }
        return "WINDOW ".concat(mysql_1.default.escape(window), "\nHORIZON ").concat(mysql_1.default.escape(horizon));
    };
    ModelsRestApiClient.prototype.makeWhereClause = function (where) {
        var whereClause = '';
        if (Array.isArray(where)) {
            if (where.length === 0) {
                return whereClause;
            }
            whereClause = "WHERE ".concat(where[0], "\n");
            if (where.length === 1) {
                return whereClause;
            }
            whereClause += where
                .slice(1)
                .map(function (o) {
                // Escaping WHERE conditions is quite tricky. We should
                // come up with a better solution to indicate WHERE conditions
                // when querying so we aren't passing a raw string.
                return "AND ".concat(o);
            })
                .join('\n');
        }
        else {
            whereClause = "WHERE ".concat(where);
        }
        return whereClause;
    };
    ModelsRestApiClient.prototype.makeTrainingUsingClause = function (options) {
        var using = options['using'];
        if (!using) {
            return '';
        }
        var allParams = [];
        for (var param in using) {
            var paramVal = using[param];
            if (Array.isArray(paramVal) || typeof paramVal === 'object') {
                // MindsDB SQL allows param values to be objects and arrays, not just primitives.
                paramVal = JSON.stringify(paramVal);
            }
            else {
                paramVal = mysql_1.default.escape(paramVal);
            }
            allParams.push("".concat(mysql_1.default.escapeId(param), " = ").concat(paramVal));
        }
        return "USING\n".concat(allParams.join(',\n'));
    };
    /**
     * Gets a model by name and project.
     * @param {string} name - Name of the model.
     * @param {string} project - Project the model belongs to.
     * @param {number} version - The version of the model.
     * @returns {Promise<Model | undefined>} - The matching model, or undefined if none exists.
     */
    ModelsRestApiClient.prototype.getModel = function (name, project, version) {
        var _a;
        return __awaiter(this, void 0, void 0, function () {
            var selectQuery, sqlQueryResult;
            return __generator(this, function (_b) {
                switch (_b.label) {
                    case 0:
                        selectQuery = "SELECT * FROM ".concat(mysql_1.default.escapeId(project), ".models").concat(version ? '_versions' : '', " WHERE name = ").concat(mysql_1.default.escape(name)).concat(version ? " and version = ".concat(mysql_1.default.escape(version)) : '');
                        return [4 /*yield*/, this.sqlClient.runQuery(selectQuery)];
                    case 1:
                        sqlQueryResult = _b.sent();
                        if (((_a = sqlQueryResult.rows) === null || _a === void 0 ? void 0 : _a.length) === 0) {
                            return [2 /*return*/, undefined];
                        }
                        return [2 /*return*/, model_1.Model.fromModelRow(sqlQueryResult.rows[0], this)];
                }
            });
        });
    };
    /**
     * Gets all models associated with a project.
     * @param {string} project - Project the models belong to.
     * @returns {Promise<Array<Model>>} - All models for the given project.
     */
    ModelsRestApiClient.prototype.getAllModels = function (project) {
        return __awaiter(this, void 0, void 0, function () {
            var selectQuery, sqlQueryResult;
            var _this = this;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        selectQuery = "SELECT * FROM ".concat(mysql_1.default.escapeId(project), ".models");
                        return [4 /*yield*/, this.sqlClient.runQuery(selectQuery)];
                    case 1:
                        sqlQueryResult = _a.sent();
                        return [2 /*return*/, sqlQueryResult.rows.map(function (modelRow) {
                                return model_1.Model.fromModelRow(modelRow, _this);
                            })];
                }
            });
        });
    };
    /**
     * Describes the features of this model.
     * @param {string} name - Name of the model.
     * @param {string} project - Project the model belongs to.
     * @param {number} [version] - Optional version of the model to describe.
     * @returns {Array<ModelFeatureDescription>} - All feature descriptions of the model. Empty if the model doesn't exist.
     */
    ModelsRestApiClient.prototype.describeModel = function (name, project, version) {
        return __awaiter(this, void 0, void 0, function () {
            var describeQuery, sqlQueryResult;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        describeQuery = "DESCRIBE ".concat(mysql_1.default.escapeId(project), ".").concat(mysql_1.default.escapeId(name), ".").concat(version ? "".concat(mysql_1.default.escapeId(version.toString()), ".") : '', "`features`");
                        return [4 /*yield*/, this.sqlClient.runQuery(describeQuery)];
                    case 1:
                        sqlQueryResult = _a.sent();
                        if (sqlQueryResult.rows.length === 0) {
                            return [2 /*return*/, []];
                        }
                        return [2 /*return*/, sqlQueryResult.rows];
                }
            });
        });
    };
    /**
     * Describes the features of this model.
     * @param {string} name - Name of the model.
     * @param {string} project - Project the model belongs to.
     * @param {string} attribute - The attribute to describe.
     * @param {number} [version] - Optional version of the model to describe.
     * @param {string} unique_id - Optional unique id to filter the accuracy by.
     * @returns {Array<ModelDescribeAttribute>} - All feature descriptions of the model. Empty if the model doesn't exist.
     */
    ModelsRestApiClient.prototype.describeModelAttribute = function (name, project, attribute, version, unique_id) {
        return __awaiter(this, void 0, void 0, function () {
            var describeQuery, sqlQueryResult;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        describeQuery = "DESCRIBE ".concat(mysql_1.default.escapeId(project), ".").concat(mysql_1.default.escapeId(name), ".").concat(version ? "".concat(mysql_1.default.escapeId(version.toString()), ".") : '').concat(mysql_1.default.escapeId(attribute)).concat(unique_id ? ".".concat(mysql_1.default.escapeId(unique_id)) : '');
                        return [4 /*yield*/, this.sqlClient.runQuery(describeQuery)];
                    case 1:
                        sqlQueryResult = _a.sent();
                        if (sqlQueryResult.rows.length === 0) {
                            return [2 /*return*/, []];
                        }
                        return [2 /*return*/, sqlQueryResult.rows];
                }
            });
        });
    };
    /**
     * Deletes this model.
     * @param {string} name - Name of the model.
     * @param {string} project - Project the model belongs to.
     * @throws {MindsDB} - Something went wrong deleting the model.
     *
     */
    ModelsRestApiClient.prototype.deleteModel = function (name, project) {
        return __awaiter(this, void 0, void 0, function () {
            var deleteQuery, sqlQueryResult;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        deleteQuery = "DROP MODEL ".concat(mysql_1.default.escapeId(project), ".").concat(mysql_1.default.escapeId(name));
                        return [4 /*yield*/, this.sqlClient.runQuery(deleteQuery)];
                    case 1:
                        sqlQueryResult = _a.sent();
                        if (sqlQueryResult.error_message) {
                            throw new errors_1.MindsDbError(sqlQueryResult.error_message);
                        }
                        return [2 /*return*/];
                }
            });
        });
    };
    /**
     * Queries this model for a single prediction. For batch predictions, use batchQuery.
     * @param {string} name - Name of the model.
     * @param {string} targetColumn - Column that the model predicts.
     * @param {string} project - Project the model belongs to.
     * @param {QueryOptions} options - Options to use when querying the model.
     * @returns {Promise<ModelPrediction>} - The prediction result.
     * @throws {MindsDbError} - Something went wrong querying the model.
     */
    ModelsRestApiClient.prototype.queryModel = function (name, version, targetColumn, project, options) {
        return __awaiter(this, void 0, void 0, function () {
            var selectClause, whereClause, selectQuery, sqlQueryResult, predictionRow, prediction;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        selectClause = "SELECT * FROM ".concat(mysql_1.default.escapeId(project), ".").concat(mysql_1.default.escapeId(name), ".").concat(version);
                        whereClause = this.makeWhereClause(options['where'] || []);
                        selectQuery = [selectClause, whereClause].join('\n');
                        return [4 /*yield*/, this.sqlClient.runQuery(selectQuery)];
                    case 1:
                        sqlQueryResult = _a.sent();
                        if (sqlQueryResult.error_message) {
                            throw new errors_1.MindsDbError(sqlQueryResult.error_message);
                        }
                        predictionRow = sqlQueryResult.rows[0];
                        prediction = {
                            value: predictionRow[targetColumn],
                            explain: predictionRow["".concat(targetColumn, "_explain")],
                            data: predictionRow,
                        };
                        return [2 /*return*/, prediction];
                }
            });
        });
    };
    /**
     * Queries this model for a batch prediction by joining with another data source.
     * @param {string} name - Name of the model.
     * @param {string} targetColumn - Column that the model predicts.
     * @param {string} project - Project the model belongs to.
     * @param {BatchQueryOptions} options - Options to use when querying the model.
     * @returns {Promise<Array<ModelPrediction>>} - All prediction results from the batch query.
     * @throws {MindsDbError} - Something went wrong querying the model.
     */
    ModelsRestApiClient.prototype.batchQueryModel = function (name, version, targetColumn, project, options) {
        return __awaiter(this, void 0, void 0, function () {
            var selectClause, joinId, fromClause, joinClause, whereClause, limitClause, selectQuery, sqlQueryResult;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        selectClause = "SELECT m.".concat(mysql_1.default.escapeId(targetColumn), " AS predicted, t.*, m.*");
                        joinId = options['join'];
                        fromClause = "FROM ".concat(mysql_1.default.escapeId(joinId), " AS t");
                        joinClause = "JOIN ".concat(mysql_1.default.escapeId(project), ".").concat(mysql_1.default.escapeId(name), ".").concat(version, " AS m");
                        whereClause = this.makeWhereClause(options['where'] || []);
                        limitClause = options['limit']
                            ? "LIMIT ".concat(mysql_1.default.escape(options['limit']))
                            : '';
                        selectQuery = [
                            selectClause,
                            fromClause,
                            joinClause,
                            whereClause,
                            limitClause,
                        ].join('\n');
                        return [4 /*yield*/, this.sqlClient.runQuery(selectQuery)];
                    case 1:
                        sqlQueryResult = _a.sent();
                        if (sqlQueryResult.error_message) {
                            throw new errors_1.MindsDbError(sqlQueryResult.error_message);
                        }
                        return [2 /*return*/, sqlQueryResult.rows.map(function (r) { return ({
                                value: r['predicted'],
                                explain: r["".concat(targetColumn, "_explain")],
                                data: r,
                            }); })];
                }
            });
        });
    };
    /**
     * Trains this model with the given options.
     * @param {string} name - Name of the model.
     * @param {string} targetColumn - Column for the model to predict.
     * @param {string} project - Project the model belongs to.
     * @param {TrainingOptions} options - Options to use when training the model.
     * @throws {MindsDbError} - Something went wrong querying the model.
     */
    ModelsRestApiClient.prototype.trainModel = function (name, targetColumn, project, trainingOptions) {
        return __awaiter(this, void 0, void 0, function () {
            var createClause, fromClause, selectClause, predictClause, orderByClause, groupByClause, windowHorizonClause, usingClause, query, sqlQueryResult;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        createClause = this.makeTrainingCreateClause(name, project);
                        fromClause = this.makeTrainingFromClause(trainingOptions);
                        selectClause = this.makeTrainingSelectClause(trainingOptions);
                        predictClause = this.makeTrainingPredictClause(targetColumn);
                        orderByClause = this.makeTrainingOrderByClause(trainingOptions);
                        groupByClause = this.makeTrainingGroupByClause(trainingOptions);
                        windowHorizonClause = this.makeTrainingWindowHorizonClause(trainingOptions);
                        usingClause = this.makeTrainingUsingClause(trainingOptions);
                        query = [
                            createClause,
                            fromClause,
                            selectClause,
                            predictClause,
                            groupByClause,
                            orderByClause,
                            windowHorizonClause,
                            usingClause,
                        ]
                            .filter(function (s) { return s; })
                            .join('\n');
                        return [4 /*yield*/, this.sqlClient.runQuery(query)];
                    case 1:
                        sqlQueryResult = _a.sent();
                        if (sqlQueryResult.error_message) {
                            throw new errors_1.MindsDbError(sqlQueryResult.error_message);
                        }
                        return [2 /*return*/, new model_1.Model(this, name, project, targetColumn, 'generating', 'up_to_date', 1)];
                }
            });
        });
    };
    /**
     * Rerains this model with the given options.
     * @param {string} name - Name of the model.
     * @param {string} targetColumn - Column for the model to predict.
     * @param {string} project - Project the model belongs to.
     * @param {string} [integration] - Integration name for the training data (e.g. mindsdb).
     * @param {TrainingOptions} [options] - Options to use when retraining the model.
     * @throws {MindsDbError} - Something went wrong querying the model.
     */
    ModelsRestApiClient.prototype.retrainModel = function (name, targetColumn, project, trainingOptions) {
        return __awaiter(this, void 0, void 0, function () {
            var retrainClause, query, fromClause, selectClause, predictClause, orderByClause, groupByClause, windowHorizonClause, usingClause, sqlQueryResult;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        retrainClause = this.makeRetrainClause(name, project);
                        query = retrainClause;
                        if (trainingOptions) {
                            fromClause = this.makeTrainingFromClause(trainingOptions);
                            selectClause = this.makeTrainingSelectClause(trainingOptions);
                            predictClause = this.makeTrainingPredictClause(targetColumn);
                            orderByClause = this.makeTrainingOrderByClause(trainingOptions);
                            groupByClause = this.makeTrainingGroupByClause(trainingOptions);
                            windowHorizonClause = this.makeTrainingWindowHorizonClause(trainingOptions);
                            usingClause = this.makeTrainingUsingClause(trainingOptions);
                            query = [
                                retrainClause,
                                fromClause,
                                selectClause,
                                predictClause,
                                groupByClause,
                                orderByClause,
                                windowHorizonClause,
                                usingClause,
                            ]
                                .filter(function (s) { return s; })
                                .join('\n');
                        }
                        return [4 /*yield*/, this.sqlClient.runQuery(query)];
                    case 1:
                        sqlQueryResult = _a.sent();
                        if (sqlQueryResult.error_message) {
                            throw new errors_1.MindsDbError(sqlQueryResult.error_message);
                        }
                        return [2 /*return*/, model_1.Model.fromModelRow(sqlQueryResult.rows[0], this)];
                }
            });
        });
    };
    /**
     * Partially finetune this model with the given options.
     * @param {string} name - Name of the model.
     * @param {string} project - Project the model belongs to.
     * @param {FinetuneOptions} options - Options to use when finetuning the model.
     * @throws {MindsDbError} - Something went wrong querying the model.
     */
    ModelsRestApiClient.prototype.finetuneModel = function (name, project, finetuneOptions) {
        return __awaiter(this, void 0, void 0, function () {
            var finetuneClause, selectClause, usingClause, query, sqlQueryResult;
            return __generator(this, function (_a) {
                switch (_a.label) {
                    case 0:
                        finetuneClause = "FINETUNE ".concat(mysql_1.default.escapeId(project), ".").concat(mysql_1.default.escapeId(name), " FROM ").concat(mysql_1.default.escapeId(finetuneOptions['integration']));
                        selectClause = this.makeTrainingSelectClause(finetuneOptions);
                        usingClause = this.makeTrainingUsingClause(finetuneOptions);
                        query = [finetuneClause, selectClause, usingClause].join('\n');
                        return [4 /*yield*/, this.sqlClient.runQuery(query)];
                    case 1:
                        sqlQueryResult = _a.sent();
                        if (sqlQueryResult.error_message) {
                            throw new errors_1.MindsDbError(sqlQueryResult.error_message);
                        }
                        return [2 /*return*/, model_1.Model.fromModelRow(sqlQueryResult.rows[0], this)];
                }
            });
        });
    };
    return ModelsRestApiClient;
}(modelsApiClient_1.default));
exports.default = ModelsRestApiClient;

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0272 ]--