homebridge-ring 11.2.1 → 11.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +0,0 @@
1
- (this["webpackJsonphomebridge-ui"]=this["webpackJsonphomebridge-ui"]||[]).push([[0],{22:function(e,t,r){"use strict";r.r(t);var n=r(13),c=r.n(n),o=r(2),s=r.n(o),a=r(12),i=r(15),u=r(14),f=r(5),p=r(6),d=r(0),m=(r(11),r(1)),h=window.homebridge;function l(e){var t=e.onRefreshToken,r=Object(d.useState)(!1),n=Object(p.a)(r,2),c=n[0],o=n[1],a=Object(d.useState)(),i=Object(p.a)(a,2),u=i[0],l=i[1];return Object(d.useEffect)((function(){c?h.showSpinner():h.hideSpinner()}),[c]),Object(d.useEffect)((function(){if(u){var e=h.createForm({schema:{type:"object",properties:{code:{title:"Code",type:"string",required:!0,description:u.codePrompt}}}},{},"Link Account","Change Email");e.onSubmit(function(){var e=Object(f.a)(s.a.mark((function e(r){var n,c,a;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.code,o(!0),e.prev=2,e.next=5,h.request("/token",{email:u.email,password:u.password,code:n});case 5:c=e.sent,a=c.refreshToken,t(a),e.next=14;break;case 10:e.prev=10,e.t0=e.catch(2),console.error(e.t0),h.toast.error(e.t0.message,"Failed to Link Account");case 14:return e.prev=14,o(!1),e.finish(14);case 17:case"end":return e.stop()}}),e,null,[[2,10,14,17]])})));return function(t){return e.apply(this,arguments)}}()),e.onCancel((function(){return l(void 0)}))}else{h.createForm({schema:{type:"object",properties:{email:{title:"Email",type:"string","x-schema-form":{type:"email"},required:!0},password:{title:"Password",type:"string","x-schema-form":{type:"password"},required:!0}}}},{},"Log In").onSubmit(function(){var e=Object(f.a)(s.a.mark((function e(r){var n,c,a;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.email,c=r.password,o(!0),e.next=4,new Promise((function(e){return setTimeout(e,1e3)}));case 4:return e.prev=4,e.next=7,h.request("/send-code",{email:n,password:c});case 7:"refreshToken"in(a=e.sent)?t(a.refreshToken):l({email:n,password:c,codePrompt:a.codePrompt}),e.next=15;break;case 11:e.prev=11,e.t0=e.catch(4),console.error(e.t0),h.toast.error(e.t0.message,"Ring Login Failed");case 15:return e.prev=15,o(!1),e.finish(15);case 18:case"end":return e.stop()}}),e,null,[[4,11,15,18]])})));return function(t){return e.apply(this,arguments)}}())}}),[t,u]),Object(m.jsx)("h4",{className:"text-center primary-text mb-3",children:"Link Ring Account"})}var b=window.homebridge;function j(){return b.getPluginConfig()}function w(){var e=Object(d.useState)(!1),t=Object(p.a)(e,2),r=t[0],n=t[1];function c(){return(c=Object(f.a)(s.a.mark((function e(t){var r,c,o,f;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j();case 2:return r=e.sent,c=Object(u.a)(r),o=c[0],f=c.slice(1),e.next=8,b.updatePluginConfig([Object(a.a)(Object(a.a)({},o),{},{refreshToken:t})].concat(Object(i.a)(f)));case 8:b.toast.success("Refresh Token Updated","Ring Login Successful"),n(!1);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return Object(d.useEffect)((function(){r?b.hideSchemaForm():b.showSchemaForm()}),[r]),Object(d.useEffect)((function(){j().then((function(e){var t,r=!(null===(t=e[0])||void 0===t?void 0:t.refreshToken);n(r)})).catch((function(e){return console.error(e)}))}),[]),r?Object(m.jsx)(l,{onRefreshToken:function(e){return c.apply(this,arguments)}}):Object(m.jsxs)("button",{className:"btn btn-link m-0 p-0",onClick:function(){return n(!0)},children:[Object(m.jsx)("i",{className:"fa fa-redo mr-2"}),"Generate New Refresh Token"]})}window.homebridge.addEventListener("ready",(function(){c.a.render(Object(m.jsx)(w,{}),document.getElementById("root"))}))}},[[22,1,2]]]);
2
- //# sourceMappingURL=main.3d6c9caf.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["TokenForm.tsx","CustomConfigUi.tsx","index.tsx"],"names":["homebridge","window","TokenForm","onRefreshToken","useState","loading","setLoading","loginInfo","setLoginInfo","useEffect","showSpinner","hideSpinner","form","createForm","schema","type","properties","code","title","required","description","codePrompt","onSubmit","a","request","email","password","refreshToken","console","error","toast","message","onCancel","undefined","Promise","r","setTimeout","response","className","getConfigs","getPluginConfig","CustomConfigUi","showTokenForm","setShowTokenForm","config","otherConfigs","updatePluginConfig","success","hideSchemaForm","showSchemaForm","then","configs","needToken","catch","e","onClick","addEventListener","ReactDOM","render","document","getElementById"],"mappings":"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","file":"static/js/main.3d6c9caf.chunk.js","sourcesContent":["import { useEffect, useState } from 'react'\nimport '@homebridge/plugin-ui-utils/dist/ui.interface'\n\nconst { homebridge } = window\n\nexport default function TokenForm({\n onRefreshToken,\n}: {\n onRefreshToken(token: string): any\n}) {\n const [loading, setLoading] = useState(false),\n [loginInfo, setLoginInfo] = useState<\n { email: string; password: string; codePrompt: string } | undefined\n >()\n\n useEffect(() => {\n if (loading) {\n homebridge.showSpinner()\n } else {\n homebridge.hideSpinner()\n }\n }, [loading])\n\n useEffect(() => {\n if (loginInfo) {\n const form = homebridge.createForm(\n {\n schema: {\n type: 'object',\n properties: {\n code: {\n title: 'Code',\n type: 'string',\n required: true,\n description: loginInfo.codePrompt,\n },\n },\n },\n },\n {},\n 'Link Account',\n 'Change Email'\n )\n\n form.onSubmit(async ({ code }) => {\n setLoading(true)\n\n try {\n const { refreshToken } = await homebridge.request('/token', {\n email: loginInfo.email,\n password: loginInfo.password,\n code,\n })\n\n onRefreshToken(refreshToken)\n } catch (e: any) {\n // eslint-disable-next-line no-console\n console.error(e)\n homebridge.toast.error(e.message, 'Failed to Link Account')\n } finally {\n setLoading(false)\n }\n })\n\n form.onCancel(() => setLoginInfo(undefined))\n } else {\n const form = homebridge.createForm(\n {\n schema: {\n type: 'object',\n properties: {\n email: {\n title: 'Email',\n type: 'string',\n 'x-schema-form': {\n type: 'email',\n },\n required: true,\n },\n password: {\n title: 'Password',\n type: 'string',\n 'x-schema-form': {\n type: 'password',\n },\n required: true,\n },\n },\n },\n },\n {},\n 'Log In'\n )\n\n form.onSubmit(async ({ email, password }) => {\n setLoading(true)\n await new Promise((r) => setTimeout(r, 1000))\n\n try {\n const response = (await homebridge.request('/send-code', {\n email,\n password,\n })) as { codePrompt: string } | { refreshToken: string }\n\n if ('refreshToken' in response) {\n // didn't need 2fa, return token without asking for code\n onRefreshToken(response.refreshToken)\n } else {\n setLoginInfo({\n email,\n password,\n codePrompt: response.codePrompt,\n })\n }\n } catch (e: any) {\n // eslint-disable-next-line no-console\n console.error(e)\n homebridge.toast.error(e.message, 'Ring Login Failed')\n } finally {\n setLoading(false)\n }\n })\n }\n }, [onRefreshToken, loginInfo])\n\n return <h4 className=\"text-center primary-text mb-3\">Link Ring Account</h4>\n}\n","import { useEffect, useState } from 'react'\nimport '@homebridge/plugin-ui-utils/dist/ui.interface'\nimport TokenForm from './TokenForm'\nconst { homebridge } = window\n\nfunction getConfigs() {\n return homebridge.getPluginConfig()\n}\n\nexport default function CustomConfigUi() {\n const [showTokenForm, setShowTokenForm] = useState(false)\n\n useEffect(() => {\n if (showTokenForm) {\n homebridge.hideSchemaForm()\n } else {\n homebridge.showSchemaForm()\n }\n }, [showTokenForm])\n\n useEffect(() => {\n getConfigs()\n .then((configs) => {\n const needToken = !configs[0]?.refreshToken\n setShowTokenForm(needToken)\n })\n // eslint-disable-next-line no-console\n .catch((e) => console.error(e))\n }, [])\n\n async function onRefreshToken(refreshToken: string) {\n const [config, ...otherConfigs] = await getConfigs()\n await homebridge.updatePluginConfig([\n { ...config, refreshToken },\n ...otherConfigs,\n ])\n homebridge.toast.success('Refresh Token Updated', 'Ring Login Successful')\n setShowTokenForm(false)\n }\n\n return showTokenForm ? (\n <TokenForm onRefreshToken={onRefreshToken}></TokenForm>\n ) : (\n <button\n className=\"btn btn-link m-0 p-0\"\n onClick={() => setShowTokenForm(true)}\n >\n <i className=\"fa fa-redo mr-2\"></i>\n Generate New Refresh Token\n </button>\n )\n}\n","import ReactDOM from 'react-dom'\nimport CustomConfigUi from './CustomConfigUi'\nimport '@homebridge/plugin-ui-utils/dist/ui.interface'\n\nwindow.homebridge.addEventListener('ready', () => {\n ReactDOM.render(<CustomConfigUi />, document.getElementById('root'))\n})\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- !function(e){function r(r){for(var n,i,l=r[0],f=r[1],a=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var f=t[l];0!==o[f]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="./";var l=this["webpackJsonphomebridge-ui"]=this["webpackJsonphomebridge-ui"]||[],f=l.push.bind(l);l.push=r,l=l.slice();for(var a=0;a<l.length;a++)r(l[a]);var p=f;t()}([]);
2
- //# sourceMappingURL=runtime-main.6cce355a.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.6cce355a.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./\";\n\n \tvar jsonpArray = this[\"webpackJsonphomebridge-ui\"] = this[\"webpackJsonphomebridge-ui\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}