"use strict";
exports.id = 1007;
exports.ids = [1007];
exports.modules = {

/***/ 1007:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// @ts-check

const fs = __webpack_require__(7147);
const decrypt = __webpack_require__(5425);
/** @type {import("../../types").CheckApiCredentialsFn} */ const grabApiCred = ({ key , database , table  })=>{
    if (!key) return null;
    try {
        const allowedKeysPath = process.env.DSQL_API_KEYS_PATH;
        if (!allowedKeysPath) throw new Error("process.env.DSQL_API_KEYS_PATH variable not found");
        const ApiJSON = decrypt(key);
        /** @type {import("../../types").ApiKeyObject} */ const ApiObject = JSON.parse(ApiJSON || "");
        const isApiKeyValid = fs.existsSync(`${allowedKeysPath}/${ApiObject.sign}`);
        if (!isApiKeyValid) return null;
        if (!ApiObject.target_database) return ApiObject;
        if (!database && ApiObject.target_database) return null;
        const isDatabaseAllowed = ApiObject.target_database?.split(",").includes(String(database));
        if (isDatabaseAllowed && !ApiObject.target_table) return ApiObject;
        if (isDatabaseAllowed && !table && ApiObject.target_table) return null;
        const isTableAllowed = ApiObject.target_table?.split(",").includes(String(table));
        if (isTableAllowed) return ApiObject;
        return null;
    } catch (/** @type {any} */ error) {
        console.log(`api-cred ERROR: ${error.message}`);
        return null;
    }
};
module.exports = grabApiCred;


/***/ })

};
;