{"_id":"craft-ai-kit-energy","_rev":"32-9abed6269d3b9f3fa02ed73ecf5c6b22","name":"craft-ai-kit-energy","description":"The craft ai integration kit for energy prediction in JavaScript.","dist-tags":{"latest":"0.4.6"},"versions":{"0.0.1":{"name":"craft-ai-kit-energy","version":"0.0.1","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"src/index.js","scripts":{"unit_test":"mocha","test":"npm run unit_test && npm run lint","lint":"eslint .","lint:fix":"eslint --fix ."},"engines":{"node":">=6.9 <9"},"dependencies":{"@most/create":"2.0.1","craft-ai":"1.9.0","date-easter":"0.2.2","debug":"3.1.0","fast-csv":"2.4.1","fast-xml-parser":"2.7.4","lodash":"4.17.4","lru-cache":"4.1.1","moment-timezone":"0.5.13","most":"1.7.2","most-nth":"0.0.10","node-fetch":"1.7.3"},"devDependencies":{"chai":"4.1.2","chai-as-promised":"7.1.1","dotenv":"4.0.0","eslint":"4.8.0","eslint-config-craft-ai":"2.3.0","mocha":"4.0.1"},"gitHead":"b05c5f4e860be4beae23e4a79cba594fa7a9c49d","_id":"craft-ai-kit-energy@0.0.1","_shasum":"b60c885095eefeb76565e33c260a33d81f4f6e1f","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"shasum":"b60c885095eefeb76565e33c260a33d81f4f6e1f","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.0.1.tgz","integrity":"sha512-rD7U15PF2hVJJkI7PHcHMjxpfbSDXsZGsMJUF1j/m22yjjALnsTyv8lTHgsrbgxjG7Mv62cyhY5mgENom1v3lQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG6AOve6YX4zYArO7fxHE2Gss1rJ1CAnatyOGz1kmBIKAiEAkrAgm/0hg1wkHLJ+Pv+TVqLcffh7TVGsJfBJCtRZn3s="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy-0.0.1.tgz_1507549531269_0.6474834568798542"},"directories":{}},"0.0.2":{"name":"craft-ai-kit-energy","version":"0.0.2","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"src/index.js","scripts":{"unit_test":"mocha","test":"npm run unit_test && npm run lint","lint":"eslint .","lint:fix":"eslint --fix ."},"engines":{"node":">=6.9 <9"},"dependencies":{"@most/create":"2.0.1","craft-ai":"1.11.1","date-easter":"0.2.2","debug":"3.1.0","fast-csv":"2.4.1","fast-xml-parser":"2.7.4","lodash":"4.17.4","lru-cache":"4.1.1","moment-timezone":"0.5.13","most":"1.7.2","most-nth":"0.0.10","node-fetch":"1.7.3"},"devDependencies":{"chai":"4.1.2","chai-as-promised":"7.1.1","dotenv":"4.0.0","eslint":"4.8.0","eslint-config-craft-ai":"2.3.0","mocha":"4.0.1"},"gitHead":"9c0e97bb6e2e5e92dccb005a30bc2895f96aa3fe","_id":"craft-ai-kit-energy@0.0.2","_shasum":"b6b858d0415c82a626915d13111052b00865f147","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"shasum":"b6b858d0415c82a626915d13111052b00865f147","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.0.2.tgz","integrity":"sha512-+TR8YTmRRu8uLILcXGWPo0+Kx3e/foqlm6AvnXkiWKB7np6aCm6hgDnqpThOIwqUUCAdbuJduknj0ZWCd6h/wQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMn7WFne8Vc1hCtq/0B/nRg86QupT4buehfXKOQaiBtAIhAIldTbxmDU9GVvou3hXKkXYPtZZDe+PksQsJ5DrlFOCL"}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy-0.0.2.tgz_1508316610685_0.6940328914206475"},"directories":{}},"0.0.3":{"name":"craft-ai-kit-energy","version":"0.0.3","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"src/index.js","scripts":{"unit_test":"mocha","test":"npm run unit_test && npm run lint","lint":"eslint .","lint:fix":"eslint --fix ."},"engines":{"node":">=6.9 <9"},"dependencies":{"@most/create":"2.0.1","craft-ai":"1.13.0","date-easter":"0.2.2","debug":"3.1.0","fast-csv":"2.4.1","fast-xml-parser":"2.7.4","lodash":"4.17.4","lru-cache":"4.1.1","moment-timezone":"0.5.13","most":"1.7.2","most-nth":"0.0.10","node-fetch":"1.7.3"},"devDependencies":{"chai":"4.1.2","chai-as-promised":"7.1.1","dotenv":"4.0.0","eslint":"4.8.0","eslint-config-craft-ai":"2.3.0","mocha":"4.0.1"},"gitHead":"b3fe07cc823c97a9223af789b1d699c8ab509a5b","_id":"craft-ai-kit-energy@0.0.3","_shasum":"2ab4c1a13bf7fd8becf38afb2c48d7fc510714ad","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"shasum":"2ab4c1a13bf7fd8becf38afb2c48d7fc510714ad","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.0.3.tgz","integrity":"sha512-+TN23MbHS4cqiPl4Ppf7kJ4Eouo1nakSBqqnexC1F/9fdgtNIH2Aaj0IWkOTxj3sr+8o67c4zTjqLTXQwzZd2A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJF7BOPZorjDiGkgH4FihqjXknV3sOHGBD+NTI1h7gfAIhAJP+3VJhAVuI4uX5oI6TDlXui+OHhSJnZ27FC26+mgQj"}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy-0.0.3.tgz_1509983438109_0.489894698606804"},"directories":{}},"0.0.4":{"name":"craft-ai-kit-energy","version":"0.0.4","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"src/index.js","scripts":{"unit_test":"mocha","test":"npm run unit_test && npm run lint","lint":"eslint .","lint:fix":"eslint --fix ."},"engines":{"node":">=6.9 <9"},"dependencies":{"@most/create":"2.0.1","craft-ai":"1.13.0","date-easter":"0.2.2","debug":"3.1.0","fast-csv":"2.4.1","fast-xml-parser":"2.7.4","lodash":"4.17.4","lru-cache":"4.1.1","moment-timezone":"0.5.13","most":"1.7.2","most-buffer":"0.0.10","most-nth":"0.0.10","node-fetch":"1.7.3"},"devDependencies":{"chai":"4.1.2","chai-as-promised":"7.1.1","dotenv":"4.0.0","eslint":"4.8.0","eslint-config-craft-ai":"2.3.0","mocha":"4.0.1"},"gitHead":"6f0aaec9db93fba219e933728919aac6171a0dc1","_id":"craft-ai-kit-energy@0.0.4","_shasum":"862844b6647f324ddd147a4e1e79cd35c3608b67","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"shasum":"862844b6647f324ddd147a4e1e79cd35c3608b67","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.0.4.tgz","integrity":"sha512-DV5Lt8eyLUeKP5TTjj2yVLVffit3dbnkPenMxnZl5xNKCAgVAk9Efq0P+kuYflDB7Eohlb63geiCfKr7BbozWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDzHj5Rqu7CZ18g8OU3YKgN9P40K2Ld2yakLmPk4U9FtAiEAoNRSUGKunZ+30yZFOrCvj8a5RiKXzKcyP3xHNybEHxE="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy-0.0.4.tgz_1510912245202_0.6272339820861816"},"directories":{}},"0.0.5":{"name":"craft-ai-kit-energy","version":"0.0.5","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"src/index.js","scripts":{"unit_test":"mocha","test":"npm run unit_test && npm run lint","lint":"eslint .","lint:fix":"eslint --fix ."},"engines":{"node":">=6.9 <9"},"dependencies":{"@most/create":"2.0.1","craft-ai":"1.13.0","date-easter":"0.2.2","debug":"3.1.0","fast-csv":"2.4.1","fast-xml-parser":"2.7.4","lodash":"4.17.4","lru-cache":"4.1.1","moment-timezone":"0.5.13","most":"1.7.2","most-buffer":"0.0.10","most-nth":"0.0.10","node-fetch":"1.7.3"},"devDependencies":{"chai":"4.1.2","chai-as-promised":"7.1.1","dotenv":"4.0.0","eslint":"4.8.0","eslint-config-craft-ai":"2.3.0","mocha":"4.0.1"},"gitHead":"d81ca57883e0806f97bc8149f0e622cad7b9c32e","_id":"craft-ai-kit-energy@0.0.5","_shasum":"04c2b5fd231f12e8ecc0aeb4e35fafe4ead576e7","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"shasum":"04c2b5fd231f12e8ecc0aeb4e35fafe4ead576e7","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.0.5.tgz","integrity":"sha512-6MicPJTc6iVeuOam75dvpBqBCQ1WKTkg+oL0Mi/EYrmuYK6EhxewVjfJnmOH6dbMZ9ZxsczVLGM9PhA//eIsbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICvaTgt2sWTWamsO1IyfD0i/eOocPZuYwGbWVm+lFQUuAiAYTmSDh9xTFYtBIW9+pJTtR9EXz+gA6HftI2Dj5VgUsw=="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy-0.0.5.tgz_1511279704692_0.47782047279179096"},"directories":{}},"0.0.6":{"name":"craft-ai-kit-energy","version":"0.0.6","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"src/index.js","scripts":{"unit_test":"mocha","test":"npm run unit_test && npm run lint","lint":"eslint .","lint:fix":"eslint --fix ."},"engines":{"node":">=6.9 <9"},"dependencies":{"@most/create":"2.0.1","craft-ai":"1.13.0","date-easter":"0.2.2","debug":"3.1.0","fast-csv":"2.4.1","fast-xml-parser":"2.7.4","lodash":"4.17.4","lru-cache":"4.1.1","moment-timezone":"0.5.13","most":"1.7.2","most-buffer":"0.0.10","most-nth":"0.0.10","node-fetch":"1.7.3"},"devDependencies":{"chai":"4.1.2","chai-as-promised":"7.1.1","dotenv":"4.0.0","eslint":"4.8.0","eslint-config-craft-ai":"2.3.0","mocha":"4.0.1"},"gitHead":"7eb248e4aedcac2fe4720d0de35351775a9d590a","_id":"craft-ai-kit-energy@0.0.6","_shasum":"0ca756e1fd8d3b03461b5fcb468b5f89dd5ab29d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"shasum":"0ca756e1fd8d3b03461b5fcb468b5f89dd5ab29d","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.0.6.tgz","integrity":"sha512-y964uhrXrnD9++zRkG4h7nbj8tb7IL+KZdQszFkjwPzGJZtgBbLCh4na6+BFUMmmSbQE3vLCF4ctG5FdGpv4wg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbjIyjV+R5R/gjlwg9XITVCZw7yPftXE+r6oSap0BmuQIhAJVLovsPq8GlwriKHTijjJe9B4J8UuLR6hSi51g0NcEl"}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy-0.0.6.tgz_1511545003135_0.9734562982339412"},"directories":{}},"0.0.7":{"name":"craft-ai-kit-energy","version":"0.0.7","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"src/index.js","scripts":{"test:unit":"mocha","test":"npm run test:unit && npm run lint","lint":"eslint .","lint:fix":"eslint --fix ."},"engines":{"node":">=6.9 <9"},"dependencies":{"@most/create":"2.0.1","craft-ai":"1.13.0","date-easter":"0.2.2","debug":"3.1.0","fast-csv":"2.4.1","fast-xml-parser":"2.7.4","lodash":"4.17.4","lru-cache":"4.1.1","moment-timezone":"0.5.13","most":"1.7.2","most-buffer":"0.0.10","most-nth":"0.0.10","most-range":"0.0.10","node-fetch":"1.7.3"},"devDependencies":{"chai":"4.1.2","chai-as-promised":"7.1.1","dotenv":"4.0.0","eslint":"4.8.0","eslint-config-craft-ai":"2.3.0","mocha":"4.0.1"},"gitHead":"d03fc740d4c954099ff4d8f2352b4043fe29771e","_id":"craft-ai-kit-energy@0.0.7","_shasum":"97f4c43e2bd085c1fa4f04881050a44112b40d92","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"shasum":"97f4c43e2bd085c1fa4f04881050a44112b40d92","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.0.7.tgz","integrity":"sha512-bDsFwW1Lwe8f3lznd/4/YTrKzNlyCgagMHyQNlg/QIyw3Oqs5BUJy9S4UBt6w1kOAOiYHgwMlzgvVoC168DLWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFL6psrGcMiPENxolUdLFo80D4Kub92j/JG2fxsNSUeCAiEAnL6YYy67A0Sb2YbXmXq49v24K0J9Jr3o9+/GOjZhqbc="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy-0.0.7.tgz_1513695645989_0.009506906848400831"},"directories":{}},"0.1.0-alpha.2":{"name":"craft-ai-kit-energy","version":"0.1.0-alpha.2","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0"},"dependencies":{"craft-ai":"1.14.0","debug":"3.1.0","luxon":"1.0.0","most":"1.7.3","most-buffer":"0.0.10","most-nth":"0.0.10","uuid":"3.2.1"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nyc":"latest","seedrandom":"latest"},"files":["lib"],"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"fa75a0a0085d2bf45b9c0d018fe7465dcec9f7c2","readme":"# craft ai energy kit #\n\n> :construction: Under construction\n\n[![Version](https://img.shields.io/npm/v/craft-ai-kit-energy.svg?style=flat-square)](https://npmjs.org/package/craft-ai-kit-energy) [![Build](https://img.shields.io/travis/craft-ai/craft-ai-kit-energy/master.svg?style=flat-square)](https://travis-ci.org/craft-ai/craft-ai-kit-energy) [![License](https://img.shields.io/badge/license-BSD--3--Clause-42358A.svg?style=flat-square)](LICENSE) [![Dependencies](https://img.shields.io/david/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy) [![Dev Dependencies](https://img.shields.io/david/dev/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy#info=devDependencies)\n\n> :warning: this repository rely on [git LFS](https://git-lfs.github.com)\n\n## Attribution ##\n\n[![Powered By Dark Sky](./poweredby_dark_sky.png)](https://darksky.net/poweredby/)\n\n## Usage ##\n\nThis integration kit has been developed using Node.JS v6.9.1, it should work with any later Node.JS v6.X version.\n\n### Create the kit ###\n\nThe kit uses the following **environment variables** for secrets and global configuration.\n\n - `DEBUG` can be used to select the logs that you want to display, set it to 'craft-ai:*' for all the logs related to **craft ai**.\n\nWith this environment variable set, create the kit like that:\n\n```js\nconst createEnergyKit = require('path/to/this/directory/src');\n\nconst kit = createEnergyKit({\n  // Mandatory, the craft ai token for the project the kit will use.\n  token: '{craft-ai-token}',\n  // Mandatory, the DarkSky secret key used to retrieve weather information, ou can retrieve your key at <https://darksky.net/dev/account>.\n  darkSkySecretKey: '{DarkSky-secret-key}',\n  // **Optional**\n  // Cache to avoid duplicate calls to Dark Sky, a default in-memory cache\n  // is used when none is provided.\n  weatherCache: {\n    set: // (lat, lon, timestamp, weather) -> Promise()\n    get: // (lat, lon, timestamp) -> Promise(weather)\n  },\n  // The confidence threshold under which predictions are not considered.\n  // Its default value is 0.4\n  confidenceThreshold: '{prediction-confidence-threshold}',\n  // The maximum relative deviation to the predicted load for a prediction to be considered 'valid'\n  // This number is expressed in amount of standard deviations, its default value is 2.\n  sigmaDeviationThreshold: '{sigma-deviation-threshold}',\n  // The maximum deviation to the predicted load for a prediction to be considered 'valid', in Watts.\n  // By default, this threshold is not set.\n  absoluteDeviationThreshold: '{absolute-deviation-threshold}'\n});\n```\n\n### Functions ###\n\n> All the functions exposed by the kit return es2015 [**Promises**](http://www.datchley.name/es6-promises/).\n\n\n> Take a look at `main.js` to get a working example of the kit.\n\n\n#### `User` datastructure ####\n\nTo identify and retrieve metadata for a user the kit uses the following `user` data structure:\n\n```js\n{\n  id: '123456', // A unique identifier for the user\n  location: {\n    postalCode: '75013', // The postal code for this user\n    lat: '...', // The latitude and longitude for this user (based on his postal code), set by the kit.update(...) function\n    lon: '...'\n  },\n  agentId: '...', // The unique craft ai agent id, set by the kit.update(...) function\n  firstTimestamp, ... // The unix timestamp of the first sent data.\n  lastTimestamp: ... // The unix timestamp of the last sent data.\n}\n```\n\n#### `DataPoint` datastructure ####\n\nThe data given to the kit follows the given format:\n\n```js\n{\n  date: '2017-09-21T12:00+02:00', // The date, as a string, a JavaScript Date or a Unix Timestamp.\n  load: 1234, // The load, in Watts\n  tempMin: -0.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the minimum temperature in Degree Celsius\n  tempMax: 8.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the maximum temperature in Degree Celsius\n}\n```\n\n### `kit.update(user: User, data: Array<DataPoint>)` ###\n\nUpdate the `user` with new data, this creates craft ai agents as needed.\n\n### `kit.delete(user: User)` ###\n\nDeletes the given `user`.\n\n### `kit.computeAnomalies(user: User, { from: Date, to: Date })` ###\n\nComputes the 'abnormal' energy consumption for the given `user` during the given timeframe.\n\n### `kit.validate(user: User, { window: DurationInSeconds, windowsCount: Integer })` ###\n\nValidate the prediction model for a given `user` following the given window size, over the last `windowsCount` windows.\n\nThe default value for `window` is one week, the default value for `windowsCount` is -1 which means enough window to fill the lifetime of the user.\n\n### `kit.predict(user: User, { from: Date, to: Date })` ###\n\nCompute load predictions for the given `user` during the given timeframe.\n\n### `kit.terminate()` ###\n\nShould be called at the end of the work.\n","readmeFilename":"README.md","_id":"craft-ai-kit-energy@0.1.0-alpha.2","_npmVersion":"5.8.0","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-CNNuIb018j+XWJqgGM9m6nsqpzQ8l2JtyNZd7kcFqp04/lVeE0XNXib1Fc8nXM7IhfF/nq2UKvRzELqq15VFuw==","shasum":"4b33f7a4f5301ba89051f853fca98d145e761d70","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.1.0-alpha.2.tgz","fileCount":15,"unpackedSize":45532,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkDxc81ZqCA9pWl7FNa9Kyh7QPD83q0dqe2OsIyqmYDQIgTJXiiuzjgXVCRkmeZ/vwze1R5pAS3rj48bywGlEBP4s="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.1.0-alpha.2_1522313852751_0.4335348955141143"},"_hasShrinkwrap":false},"0.1.0-alpha.3":{"name":"craft-ai-kit-energy","version":"0.1.0-alpha.3","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0"},"dependencies":{"craft-ai":"1.14.0","debug":"3.1.0","luxon":"1.0.0","most":"1.7.3","most-buffer":"0.0.11","most-nth":"0.0.11","uuid":"3.2.1"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nyc":"latest","seedrandom":"latest"},"files":["lib"],"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"ea70b7750c6619fa0cee15652395f7599988126f","readme":"# craft ai energy kit #\n\n> :construction: Under construction\n\n[![Version](https://img.shields.io/npm/v/craft-ai-kit-energy.svg?style=flat-square)](https://npmjs.org/package/craft-ai-kit-energy) [![Build](https://img.shields.io/travis/craft-ai/craft-ai-kit-energy/master.svg?style=flat-square)](https://travis-ci.org/craft-ai/craft-ai-kit-energy) [![License](https://img.shields.io/badge/license-BSD--3--Clause-42358A.svg?style=flat-square)](LICENSE) [![Dependencies](https://img.shields.io/david/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy) [![Dev Dependencies](https://img.shields.io/david/dev/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy#info=devDependencies)\n\n> :warning: this repository rely on [git LFS](https://git-lfs.github.com)\n\n## Attribution ##\n\n[![Powered By Dark Sky](./poweredby_dark_sky.png)](https://darksky.net/poweredby/)\n\n## Usage ##\n\nThis integration kit has been developed using Node.JS v6.9.1, it should work with any later Node.JS v6.X version.\n\n### Create the kit ###\n\nThe kit uses the following **environment variables** for secrets and global configuration.\n\n - `DEBUG` can be used to select the logs that you want to display, set it to 'craft-ai:*' for all the logs related to **craft ai**.\n\nWith this environment variable set, create the kit like that:\n\n```js\nconst createEnergyKit = require('path/to/this/directory/src');\n\nconst kit = createEnergyKit({\n  // Mandatory, the craft ai token for the project the kit will use.\n  token: '{craft-ai-token}',\n  // Mandatory, the DarkSky secret key used to retrieve weather information, ou can retrieve your key at <https://darksky.net/dev/account>.\n  darkSkySecretKey: '{DarkSky-secret-key}',\n  // **Optional**\n  // Cache to avoid duplicate calls to Dark Sky, a default in-memory cache\n  // is used when none is provided.\n  weatherCache: {\n    set: // (lat, lon, timestamp, weather) -> Promise()\n    get: // (lat, lon, timestamp) -> Promise(weather)\n  },\n  // The confidence threshold under which predictions are not considered.\n  // Its default value is 0.4\n  confidenceThreshold: '{prediction-confidence-threshold}',\n  // The maximum relative deviation to the predicted load for a prediction to be considered 'valid'\n  // This number is expressed in amount of standard deviations, its default value is 2.\n  sigmaDeviationThreshold: '{sigma-deviation-threshold}',\n  // The maximum deviation to the predicted load for a prediction to be considered 'valid', in Watts.\n  // By default, this threshold is not set.\n  absoluteDeviationThreshold: '{absolute-deviation-threshold}'\n});\n```\n\n### Functions ###\n\n> All the functions exposed by the kit return es2015 [**Promises**](http://www.datchley.name/es6-promises/).\n\n\n> Take a look at `main.js` to get a working example of the kit.\n\n\n#### `User` datastructure ####\n\nTo identify and retrieve metadata for a user the kit uses the following `user` data structure:\n\n```js\n{\n  id: '123456', // A unique identifier for the user\n  location: {\n    postalCode: '75013', // The postal code for this user\n    lat: '...', // The latitude and longitude for this user (based on his postal code), set by the kit.update(...) function\n    lon: '...'\n  },\n  agentId: '...', // The unique craft ai agent id, set by the kit.update(...) function\n  firstTimestamp, ... // The unix timestamp of the first sent data.\n  lastTimestamp: ... // The unix timestamp of the last sent data.\n}\n```\n\n#### `DataPoint` datastructure ####\n\nThe data given to the kit follows the given format:\n\n```js\n{\n  date: '2017-09-21T12:00+02:00', // The date, as a string, a JavaScript Date or a Unix Timestamp.\n  load: 1234, // The load, in Watts\n  tempMin: -0.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the minimum temperature in Degree Celsius\n  tempMax: 8.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the maximum temperature in Degree Celsius\n}\n```\n\n### `kit.update(user: User, data: Array<DataPoint>)` ###\n\nUpdate the `user` with new data, this creates craft ai agents as needed.\n\n### `kit.delete(user: User)` ###\n\nDeletes the given `user`.\n\n### `kit.computeAnomalies(user: User, { from: Date, to: Date })` ###\n\nComputes the 'abnormal' energy consumption for the given `user` during the given timeframe.\n\n### `kit.validate(user: User, { window: DurationInSeconds, windowsCount: Integer })` ###\n\nValidate the prediction model for a given `user` following the given window size, over the last `windowsCount` windows.\n\nThe default value for `window` is one week, the default value for `windowsCount` is -1 which means enough window to fill the lifetime of the user.\n\n### `kit.predict(user: User, { from: Date, to: Date })` ###\n\nCompute load predictions for the given `user` during the given timeframe.\n\n### `kit.terminate()` ###\n\nShould be called at the end of the work.\n","readmeFilename":"README.md","_id":"craft-ai-kit-energy@0.1.0-alpha.3","_npmVersion":"5.8.0","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-NCvMgt9cDtEuhHVdNA+2VpdCRPIQ8RMT7L4DR7oYG0T96vwgdoejZ7dUIytql3dCfVqSRLbj9+HMFoD8Pw51Fw==","shasum":"30443ba9c14ee21614b1ba6ab8b727750190b50d","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.1.0-alpha.3.tgz","fileCount":15,"unpackedSize":45591,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCq68o5KdPmtge8snvOOEU9BUNFKEhRn6hGctku4LCKjgIhAOsiqgz/lhgwNM/z2lFY3cZsc1Y5ziwgRibGafulfIxz"}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.1.0-alpha.3_1523457664223_0.635744317454749"},"_hasShrinkwrap":false},"0.1.0-alpha.4":{"name":"craft-ai-kit-energy","version":"0.1.0-alpha.4","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0"},"dependencies":{"craft-ai":"1.14.0","debug":"3.1.0","luxon":"1.0.0","most":"1.7.3","most-buffer":"0.0.11","most-nth":"0.0.11","uuid":"3.2.1"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nyc":"latest","seedrandom":"latest"},"files":["lib"],"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"8d11dc7af006fedead53eb87c68ae0dcb416b2cf","readme":"# craft ai energy kit #\n\n> :construction: Under construction\n\n[![Version](https://img.shields.io/npm/v/craft-ai-kit-energy.svg?style=flat-square)](https://npmjs.org/package/craft-ai-kit-energy) [![Build](https://img.shields.io/travis/craft-ai/craft-ai-kit-energy/master.svg?style=flat-square)](https://travis-ci.org/craft-ai/craft-ai-kit-energy) [![License](https://img.shields.io/badge/license-BSD--3--Clause-42358A.svg?style=flat-square)](LICENSE) [![Dependencies](https://img.shields.io/david/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy) [![Dev Dependencies](https://img.shields.io/david/dev/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy#info=devDependencies)\n\n> :warning: this repository rely on [git LFS](https://git-lfs.github.com)\n\n## Attribution ##\n\n[![Powered By Dark Sky](./poweredby_dark_sky.png)](https://darksky.net/poweredby/)\n\n## Usage ##\n\nThis integration kit has been developed using Node.JS v6.9.1, it should work with any later Node.JS v6.X version.\n\n### Create the kit ###\n\nThe kit uses the following **environment variables** for secrets and global configuration.\n\n - `DEBUG` can be used to select the logs that you want to display, set it to 'craft-ai:*' for all the logs related to **craft ai**.\n\nWith this environment variable set, create the kit like that:\n\n```js\nconst createEnergyKit = require('path/to/this/directory/src');\n\nconst kit = createEnergyKit({\n  // Mandatory, the craft ai token for the project the kit will use.\n  token: '{craft-ai-token}',\n  // Mandatory, the DarkSky secret key used to retrieve weather information, ou can retrieve your key at <https://darksky.net/dev/account>.\n  darkSkySecretKey: '{DarkSky-secret-key}',\n  // **Optional**\n  // Cache to avoid duplicate calls to Dark Sky, a default in-memory cache\n  // is used when none is provided.\n  weatherCache: {\n    set: // (lat, lon, timestamp, weather) -> Promise()\n    get: // (lat, lon, timestamp) -> Promise(weather)\n  },\n  // The confidence threshold under which predictions are not considered.\n  // Its default value is 0.4\n  confidenceThreshold: '{prediction-confidence-threshold}',\n  // The maximum relative deviation to the predicted load for a prediction to be considered 'valid'\n  // This number is expressed in amount of standard deviations, its default value is 2.\n  sigmaDeviationThreshold: '{sigma-deviation-threshold}',\n  // The maximum deviation to the predicted load for a prediction to be considered 'valid', in Watts.\n  // By default, this threshold is not set.\n  absoluteDeviationThreshold: '{absolute-deviation-threshold}'\n});\n```\n\n### Functions ###\n\n> All the functions exposed by the kit return es2015 [**Promises**](http://www.datchley.name/es6-promises/).\n\n\n> Take a look at `main.js` to get a working example of the kit.\n\n\n#### `User` datastructure ####\n\nTo identify and retrieve metadata for a user the kit uses the following `user` data structure:\n\n```js\n{\n  id: '123456', // A unique identifier for the user\n  location: {\n    postalCode: '75013', // The postal code for this user\n    lat: '...', // The latitude and longitude for this user (based on his postal code), set by the kit.update(...) function\n    lon: '...'\n  },\n  agentId: '...', // The unique craft ai agent id, set by the kit.update(...) function\n  firstTimestamp, ... // The unix timestamp of the first sent data.\n  lastTimestamp: ... // The unix timestamp of the last sent data.\n}\n```\n\n#### `DataPoint` datastructure ####\n\nThe data given to the kit follows the given format:\n\n```js\n{\n  date: '2017-09-21T12:00+02:00', // The date, as a string, a JavaScript Date or a Unix Timestamp.\n  load: 1234, // The load, in Watts\n  tempMin: -0.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the minimum temperature in Degree Celsius\n  tempMax: 8.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the maximum temperature in Degree Celsius\n}\n```\n\n### `kit.update(user: User, data: Array<DataPoint>)` ###\n\nUpdate the `user` with new data, this creates craft ai agents as needed.\n\n### `kit.delete(user: User)` ###\n\nDeletes the given `user`.\n\n### `kit.computeAnomalies(user: User, { from: Date, to: Date })` ###\n\nComputes the 'abnormal' energy consumption for the given `user` during the given timeframe.\n\n### `kit.validate(user: User, { window: DurationInSeconds, windowsCount: Integer })` ###\n\nValidate the prediction model for a given `user` following the given window size, over the last `windowsCount` windows.\n\nThe default value for `window` is one week, the default value for `windowsCount` is -1 which means enough window to fill the lifetime of the user.\n\n### `kit.predict(user: User, { from: Date, to: Date })` ###\n\nCompute load predictions for the given `user` during the given timeframe.\n\n### `kit.terminate()` ###\n\nShould be called at the end of the work.\n","readmeFilename":"README.md","_id":"craft-ai-kit-energy@0.1.0-alpha.4","_npmVersion":"5.8.0","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-f7HBXeZLXHkAyK0imorBcpo7assQHcIXotyuvWaC61cW3/Lzf8G2CiCk9KjZRj08Ccwb/2ECFEHnSU16nCbVGQ==","shasum":"7500a6b5d9db2fa782ad0db51d677226fe436aa2","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.1.0-alpha.4.tgz","fileCount":15,"unpackedSize":45715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1L1bCRA9TVsSAnZWagAA6HsQAIJ8rHZ3kqroL5hO2GM6\ncBlfPsPk5i65AVG/ScULCAqvHrf0Un4KdaTRM8QFJ7XaUksr/t/29yeIe4j5\noiwNMZL2Ace8uCObVxqlsWWtNy9fRughdQpgetEAtYBZP//evuVE186NoobL\nldMLAtub939C7VoBptjPKnCdBbXdO7gy79nPWTWLNvaCR0hyQc70UVFZHzvA\nFtIeBcVznbJYanInDhbZLAcjDlnRE+HerBM6Vuao7ax6Q/AGfyO/m91HzkT1\nntHtm3vI00ot3rZtX9ojFqK/X45HpH8DBpEdOlg7tBw6M6eVOHoqJmJdrBZ1\npA9190/3AcjUPPvgmP1zbp7xfhJGbh3NbcwvYCY4EokbjvTNYq74j51JNfG+\noJbGE2dqcEYFWcJNnfrCOa2WndhzII6fAeeESOXT2FWZtVE2qq0a0lsepO0o\nOh3slkKj3ftG7TyzdVNAiXtqhuUR2OK9zWPQVSrAFCFPQ55rmVHvfq6uhH6b\nAfEL9ltBK8YUb922iJemOZFLXmxjm6HyII25aDDQnX0CNQnlBUSjbYqA4s0L\nZyUJi+iCnxqAXrvmjHJfjRMDLjKI3qPkAF3bmS1jcxqJojjtWkk3CeJgR9Wh\naR6TsQE+KiG6XhNCg/g0h/3PYXokZWnw6o1tYciQdiBR7hIGUw5Zw5/Ebv3b\n5LOE\r\n=VSsP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICPPNmWNt4Lf1hrNJ/cylWIYrxanvJasLMyKZwe0pDeYAiEA4WxgoD2z39Q5zoUu17vw3ZUvA5huCQyX8+ADFxMxt5Q="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.1.0-alpha.4_1523891539005_0.44102076608769014"},"_hasShrinkwrap":false},"0.1.0-alpha.5":{"name":"craft-ai-kit-energy","version":"0.1.0-alpha.5","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0"},"dependencies":{"craft-ai":"1.14.0","date-easter":"0.2.2","debug":"3.1.0","fast-xml-parser":"3.3.9","luxon":"1.1.0","mem":"3.0.0","most":"1.7.3","most-buffer":"0.0.11","most-nth":"0.0.11","node-fetch":"2.1.2","p-retry":"1.0.0","quick-lru":"1.1.0","uuid":"3.2.1"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nyc":"latest","seedrandom":"latest"},"files":["lib"],"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"3e6037929bd9a1afd12666211c363ac7256069e4","readme":"# craft ai energy kit #\n\n> :construction: Under construction\n\n[![Version](https://img.shields.io/npm/v/craft-ai-kit-energy.svg?style=flat-square)](https://npmjs.org/package/craft-ai-kit-energy) [![Build](https://img.shields.io/travis/craft-ai/craft-ai-kit-energy/master.svg?style=flat-square)](https://travis-ci.org/craft-ai/craft-ai-kit-energy) [![License](https://img.shields.io/badge/license-BSD--3--Clause-42358A.svg?style=flat-square)](LICENSE) [![Dependencies](https://img.shields.io/david/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy) [![Dev Dependencies](https://img.shields.io/david/dev/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy#info=devDependencies)\n\n> :warning: this repository rely on [git LFS](https://git-lfs.github.com)\n\n## Attribution ##\n\n[![Powered By Dark Sky](./poweredby_dark_sky.png)](https://darksky.net/poweredby/)\n\n## Usage ##\n\nThis integration kit has been developed using Node.JS v6.9.1, it should work with any later Node.JS v6.X version.\n\n### Create the kit ###\n\nThe kit uses the following **environment variables** for secrets and global configuration.\n\n - `DEBUG` can be used to select the logs that you want to display, set it to 'craft-ai:*' for all the logs related to **craft ai**.\n\nWith this environment variable set, create the kit like that:\n\n```js\nconst createEnergyKit = require('path/to/this/directory/src');\n\nconst kit = createEnergyKit({\n  // Mandatory, the craft ai token for the project the kit will use.\n  token: '{craft-ai-token}',\n  // Mandatory, the DarkSky secret key used to retrieve weather information, ou can retrieve your key at <https://darksky.net/dev/account>.\n  darkSkySecretKey: '{DarkSky-secret-key}',\n  // **Optional**\n  // Cache to avoid duplicate calls to Dark Sky, a default in-memory cache\n  // is used when none is provided.\n  weatherCache: {\n    set: // (lat, lon, timestamp, weather) -> Promise()\n    get: // (lat, lon, timestamp) -> Promise(weather)\n  },\n  // The confidence threshold under which predictions are not considered.\n  // Its default value is 0.4\n  confidenceThreshold: '{prediction-confidence-threshold}',\n  // The maximum relative deviation to the predicted load for a prediction to be considered 'valid'\n  // This number is expressed in amount of standard deviations, its default value is 2.\n  sigmaDeviationThreshold: '{sigma-deviation-threshold}',\n  // The maximum deviation to the predicted load for a prediction to be considered 'valid', in Watts.\n  // By default, this threshold is not set.\n  absoluteDeviationThreshold: '{absolute-deviation-threshold}'\n});\n```\n\n### Functions ###\n\n> All the functions exposed by the kit return es2015 [**Promises**](http://www.datchley.name/es6-promises/).\n\n\n> Take a look at `main.js` to get a working example of the kit.\n\n\n#### `User` datastructure ####\n\nTo identify and retrieve metadata for a user the kit uses the following `user` data structure:\n\n```js\n{\n  id: '123456', // A unique identifier for the user\n  location: {\n    postalCode: '75013', // The postal code for this user\n    lat: '...', // The latitude and longitude for this user (based on his postal code), set by the kit.update(...) function\n    lon: '...'\n  },\n  agentId: '...', // The unique craft ai agent id, set by the kit.update(...) function\n  firstTimestamp, ... // The unix timestamp of the first sent data.\n  lastTimestamp: ... // The unix timestamp of the last sent data.\n}\n```\n\n#### `DataPoint` datastructure ####\n\nThe data given to the kit follows the given format:\n\n```js\n{\n  date: '2017-09-21T12:00+02:00', // The date, as a string, a JavaScript Date or a Unix Timestamp.\n  load: 1234, // The load, in Watts\n  tempMin: -0.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the minimum temperature in Degree Celsius\n  tempMax: 8.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the maximum temperature in Degree Celsius\n}\n```\n\n### `kit.update(user: User, data: Array<DataPoint>)` ###\n\nUpdate the `user` with new data, this creates craft ai agents as needed.\n\n### `kit.delete(user: User)` ###\n\nDeletes the given `user`.\n\n### `kit.computeAnomalies(user: User, { from: Date, to: Date })` ###\n\nComputes the 'abnormal' energy consumption for the given `user` during the given timeframe.\n\n### `kit.validate(user: User, { window: DurationInSeconds, windowsCount: Integer })` ###\n\nValidate the prediction model for a given `user` following the given window size, over the last `windowsCount` windows.\n\nThe default value for `window` is one week, the default value for `windowsCount` is -1 which means enough window to fill the lifetime of the user.\n\n### `kit.predict(user: User, { from: Date, to: Date })` ###\n\nCompute load predictions for the given `user` during the given timeframe.\n\n### `kit.terminate()` ###\n\nShould be called at the end of the work.\n","readmeFilename":"README.md","_id":"craft-ai-kit-energy@0.1.0-alpha.5","_npmVersion":"5.8.0","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-JUcjyBU36je6Qw+DbAquyQcAakNQ6IXGk7i2LIKLMXzj28/w1CXv1IUwx/mngLcHx5aTqUGJ8pMdPowgHLpYVQ==","shasum":"6116c88ce8648b596c6a5a337d42ed669429c5a9","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.1.0-alpha.5.tgz","fileCount":17,"unpackedSize":54475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3uf7CRA9TVsSAnZWagAAzCUP/izazSD6ONtrsjvZFfyr\nevs4/RzPnFkb/xGPMozf/Zu4r/3frhNJIhWg+oevGmjWnl0wahXrg9YSb6YC\nBUEbxBGIg5dZbdAPGs1PumpPF4QUfj2th70l9F2Xy3YGz9Cort0MHzhOkO6G\nB9ZdG6d3KMfFZqIfk4IscRCsm9qRC9hFYzoHA7eQz9amEeqUAMdEimSObjnQ\nLF/z0DJu3xkkf2FM2wKfbnl+RWMOPM4lrfnttFLOrAOcPG9Qe1BbF9dE37QU\ngW6ltrSjUs5P8SWEJtb3ZlAZYWry5EKbNaklFoCWY11rc2CVSiJsCxQKkix3\n5GwE7Kfc65Hky9X0ndKQ3Xzbdw8vv05ap9cUMj2Pfa/gNy28M72OylClz1uT\n+bhaiwnfR5O8sG91RLC2S2T7C327xy+v4LrlnmRkm7VuZmV2xKPofF/nXar6\n0XdOAsWpyLtJ8c6//7/qlUzHunBXnIsgllPNKpHvUtEvzVuxMMCGwv6yucuQ\nfkAl+4x9oXQiF6gVj2t5clFSf+6MCVp7XXsQGFZNwl0kwHTZ6vVuu5tPbvum\nxJ35Re5EPjt/qKBPGTLRpEcnMNnXIli3UL7NKGLaBIICPg9ga5Vplbuliy4t\nyxoCJldo/g1bOiKUE0r03cv8BT6031j6xzi2ICBdW5YkC6CWo/APuRu/ZpAs\ndk4O\r\n=8dlq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFa7SBjuc776knAZ1HoccjmeUIuSfU4xF7XnsA1CVOL9AiEA6rVtp/W/7kjMTqEKGuPDzMLMzOEuazS5nrVGcZenv3w="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.1.0-alpha.5_1524557819577_0.1568821626414847"},"_hasShrinkwrap":false},"0.1.0-alpha.6":{"name":"craft-ai-kit-energy","version":"0.1.0-alpha.6","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0"},"dependencies":{"craft-ai":"1.14.0","date-easter":"0.2.2","debug":"3.1.0","fast-xml-parser":"3.3.9","luxon":"1.1.0","mem":"3.0.0","most":"1.7.3","most-buffer":"0.0.11","most-nth":"0.0.11","node-fetch":"2.1.2","p-retry":"1.0.0","quick-lru":"1.1.0","uuid":"3.2.1"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nyc":"latest","seedrandom":"latest"},"files":["lib","data"],"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"ee0cda4e84aef9bab3d941961b0a505112c091a3","readme":"# craft ai energy kit #\n\n> :construction: Under construction\n\n[![Version](https://img.shields.io/npm/v/craft-ai-kit-energy.svg?style=flat-square)](https://npmjs.org/package/craft-ai-kit-energy) [![Build](https://img.shields.io/travis/craft-ai/craft-ai-kit-energy/master.svg?style=flat-square)](https://travis-ci.org/craft-ai/craft-ai-kit-energy) [![License](https://img.shields.io/badge/license-BSD--3--Clause-42358A.svg?style=flat-square)](LICENSE) [![Dependencies](https://img.shields.io/david/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy) [![Dev Dependencies](https://img.shields.io/david/dev/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy#info=devDependencies)\n\n> :warning: this repository rely on [git LFS](https://git-lfs.github.com)\n\n## Attribution ##\n\n[![Powered By Dark Sky](./poweredby_dark_sky.png)](https://darksky.net/poweredby/)\n\n## Usage ##\n\nThis integration kit has been developed using Node.JS v6.9.1, it should work with any later Node.JS v6.X version.\n\n### Create the kit ###\n\nThe kit uses the following **environment variables** for secrets and global configuration.\n\n - `DEBUG` can be used to select the logs that you want to display, set it to 'craft-ai:*' for all the logs related to **craft ai**.\n\nWith this environment variable set, create the kit like that:\n\n```js\nconst createEnergyKit = require('path/to/this/directory/src');\n\nconst kit = createEnergyKit({\n  // Mandatory, the craft ai token for the project the kit will use.\n  token: '{craft-ai-token}',\n  // Mandatory, the DarkSky secret key used to retrieve weather information, ou can retrieve your key at <https://darksky.net/dev/account>.\n  darkSkySecretKey: '{DarkSky-secret-key}',\n  // **Optional**\n  // Cache to avoid duplicate calls to Dark Sky, a default in-memory cache\n  // is used when none is provided.\n  weatherCache: {\n    set: // (lat, lon, timestamp, weather) -> Promise()\n    get: // (lat, lon, timestamp) -> Promise(weather)\n  },\n  // The confidence threshold under which predictions are not considered.\n  // Its default value is 0.4\n  confidenceThreshold: '{prediction-confidence-threshold}',\n  // The maximum relative deviation to the predicted load for a prediction to be considered 'valid'\n  // This number is expressed in amount of standard deviations, its default value is 2.\n  sigmaDeviationThreshold: '{sigma-deviation-threshold}',\n  // The maximum deviation to the predicted load for a prediction to be considered 'valid', in Watts.\n  // By default, this threshold is not set.\n  absoluteDeviationThreshold: '{absolute-deviation-threshold}'\n});\n```\n\n### Functions ###\n\n> All the functions exposed by the kit return es2015 [**Promises**](http://www.datchley.name/es6-promises/).\n\n\n> Take a look at `main.js` to get a working example of the kit.\n\n\n#### `User` datastructure ####\n\nTo identify and retrieve metadata for a user the kit uses the following `user` data structure:\n\n```js\n{\n  id: '123456', // A unique identifier for the user\n  location: {\n    postalCode: '75013', // The postal code for this user\n    lat: '...', // The latitude and longitude for this user (based on his postal code), set by the kit.update(...) function\n    lon: '...'\n  },\n  agentId: '...', // The unique craft ai agent id, set by the kit.update(...) function\n  firstTimestamp, ... // The unix timestamp of the first sent data.\n  lastTimestamp: ... // The unix timestamp of the last sent data.\n}\n```\n\n#### `DataPoint` datastructure ####\n\nThe data given to the kit follows the given format:\n\n```js\n{\n  date: '2017-09-21T12:00+02:00', // The date, as a string, a JavaScript Date or a Unix Timestamp.\n  load: 1234, // The load, in Watts\n  tempMin: -0.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the minimum temperature in Degree Celsius\n  tempMax: 8.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the maximum temperature in Degree Celsius\n}\n```\n\n### `kit.update(user: User, data: Array<DataPoint>)` ###\n\nUpdate the `user` with new data, this creates craft ai agents as needed.\n\n### `kit.delete(user: User)` ###\n\nDeletes the given `user`.\n\n### `kit.computeAnomalies(user: User, { from: Date, to: Date })` ###\n\nComputes the 'abnormal' energy consumption for the given `user` during the given timeframe.\n\n### `kit.validate(user: User, { window: DurationInSeconds, windowsCount: Integer })` ###\n\nValidate the prediction model for a given `user` following the given window size, over the last `windowsCount` windows.\n\nThe default value for `window` is one week, the default value for `windowsCount` is -1 which means enough window to fill the lifetime of the user.\n\n### `kit.predict(user: User, { from: Date, to: Date })` ###\n\nCompute load predictions for the given `user` during the given timeframe.\n\n### `kit.terminate()` ###\n\nShould be called at the end of the work.\n","readmeFilename":"README.md","_id":"craft-ai-kit-energy@0.1.0-alpha.6","_npmVersion":"5.8.0","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-AB0kY/o2D+boRbO6tJ/S4Hk62xFuaUv94qqX0HV+afnPYWE663V43U3Fg6ruPkbjkPWqmDFbZcqGUPpFIKxGuQ==","shasum":"6abc6f75819b37570285ca695be8fc09f19291e2","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.1.0-alpha.6.tgz","fileCount":21,"unpackedSize":247245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa31KVCRA9TVsSAnZWagAAlg4P/0fKViG7vPHGncPH9o2a\n1bvCaMCCJfHwmYo+5VsoRcWRWi3nRZdQbuzCOhAjksZFiVJIoYcB07bNEvOy\nYG59h7P2+6FN4GrDypYjrdfD0a0Eeyii4RIQRK0BJW7SRwZMoy+PUSHr5l1v\nOsLCPneGBE1y7SoabBLptBYz1WKZbTFRZ2U6fyzjmAchfjsuVJpYedS8nauN\ne5z6llDcGS6fApu18TZ8bSwsg0gT8eAkYwv8IpY79M6Nu1zb4uHB7ypbtEt7\nHgFMP19v/XuvpNsqNopIuyXIDHCqMxfcxR6p5uxVvATFc+HYD+7g1YxKmsIz\nmCOleHpVTsZ/IoX/6KPfjx9B9wkFf32U5EFl/Ky/zpbYcDdBPbT3jjxujHa/\nm5N8k8H+lISzRJEHiOJNQJppgdx6RQPpViob0Nj2f4Tam1ki3aQc0XwwK+mj\n/Vaf6Ss81yXYrA195lztHvtE8We09H+U6KtPdb940cPD1jw5iby188PfTnF8\nImKGHWpAmSUXXrP8QS+pjJwf+hMigadiu3nW5ZywiJEF0NkT8wMjIlbt1kCx\nL0t5Ir9bDPQazKDd1PsZS+nK2Ad1yqwrdct+dGe1LwD7Arsz55mjYxsen2yG\npTCYGeYspLCs0HQp0y5ut+sW1cYJczDs38J9bYR4NDFvx1dzrprhnhU/T8mD\nRk1N\r\n=F0fa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwxMI7V2HqC/gR1oNuN3+j8eEaWrLApqJwGSPWrR0+7QIgF1Xrats6yaXI2ixXCj2sIZYaSHarsBEdwaCzFRfkW4o="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.1.0-alpha.6_1524585109468_0.4301068355470059"},"_hasShrinkwrap":false},"0.1.0-alpha.7":{"name":"craft-ai-kit-energy","version":"0.1.0-alpha.7","description":"craft ai energy prediction kit","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0"},"dependencies":{"craft-ai":"1.14.1","date-easter":"0.2.2","debug":"3.1.0","fast-xml-parser":"3.11.1","luxon":"1.2.1","mem":"3.0.0","most":"1.7.3","most-buffer":"0.0.11","most-nth":"0.0.11","node-fetch":"2.1.2","p-retry":"2.0.0","quick-lru":"1.1.0","uuid":"3.2.1"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nyc":"latest","seedrandom":"latest"},"files":["lib","data"],"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"1948aaafeac304b91a0bba7b5f6b5438a5b4abde","readme":"# craft ai energy kit #\n\n> :construction: Under construction\n\n[![Version](https://img.shields.io/npm/v/craft-ai-kit-energy.svg?style=flat-square)](https://npmjs.org/package/craft-ai-kit-energy) [![Build](https://img.shields.io/travis/craft-ai/craft-ai-kit-energy/master.svg?style=flat-square)](https://travis-ci.org/craft-ai/craft-ai-kit-energy) [![License](https://img.shields.io/badge/license-BSD--3--Clause-42358A.svg?style=flat-square)](LICENSE) [![Dependencies](https://img.shields.io/david/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy) [![Dev Dependencies](https://img.shields.io/david/dev/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy#info=devDependencies)\n\n> :warning: this repository rely on [git LFS](https://git-lfs.github.com)\n\n## Attribution ##\n\n[![Powered By Dark Sky](./poweredby_dark_sky.png)](https://darksky.net/poweredby/)\n\n## Usage ##\n\nThis integration kit has been developed using Node.JS v6.9.1, it should work with any later Node.JS v6.X version.\n\n### Create the kit ###\n\nThe kit uses the following **environment variables** for secrets and global configuration.\n\n - `DEBUG` can be used to select the logs that you want to display, set it to 'craft-ai:*' for all the logs related to **craft ai**.\n\nWith this environment variable set, create the kit like that:\n\n```js\nconst createEnergyKit = require('path/to/this/directory/src');\n\nconst kit = createEnergyKit({\n  // Mandatory, the craft ai token for the project the kit will use.\n  token: '{craft-ai-token}',\n  // Mandatory, the DarkSky secret key used to retrieve weather information, ou can retrieve your key at <https://darksky.net/dev/account>.\n  darkSkySecretKey: '{DarkSky-secret-key}',\n  // **Optional**\n  // Cache to avoid duplicate calls to Dark Sky, a default in-memory cache\n  // is used when none is provided.\n  weatherCache: {\n    set: // (lat, lon, timestamp, weather) -> Promise()\n    get: // (lat, lon, timestamp) -> Promise(weather)\n  },\n  // The confidence threshold under which predictions are not considered.\n  // Its default value is 0.4\n  confidenceThreshold: '{prediction-confidence-threshold}',\n  // The maximum relative deviation to the predicted load for a prediction to be considered 'valid'\n  // This number is expressed in amount of standard deviations, its default value is 2.\n  sigmaDeviationThreshold: '{sigma-deviation-threshold}',\n  // The maximum deviation to the predicted load for a prediction to be considered 'valid', in Watts.\n  // By default, this threshold is not set.\n  absoluteDeviationThreshold: '{absolute-deviation-threshold}'\n});\n```\n\n### Functions ###\n\n> All the functions exposed by the kit return es2015 [**Promises**](http://www.datchley.name/es6-promises/).\n\n\n> Take a look at `main.js` to get a working example of the kit.\n\n\n#### `User` datastructure ####\n\nTo identify and retrieve metadata for a user the kit uses the following `user` data structure:\n\n```js\n{\n  id: '123456', // A unique identifier for the user\n  location: {\n    postalCode: '75013', // The postal code for this user\n    lat: '...', // The latitude and longitude for this user (based on his postal code), set by the kit.update(...) function\n    lon: '...'\n  },\n  agentId: '...', // The unique craft ai agent id, set by the kit.update(...) function\n  firstTimestamp, ... // The unix timestamp of the first sent data.\n  lastTimestamp: ... // The unix timestamp of the last sent data.\n}\n```\n\n#### `DataPoint` datastructure ####\n\nThe data given to the kit follows the given format:\n\n```js\n{\n  date: '2017-09-21T12:00+02:00', // The date, as a string, a JavaScript Date or a Unix Timestamp.\n  load: 1234, // The load, in Watts\n  tempMin: -0.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the minimum temperature in Degree Celsius\n  tempMax: 8.5, // Mandatory if no `cfg.darkSkySecretKey` is provided, the maximum temperature in Degree Celsius\n}\n```\n\n### `kit.update(user: User, data: Array<DataPoint>)` ###\n\nUpdate the `user` with new data, this creates craft ai agents as needed.\n\n### `kit.delete(user: User)` ###\n\nDeletes the given `user`.\n\n### `kit.computeAnomalies(user: User, { from: Date, to: Date })` ###\n\nComputes the 'abnormal' energy consumption for the given `user` during the given timeframe.\n\n### `kit.validate(user: User, { window: DurationInSeconds, windowsCount: Integer })` ###\n\nValidate the prediction model for a given `user` following the given window size, over the last `windowsCount` windows.\n\nThe default value for `window` is one week, the default value for `windowsCount` is -1 which means enough window to fill the lifetime of the user.\n\n### `kit.predict(user: User, { from: Date, to: Date })` ###\n\nCompute load predictions for the given `user` during the given timeframe.\n\n### `kit.terminate()` ###\n\nShould be called at the end of the work.\n","readmeFilename":"README.md","_id":"craft-ai-kit-energy@0.1.0-alpha.7","_npmVersion":"5.10.0","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-TlZna27I3dDWtGf2uXyINLPhQbBXDFy9shxIQIza+AMldbSQDyYE4dAzBcjdmEPBZ9vOhLqIJCUpiXdIpLe7fg==","shasum":"e9f1a0460da9ebb5bfd068c27ceebabeeb05fbb9","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.1.0-alpha.7.tgz","fileCount":20,"unpackedSize":246950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbGQ3UCRA9TVsSAnZWagAA7wQP/jb8N+7ekYqCCaCkrWNS\n0lKJmRwwy4gkbqhJGw30puIcL+p1/lKupz2U4zdxXcGDg6GJCQrXPIxEb1N/\nmgoZhWkk8CNuhIgEdu9OtRhUQUecmqBD3CWX0hI98IoWKgruE1RdCHL6y4+H\nucbI812LflX+F9d9mf6TjPbw5Bil46QbEGaCqlfmy4LQtA8RFN0a9E2OBUOA\nanxkvCLUOLQWhgLkr6K8mbaVEzYIOGJtPwS3yXQ3cfjiTMlls9XnVw/mlJpI\nOPVbrnMZbQUF6iMWY7gQXrCJt0gt5AMrqnbCiX6eq4iiob3REwoHYaZ3KZ9L\nkSIn7IsTndqJ2deGE+zI1UneN6FuSXMJ2ppf2GBqwENu3Lg1YCkocGvWLNwa\nCb8eoNwjKe+XTMKGWtBujtb8TPzfDedPzBwphy+dTQAiHfVIbauW3meRgKUd\nLG1fC8440sv3Avw2atOHRdJRL3RNAgWhPtBODdVroQWamjvt+XZbT3T+h+O0\nXW6egwT13WAKbzYQ9iEarhU5xbgPk77SC3vNtcqlHOEqwt/dmnSS4yU9KKv5\ncT+ybcumMwbfetgNnMRnWlzMJhPqSlmAERXM6Zk6ug3BECh/AlQiCe0kyMDV\nQI5l+17TJpLxe3q1WuSDspFjAJoPQ0aMOYXZJGKCUQVPFhk74D/5PbNCdeCl\nZ15q\r\n=HFRG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCN+76qyDuC3emzmyGot2dJiQYyBcZn4HhbWjYCQKZ90QIhAP/sW7rsmcEYKruBthd889P1k+gXIxKuPZZgsZ1W+1tM"}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.1.0-alpha.7_1528368596628_0.7522145148347312"},"_hasShrinkwrap":false},"0.1.0":{"name":"craft-ai-kit-energy","version":"0.1.0","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0 <9.0.0 || >=10.0.0"},"dependencies":{"craft-ai":"1.14.1","date-easter":"0.2.2","debug":"3.1.0","fast-xml-parser":"3.11.1","luxon":"1.3.1","mem":"3.0.1","most":"1.7.3","most-buffer":"0.0.11","most-nth":"0.0.11","node-fetch":"2.1.2","p-retry":"2.0.0","quick-lru":"1.1.0","uuid":"3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nyc":"latest","seedrandom":"latest"},"files":["lib","data"],"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"c578b6f2f1af7652bb91f073233d1c8c4c0055a2","_id":"craft-ai-kit-energy@0.1.0","_npmVersion":"5.10.0","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-bFr6L59njqdy34FJnK0DHU31pHm4rJbp+b+nznpQKwRi0thej2BAHmJIEcmKCNvvPtntjiRHvutxvR1zvPG5zw==","shasum":"13de9a4880127f1c4bba7731d9314819dbeca1ae","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.1.0.tgz","fileCount":20,"unpackedSize":248742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbPOSvCRA9TVsSAnZWagAAFWsP/0e04tEmr5BKayzNS7+W\n5VFmP52xHMXhwd7LQtq2Vcu3U9zmFsRqaDtGF5i5H3XTQTBucu8eHgbXj2gz\neH67QRbNfbGiY4q41qIjjFXd/QVtWf8quf96XbTCCzY0qeBzx/p6ZRAjoAjq\nGIJ/U+26X0T83WPlltEQCJVMoTJW8onrgPTU5j+ka52zrP3l7nKIBfLRlaE3\nLWSoU8u0rZcPXjEU/EDXUb9stL8kr4k96sh2sBHS4eC/jAvN6NUC5CqBgDyS\nmdBAy5IuEUP1IsBiBOwuygdN51HSPSABtn7/8mv8/2a+TJSq8NMymPidxXKT\nMl3JSnW1m52uT5nHgvsVo6Umj/ePOsYg6UA1r+dlaFSrk3GrXYwZfRKc/jzO\n87t2b0ALptw8PiHMxcX+nxkzck5Jor+Y+bRkFzOVixJm9IRISVXP6KME0oHd\nwOjiUh7fb9OU7tNwwpxRdJ9IzhNeCA1QfXhdKTxGnJZE2YHejEeR268q8pYW\nMZjMX3xkBlczmmB9PE1et5o/HsnCsZotxx02PmtxEeS28Hj/HM/FPWhbcEkF\n+SPphcH6eOYLy3WHXLn5+oSawBfBPrrldM2YdTBIZwXWbroTDM/gAUHQ3HJb\nvEd4+KoLvbtLBChkSwftj70VjoizHSdgOZ4iKHyKMhVqhqFeASJ9Lz0/wXhz\n5BA3\r\n=jVro\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIASdtptqCDQ4x8nx7cfWT1IbbgDwOMOVpsA+ZKqt8E4pAiEA/bEkfh0AhqXABlV42aVaaW7PAfSzAnqvELRWIaMycaQ="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.1.0_1530717359479_0.07765500697816119"},"_hasShrinkwrap":false},"0.2.0":{"name":"craft-ai-kit-energy","version":"0.2.0","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:download_and_prepare":"node ./examples/download_and_prepare.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0 <9.0.0 || >=10.0.0"},"dependencies":{"craft-ai":"1.15.2","csv-parse":"2.5.0","date-easter":"0.2.2","debug":"3.1.0","encoding":"0.1.12","fast-xml-parser":"3.12.0","luxon":"1.3.3","mem":"3.0.1","most":"1.7.3","most-buffer":"0.0.11","most-nth":"0.0.11","node-fetch":"2.2.0","p-retry":"2.0.0","quick-lru":"1.1.0","uuid":"3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","csv-stringify":"latest","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"027ccd981463c641432530786bcdde8c38f3a027","_id":"craft-ai-kit-energy@0.2.0","_npmVersion":"6.4.1","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-djX91zvFzVjvxZ/EDMT4nsAaX7luJStqDhFQ3TIgJF1qiCLPUvGi/NEvDDdsE0No8/Nq6Xs7rnb6Su40eAWKFg==","shasum":"69f99dfd0278615ded6957857bc3e635ad49ba85","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.2.0.tgz","fileCount":22,"unpackedSize":91827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrQRXCRA9TVsSAnZWagAAm2EP+wabm+qNglnARsL+zg8C\nrOxQ7wQQrgNAoLcgtRvocR/luP6Z2yEE46CjgUx0rcsOdrso9iwP1gsTZFO+\nvyyziiLPh4idB+hK+mSY71+h1S057NN6BYeveln7K6eaGzf54wcoU332dmom\nQOleHc1KfynyacD1u1kh79q6IOtNOSUuA0iBvwZMUnPZRnuDbd9D1YcGbnGu\nWij/wDC6OtRp9x2neiV400AvDni0Nj5TLpbypHgYZ2bWs1ox8fDOJdwzYHob\nQmSLpuhFEfMgRIozGGb63A8hGOlh7PnuSkXgw4CTLj9VlBWJCAXUz7DKEf5V\ngQLhNHChBHox3KQXXNFcoRxaOJQfQgiqJHQrL7cgoNCT+udpCrH7OltitTeD\nuOz3b24uzf9quBqkn/znddGSOeXNCenxPJTlxYtAHSV3yQ+Y4m8Y2Kd3voka\n0K8bFRjSH9O1cX4/GQ9kg4cQM17b2x8mQTxvcAw9M65c2/ZqPRRyW2jYPga2\nxetVUuuv4UYD5Bmco+l+ZwzGLxCmi/nzGDgm+xK3FKQV/D7WloqeuZRWvHG/\nuhLK21/h7KXuUhpFkt4IAZ0T7C1Y2unNBzAOK115gKb2xAr1n/LewslvQWiX\nubvTb10mKEvf3xikpTJeL0Ndnzw4dgjpUdwRzjPrwi4NgZxTGnH+Y6ORC71A\nHSRo\r\n=RZH4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCc80AKGYwYSy9VMrmf4lArXkn1yAeOlmKmrg+O+2kOYwIhAO+lzq6YMkooQoE7p7HzHSwsauDGOew1IDgWWyl/t2qp"}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.2.0_1538065494454_0.5036931470709307"},"_hasShrinkwrap":false},"0.2.1":{"name":"craft-ai-kit-energy","version":"0.2.1","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:download_and_prepare":"node ./examples/download_and_prepare.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0 <9.0.0 || >=10.0.0"},"dependencies":{"craft-ai":"1.15.2","csv-parse":"2.5.0","date-easter":"0.2.2","debug":"3.1.0","encoding":"0.1.12","fast-xml-parser":"3.12.0","luxon":"1.3.3","mem":"3.0.1","most":"1.7.3","most-buffer":"0.0.11","most-nth":"0.0.11","node-fetch":"2.2.0","p-retry":"2.0.0","quick-lru":"1.1.0","uuid":"3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","csv-stringify":"latest","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"eaff666ea5eb704dfa1ed69a47cdfb00589c1e9e","_id":"craft-ai-kit-energy@0.2.1","_npmVersion":"6.4.1","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-0C2d2kMRPzRsS3ZpHrosKIRNhm57uSzt2yuuGEF2bSb5eJoyWzpu+njCXfJNV8uW9YLYkZmfqqMaLgMOdD+0aQ==","shasum":"503ad12e9551fcb6ef8096fb0eba1dce5abc5f1a","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.2.1.tgz","fileCount":22,"unpackedSize":93150,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrf8bCRA9TVsSAnZWagAAoiwP/RH7nNXJWC6RqHqPtYOn\n+7Ey//IZKFe432moYHoeN/86Buoy6NbLVGLnDKLOKm2GG/11cHv9eccIQ7a2\nUuXG4pFTKdD7kADLFsW9/tYkr8XgubWPrnlw3ULHoL3o4XvSGnKZ3QYI1NP+\nF7qwd4RoWtFxIfymrkb965ZMyoxk+O+9xwiRbJI3D6VX4Z2kD3QvQLiMASBx\nAbVOhQ+0/pCWMRY7KILjQP+WUuYPaPwmcbEoeDIOTZcBIj50xWm8UG6q20NU\nNKEBdannCDx33B39ED3rnGCOe4Vokyv1wcj3B8AObMTJdSqK/svPFwgpfB7/\nJ5bkZVUnnLyGqOjslBVlz0njtQas80Dxp139tTySJkbHpXSLRR9P3bNPKwP7\nwuCva8ZPbAVraBgmkUx1U2cgZnR7Syxz9Kzqik2przMKt8bApsa9/Ty7AWji\nAiTsqWIMFQiG84RbslE3Km8UB4UcfHM0ckPK8xmJQ85zmxoHcFwjKoabWHyP\ngLodr6j66ZRJeFd49dDRiGCwQklsP1ZQBDCBN3286GpDpIjrhPy+HtP2tkrn\nCWze8ymC8iMi+DfewnbO1jgSzcr+9fEtVnvj5+fyQx7s3S7LS7XRlbFrWRac\nGNTdP/DzDXb9pfL4VG0UgcyvAIl8ptPGgPdcJAwXfyNccqz2CKDRypjxenGP\nxUo+\r\n=HgbO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDW2ywbHYI2p0XbRh0rA7e0mZ7RMQyksyCwdASf/wZENAiEA5DEy/Wff0BV8X9wX4CeZYZ/bHG2B0JwzdFLdhgHh4NE="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.2.1_1538129690872_0.24592996597746164"},"_hasShrinkwrap":false},"0.2.2":{"name":"craft-ai-kit-energy","version":"0.2.2","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:download_and_prepare":"node ./examples/download_and_prepare.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0 <9.0.0 || >=10.0.0"},"dependencies":{"craft-ai":"1.15.2","csv-parse":"3.1.3","date-easter":"0.2.3","debug":"4.0.1","encoding":"0.1.12","fast-xml-parser":"3.12.5","luxon":"1.4.3","mem":"4.0.0","most":"1.7.3","most-buffer":"0.0.11","most-nth":"0.0.11","node-fetch":"2.2.0","p-retry":"2.0.0","quick-lru":"1.1.0","uuid":"3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","csv-stringify":"latest","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"501fe7aa0ef09952c2fb54bab8ec0635e716be3e","_id":"craft-ai-kit-energy@0.2.2","_npmVersion":"6.4.1","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-HfVt1UoElDND9PZnrQAp1j/y6IEv1jbkomfxyZhxzYS7ch2sVVdH/ucrAO2OkxeXRFryfTF9VuPMxrhT0K0j4w==","shasum":"a2970690fe27d17d1240ec888699b20696bf0a8d","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.2.2.tgz","fileCount":22,"unpackedSize":93531,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbu2awCRA9TVsSAnZWagAAgwAP/imB8Fy4U9CBJb4wvdUz\nIyp7dWvy1F8Be2LVBEROYT9m5U/1EiDjQiS8s3Lx0wcN5n/FvkGsn4m2RJXw\nS+AJeMithE58Cpj4ljvH8pcWe9ttFKqXBeXVZC5sVQG7hWonnkchnLGNP48S\n2VuFPze1aMc/fU4Y73bg12GFCcwrvGJzrOKbt6l1GQpcfz+zHAMm6TYxQZ0S\nC60gf5dg3SQqpd4YGjr3lME+QWu/lkfHAGoinJIbLwc38Fu4T1LxG0o1wxTr\nW2PqunRfH2Z79Cli/jWo48BJ7P8EIIO7pSuVfqgRTWLqXPdCOeMl1Y2nXkIz\nX6Ey09sj1nQyANJYDagmflUF+ZxZNV66+6Cz7p66o9/4h7ljW+b9L/unuj32\nf+LNURiyAFB4Y6zIkkstnb1ZO/yvNJIznAKCpNDni11YdDZfKixYq14IAIeh\nqrb/BwoRANw7qvNzxmejj9JUIZwRwV05Uc4RglXELp0f+pck25tgFEs8Pabu\nh3TPLYjV1WQHqbR7lkfSnTzVYmAYTh3z/v8Bt2mSRGf3+v0OwDWc0m2lcd8t\nzHTOikAfzXFoVRGYH+2sv8UswDwpCCF+j1ZY+9cfL/hEUoeaW6gWuz18Uwus\nMVmDYGmJ+SB83TSZofRIz7rgtIOICHQqLTFoSFAry131hQJEIdlcCh5EEdNV\nFMMr\r\n=IBNb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGiru+lDdgLqhPErZqJAg06kgnS8QCPTlB75x/3VUTQnAiEA7X6cjsy5JPFAqS6NSBx8cBUQMKqYYPvukHYcX7lZisY="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.2.2_1539008175968_0.4113823935031915"},"_hasShrinkwrap":false},"0.3.0":{"name":"craft-ai-kit-energy","version":"0.3.0","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:retrieve_uci_household_power_consumption":"node ./examples/retrieve_uci_household_power_consumption.js","examples:retrieve_ampds2":"node ./examples/retrieve_ampds2.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0 <9.0.0 || >=10.0.0"},"dependencies":{"craft-ai":"1.15.3","csv-parse":"4.0.0","date-easter":"0.2.3","debug":"4.1.0","encoding":"0.1.12","fast-xml-parser":"3.12.7","luxon":"1.7.1","mem":"4.0.0","most":"1.7.3","most-buffer":"0.0.11","node-fetch":"2.3.0","p-retry":"2.0.0","quick-lru":"2.0.0","uuid":"3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"next","csv-stringify":"latest","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js"],"sources":["src/**/*.js"]},"gitHead":"a8f923be867f23fbd4433380cabd0c86f68fda45","_id":"craft-ai-kit-energy@0.3.0","_npmVersion":"6.4.1","_nodeVersion":"6.9.5","_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"dist":{"integrity":"sha512-eZ0D1IT+vb0zs+LSHPqvONrIKS3KONAZ2rSDcRgtgbVLS2cM/ceaRZDK9cQ+YYtlBdpkEQhp/ELR5ZEMj0E8mw==","shasum":"87bca1ed028489571f2d4c2d4081fbaa949523b7","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.3.0.tgz","fileCount":22,"unpackedSize":97074,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9BD+CRA9TVsSAnZWagAAkr4P/RbXMn8wlUxE8Z8WTB6q\nccINHE/Bf/7xcz+lq7X35oPezfAtzeJGcUBpwGouzjwgAnvJxoDDoNjvVlXj\nssxrkQJgFeF8Tzg6vhSSl+8p/H8yLcnQykkkzyQWSOH8A/waYzSnDdSWQS52\nw2fP3ApqMEoLwILtdTj5jZwcvxVRiZnox+j6zjEfDBQCFw2NG7hhv6Ddqk50\nA0vWGyMZrBaq9Y+uP1qMwElf2BjAjJMwuvZ0tKPbAvhHpDgk61NoYUUvuXhP\noyFBfgHxNWddYUDC8Ox4xtLnv9nerK6uFDbgN3lq3Xpwr4vzCVvC2dsZP+RV\nzx9SPYVk2b3foCgs8XaHTZjqkq8xiaXAOdjXOk4gcNo6or+/gOSKUc0gqBuv\nvTKRTxn6LOU7qZb5VAAPIcD+zfe1Ovcjq8WMC+t+befyGJLDqwWyhLMJDcKR\n6hFnQWo+dLVrggO44Ni5hjQTlhtWWWz34FAOHecmscctUuC5jNmyMm949EC1\nQwlMoE+D8Bg2kvwVAw3qXAM+EhajKJFtNfkLCzXAFoLNDiNUadAZtrfgYqpd\n1MUCOxtZgHWKUXwFSje07sEzqYWnyevFS0dKc1OTidqLcrDkIEm9RYCpPft2\nmFuCBKJwHcTTw4xwXfuXrvhGhhSHB1dqXyjNES+jZ7k8zQ6hlYlpy/+7ZF3C\n5TD3\r\n=SA/X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpAh7ELxJLgOwj1gunXxBRAvBiFgX4wFThglagvN97kgIgS+0nk38QJqep/SNnGFkipqhuQCf61YKXNmN/OjZV1pc="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.3.0_1542721789549_0.7735633892699434"},"_hasShrinkwrap":false},"0.3.1":{"name":"craft-ai-kit-energy","version":"0.3.1","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage && npm run test:integration -- -- --short","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:integration":"npm run test:unit -- test/integration.test.js","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:retrieve_uci_household_power_consumption":"node ./examples/retrieve_uci_household_power_consumption.js","examples:retrieve_ampds2":"node ./examples/retrieve_ampds2.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0 <9.0.0 || >=10.0.0"},"dependencies":{"craft-ai":"^1.15.4","csv-parse":"4.0.1","date-easter":"0.2.3","debug":"^4.1.0","encoding":"0.1.12","fast-xml-parser":"^3.12.10","luxon":"^1.8.2","mem":"^4.0.0","most":"^1.7.3","most-buffer":"0.0.11","node-fetch":"^2.3.0","p-retry":"^3.0.0","quick-lru":"^2.0.0","uuid":"^3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"latest","csv-stringify":"latest","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js","!test/integration.test.js"],"sources":["src/**/*.js"]},"gitHead":"55b2528a46d2b3d5afba875711656860c67ecdfe","_id":"craft-ai-kit-energy@0.3.1","_nodeVersion":"6.9.5","_npmVersion":"6.9.0","dist":{"integrity":"sha512-AdWVs7m8sGbvqw9jUI8C02Hbnd7hSLu6q/Yynpa6GPz5o+Nz9fmPESbV5u9F+O3U5FR0H5AgOdGx1W0uc5mm/w==","shasum":"86e4c0a0a64e5545b238e7dc71c6e1a8e12dd004","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.3.1.tgz","fileCount":23,"unpackedSize":105537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyva3CRA9TVsSAnZWagAAA68P/0utI+d0FSNn0yuRSZwo\nZQHfihyFJi7J9fistNvqBQbm7EZN7jhXUTNgR/f5s5lMlKnh9cTzNVlF4EII\ncPzQTxXuRrSW7k/u2eIFI6ULPwpROyHWFpztzYC5zre/6FNUm8lQnM95v+4c\nyjasLycYBK1rE+KthkoWAyaD+4EOWinS/5SOt3lJgyLvwhDrrPWPcKQxm+l3\nx6M1+eYvnctSPKdGK6iHsnt4AwJoz8MJT8mKkAWvfpjm2FiXS5nAOX7vI0/N\nHLYkLgvtLMCEmUz0LLHIqnxhpCAPJDGi8Dv7OxX0SrJK1Gfp1+uYdXQ+qJ4c\n2LyNcew97Y3jz0McJXVzlTAG7xbm0KTn3dhuZI0ZMUD7gvjjuVR4af66rcq5\nEZNbwF7poiqhLJLhlt5Je5tf1yJp3u4IRCpRI6B5w3AKqvKGKbR3TJMyoJLO\n6lQCgp0bVrn9piHOGiVeL4NtTCSwwXOlK43yeokqf0GyEvyHsQ/k4fuFlOzF\n9m1ouEQQafkNLFAqCad6TrNi0G5WuHvYzlSmpV9NzOJGljDZeWyoauyrn8ir\n05WEsS1gq2b34OsFTLp62R56dfZcw8M7ARVBEYCyhyLgnB63cpdas4f+I32x\naoQwi+PAHkG3jbIcCCz/QmpKLo57vl2nk/rxUwAe3wuQt7ljX+lzf4/znASl\nHZaJ\r\n=GER4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtyO2CXBiyHgEHM+XEs0bQxEpIRu7c+k68tMOY9xG4egIgUcmN+hxLJ0OqJMQCII9xs3uUSwr7Q0yIqb9EfyJ2UV0="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.3.1_1556805302758_0.3088617631154751"},"_hasShrinkwrap":false},"0.3.2":{"name":"craft-ai-kit-energy","version":"0.3.2","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage && npm run test:integration -- -- --short","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:integration":"npm run test:unit -- test/integration.test.js","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:retrieve_uci_household_power_consumption":"node ./examples/retrieve_uci_household_power_consumption.js","examples:retrieve_ampds2":"node ./examples/retrieve_ampds2.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=6.9.0 <7.0.0 || >=8.9.0 <9.0.0 || >=10.0.0"},"dependencies":{"craft-ai":"^1.16.0","csv-parse":"4.0.1","date-easter":"0.2.3","debug":"^4.1.1","encoding":"0.1.12","fast-xml-parser":"^3.12.16","luxon":"^1.15.0","mem":"^4.3.0","most":"^1.7.3","most-buffer":"0.0.11","node-fetch":"^2.6.0","p-retry":"^3.0.1","quick-lru":"^2.0.0","uuid":"^3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"latest","csv-stringify":"latest","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js","!test/integration.test.js"],"sources":["src/**/*.js"]},"gitHead":"fe3d2bb21f88942a1a1e74e8cf923d745ac2150f","_id":"craft-ai-kit-energy@0.3.2","_nodeVersion":"6.9.5","_npmVersion":"6.9.0","dist":{"integrity":"sha512-lNYERTEOp9iGtk9tRvGw/RpAyQzVpltA6mDTdblZV5gUyD3fUMw2av67+3RceG2mc+nWJ1E/L5M48obE3Vb8MA==","shasum":"d3b223b2001912b303f10bc3258a2742b9bdf569","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.3.2.tgz","fileCount":23,"unpackedSize":106602,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7+t8CRA9TVsSAnZWagAA2sIP/jxLOODkthQqHMrZARqq\nzTb6P7qKF1SsXeYkPmj834dMS9WJYxAktCN3TlDQfqK6+IEahnXDq9Le2+Vp\nantQAT26yhVz4jPfUNzHl2w48SjfNMKYiovVpeJW/2B1nwy/meRU7O/rCzPs\nth2GJJkudyQNZ/WtzGoQm9W95/KGkc79uLNur7STnQhLzfM/aBDqYK4J/rS8\nafHqQhNMMTP0Efm6MlJLxUL3kn8LfwrxETEVNTCTlocjAT4uf+6GReGn1SyJ\n3AikrWQ4oLjnxmTR3xXBfc+HvPieZLm/81O9LUs0Ss7gVlDo2zZt2Ma9ZIRg\nqyUaenjUtjhldU+bxAyy3BFX8xYEzuCUQ7rDYPKW28j+Ec7XQ3xYIMko2sWY\nA+I4yih0xX9bE6mchH5Lnljdn5wHmKt2bw6i4X7FcMpPyAjqCGs0HASJ/JTo\nKpC3p5q2Am/sSH+VbFLzvm+jKLpnBBnY7XsdplwS6n/9VhpPoXUNHW9cAccO\naw/NyH0gp640A9dBM3FvDxPuH6J+dHDTRV5LjiPVoxvxlWyDVfhAmX00BTRc\neA5VuaAgHQ0xfAdnOtpiUWIb40Dwm/Y3AQSY5fMFIHotELH9W1P2ZwFpsvXG\nrad6akanQgP7F+lVFNo/v1EdAl+uMEkbpPXQp/qkVuFkoQuDOftwoJE3mT4Y\nhduO\r\n=c0aG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuv29pNvOEGIbkaikzzhoKtBn4MC8UtXZv2SAf/FC60gIhAO3zOAaWYmNcaK402emH3rGBPp0Wkttm8Q9qYsgA9oXf"}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.3.2_1559227259114_0.4277617150820874"},"_hasShrinkwrap":false},"0.4.1":{"name":"craft-ai-kit-energy","version":"0.4.1","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage && npm run test:integration -- -- --short","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:integration":"npm run test:unit -- test/integration.test.js","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:retrieve_uci_household_power_consumption":"node ./examples/retrieve_uci_household_power_consumption.js","examples:retrieve_ampds2":"node ./examples/retrieve_ampds2.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=8.9.0 <9.0.0 || >=10.0.0"},"dependencies":{"core-js":"2.6.9","craft-ai":"^1.17.1","csv-parse":"^4.6.3","date-easter":"0.2.3","debug":"^4.1.1","encoding":"0.1.12","fast-xml-parser":"^3.12.16","lodash.isfunction":"^3.0.9","luxon":"^1.15.0","mem":"^4.3.0","most":"^1.7.3","most-buffer":"0.0.11","node-fetch":"^2.6.0","p-retry":"^3.0.1","quick-lru":"^2.0.0","uuid":"^3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"latest","csv-stringify":"latest","dotenv":"latest","eslint":"latest","eslint-config-craft-ai":"^2.3.0","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js","!test/integration.test.js"],"sources":["src/**/*.js"]},"gitHead":"94b648b384aa3cc05f5daf0f435a7c20ab805618","_id":"craft-ai-kit-energy@0.4.1","_nodeVersion":"8.9.4","_npmVersion":"6.12.0","dist":{"integrity":"sha512-5JDGcJk8GkhOCwLbvQanbzJ9/Qqw4O3BhDyyOQ5vp4m71W/nZnP8GD5IaN+A2QL8Vu2t7SsdOZY++G8UwKYd0Q==","shasum":"ce3c1e664cd72b13dc23d6e0e9f6d664d429dee4","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.4.1.tgz","fileCount":23,"unpackedSize":97290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsIKkCRA9TVsSAnZWagAA7J8P/RPC1CxJGSYe4GPSkj1P\nTWS9T+A647Bx11fz8VLq9js5dTyr+5t95T4Re78XGu2qGgXCig5Ove95TP8O\nMIxxROhC7L35OtTRnYUyzS1PN490+tH8cOgPKKMCAy0K896tq2rHDQKqacdz\npGntIuueSZNU79gnQ1zF6hZEUFfS87G6vxfGqbBaVwHYZtfUl71rNpLVzNX4\ny2WjoIDg22ClpL34dNaV4L13Tcu0P6T8KHFx5Q/auZN7uSp8GB+vdNFMiL8v\nqJTsIRDVDSs9Df6hLRECdehzdVmEBNNQP7itf3jpSVH5ISPbjY/XRHNyDbKw\nqg6anNVzPofYZxEZzKreFnsUwkljM7FIuMUdob7FyK/VmMk3lUD9prsl31rN\nPK1PJQ/P04yMOZTD1cCeuJB6SnP1u4o4EqbUdr8R6T0ivnW6DNX/2HxofJYR\n8rBszvmi0nx65ay0jr37HO9AcswFpl6eugeElhJ155vHcrR2M0L3CcaOXh9Z\nf7UCb6LTu8quIJwSqtk0gE2c2PJj6FZ4tANG5RNVq0KLU/PYQQiPVVC1P7vF\nV9sSCYNyKs+caJPwV31xNHShcxt+vukUFn+cL+Az5wuiha4scHtW+UAXplfH\nDHF5ONvIAKKnfJ14HY9rIW4Ms8gyqIuRtjQHRfBk21dvp77WmhRwBzTjZFoy\nSjwz\r\n=jFLn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEs2IY08+/yW/oXUd8hJPbWyMZ4m/1eRz3dsGYoIypsyAiEAo17zCRUbgqxu9DAL/9Xaiosj2cBIEsGSgAzvGKMXe/M="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.4.1_1571848867752_0.7757022934332733"},"_hasShrinkwrap":false},"0.4.3":{"name":"craft-ai-kit-energy","version":"0.4.3","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage && npm run test:integration -- -- --short","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:integration":"npm run test:unit -- test/integration.test.js","test:unit":"npx ava","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:retrieve_uci_household_power_consumption":"node ./examples/retrieve_uci_household_power_consumption.js","examples:retrieve_ampds2":"node ./examples/retrieve_ampds2.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=8.9.0 <9.0.0 || >=10.0.0"},"dependencies":{"core-js":"2.6.9","craft-ai":"^1.17.1","csv-parse":"^4.6.3","date-easter":"0.2.3","debug":"^4.1.1","encoding":"0.1.12","fast-xml-parser":"^3.12.16","lodash.isfunction":"^3.0.9","luxon":"^1.15.0","mem":"^4.3.0","most":"^1.7.3","most-buffer":"0.0.11","node-fetch":"^2.6.0","p-retry":"^3.0.1","quick-lru":"^2.0.0","uuid":"^3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"latest","csv-stringify":"latest","dotenv":"latest","eslint":"5.16.0","eslint-config-craft-ai":"^3.0.3","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"babel":false,"compileEnhancements":false,"require":["@babel/register"],"files":["test/**/*.test.js","!test/integration.test.js"],"sources":["src/**/*.js"]},"gitHead":"bb8c538e5f88682beb38d64764e7508542710821","_id":"craft-ai-kit-energy@0.4.3","_nodeVersion":"8.9.4","_npmVersion":"6.13.0","dist":{"integrity":"sha512-K5F4NmvHnq89e9znYBb16d9NOz4i71ZR6I62K+Bus1mKSxiiRQb+GZTjC6cKv0GQHonAoax8J/vOSPT010tV9w==","shasum":"0f370b2e4905008ff1498045c27aa3dee760659a","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.4.3.tgz","fileCount":23,"unpackedSize":99718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzX4kCRA9TVsSAnZWagAA8tsP/jyxDcD99/MkqsmfJMp2\nPAbnTqtptMrEb/8292kltw67bCrjtOIFmCaWDv5pQhgYCwSFASjbCiJvmYBC\ny2qX3Smbv0fdaxNk8k0Z2bkYEavsE7tFgpzLXQFY/crCp83RugEc50yY5rbS\nzxmkXnIhp+b2wLANmTTqd215uFF1v9iY1svoih29X4sM/D5W287lc+FI2r55\n+vIHlWcBLG0UvURs0guI8VUQdKzBSMsQ2Pn0D8I04M0r6GQT9VWntH9kYg47\nRVCqYSRshxoHO+wtBOmghy3JPW/dFk/swetptAERTlU8aj5K8y1U27XjERbW\nRATPwFhJxUIyaW50RrIBAnknbxPz/xqGTiAq8Oa5LAauDtXj08VU6QOuZt2a\nIlfWFDU9cOP2QN3lGfjLrUUD/Lx7vjVEFN1ubeXpBKJ0koAfIfAuynhubLkO\n1pWe3DHmK1Z6hosX1otSx0BwsVMkZ62VUpdpiLWqbkCKizKfGkMedEWQxDvA\n92xdouTtza/g6pkle6u+243oCs/2dkP9XB1okA85d2vzVrV6Jeat3vDruUHu\nvosQ9IpRfhjelLZ1GRoNyD3HS/xi63748GAGk8jc6ANCTz3SUSO9un/vQ/cz\nD5+1DuXjw5hEShfg9tgOlk7M/ue+Z+uT0EmDOWFVwbZS5UGzVC/Jx/S1JKig\nF8tn\r\n=DEZo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNilH96XwW14y6SZDI7PlGcnfJmqPS/DxTxeZ+L58O2AIgSgZcD5a2Zzqahl1XPOc6HxtfYu78INU8f2zb0HpqIJk="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.4.3_1573748260390_0.8504054826731762"},"_hasShrinkwrap":false},"0.4.4":{"name":"craft-ai-kit-energy","version":"0.4.4","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage -- --short","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:integration":"npx ava test/integration/*","test:unit":"npx ava test/unit/**/*","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:retrieve_uci_household_power_consumption":"node ./examples/retrieve_uci_household_power_consumption.js","examples:retrieve_ampds2":"node ./examples/retrieve_ampds2.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=10.0.0"},"dependencies":{"@ava/babel":"1.0.1","core-js":"2.6.9","craft-ai":"^1.17.1","csv-parse":"^4.6.3","date-easter":"0.2.3","debug":"4.1.1","encoding":"0.1.12","fast-xml-parser":"3.12.16","lodash.isfunction":"3.0.9","luxon":"1.15.0","mem":"4.3.0","most":"1.7.3","most-buffer":"0.0.11","node-fetch":"2.6.0","p-retry":"3.0.1","quick-lru":"5.1.1","uuid":"3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"3.11.0","csv-stringify":"latest","dotenv":"latest","eslint":"5.16.0","eslint-config-craft-ai":"^3.0.3","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"serial":true,"verbose":true,"timeout":"2m","babel":{"compileEnhancements":false},"require":["@babel/register"],"files":["test/unit/**/*.test.js","test/integration/**/*.test.js"],"ignoredByWatcher":["src/**/*.js"]},"gitHead":"3433f16bb7ee59912ef96032967cd7408ccd5c03","_id":"craft-ai-kit-energy@0.4.4","_nodeVersion":"10.22.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-f2B3Hrr+ihDiwtG31eyUQF/VQ2/NkgdxXN8GnHVYKtHe9pOzkY+dTezdPzA9EvxfAb61IdPhQezSbMBULLWhZA==","shasum":"67ba9c057a2057d4db96e5aa81126850bb363e93","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.4.4.tgz","fileCount":23,"unpackedSize":101363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRNMDCRA9TVsSAnZWagAADA8P/jHqtj+5KSVB6C9Tn+Id\nU5Ed3cqZUH0FqM4tFwkMX7Bz15ppkr/IeHiziHYuYgEk702neh380WW88p6e\n1PQ9AEpPetOrjuaJBq3FcZRvdHyWm36gy2r6MLRdoJ6jsflNa9LFvW256Ue7\n8yWVSblWx6kWpNSswq0H41BNc9yLt3WEz6rwBuAl804AHYtzN7eyMFYYH1lb\nfDACo4/5bcyZVi9eZ3dxQjEFFWvHShnepfrp5jjgf3fkkjCo98kLzRP2/gtd\nfpUEFs6hW5/atgrIL5xXlW+U5wrdichdW0A97pnXS0w/JojOBkaSYO6z1bOm\nVu0buZ01zaBCnQWMcmM1Sq9Y2B4FIG9C+LfhWSte5gzKoOuApkS7E5kcf5Sg\nVzr+gTnAlRBKO7hcB6zLvQDrojZECVq1KdjBQZL+6P+yoa25lKn3lE3lXcE0\np7SdmZi54QuOOF6MwitY8i8wuQ2JyimHJG90C5lorqiRTtqK9PKSUGKfPW35\n+evU1uzXwwZ7oqXjhlimRCBKwr5P2ck0c8zlo5KTWdQ1dvruSxRose/fInhX\n7M2FtiboOKm5YmO2sHy1lVrPBlLLDcRymS1vDSxhzH1zedg14Rp4jHkpi/c5\nZVfXpzvoWzDeJ8XfL74wRVHwR24o897cSOGuZ6wKWjDn0JItJsHUfDwiYGf6\n8wCQ\r\n=709s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICoRdX3/TcZYoi9eGElWwB0gDMMUtN06R1/qtiWxx/6wAiBED6WaOS8rypc/JQNwxL5yBeVUB9REXDzyJE103CtCFQ=="}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.4.4_1598345987286_0.9866832575452844"},"_hasShrinkwrap":false},"0.4.5":{"name":"craft-ai-kit-energy","version":"0.4.5","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage -- --short","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:integration":"npx ava test/integration/*","test:unit":"npx ava test/unit/**/*","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:retrieve_uci_household_power_consumption":"node ./examples/retrieve_uci_household_power_consumption.js","examples:retrieve_ampds2":"node ./examples/retrieve_ampds2.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=10.0.0"},"dependencies":{"@ava/babel":"1.0.1","core-js":"2.6.9","craft-ai":"1.18.3","csv-parse":"^4.6.3","date-easter":"0.2.3","debug":"4.1.1","encoding":"0.1.12","fast-xml-parser":"3.12.16","lodash.isfunction":"3.0.9","luxon":"1.15.0","mem":"4.3.0","most":"1.7.3","most-buffer":"0.0.11","node-fetch":"2.6.0","p-retry":"3.0.1","quick-lru":"5.1.1","uuid":"3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"3.11.0","csv-stringify":"latest","dotenv":"latest","eslint":"5.16.0","eslint-config-craft-ai":"3.0.3","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"serial":true,"verbose":true,"timeout":"2m","babel":{"compileEnhancements":false},"require":["@babel/register"],"files":["test/unit/**/*.test.js","test/integration/**/*.test.js"],"ignoredByWatcher":["src/**/*.js"]},"gitHead":"2cb6d2ed11df0f095771e0bba375d7759ee95d57","_id":"craft-ai-kit-energy@0.4.5","_nodeVersion":"10.22.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-zhjJZmMPIcmnyRr9YbBrZLIIm/rISKqwUWz27xEKkAQ0old4nxbV7M0cucts+lPPhNY0MqMZmmb/JG/rx9JdCg==","shasum":"7935c8395787e7a825f315f1f4beaf5319813e7e","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.4.5.tgz","fileCount":23,"unpackedSize":101631,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUfqiCRA9TVsSAnZWagAACckP/ipeV6zSFRkV0MGpbAVY\nABdml9G77aA3iDFpdRm2+UynYV9+Dc+dTBKu50/TE+d8jsec0MNqL25lgDsP\npW2/4Ot1api00WIRMXpFbK8ctJ6/EPHdp8hJJ68KVYqzmCqt037AsJUk0ZWP\n27CgmRE/bdr77ZRkFggCR19fFT5F1YyR7/yCUa2jkyKS2zithY8FVSzN/MEK\ngiBbE3q9+zb/eFij1f18lV9fAx5cNhcSe52rZLcMRfwD3LbFhJ2eEAzgwuvz\nm3+CtS+g322aZLJeVKVxk+NxsqU3OSpzDpsbl0KUJ2WBaH7JyeAWTFq/+KXs\nVR2L4xuhNfusYE8uqwHhHwITLjZLipFGrcMNLRskiwUr36uWoVntOawaZksU\nV406WkpOPOReQXbJDdbO0M+lMzHtpplNBu5efoE/OEs2OIEG1A/7yAx/yofc\ng5zAT2m2y4vd593VWcQuifl2RKqpwRkPOnkPQnTgFL5O7IstYfap0gl2zC2Z\n3oxYOBBFzK3UaEch7F2tXcZPCrsjQxDUkaShdZzSpc9WWOwfroFTdpByPJlJ\noO+9JnRSynKGGcdLbiWOJm66mpFNT4wIjO37Lu2OrBGe3BG0qSBAYCum05vg\nNnS5IwMvJmPSSl266PrMg6+vOzYKsZCciBr2cpwmrrbU5zmUx8Vl9zi+6zP7\neQDZ\r\n=NVbm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqIS5N+1o+lPV/TuXS4PPXklczZTkEv78cVkJuOZeSHQIhAMfarUA8xytn206RZ6bp22MgLr4XgpAxD0Q2fAWKavdl"}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.4.5_1599208097833_0.22843162042226628"},"_hasShrinkwrap":false},"0.4.6":{"name":"craft-ai-kit-energy","version":"0.4.6","description":"The craft ai integration kit for energy prediction in JavaScript.","author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","main":"lib/index.js","scripts":{"test":"npm run lint && npm run test:coverage -- --short","lint":"npx eslint . --ignore-path .gitignore","build":"npx babel src --out-dir lib","lint:fix":"npm run lint -- --fix","test:coverage":"npx nyc --reporter=html --reporter=text --reporter=text-summary npm run test:unit --","test:integration":"npx ava test/integration/*","test:unit":"npx ava test/unit/**/*","test:update":"npm run test:coverage -- --update-snapshots","test:watch":"npm run test:unit -- --watch","examples:retrieve_uci_household_power_consumption":"node ./examples/retrieve_uci_household_power_consumption.js","examples:retrieve_ampds2":"node ./examples/retrieve_ampds2.js","examples:single_endpoint":"node ./examples/single_endpoint.js"},"engines":{"node":">=10.0.0"},"dependencies":{"@ava/babel":"1.0.1","core-js":"2.6.9","craft-ai":"1.18.3","csv-parse":"^4.6.3","date-easter":"0.2.3","debug":"4.1.1","encoding":"0.1.12","fast-xml-parser":"3.12.16","lodash.isfunction":"3.0.9","luxon":"1.15.0","mem":"4.3.0","most":"1.7.3","most-buffer":"0.0.11","node-fetch":"2.6.0","p-retry":"3.0.1","quick-lru":"5.1.1","uuid":"3.3.2"},"devDependencies":{"@babel/cli":"latest","@babel/core":"latest","@babel/plugin-proposal-object-rest-spread":"latest","@babel/polyfill":"latest","@babel/preset-env":"latest","@babel/register":"latest","ava":"3.11.0","csv-stringify":"latest","dotenv":"latest","eslint":"5.16.0","eslint-config-craft-ai":"3.0.3","nock":"latest","nyc":"latest","seedrandom":"latest","unzipper":"latest"},"ava":{"serial":true,"verbose":true,"timeout":"2m","babel":{"compileEnhancements":false},"require":["@babel/register"],"files":["test/unit/**/*.test.js","test/integration/**/*.test.js"],"ignoredByWatcher":["src/**/*.js"]},"gitHead":"e78f21ba8630071a5c923b13bbf82c9fc58c4066","_id":"craft-ai-kit-energy@0.4.6","_nodeVersion":"10.23.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-BeUelowtiVW96qUChB+ke6mzeHFdPQHuUjXO9wfdgEjDxNhNNf/RIV1eQIa/PlWWaprDYqgzm2fIXZM80FAQ/w==","shasum":"38561989ca7feec7ed5c727872322b2a5ac72667","tarball":"https://registry.npmjs.org/craft-ai-kit-energy/-/craft-ai-kit-energy-0.4.6.tgz","fileCount":23,"unpackedSize":102255,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnDXyCRA9TVsSAnZWagAAULEP/jV2Aj+DHkshvHUeLO6Z\n31tz7clZiPBC0I2ho2U0QJzCaDxS/xY7hGUZ1gttwK8m4tkqOtb8oKi45ulM\nGDyQyRAlOJfXodgxcUjfywRt4xHSTZk82eG0srr4i64A2haULudY95at4U7A\n+zp7rG3hreKo5vpz9rrgyN8UilWr8ISrHmDhWM4nIF88+h7YU8Stgii4AhhN\nCfQA8GLcEKglg8pcPh8TnVgmz8Z8eQHg9hxKwr4bOBNMNrjsFHTtvyYNpNNe\nWeAxbiTz+t8JbX2NRDRmoMpYlJVT2BVQoNaBqrcHB7fh6PrvyU8zXHouqxN4\npBjypT6UxHFUjZ9LxYa7mRCFqquRLc61C9cKxNdnSwYZYUHJOpOClJp6lrx6\nprM/9/W9WDGjz9Cmar++dEEIcaFE9OtJDcv7tfdgkWzdcaTgCQdM6Dr9GEWq\n7l7kIG0d4diIrl7Jpa4hpFgtWMV/7YGAUQthQcYkMVdLRW9/WxPHH6l0CI2r\nWPW7Kn+aF2feCcuXSDVSM1dKQHbP8YAhUqRlyytUcIvRedHt6JqTML9sirtn\nrTLNavpEO8UlT5THGp6qIJR9Y39o4Wy0oL19QjNuj9elOyxG4i1EwdGFCIWt\nQzqASoPciY1a8sOH/2PfkA+Y1GisxeeZAFuAExOd/sYFpdYZ5xjZGJ9q+JfD\nTEkN\r\n=UdTg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKcu5cqjcWvnWR9XsxMDFovKnim72LHtfisSPkBVKMNwIhAN4wqsTaAlW5BzCzjABWredP8IGhQaLki6CR7npLPfUf"}]},"maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"_npmUser":{"name":"craft-ai","email":"ops@craft.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/craft-ai-kit-energy_0.4.6_1604072946105_0.3932659004578438"},"_hasShrinkwrap":false}},"readme":"# craft ai energy kit #\n\n> The [craft ai] integration kit for energy prediction in JavaScript.\n\n> :construction: This project is still under active development.\n\n[![Version](https://img.shields.io/npm/v/craft-ai-kit-energy.svg?style=flat-square)](https://npmjs.org/package/craft-ai-kit-energy)\n[![Build](https://img.shields.io/travis/craft-ai/craft-ai-kit-energy/master.svg?style=flat-square)](https://travis-ci.org/craft-ai/craft-ai-kit-energy)\n[![Code coverage](https://img.shields.io/coveralls/github/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://coveralls.io/github/craft-ai/craft-ai-kit-energy?branch=master)\n[![License](https://img.shields.io/badge/license-BSD--3--Clause-42358A.svg?style=flat-square)](LICENSE)\n[![Dependencies](https://img.shields.io/david/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy)\n[![Dev Dependencies](https://img.shields.io/david/dev/craft-ai/craft-ai-kit-energy.svg?style=flat-square)](https://david-dm.org/craft-ai/craft-ai-kit-energy#info=devDependencies)\n\n## Usage ##\n\nThis integration kit has been tested on every active and maintained [`LTS` releases of Node.js](https://github.com/nodejs/Release#release-schedule) (i.e. it should work with any version greater or equal to `v6.9.0`).\n\n#### Add the energy kit to your project ####\n\n```console\n$ npm i craft-ai-kit-energy\n```\n\n#### Initialize an instance of the kit ####\n\n> All the functions exposed by the kit return native [**Promises**](http://www.datchley.name/es6-promises/).\n\n```js\nconst EnergyKit = require('craft-ai-kit-energy');\n\nEnergyKit\n  .initialize({\n    /**\n     * __Required__\n     *\n     * Specify the craft ai token with write access to a project. The kit will\n     * use this project to host its agents. You can also specify it through the\n     * environment variables `CRAFT_AI_TOKEN`.\n     */\n    token: '{the-craft-ai-token}',\n    /**\n     * __Recommended in a production environnement.__\n     *\n     * Define a string used to derive and anonymise the unique identifiers of\n     * an endpoint when creating the related craft ai agents. If not specified,\n     * each agent will use the same identifier as the endpoint's identifier.\n     */\n    secret: '{a-secret-string}'\n  })\n  .then((kit) => /* Do something with the kit... */);\n```\n\n#### Load an endpoint ####\n\nOne instance of the kit can manage several electrical equipments, they are called _endpoints_. They need at least a unique identifier to be loaded.\n\n```js\nkit\n  .loadEndpoint({\n    /**\n     * __Required__\n     *\n     * Define uniquely the endpoint.\n     */\n    id: '{a-unique-id}'\n  })\n  .then((endpoint) => /* Do something with the endpoint... */)\n```\n\n#### Update the endpoint ###\n\nBefore using the endpoint, you might want to update it with load consumption data.\nThe endpoint takes as an input a _record_, which consists at least of a dated eletrical load information.\n\n```js\nendpoint\n  .update([\n    { date: new Date(2018, 0, 1), load: 740 },\n    { date: new Date(2018, 0, 2), load: 415 },\n    { date: new Date(2018, 0, 3), load: 609 },\n    /* ... */\n    { date: new Date(), load: 286 },\n  ])\n  .then((endpoint) => /* Do something with the updated endpoint... */)\n```\n\n#### Harness the endpoint's predictive model ####\n\nOnce your endpoint instance is up-to-date, you can make use of its underlying predictive model to retrieve for example a list of consumption anomalies.\n\n> For a complete list of available methods, refer to [the API reference](#api-reference).\n\n```js\nconst today = new Date()\nconst lastMonth = new Date(today - 30 * 24 * 3600 * 1000)\n\nendpoint\n  .computeAnomalies({ from: lastMonth, to: today })\n  .then((anomalies) => console.log(anomalies))\n```\n\n#### Close the kit ####\n\nWhen you're done using the kit, close it:\n\n```js\nkit\n  .close()\n  .then(() => /* Do something after the kit has been closed... */)\n```\n\n#### Adding additional context information ####\n\nIn most cases, the endpoint's consumption doesn't only depends on time. You might want to boost the underlying predictive model with weather information or holidays.\n\n> This feature is not documented yet. Contact us or jump into the code, for more information.\n\n### API reference ###\n\n#### `endpoint.computeAnomalies({ from: Date, to: Date })` ####\n\nDetect the anomalies for mean electrical load based on the stored history of the endpoint in a given range of time.\n\n#### `endpoint.computePredictions(Array<State>)` ####\n\n> A state consists in records object without the electrical data.\n\nRetrieve the predictions of mean electrical load for a set of states.\n\n#### `endpoint.computeReport({ from: Date, to: Date })` ####\n\nRetrieve some statistics for mean electrical load based on the stored history of the endpoint in a given range of time.\n\n#### `endpoint.destroy()` ####\n\nDelete the endpoint, all its stored records from the related craft ai agent as well as the agent itself.\n\n#### `endpoint.retrievePredictiveModel(modelDate?: Date)` ####\n\nRetrieve the craft ai predictive model at a given date. By default, the model based on the last stored endpoint's records will be downloaded.\n\n#### `endpoint.retrieveRecords(from: Date, to: Date)` ####\n\nRetrieve the stored endpoint's records from the related craft ai agent.\n\n#### `endpoint.update(Array<Record>)` ####\n\nUpdate the endpoint by adding the new records to the related craft ai agent. Older records than the one already stored on the agent are simply ignored.\n\n#### Environment variables ####\n\nThe kit uses the following environment variables for secrets and global configuration:\n\n- `CRAFT_AI_TOKEN` the [craft ai] token with write access to a project. The kit will use this project to host its agents.\n- `DEBUG` (*optional*) a prefix to toggle the debug output for different parts of the kit. Set it to `craft-ai:*` to display the logging information related to [craft ai]. For details, refer to [the `debug` package](https://github.com/visionmedia/debug).\n\n> ℹ To manage the environment variables of your project, you can use the [`dotenv` project](https://github.com/motdotla/dotenv).\n\n## Examples ##\n\n### Data preparation ###\n\n> The following steps are optional as the prepared datasets are included on the repository.\n\n#### [AMPds2: The Almanac of Minutely Power dataset (Version 2)] ####\n\nThe script [`./examples/retrieve_ampds2.js`](examples/retrieve_ampds2.js) downloads and prepares the dataset to [`./examples/data/ampds2.csv`](examples/data/ampds2.csv) in order to use it in other examples. On a good internet connection it should last ~10 minutes.\n\n```console\n$ npm run examples:retrieve_ampds2\n```\n\n#### [UCI Individual Household Electric Power Consumption Data Set] ####\n\nThe script [`./examples/retrieve_uci_household_power_consumption.js`](examples/retrieve_uci_household_power_consumption.js) downloads and prepares the dataset to [`./examples/data/uci_household_power_consumption.csv`](examples/data/uci_household_power_consumption.csv) in order to use it in other examples. On a good internet connection it should last ~10 minutes.\n\n```console\n$ npm run examples:retrieve_uci_household_power_consumption\n```\n\n### Single endpoint example ###\n\nThe script [`./examples/single_endpoint.js`](examples/single_endpoint.js) showcases most of the features of the kit using the aformentioned [UCI Individual Household Electric Power Consumption Data Set]. It builds an endpoint from the dataset, enrich its data with weather and holidays information and uses the kit to compute anomalies, report and predictions.\n\n```console\n$ npm run examples:single_endpoint\n```\n\n## Attribution ##\n\n[![Powered By Dark Sky](./poweredby_dark_sky.png)](https://darksky.net/poweredby/)\n\n> Dua, D. and Karra Taniskidou, E. (2017). UCI Machine Learning Repository \\[http://archive.ics.uci.edu/ml\\]. Irvine, CA: University of California, School of Information and Computer Science.\n\n\n> Hébrail, Georges and Bérard, Alice, 2012 \"Individual household electric power consumption Data Set\", https://archive.ics.uci.edu/ml/datasets/individual+household+electric+power+consumption\n\n> Makonin, Stephen, 2016, \"AMPds2: The Almanac of Minutely Power dataset (Version 2)\", https://doi.org/10.7910/DVN/FIE0S4, Harvard Dataverse, V1, UNF:6:0uqZaBkSWdyv27JqTHFWPg==\\[fileUNF\\]\n\n[craft ai]: http://www.craft.ai\n[AMPds2: The Almanac of Minutely Power dataset (Version 2)]: https://doi.org/10.7910/DVN/FIE0S4\n[UCI Individual Household Electric Power Consumption Data Set]: https://archive.ics.uci.edu/ml/datasets/individual+household+electric+power+consumption\n","maintainers":[{"name":"craft-ai","email":"ops@craft.ai"}],"time":{"modified":"2022-06-14T02:32:08.389Z","created":"2017-10-09T11:45:33.056Z","0.0.1":"2017-10-09T11:45:33.056Z","0.0.2":"2017-10-18T08:50:12.705Z","0.0.3":"2017-11-06T15:50:40.485Z","0.0.4":"2017-11-17T09:50:47.121Z","0.0.5":"2017-11-21T15:55:07.178Z","0.0.6":"2017-11-24T17:36:45.268Z","0.0.7":"2017-12-19T15:00:47.934Z","0.1.0-alpha.1":"2018-03-28T18:58:02.172Z","0.1.0-alpha.2":"2018-03-29T08:57:32.898Z","0.1.0-alpha.3":"2018-04-11T14:41:04.284Z","0.1.0-alpha.4":"2018-04-16T15:12:19.075Z","0.1.0-alpha.5":"2018-04-24T08:16:59.718Z","0.1.0-alpha.6":"2018-04-24T15:51:49.535Z","0.1.0-alpha.7":"2018-06-07T10:49:56.694Z","0.1.0":"2018-07-04T15:15:59.593Z","0.2.0":"2018-09-27T16:24:54.562Z","0.2.1":"2018-09-28T10:14:51.099Z","0.2.2":"2018-10-08T14:16:16.178Z","0.3.0":"2018-11-20T13:49:49.641Z","0.3.1":"2019-05-02T13:55:02.911Z","0.3.2":"2019-05-30T14:40:59.256Z","0.4.1":"2019-10-23T16:41:07.928Z","0.4.3":"2019-11-14T16:17:40.510Z","0.4.4":"2020-08-25T08:59:47.393Z","0.4.5":"2020-09-04T08:28:17.992Z","0.4.6":"2020-10-30T15:49:06.402Z"},"homepage":"https://github.com/craft-ai/craft-ai-kit-energy#readme","repository":{"type":"git","url":"git+https://github.com/craft-ai/craft-ai-kit-energy.git"},"author":{"name":"craft ai","email":"contact@craft.ai","url":"http://craft.ai/"},"bugs":{"url":"https://github.com/craft-ai/craft-ai-kit-energy/issues"},"license":"BSD-3-Clause","readmeFilename":"README.md"}