{"version":3,"sources":["jsdelivr-header.js","/npm/node-fpl-api@0.2.0/dist/index.js"],"names":[],"mappings":"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","file":"/npm/node-fpl-api@0.2.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/node-fpl-api@0.2.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (_) try {\n            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;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n    result[\"default\"] = mod;\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar axios_cookiejar_support_1 = __importDefault(require(\"axios-cookiejar-support\"));\nvar tough = __importStar(require(\"tough-cookie\"));\nvar axios_1 = __importDefault(require(\"axios\"));\nvar moment_1 = __importDefault(require(\"moment\"));\nvar xml2js = __importStar(require(\"xml2js\"));\nvar util_1 = require(\"util\");\n// Setup cookie support\naxios_cookiejar_support_1.default(axios_1.default);\nvar FPLAPI = /** @class */ (function () {\n    function FPLAPI(username, password) {\n        this.parseString = util_1.promisify(xml2js.parseString);\n        // Setup transport with cookies\n        this.jar = new tough.CookieJar();\n        this.transport = axios_1.default.create({\n            jar: this.jar,\n            withCredentials: true,\n        });\n        this.loggedIn = false;\n        this.username = username;\n        this.password = password;\n    }\n    FPLAPI.prototype.login = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            var login, accountDetails, accountNumber, premiseNumber, account;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        // Login and generate crenode-red-contrib-fpl-consumption\n                        console.log('Logging in...');\n                        return [4 /*yield*/, this.transport.get(\"https://www.fpl.com/api/resources/login\", {\n                                auth: {\n                                    username: this.username,\n                                    password: this.password,\n                                }\n                            })];\n                    case 1:\n                        login = _a.sent();\n                        // Login successful\n                        if (login.status != 200 || login.data.messages[0].messageCode == 'login.success') {\n                        }\n                        else {\n                            throw new Error(\"Failed to login to account\");\n                        }\n                        return [4 /*yield*/, this.transport.get('https://www.fpl.com/api/resources/header')];\n                    case 2:\n                        accountDetails = _a.sent();\n                        accountNumber = accountDetails.data.data.selectedAccount.data.accountNumber;\n                        premiseNumber = accountDetails.data.data.selectedAccount.data.acctSecSettings.premiseNumber;\n                        account = {\n                            accountNumber: accountNumber,\n                            premiseNumber: premiseNumber,\n                        };\n                        return [2 /*return*/, account];\n                }\n            });\n        });\n    };\n    /**\n     * Retrieves the daily consumption values for kWh and $\n     * @param account The account object returned by login()\n     * @param startDate The start of the requested consumption values (YYYYMMDD format)\n     * @param endDate The end date of the requested consumption values (YYYYMMDD format)\n     */\n    FPLAPI.prototype.getDailyConsumption = function (account, startDate, endDate) {\n        return __awaiter(this, void 0, void 0, function () {\n            var details, split, values, usage, _i, _a, set, text, consumption;\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0: return [4 /*yield*/, this.transport.get(\"https://app.fpl.com/wps/PA_ESFPortalWeb/getDailyConsumption\", {\n                            params: {\n                                premiseNumber: account.premiseNumber,\n                                accountNumber: account.accountNumber,\n                                isTouUser: true,\n                                startDate: startDate,\n                                endDate: endDate,\n                                userType: 'EXT',\n                                isResidential: true,\n                                certifiedDate: '2000/01/01',\n                                viewType: 'dollar',\n                                tempType: 'max',\n                                ecDayHumType: 'NoHom',\n                            },\n                        })];\n                    case 1:\n                        details = _b.sent();\n                        split = details.data.split('<ARG>@@');\n                        values = [];\n                        return [4 /*yield*/, this.parseString(split[0])];\n                    case 2:\n                        usage = _b.sent();\n                        for (_i = 0, _a = usage.chart.dataset[0].set; _i < _a.length; _i++) {\n                            set = _a[_i];\n                            text = set['$'].toolText;\n                            consumption = {\n                                date: moment_1.default(text.match(/Day\\/Date: ([A-Z-0-9., ]+)/i)[1], \"MMM. DD, YYYY\").format(\"YYYYMMDD\").toString(),\n                                kwh: Number(text.match(/([0-9]+) kWh/)[1]),\n                                cost: Number(text.match(/\\$([0-9.]+)/)[1]),\n                            };\n                            values.push(consumption);\n                        }\n                        return [2 /*return*/, values];\n                }\n            });\n        });\n    };\n    ;\n    return FPLAPI;\n}());\nexports.default = FPLAPI;\n"]}