@iotopen/react-lynx 1.0.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.
Files changed (98) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +51 -0
  3. package/dist/cjs/Contexts/LynxClientProvider.d.ts +14 -0
  4. package/dist/cjs/Contexts/LynxProvider.d.ts +8 -0
  5. package/dist/cjs/Contexts/UserProvider.d.ts +19 -0
  6. package/dist/cjs/Contexts/index.d.ts +3 -0
  7. package/dist/cjs/Hooks/index.d.ts +38 -0
  8. package/dist/cjs/Hooks/useConfiguredEdgeApps.d.ts +7 -0
  9. package/dist/cjs/Hooks/useDevice.d.ts +15 -0
  10. package/dist/cjs/Hooks/useDevices.d.ts +10 -0
  11. package/dist/cjs/Hooks/useEdgeApp.d.ts +8 -0
  12. package/dist/cjs/Hooks/useEdgeAppVersions.d.ts +8 -0
  13. package/dist/cjs/Hooks/useEdgeApps.d.ts +7 -0
  14. package/dist/cjs/Hooks/useFunction.d.ts +15 -0
  15. package/dist/cjs/Hooks/useFunctions.d.ts +10 -0
  16. package/dist/cjs/Hooks/useIDTokenAlgorithms.d.ts +7 -0
  17. package/dist/cjs/Hooks/useInstallation.d.ts +9 -0
  18. package/dist/cjs/Hooks/useInstallationInfo.d.ts +7 -0
  19. package/dist/cjs/Hooks/useInstallations.d.ts +7 -0
  20. package/dist/cjs/Hooks/useMeta.d.ts +15 -0
  21. package/dist/cjs/Hooks/useNewDevice.d.ts +12 -0
  22. package/dist/cjs/Hooks/useNewFunction.d.ts +12 -0
  23. package/dist/cjs/Hooks/useNewInstallation.d.ts +12 -0
  24. package/dist/cjs/Hooks/useNewNotificationMessage.d.ts +11 -0
  25. package/dist/cjs/Hooks/useNewNotificationOutput.d.ts +15 -0
  26. package/dist/cjs/Hooks/useNewOAuth2Client.d.ts +22 -0
  27. package/dist/cjs/Hooks/useNewOrganization.d.ts +18 -0
  28. package/dist/cjs/Hooks/useNewUser.d.ts +27 -0
  29. package/dist/cjs/Hooks/useNotificationMessage.d.ts +10 -0
  30. package/dist/cjs/Hooks/useNotificationMessages.d.ts +7 -0
  31. package/dist/cjs/Hooks/useNotificationOutput.d.ts +10 -0
  32. package/dist/cjs/Hooks/useNotificationOutputExecutor.d.ts +8 -0
  33. package/dist/cjs/Hooks/useNotificationOutputExecutors.d.ts +7 -0
  34. package/dist/cjs/Hooks/useNotificationOutputs.d.ts +7 -0
  35. package/dist/cjs/Hooks/useOAuth2Client.d.ts +10 -0
  36. package/dist/cjs/Hooks/useOAuth2Clients.d.ts +7 -0
  37. package/dist/cjs/Hooks/useOAuth2Consent.d.ts +5 -0
  38. package/dist/cjs/Hooks/useOrganization.d.ts +10 -0
  39. package/dist/cjs/Hooks/useOrganizations.d.ts +9 -0
  40. package/dist/cjs/Hooks/usePahoMQTTClient.d.ts +16 -0
  41. package/dist/cjs/Hooks/useRoles.d.ts +7 -0
  42. package/dist/cjs/Hooks/useSimpleMQTT.d.ts +12 -0
  43. package/dist/cjs/Hooks/useTokens.d.ts +9 -0
  44. package/dist/cjs/Hooks/useUser.d.ts +10 -0
  45. package/dist/cjs/Hooks/useUsers.d.ts +8 -0
  46. package/dist/cjs/index.d.ts +2 -0
  47. package/dist/cjs/index.js +17 -0
  48. package/dist/cjs/index.js.map +1 -0
  49. package/dist/cjs/types.d.ts +1 -0
  50. package/dist/esm/Contexts/LynxClientProvider.d.ts +14 -0
  51. package/dist/esm/Contexts/LynxProvider.d.ts +8 -0
  52. package/dist/esm/Contexts/UserProvider.d.ts +19 -0
  53. package/dist/esm/Contexts/index.d.ts +3 -0
  54. package/dist/esm/Hooks/index.d.ts +38 -0
  55. package/dist/esm/Hooks/useConfiguredEdgeApps.d.ts +7 -0
  56. package/dist/esm/Hooks/useDevice.d.ts +15 -0
  57. package/dist/esm/Hooks/useDevices.d.ts +10 -0
  58. package/dist/esm/Hooks/useEdgeApp.d.ts +8 -0
  59. package/dist/esm/Hooks/useEdgeAppVersions.d.ts +8 -0
  60. package/dist/esm/Hooks/useEdgeApps.d.ts +7 -0
  61. package/dist/esm/Hooks/useFunction.d.ts +15 -0
  62. package/dist/esm/Hooks/useFunctions.d.ts +10 -0
  63. package/dist/esm/Hooks/useIDTokenAlgorithms.d.ts +7 -0
  64. package/dist/esm/Hooks/useInstallation.d.ts +9 -0
  65. package/dist/esm/Hooks/useInstallationInfo.d.ts +7 -0
  66. package/dist/esm/Hooks/useInstallations.d.ts +7 -0
  67. package/dist/esm/Hooks/useMeta.d.ts +15 -0
  68. package/dist/esm/Hooks/useNewDevice.d.ts +12 -0
  69. package/dist/esm/Hooks/useNewFunction.d.ts +12 -0
  70. package/dist/esm/Hooks/useNewInstallation.d.ts +12 -0
  71. package/dist/esm/Hooks/useNewNotificationMessage.d.ts +11 -0
  72. package/dist/esm/Hooks/useNewNotificationOutput.d.ts +15 -0
  73. package/dist/esm/Hooks/useNewOAuth2Client.d.ts +22 -0
  74. package/dist/esm/Hooks/useNewOrganization.d.ts +18 -0
  75. package/dist/esm/Hooks/useNewUser.d.ts +27 -0
  76. package/dist/esm/Hooks/useNotificationMessage.d.ts +10 -0
  77. package/dist/esm/Hooks/useNotificationMessages.d.ts +7 -0
  78. package/dist/esm/Hooks/useNotificationOutput.d.ts +10 -0
  79. package/dist/esm/Hooks/useNotificationOutputExecutor.d.ts +8 -0
  80. package/dist/esm/Hooks/useNotificationOutputExecutors.d.ts +7 -0
  81. package/dist/esm/Hooks/useNotificationOutputs.d.ts +7 -0
  82. package/dist/esm/Hooks/useOAuth2Client.d.ts +10 -0
  83. package/dist/esm/Hooks/useOAuth2Clients.d.ts +7 -0
  84. package/dist/esm/Hooks/useOAuth2Consent.d.ts +5 -0
  85. package/dist/esm/Hooks/useOrganization.d.ts +10 -0
  86. package/dist/esm/Hooks/useOrganizations.d.ts +9 -0
  87. package/dist/esm/Hooks/usePahoMQTTClient.d.ts +16 -0
  88. package/dist/esm/Hooks/useRoles.d.ts +7 -0
  89. package/dist/esm/Hooks/useSimpleMQTT.d.ts +12 -0
  90. package/dist/esm/Hooks/useTokens.d.ts +9 -0
  91. package/dist/esm/Hooks/useUser.d.ts +10 -0
  92. package/dist/esm/Hooks/useUsers.d.ts +8 -0
  93. package/dist/esm/index.d.ts +2 -0
  94. package/dist/esm/index.js +17 -0
  95. package/dist/esm/index.js.map +1 -0
  96. package/dist/esm/types.d.ts +1 -0
  97. package/dist/index.d.ts +439 -0
  98. package/package.json +52 -0
@@ -0,0 +1,10 @@
1
+ import { ErrorResponse, NotificationOutput } from '@iotopen/node-lynx';
2
+ export declare const useNotificationOutput: (installationId: number | string, notificationId: number | string) => {
3
+ refresh: () => void;
4
+ output: NotificationOutput;
5
+ setOutput: import("react").Dispatch<import("react").SetStateAction<NotificationOutput>>;
6
+ error: ErrorResponse | undefined;
7
+ loading: boolean;
8
+ remove: () => void;
9
+ update: () => void;
10
+ };
@@ -0,0 +1,8 @@
1
+ import { ErrorResponse, NotificationOutputExecutor } from '@iotopen/node-lynx';
2
+ export declare const useNotificationOutputExecutor: (installationId: number | string, executorId: number | string) => {
3
+ refresh: () => void;
4
+ outputExecutor: NotificationOutputExecutor;
5
+ setOutputExecutor: import("react").Dispatch<import("react").SetStateAction<NotificationOutputExecutor>>;
6
+ error: ErrorResponse | undefined;
7
+ loading: boolean;
8
+ };
@@ -0,0 +1,7 @@
1
+ import { ErrorResponse, NotificationOutputExecutor } from '@iotopen/node-lynx';
2
+ export declare const useNotificationOutputExecutors: (installationId: number | string) => {
3
+ refresh: () => void;
4
+ notificationExecutors: NotificationOutputExecutor[];
5
+ error: ErrorResponse | undefined;
6
+ loading: boolean;
7
+ };
@@ -0,0 +1,7 @@
1
+ import { ErrorResponse, NotificationOutput } from '@iotopen/node-lynx';
2
+ export declare const useNotificationOutputs: (installationId: number | string) => {
3
+ refresh: () => void;
4
+ notificationOutputs: NotificationOutput[];
5
+ error: ErrorResponse | undefined;
6
+ loading: boolean;
7
+ };
@@ -0,0 +1,10 @@
1
+ import { ErrorResponse, OAuth2Client } from '@iotopen/node-lynx';
2
+ export declare const useOAuth2Client: (id: string) => {
3
+ refresh: () => void;
4
+ client: OAuth2Client;
5
+ setClient: import("react").Dispatch<import("react").SetStateAction<OAuth2Client>>;
6
+ error: ErrorResponse | undefined;
7
+ loading: boolean;
8
+ remove: () => Promise<import("@iotopen/node-lynx").OKResponse>;
9
+ update: () => Promise<OAuth2Client>;
10
+ };
@@ -0,0 +1,7 @@
1
+ import { ErrorResponse, OAuth2Client } from '@iotopen/node-lynx';
2
+ export declare const useOAuth2Clients: () => {
3
+ refresh: () => void;
4
+ clients: OAuth2Client[];
5
+ error: ErrorResponse | undefined;
6
+ loading: boolean;
7
+ };
@@ -0,0 +1,5 @@
1
+ export declare const useOAuth2Consent: () => {
2
+ consent: (scope: string[]) => Promise<import("@iotopen/node-lynx").ConsentAcceptResponse>;
3
+ client: import("@iotopen/node-lynx").OAuth2Client;
4
+ requestedScopes: string[];
5
+ };
@@ -0,0 +1,10 @@
1
+ import { Organization } from '@iotopen/node-lynx';
2
+ export declare const useOrganization: (organizationId: number | string) => {
3
+ loading: boolean;
4
+ organization: Organization;
5
+ setOrganization: import("react").Dispatch<import("react").SetStateAction<Organization>>;
6
+ error: Error | undefined;
7
+ update: () => Promise<Organization>;
8
+ remove: () => Promise<import("@iotopen/node-lynx").OKResponse>;
9
+ refresh: () => void;
10
+ };
@@ -0,0 +1,9 @@
1
+ import { ErrorResponse, MinimalOrg, Organization } from '@iotopen/node-lynx';
2
+ export declare const useOrganizations: <T extends boolean = false>(minimal?: T | undefined) => {
3
+ loading: boolean;
4
+ organizations: MinimalOrg<T>[];
5
+ setOrganizations: import("react").Dispatch<import("react").SetStateAction<MinimalOrg<T>[]>>;
6
+ error: ErrorResponse | undefined;
7
+ create: (org: Organization) => Promise<Organization>;
8
+ remove: (org: Organization) => Promise<import("@iotopen/node-lynx").OKResponse>;
9
+ };
@@ -0,0 +1,16 @@
1
+ import Paho, { Qos, TypedArray } from 'paho-mqtt';
2
+ interface MQTTHandlers {
3
+ onMessage?: Paho.OnMessageHandler;
4
+ onDelivery?: Paho.OnMessageHandler;
5
+ onConnected?: Paho.OnConnectHandler;
6
+ onDisconnect?: Paho.OnConnectionLostHandler;
7
+ }
8
+ export declare const usePahoMQTTClient: (uri: string, handlers?: MQTTHandlers, connectionOptions?: Paho.ConnectionOptions, clientId?: string) => {
9
+ client: import("react").MutableRefObject<Paho.Client>;
10
+ connected: boolean;
11
+ error: Paho.MQTTError | undefined;
12
+ sub: (topic: string, qos?: Qos) => Promise<Paho.Qos>;
13
+ pub: (topic: string, payload: string | TypedArray, qos?: Qos, retained?: boolean) => void;
14
+ unsub: (topic: string) => Promise<void>;
15
+ };
16
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Role } from '@iotopen/node-lynx';
2
+ export declare const useRoles: () => {
3
+ loading: boolean;
4
+ error: Error | undefined;
5
+ roles: Role[];
6
+ refresh: () => void;
7
+ };
@@ -0,0 +1,12 @@
1
+ import Paho, { Qos } from 'paho-mqtt';
2
+ export type Binding = (topic: string, payload: string, qos: Qos, retained: boolean) => void;
3
+ export declare const useSimpleMQTT: (uri?: string, username?: string, password?: string) => {
4
+ setSubs: (s: string[]) => void;
5
+ error: Paho.MQTTError | undefined;
6
+ connected: boolean;
7
+ bind: (topic: RegExp | string, binder: Binding) => void;
8
+ unbind: (binder: Binding) => void;
9
+ bindExact: (topic: string, binder: Binding) => void;
10
+ unbindExact: (topic: string, binder: Binding) => void;
11
+ pub: (topic: string, payload: string | Paho.TypedArray, qos?: Paho.Qos | undefined, retained?: boolean | undefined) => void;
12
+ };
@@ -0,0 +1,9 @@
1
+ import { EmptyToken, ErrorResponse, Token } from '@iotopen/node-lynx';
2
+ export declare const useTokens: () => {
3
+ tokens: Token[];
4
+ remove: (token: Token) => Promise<import("@iotopen/node-lynx").OKResponse>;
5
+ create: (token: EmptyToken) => Promise<Token>;
6
+ refresh: () => void;
7
+ loading: boolean;
8
+ error: ErrorResponse | undefined;
9
+ };
@@ -0,0 +1,10 @@
1
+ import { User } from '@iotopen/node-lynx';
2
+ export declare const useUser: (userId: number | string) => {
3
+ loading: boolean;
4
+ error: Error | undefined;
5
+ user: User;
6
+ setUser: import("react").Dispatch<import("react").SetStateAction<User>>;
7
+ update: () => Promise<User>;
8
+ refresh: () => void;
9
+ remove: () => Promise<import("@iotopen/node-lynx").OKResponse>;
10
+ };
@@ -0,0 +1,8 @@
1
+ import { Metadata, User } from '@iotopen/node-lynx';
2
+ export declare const useUsers: (filter?: Metadata) => {
3
+ users: User[];
4
+ setUsers: import("react").Dispatch<import("react").SetStateAction<User[]>>;
5
+ refresh: () => void;
6
+ loading: boolean;
7
+ error: Error | undefined;
8
+ };
@@ -0,0 +1,2 @@
1
+ export * from './Hooks';
2
+ export * from './Contexts';
@@ -0,0 +1,17 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react/jsx-runtime"),n=require("@iotopen/node-lynx");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=s(require("paho-mqtt"));const r={lynxClient:new n.LynxClient(""),newLynxClient:(e,t)=>{}},i=e.createContext(r),o=({children:s,url:a,apiKey:r})=>{const[o,c]=e.useState(new n.LynxClient(a,r)),l=e.useCallback(((e,t)=>c(new n.LynxClient(e,t))),[c]),u=e.useMemo((()=>({lynxClient:o,newLynxClient:l})),[o,l]);return t.jsx(i.Provider,Object.assign({value:u},{children:s}))},c=()=>e.useContext(i),l=e.createContext({user:null,permissions:null}),u=({children:n})=>{const[s,a]=e.useState(null),[r,i]=e.useState(null),[o,u]=e.useState(!0),[d,p]=e.useState(),{lynxClient:f}=c();e.useLayoutEffect((()=>{const e=f.getMe(),t=f.getPermissions();u(!0),Promise.all([e,t]).then((([e,t])=>{a(e),i(t)})).catch((e=>{p(e),a(null),i(null)})).finally((()=>{u(!1)}))}),[f]);const g=e.useMemo((()=>({user:s,permissions:r,loading:o,error:d})),[s,r,o,d]);return t.jsx(l.Provider,Object.assign({value:g},{children:n}))},d=()=>e.useContext(l),p=(t,n,s,r)=>{var i;if(void 0===r){let e;e=(null===(i=null===window||void 0===window?void 0:window.crypto)||void 0===i?void 0:i.randomUUID)?window.crypto.randomUUID():"undefined"!=typeof crypto&&(null===crypto||void 0===crypto?void 0:crypto.randomUUID)?crypto.randomUUID():Math.random().toString(36).substring(2,15),r=`paho-ws-mqtt-${e}`}const o=e.useRef(new a.default.Client(t,r)),c=e.useRef(s),l=e.useRef(n),u=e.useRef(void 0),[d,p]=e.useState(!1),[f,g]=e.useState(void 0);e.useLayoutEffect((()=>{const e=o,t=u,n=Object.assign(Object.assign({timeout:5},c.current),{onFailure:s=>{g(s),p(o.current.isConnected()),void 0===t.current&&(t.current=window.setInterval((()=>{e.current.isConnected()?clearInterval(t.current):e.current.connect(n)}),1e3))},onSuccess:()=>{g(void 0),p(o.current.isConnected()),void 0!==t.current&&(window.clearInterval(t.current),t.current=void 0)}}),s=l.current;e.current.onConnectionLost=e=>{var t;g(e),p(o.current.isConnected()),null===(t=null==s?void 0:s.onDisconnect)||void 0===t||t.call(s,e)},e.current.onConnected=(e,t)=>{var n;p(o.current.isConnected()),g(void 0),null===(n=null==s?void 0:s.onConnected)||void 0===n||n.call(s,e,t)},s&&(s.onMessage&&(e.current.onMessageArrived=s.onMessage),s.onDelivery&&(e.current.onMessageDelivered=s.onDelivery));try{e.current.connect(n)}catch(t){window.setTimeout((()=>{e.current.connect(n)}),1e3)}return()=>{try{e.current.disconnect(),void 0!==t.current&&window.clearInterval(t.current)}catch(e){console.log(e)}}}),[]);const b=e.useCallback(((e,t)=>new Promise((n=>{o.current.subscribe(e,{qos:t||0,timeout:1,onFailure:e=>{throw e},onSuccess:e=>{n(e.grantedQos)}})}))),[o]),h=e.useCallback(((e,t,n,s)=>{o.current.send(e,t,n,s)}),[o]),v=e.useCallback((e=>new Promise((t=>{o.current.unsubscribe(e,{timeout:1,onSuccess:()=>{t()},onFailure:e=>{throw e}})}))),[o]);return{client:o,connected:d,error:f,sub:b,pub:h,unsub:v}};
2
+ /*! *****************************************************************************
3
+ Copyright (c) Microsoft Corporation.
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
+ PERFORMANCE OF THIS SOFTWARE.
15
+ ***************************************************************************** */
16
+ function f(e,t,n,s){return new(n||(n=Promise))((function(a,r){function i(e){try{c(s.next(e))}catch(e){r(e)}}function o(e){try{c(s.throw(e))}catch(e){r(e)}}function c(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,o)}c((s=s.apply(e,t||[])).next())}))}const g={id:0,installation_id:0,type:"",updated:0,created:0,meta:{},protected_meta:{}},b={client_id:0,notes:"",organization_id:0,id:0,name:"",created:0,meta:{},users:[],protected_meta:{}},h={updated:0,created:0,id:0,installation_id:0,type:"",meta:{},protected_meta:{}},v={id:0,created:0,updated:0,name:"",category:"",short_description:"",description:"",source_url:"",tags:[],publisher:{id:0},public:!1,official:!1},y=t=>{const{lynxClient:s}=c(),[a,r]=e.useState(!0),[i,o]=e.useState(),[l,u]=e.useState(Object.assign({},n.zero.getOAuth2Client())),d=e.useCallback((()=>{a||r(!0),s.getOAuth2Client(t).then((e=>{void 0!==i&&o(void 0),u(e)})).catch((e=>{o(e)})).finally((()=>{r(!1)}))}),[a,s,t,i]);e.useEffect((()=>{d()}),[t]);const p=e.useCallback((()=>s.deleteOAuth2Client(l)),[l,s]),f=e.useCallback((()=>s.updateOAuth2Client(l)),[l,s]);return{refresh:d,client:l,setClient:u,error:i,loading:a,remove:p,update:f}},m={address:{address:"",city:"",country:"",zip:""},children:[],email:"",force_sms_login:!1,meta:{},name:"",notes:"",parent:0,password_valid_days:0,phone:"",protected_meta:{},id:0},C={address:{address:"",city:"",country:"",zip:""},children:[],email:"",force_sms_login:!1,meta:{},name:"",notes:"",parent:0,password_valid_days:0,phone:"",protected_meta:{}},w={address:{address:"",zip:"",city:"",country:""},assigned_installations:[],email:"",expire_at:0,first_name:"",last_name:"",mobile:"",note:"",organisations:[],password:"",role:0,sms_login:!1,protected_meta:{},meta:{}},N={id:0,address:{address:"",zip:"",city:"",country:""},assigned_installations:[],email:"",expire_at:0,first_name:"",last_name:"",mobile:"",note:"",organisations:[],password:"",role:0,sms_login:!1,protected_meta:{},meta:{}},x={installation_id:0,name:"",text:""},S={id:0,installation_id:0,name:"",text:""},O={installation_id:0,name:"",notification_message_id:0,notification_output_executor_id:0,config:{}},k={id:0,installation_id:0,name:"",notification_message_id:0,notification_output_executor_id:0,config:{}},E={id:0,type:"",name:"",organization_id:0,config:{},secret:""};exports.LynxProvider=({children:e,apiURL:n,apiKey:s})=>t.jsx(o,Object.assign({url:n,apiKey:s},{children:t.jsx(u,{children:e})})),exports.useConfiguredEdgeApps=t=>{const n="string"==typeof t?Number.parseInt(t):t;if(isNaN(n))throw new Error("invalid installationId");const{lynxClient:s}=c(),[a,r]=e.useState(!0),[i,o]=e.useState(),[l,u]=e.useState([]),d=e.useCallback((()=>{r(!0),s.getConfiguredEdgeApps(n).then((e=>{void 0!==i&&o(void 0),u(e)})).catch((e=>{o(e)})).finally((()=>{r(!1)}))}),[n,s]);return e.useLayoutEffect((()=>{d()}),[d]),{refresh:d,loading:a,error:i,apps:l}},exports.useDevice=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t,a="string"==typeof n?Number.parseInt(n):n;if(isNaN(s)||isNaN(a))throw new Error("invalid installationId or deviceId");const{lynxClient:r}=c(),[i,o]=e.useState(!0),[l,u]=e.useState(Object.assign({},h)),[d,p]=e.useState();e.useLayoutEffect((()=>{r.getDevice(s,a).then((e=>{void 0!==d&&p(void 0),u(e)})).catch((e=>{p(e)})).finally((()=>{o(!1)}))}),[r,s,a]);const f=e.useCallback((()=>new Promise((()=>{if(!l)throw new Error("update on undefined function");return r.updateDevice(l)}))),[r,l]),g=e.useCallback((e=>{l&&u(Object.assign(Object.assign({},l),{type:e}))}),[l,u]),b=e.useCallback((()=>new Promise((()=>{if(!l)throw new Error("delete on undefined function");return r.deleteDevice(l)}))),[l,r]);return{loading:i,error:d,Device:l,setDevice:u,update:f,remove:b,setType:g}},exports.useDeviceMeta=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t,a="string"==typeof n?Number.parseInt(n):n,{lynxClient:r}=c();return{createMeta:e.useCallback(((e,t,n,a)=>{const i=n||(null!=n?n:0);return r.createDeviceMeta(s,i,e,t,a)}),[r,s,a]),updateMeta:e.useCallback(((e,t,n,a,i)=>{const o=a||(null!=a?a:0);return r.updateDeviceMeta(s,o,e,t,i,n)}),[r,s,a]),removeMeta:e.useCallback(((e,t,n)=>{const a=t||(null!=t?t:0);return r.deleteDeviceMeta(s,a,e,n)}),[r,s,a])}},exports.useDevices=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t;if(isNaN(s)&&void 0!==s)throw new Error("invalid installationId");const{lynxClient:a}=c(),[r,i]=e.useState(!0),[o,l]=e.useState([]),[u,d]=e.useState(),p=e.useCallback((()=>{if(void 0===s)return i(!1),void l([]);i(!0),a.getDevices(s,n).then((e=>{void 0!==u&&d(void 0),l(e)})).catch((e=>{d(e)})).finally((()=>{i(!1)}))}),[a,s,n]);const g=e.useCallback((function(e){if(Array.isArray(e)){const t=e.pop();if(!t)return Promise.allSettled([]);const n=e.map((e=>a.createDevice(e,!0)));return Promise.allSettled(n).then((e=>f(this,void 0,void 0,(function*(){try{e.push({status:"fulfilled",value:yield a.createDevice(t)})}catch(t){e.push({status:"rejected",reason:t})}return e}))))}return a.createDevice(e)}),[a]),b=e.useCallback((function(e){if(Array.isArray(e)){const t=e.pop();if(!t)return Promise.allSettled([]);const n=e.map((e=>a.deleteDevice(e,!0)));return Promise.allSettled(n).then((e=>f(this,void 0,void 0,(function*(){try{e.push({status:"fulfilled",value:yield a.deleteDevice(t)})}catch(t){e.push({status:"rejected",reason:t})}return e}))))}return a.deleteDevice(e)}),[a]);return e.useLayoutEffect((()=>{p()}),[p]),{loading:r,error:u,create:g,remove:b,devices:o,refresh:p}},exports.useEdgeApp=t=>{const n="string"==typeof t?Number.parseInt(t):t;if(isNaN(n))throw new Error("invalid appId");const{lynxClient:s}=c(),[a,r]=e.useState(!1),[i,o]=e.useState(),[l,u]=e.useState(Object.assign({},v)),d=e.useCallback((()=>{r(!0),s.getEdgeApp(n).then((e=>{void 0!==i&&o(void 0),u(e)})).catch((e=>{o(e)})).finally((()=>{r(!1)}))}),[n,s]);return e.useLayoutEffect((()=>{d()}),[n]),{loading:a,error:i,app:l,setApp:u,refresh:d}},exports.useEdgeAppVersions=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t;if(isNaN(s))throw new Error("invalid appId");const{lynxClient:a}=c(),[r,i]=e.useState(!1),[o,l]=e.useState(),[u,d]=e.useState([]),p=e.useCallback((()=>{i(!0),a.getEdgeAppVersions(s,n).then((e=>{void 0!==o&&l(void 0),d(e)})).catch((e=>{l(e)})).finally((()=>{i(!1)}))}),[a,n]),f=e.useCallback(((e,t)=>a.nameEdgeAppVersion(s,e,t)),[a,s]);return e.useLayoutEffect((()=>{p()}),[s,n]),{loading:r,error:o,versions:u,nameVersion:f,refresh:p}},exports.useEdgeApps=()=>{const{lynxClient:t}=c(),[n,s]=e.useState(!0),[a,r]=e.useState(),[i,o]=e.useState([]),l=e.useCallback((()=>{s(!0),t.getEdgeApps().then((e=>{void 0!==a&&r(void 0),o(e)})).catch((e=>{r(e)})).finally((()=>{s(!1)}))}),[a,t]);return e.useLayoutEffect((()=>{l()}),[]),{apps:i,error:a,loading:n,refresh:l}},exports.useFunction=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t,a="string"==typeof n?Number.parseInt(n):n;if(isNaN(s)||isNaN(a))throw new Error("invalid installationId or functionId");const{lynxClient:r}=c(),[i,o]=e.useState(!0),[l,u]=e.useState(Object.assign({},g)),[d,p]=e.useState();e.useLayoutEffect((()=>{r.getFunction(s,a).then((e=>{void 0!==d&&p(void 0),u(e)})).catch((e=>{p(e)})).finally((()=>{o(!1)}))}),[r,s,a]);const f=e.useCallback((()=>new Promise((()=>{if(!l)throw new Error("update on undefined function");return r.updateFunction(l)}))),[r,l]),b=e.useCallback((e=>{l&&u(Object.assign(Object.assign({},l),{type:e}))}),[l,u]),h=e.useCallback((()=>new Promise((()=>{if(!l)throw new Error("delete on undefined function");return r.deleteFunction(l)}))),[l,r]);return{loading:i,error:d,Function:l,setFunction:u,update:f,remove:h,setType:b}},exports.useFunctionMeta=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t,a="string"==typeof n?Number.parseInt(n):n,{lynxClient:r}=c();return{createMeta:e.useCallback(((e,t,n,i)=>{const o=n||(null!=a?a:0);return r.createFunctionMeta(s,o,e,t,i)}),[r,s,a]),updateMeta:e.useCallback(((e,t,n,i,o)=>{const c=i||(null!=a?a:0);return r.updateFunctionMeta(s,c,e,t,o,n)}),[r,s,a]),removeMeta:e.useCallback(((e,t,n)=>{const i=t||(null!=a?a:0);return r.deleteFunctionMeta(s,i,e,n)}),[r,s,a])}},exports.useFunctions=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t;if(isNaN(s)&&void 0!==s)throw new Error("invalid installationId");const{lynxClient:a}=c(),[r,i]=e.useState(!0),[o,l]=e.useState([]),[u,d]=e.useState(),p=e.useCallback((()=>{if(void 0===s)return i(!1),void l([]);i(!0),a.getFunctions(s,n).then((e=>(void 0!==u&&d(void 0),l(e),e))).catch((e=>{d(e)})).finally((()=>{i(!1)}))}),[a,s,n]);const g=e.useCallback((function(e){if(Array.isArray(e)){const t=e.pop();if(!t)return Promise.allSettled([]);const n=e.map((e=>a.createFunction(e,!0)));return Promise.allSettled(n).then((e=>f(this,void 0,void 0,(function*(){try{e.push({status:"fulfilled",value:yield a.createFunction(t)})}catch(t){e.push({status:"rejected",reason:t})}return e}))))}return a.createFunction(e)}),[a]),b=e.useCallback((function(e){if(Array.isArray(e)){const t=e.pop();if(!t)return Promise.allSettled([]);const n=e.map((e=>a.deleteFunction(e,!0)));return Promise.allSettled(n).then((e=>f(this,void 0,void 0,(function*(){try{e.push({status:"fulfilled",value:yield a.deleteFunction(t)})}catch(t){e.push({status:"rejected",reason:t})}return e}))))}return a.deleteFunction(e)}),[a]);return e.useLayoutEffect((()=>{p()}),[p]),{loading:r,error:u,create:g,remove:b,functions:o,refresh:p}},exports.useGlobalLynxClient=c,exports.useGlobalPermissions=()=>{const{permissions:e}=d();return[e]},exports.useGlobalUser=d,exports.useIDTokenAlgorithms=()=>{const{lynxClient:t}=c(),[n,s]=e.useState(!0),[a,r]=e.useState(),[i,o]=e.useState([]),l=e.useCallback((()=>{s(!0),t.getIDTokenAlgorithms().then((e=>{void 0!==a&&r(void 0),o(e)})).catch((e=>{r(e)})).finally((()=>{s(!1)}))}),[a,t]);return e.useEffect((()=>{l()}),[]),{loading:n,refresh:l,algs:i,error:a}},exports.useInstallation=t=>{const n="string"==typeof t?Number.parseInt(t):t;if(isNaN(n))throw new Error("invalid installationId");const{lynxClient:s}=c(),[a,r]=e.useState(!0),[i,o]=e.useState(void 0),[l,u]=e.useState(Object.assign({},b));e.useLayoutEffect((()=>{s.getInstallationRow(n).then((e=>{void 0!==i&&o(void 0),u(e)})).catch((e=>{o(e)})).finally((()=>{r(!1)}))}),[s,n]);const d=e.useCallback((()=>new Promise((()=>{if(!l)throw new Error("update on undefined installation");return s.updateInstallation(l)}))),[s,l]),p=e.useCallback((()=>new Promise((()=>{if(!l)throw new Error("update on undefined installation");return s.deleteInstallation(l)}))),[s,l]);return{installation:l,setInstallation:u,update:d,remove:p,error:i,loading:a}},exports.useInstallationInfo=t=>{const{lynxClient:n}=c(),[s,a]=e.useState([]),[r,i]=e.useState(!0),[o,l]=e.useState(void 0),u=e.useCallback((()=>{i(!0),n.getInstallations(t).then((e=>{void 0!==o&&l(void 0),a(e)})).catch((e=>{l(e)})).finally((()=>{i(!1)}))}),[n]);return e.useLayoutEffect((()=>{u()}),[u]),{installations:s,refresh:u,loading:r,error:o}},exports.useInstallations=t=>{const{lynxClient:n}=c(),[s,a]=e.useState(!0),[r,i]=e.useState([]),[o,l]=e.useState(),u=e.useCallback((()=>{a(!0),n.listInstallations(t).then((e=>{void 0!==o&&l(void 0),i(e)})).catch((e=>{l(e)})).finally((()=>{a(!1)}))}),[n,t]);return{loading:s,error:o,installations:r,refresh:u}},exports.useMeta=(t,n)=>{const[s,a]=e.useState([]),r=n||(t?[t]:[]);e.useLayoutEffect((()=>{if(t){const e=[];for(const n in t.meta){const s=t.meta[n];e.push({key:n,value:s,protected:!1})}for(const n in t.protected_meta){const s=t.protected_meta[n];e.push({key:n,value:s,protected:!0})}e.sort(((e,t)=>e.key.localeCompare(t.key))),a(e)}}),r);const i=e.useCallback((()=>{const e={meta:{},protected_meta:{}};return s.forEach((t=>{t.protected?e.protected_meta[t.key]=t.value:e.meta[t.key]=t.value})),e}),[s]),o=e.useCallback((e=>{a([...s,e||{key:"",value:"",protected:!1}])}),[s,a]),c=e.useCallback((e=>{a(s.filter(((t,n)=>n!==e)))}),[s,a]),l=e.useCallback(((e,t)=>{a(s.map(((n,s)=>s===e?t:n)))}),[s,a]),u=e.useCallback(((e,t)=>{a(s.map(((n,s)=>s==e?Object.assign(Object.assign({},n),{key:t}):n)))}),[s,a]),d=e.useCallback(((e,t)=>{a(s.map(((n,s)=>s==e?Object.assign(Object.assign({},n),{value:t}):n)))}),[s,a]),p=e.useCallback(((e,t)=>{a(s.map(((n,s)=>s==e?Object.assign(Object.assign({},n),{protected:t}):n)))}),[s,a]);return{metaList:s,compile:i,addMeta:o,removeMeta:c,setMeta:l,setMetaKey:u,setMetaValue:d,setMetaProtected:p}},exports.useNewDevice=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t;if(isNaN(s))throw new Error("invalid installationId");const{lynxClient:a}=c(),[r,i]=e.useState(Object.assign(Object.assign({meta:{},protected_meta:{},type:""},n),{installation_id:s})),o=e.useCallback((e=>{i(Object.assign(Object.assign({},r),{type:e}))}),[r,i]),l=e.useCallback((()=>a.createDevice(r)),[a,r]);return{newDevice:r,setNewDevice:i,create:l,setType:o}},exports.useNewFunction=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t;if(isNaN(s))throw new Error("invalid installationId");const{lynxClient:a}=c(),[r,i]=e.useState(Object.assign(Object.assign({meta:{},protected_meta:{},type:""},n),{installation_id:s})),o=e.useCallback((e=>{i(Object.assign(Object.assign({},r),{type:e}))}),[r,i]),l=e.useCallback((()=>a.createFunction(r)),[a,r]);return{newFunction:r,setNewFunction:i,create:l,setType:o}},exports.useNewInstallation=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t;if(isNaN(s))throw new Error("invalid organizationId");const[a,r]=e.useState(Object.assign(Object.assign({name:"",notes:"",users:[],meta:{},protected_meta:{}},n),{organization_id:s})),{lynxClient:i}=c(),o=e.useCallback((()=>i.createInstallation(a)),[i,a]);return{newInstallation:a,setNewInstallation:r,create:o}},exports.useNewNotificationMessage=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t,{lynxClient:a}=c(),[r,i]=e.useState(Object.assign(Object.assign(Object.assign({},x),n),{installation_id:s})),o=e.useCallback((()=>a.createNotificationMessage(r)),[a,r]);return{newNotificationMessage:r,setNewNotificationMessage:i,create:o}},exports.useNewNotificationOutput=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t,{lynxClient:a}=c(),[r,i]=e.useState(Object.assign(Object.assign(Object.assign({},O),n),{installation_id:s})),o=e.useCallback((()=>a.createNotificationOutput(r)),[a,r]);return{newNotificationOutput:r,setNewNotificationOutput:i,create:o}},exports.useNewOAuth2Client=t=>{const{lynxClient:s}=c(),[a,r]=e.useState(Object.assign(Object.assign({},n.zero.getEmptyOAuth2Client()),t)),i=e.useCallback((e=>{r(Object.assign(Object.assign({},a),{name:e}))}),[a]),o=e.useCallback((e=>{r(Object.assign(Object.assign({},a),{allowed_scopes:e}))}),[a]),l=e.useCallback((e=>{r(Object.assign(Object.assign({},a),{icon_uri:e}))}),[a]),u=e.useCallback((e=>{r(Object.assign(Object.assign({},a),{tos_uri:e}))}),[a]),d=e.useCallback((e=>{r(Object.assign(Object.assign({},a),{policy_uri:e}))}),[a]),p=e.useCallback((e=>{r(Object.assign(Object.assign({},a),{redirect_uris:e}))}),[a]),f=e.useCallback((()=>s.createOAuth2Client(a)),[s,a]);return{newClient:a,create:f,setName:i,setScope:o,setIconURI:l,setTosURI:u,setPolicyURI:d,setRedirectURIs:p,setClient:r}},exports.useNewOrganization=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t;if(isNaN(s))throw new Error("invalid parentId");const{lynxClient:a}=c(),[r,i]=e.useState(Object.assign(Object.assign(Object.assign({},C),n),{parent:s})),o=e.useCallback((()=>a.createOrganization(r)),[a,r]);return{newOrganization:r,setNewOrganization:i,create:o}},exports.useNewUser=t=>{const[n,s]=e.useState(Object.assign(Object.assign({},w),t)),{lynxClient:a}=c(),r=e.useCallback((()=>a.createUser(n)),[a,n]);return{newUser:n,setNewUser:s,create:r}},exports.useNotificationMessage=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t,a="string"==typeof n?Number.parseInt(n):n;if(isNaN(s))throw new Error("invalid installationId");if(isNaN(a))throw new Error("invalid messageId");const{lynxClient:r}=c(),[i,o]=e.useState(!0),[l,u]=e.useState(Object.assign({},S)),[d,p]=e.useState(),f=e.useCallback((()=>{0!==s&&0!==a&&(o(!0),r.getNotificationMessage(s,a).then((e=>{void 0!==d&&p(void 0),u(e)})).catch((e=>{p(e)})).finally((()=>{o(!1)})))}),[d,a,s,r]),g=e.useCallback((()=>{void 0!==d&&p(void 0),r.updateNotificationMessage(l).then((e=>{u(e)})).catch((e=>{p(e)}))}),[d,r,l]),b=e.useCallback((()=>{r.deleteNotificationMessage(l).then((()=>{u(Object.assign({},S))})).catch((e=>{p(e)}))}),[r,l]);return e.useEffect((()=>{f()}),[]),{refresh:f,message:l,setMessage:u,error:d,loading:i,remove:b,update:g}},exports.useNotificationMessages=t=>{const n="string"==typeof t?Number.parseInt(t):t;if(isNaN(n))throw new Error("invalid installationId");const{lynxClient:s}=c(),[a,r]=e.useState([]),[i,o]=e.useState(!0),[l,u]=e.useState(),d=e.useCallback((()=>{s.getNotificationMessages(n).then((e=>{void 0!==l&&u(void 0),r(e)})).catch((e=>{u(e)})).finally((()=>{o(!1)}))}),[l,n,s]);return e.useEffect((()=>{d()}),[]),{refresh:d,notificationMessages:a,error:l,loading:i}},exports.useNotificationOutput=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t,a="string"==typeof n?Number.parseInt(n):n;if(isNaN(s))throw new Error("invalid installationId");if(isNaN(a))throw new Error("invalid notificationId");const{lynxClient:r}=c(),[i,o]=e.useState(!0),[l,u]=e.useState(Object.assign(Object.assign({},k),{config:Object.assign({},k.config)})),[d,p]=e.useState(),f=e.useCallback((()=>{0!==s&&0!==a&&(o(!0),r.getNotificationOutput(s,a).then((e=>{void 0!==d&&p(void 0),u(e)})).catch((e=>{p(e)})).finally((()=>{o(!1)})))}),[d,a,s,r]),g=e.useCallback((()=>{void 0!==d&&p(void 0),r.updateNotificationOutput(l).then((e=>{u(e)})).catch((e=>{p(e)}))}),[d,r,l]),b=e.useCallback((()=>{r.deleteNotificationOutput(l).then((()=>{u(Object.assign({},k))})).catch((e=>{p(e)}))}),[r,l]);return e.useEffect((()=>{f()}),[]),{refresh:f,output:l,setOutput:u,error:d,loading:i,remove:b,update:g}},exports.useNotificationOutputExecutor=(t,n)=>{const s="string"==typeof t?Number.parseInt(t):t,a="string"==typeof n?Number.parseInt(n):n;if(isNaN(s))throw new Error("invalid installationId");if(isNaN(a))throw new Error("invalid messageId");const{lynxClient:r}=c(),[i,o]=e.useState(!0),[l,u]=e.useState(Object.assign({},E)),[d,p]=e.useState(),f=e.useCallback((()=>{0!==s&&0!==a&&(o(!0),r.getNotificationOutputExecutor(s,a).then((e=>{void 0!==d&&p(void 0),u(e)})).catch((e=>{p(e)})).finally((()=>{o(!1)})))}),[d,a,s,r]);return e.useEffect((()=>{f()}),[]),{refresh:f,outputExecutor:l,setOutputExecutor:u,error:d,loading:i}},exports.useNotificationOutputExecutors=t=>{const n="string"==typeof t?Number.parseInt(t):t;if(isNaN(n))throw new Error("invalid installationId");const{lynxClient:s}=c(),[a,r]=e.useState([]),[i,o]=e.useState(!0),[l,u]=e.useState(),d=e.useCallback((()=>{s.getNotificationOutputExecutors(n).then((e=>{void 0!==l&&u(void 0),r(e)})).catch((e=>{u(e)})).finally((()=>{o(!1)}))}),[l,n,s]);return e.useEffect((()=>{d()}),[]),{refresh:d,notificationExecutors:a,error:l,loading:i}},exports.useNotificationOutputs=t=>{const n="string"==typeof t?Number.parseInt(t):t;if(isNaN(n))throw new Error("invalid installationId");const{lynxClient:s}=c(),[a,r]=e.useState([]),[i,o]=e.useState(!0),[l,u]=e.useState(),d=e.useCallback((()=>{s.getNotificationOutputs(n).then((e=>{void 0!==l&&u(void 0),r(e)})).catch((e=>{u(e)})).finally((()=>{o(!1)}))}),[l,n,s]);return e.useEffect((()=>{d()}),[]),{refresh:d,notificationOutputs:a,error:l,loading:i}},exports.useOAuth2Client=y,exports.useOAuth2Clients=()=>{const{lynxClient:t}=c(),[n,s]=e.useState(!0),[a,r]=e.useState(),[i,o]=e.useState([]),l=e.useCallback((()=>{t.getOAuth2Clients().then((e=>{void 0!==a&&r(void 0),o(e)})).catch((e=>{r(e)})).finally((()=>{s(!1)}))}),[t,a]);return e.useEffect((()=>{l()}),[]),{refresh:l,clients:i,error:a,loading:n}},exports.useOAuth2Consent=()=>{var t;const{lynxClient:n}=c(),[s,a]=e.useState([]),[r]=e.useState(new URLSearchParams(window.location.search)),{client:i}=y(null!==(t=r.get("client_id"))&&void 0!==t?t:""),o=e.useCallback((e=>{const t=Object.fromEntries(r);return t.scope=e.join(" "),n.consentOAuth2Authorization(t)}),[n,r]);return e.useEffect((()=>{var e,t;a(null!==(t=null===(e=r.get("scope"))||void 0===e?void 0:e.split(" "))&&void 0!==t?t:[])}),[r]),{consent:o,client:i,requestedScopes:s}},exports.useOrganization=t=>{const n="string"==typeof t?Number.parseInt(t):t;if(isNaN(n))throw new Error("invalid organizationId");const[s,a]=e.useState(Object.assign({},m)),[r,i]=e.useState(!0),[o,l]=e.useState(),{lynxClient:u}=c(),d=e.useCallback((()=>{i(!0),u.getOrganization(n).then((e=>{void 0!==o&&l(void 0),a(e)})).catch((e=>{l(e)})).finally((()=>{i(!1)}))}),[o,u,n]);e.useEffect((()=>{d()}),[]);const p=e.useCallback((()=>u.updateOrganization(s)),[u,s]),f=e.useCallback((()=>u.deleteOrganization(s)),[u,s]);return{loading:r,organization:s,setOrganization:a,error:o,update:p,remove:f,refresh:d}},exports.useOrganizations=t=>{const{lynxClient:n}=c(),[s,a]=e.useState(!0),[r,i]=e.useState(),[o,l]=e.useState([]),u=e.useCallback((()=>{a(!0),n.getOrganizations(!0===t).then((e=>{void 0!==r&&i(void 0),l(e)})).catch((e=>{i(e)})).finally((()=>{a(!1)}))}),[n,t]);e.useEffect((()=>{u()}),[]);const d=e.useCallback((e=>n.createOrganization(e)),[n]),p=e.useCallback((e=>n.deleteOrganization(e)),[n]);return{loading:s,organizations:o,setOrganizations:l,error:r,create:d,remove:p}},exports.usePahoMQTTClient=p,exports.useRoles=()=>{const{lynxClient:t}=c(),[n,s]=e.useState([]),[a,r]=e.useState(),[i,o]=e.useState(!0),l=e.useCallback((()=>{o(!0),t.getRoles().then((e=>{s(e)})).catch((e=>{r(e)})).finally((()=>{o(!1)}))}),[t]);return e.useEffect((()=>{l()}),[]),{loading:i,error:a,roles:n,refresh:l}},exports.useSimpleMQTT=(t,n,s)=>{void 0===t&&(t="http:"===location.protocol?`ws://${location.host}/mqtt`:`wss://${location.host}/mqtt`);const a=e.useRef([]),r=e.useRef(new Map([])),i=e.useRef(new Map([])),o=e.useCallback((e=>{const t=i.current.get(e.destinationName);t&&t.forEach((t=>{t(e.destinationName,e.payloadString,e.qos,e.retained)})),r.current.forEach(((t,n)=>{new RegExp(n).test(e.destinationName)&&t.forEach((t=>{t(e.destinationName,e.payloadString,e.qos,e.retained)}))}))}),[]),c={cleanSession:!0,reconnect:!0,keepAliveInterval:5};n&&(c.userName=n),s&&(c.password=s);const{error:l,connected:u,sub:d,unsub:g,pub:b}=p(t,{onMessage:o,onConnected:()=>{a.current.forEach((e=>{d(e).then().catch()}))}},c),h=e.useCallback(((e,t)=>{let n;n="string"==typeof e?new RegExp(`^${e}$`):e;const s=n.toString().slice(1,-1);let a=r.current.get(s);if(void 0===a)return a=[t],void r.current.set(s,a);a.includes(t)||a.push(t)}),[]),v=e.useCallback((e=>{r.current.forEach(((t,n)=>{const s=t.filter((t=>t!==e));r.current.set(n,s)}))}),[]),y=e.useCallback(((e,t)=>{let n=i.current.get(e);void 0===n&&(n=[t]),n.includes(t)||n.push(t)}),[]),m=e.useCallback(((e,t)=>{const n=i.current.get(e);void 0!==n&&i.current.set(e,n.filter((e=>e!==t)))}),[]),C=e.useCallback((e=>{(function(e,t){if(e.length===t.length){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1})(a.current,e)||(u&&function(e,t){return new Promise((n=>{t.forEach((t=>f(this,void 0,void 0,(function*(){try{yield e(t)}catch(e){console.log(e)}})))),n()}))}(g,a.current).then((()=>{(function(e,t){return new Promise((n=>{t.forEach((t=>f(this,void 0,void 0,(function*(){try{yield e(t)}catch(e){console.log(e)}})))),n()}))})(d,e).then().catch()})).catch(),a.current=e)}),[d,g]);return{setSubs:C,error:l,connected:u,bind:h,unbind:v,bindExact:y,unbindExact:m,pub:b}},exports.useTokens=()=>{const{lynxClient:t}=c(),[n,s]=e.useState(!0),[a,r]=e.useState(),[i,o]=e.useState([]),l=e.useCallback((()=>{s(!0),t.getTokens().then((e=>{void 0!==a&&r(void 0),o(e)})).catch((e=>{r(e)})).finally((()=>{s(!1)}))}),[t]),u=e.useCallback((e=>t.deleteToken(e)),[t]),d=e.useCallback((e=>t.createToken(e)),[t]);return e.useLayoutEffect((()=>{l()}),[l]),{tokens:i,remove:u,create:d,refresh:l,loading:n,error:a}},exports.useUser=t=>{const n="string"==typeof t?Number.parseInt(t):t;if(isNaN(n))throw new Error("invalid userId");const[s,a]=e.useState(Object.assign({},N)),[r,i]=e.useState(!0),{lynxClient:o}=c(),[l,u]=e.useState(),d=e.useCallback((()=>{i(!0),o.getUser(n).then((e=>{void 0!==l&&u(void 0),a(e)})).catch((e=>{u(e)})).finally((()=>{i(!1)}))}),[o,n]),p=e.useCallback((()=>o.updateUser(s)),[o,s]),f=e.useCallback((()=>o.deleteUser(s)),[o,s]);return{loading:r,error:l,user:s,setUser:a,update:p,refresh:d,remove:f}},exports.useUsers=t=>{const[n,s]=e.useState([]),[a,r]=e.useState(!0),[i,o]=e.useState(),{lynxClient:l}=c();new URLSearchParams;const u=e.useCallback((()=>{r(!0),l.getUsers(t).then((e=>{void 0!==i&&o(void 0),s(e)})).catch((e=>{o(e)})).finally((()=>{r(!1)}))}),[l,t,i]);return{users:n,setUsers:s,refresh:u,loading:a,error:i}};
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/Contexts/LynxClientProvider.tsx","../../src/Contexts/UserProvider.tsx","../../src/Hooks/usePahoMQTTClient.ts","../../node_modules/tslib/tslib.es6.js","../../src/Hooks/useSimpleMQTT.ts","../../src/Hooks/useFunction.ts","../../src/Hooks/useInstallation.ts","../../src/Hooks/useDevice.ts","../../src/Hooks/useEdgeApp.ts","../../src/Hooks/useOAuth2Client.ts","../../src/Hooks/useOrganization.ts","../../src/Hooks/useNewOrganization.ts","../../src/Hooks/useNewUser.ts","../../src/Hooks/useUser.ts","../../src/Hooks/useNewNotificationMessage.ts","../../src/Hooks/useNotificationMessage.ts","../../src/Hooks/useNewNotificationOutput.ts","../../src/Hooks/useNotificationOutput.ts","../../src/Hooks/useNotificationOutputExecutor.ts","../../src/Contexts/LynxProvider.tsx","../../src/Hooks/useConfiguredEdgeApps.ts","../../src/Hooks/useDevices.ts","../../src/Hooks/useEdgeAppVersions.ts","../../src/Hooks/useEdgeApps.ts","../../src/Hooks/useFunctions.ts","../../src/Hooks/useIDTokenAlgorithms.ts","../../src/Hooks/useInstallationInfo.ts","../../src/Hooks/useInstallations.ts","../../src/Hooks/useMeta.ts","../../src/Hooks/useNewDevice.ts","../../src/Hooks/useNewFunction.ts","../../src/Hooks/useNewInstallation.ts","../../src/Hooks/useNewOAuth2Client.ts","../../src/Hooks/useNotificationMessages.ts","../../src/Hooks/useNotificationOutputExecutors.ts","../../src/Hooks/useNotificationOutputs.ts","../../src/Hooks/useOAuth2Clients.ts","../../src/Hooks/useOAuth2Consent.ts","../../src/Hooks/useOrganizations.ts","../../src/Hooks/useRoles.ts","../../src/Hooks/useTokens.ts","../../src/Hooks/useUsers.ts"],"sourcesContent":[null,null,null,"/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["defaultLynxClientContext","lynxClient","LynxClient","newLynxClient","url","apiKey","LynxClientContext","createContext","LynxClientProvider","children","client","setClient","useState","newClient","useCallback","contextValue","useMemo","_jsx","jsx","Provider","Object","assign","value","useGlobalLynxClient","useContext","UserContext","user","permissions","UserProvider","setUser","setPermissions","loading","setLoading","error","setError","useLayoutEffect","me","getMe","perms","getPermissions","Promise","all","then","u","p","catch","e","finally","useGlobalUser","usePahoMQTTClient","uri","handlers","connectionOptions","clientId","undefined","uuid","_a","window","crypto","randomUUID","Math","random","toString","substring","useRef","Paho","Client","opts","callbacks","reconnectTimer","connected","setConnected","c","rct","o","timeout","current","onFailure","isConnected","setInterval","clearInterval","connect","onSuccess","cbs","onConnectionLost","onDisconnect","call","onConnected","reconnect","host","onMessage","onMessageArrived","onDelivery","onMessageDelivered","setTimeout","disconnect","console","log","sub","topic","qos","resolve","subscribe","res","grantedQos","pub","payload","retained","send","unsub","unsubscribe","__awaiter","thisArg","_arguments","P","generator","reject","fulfilled","step","next","rejected","result","done","apply","zeroFunction","id","installation_id","type","updated","created","meta","protected_meta","zeroInstallation","client_id","notes","organization_id","name","users","zeroDevice","zeroEdgeApp","category","short_description","description","source_url","tags","publisher","public","official","useOAuth2Client","zero","getOAuth2Client","refresh","useEffect","remove","deleteOAuth2Client","update","updateOAuth2Client","zeroOrganization","address","city","country","zip","email","force_sms_login","parent","password_valid_days","phone","zeroEmptyOrganization","zeroEmptyUser","assigned_installations","expire_at","first_name","last_name","mobile","note","organisations","password","role","sms_login","zeroUser","zeroEmptyNotificationMessage","text","zeroNotificationMessage","zeroEmptyNotificationOutput","notification_message_id","notification_output_executor_id","config","zeroNotificationOutput","zeroExecutor","secret","apiURL","installationId","Number","parseInt","isNaN","Error","apps","setApps","getConfiguredEdgeApps","deviceId","iid","dev","setDev","getDevice","fn","updateDevice","setType","t","deleteDevice","Device","setDevice","devId","createMeta","key","silent","createDeviceMeta","updateMeta","createMissing","updateDeviceMeta","removeMeta","deleteDeviceMeta","filter","devices","setDevices","refreshCall","getDevices","create","devs","Array","isArray","last","pop","allSettled","rest","map","createDevice","settled","this","push","status","reason","appId","app","setApp","getEdgeApp","untagged","versions","setVersions","getEdgeAppVersions","nameVersion","hash","nameEdgeAppVersion","getEdgeApps","functionId","func","setFunc","getFunction","updateFunction","deleteFunction","Function","setFunction","fnId","funId","createFunctionMeta","updateFunctionMeta","deleteFunctionMeta","functions","setFunctions","getFunctions","fns","f","createFunction","algs","setAlgs","getIDTokenAlgorithms","installation","setInstallation","getInstallationRow","inst","updateInstallation","deleteInstallation","assignedOnly","installations","setInstallations","getInstallations","listInstallations","obj","deps","metaList","setMetaList","depList","newList","protected","sort","a","b","localeCompare","compile","forEach","add","idx","_","i","x","setKey","setValue","setProtected","addMeta","setMeta","setMetaKey","setMetaValue","setMetaProtected","template","newDevice","setNewDevice","newFunction","setNewFunction","organizationId","oid","newInstallation","setNewInstallation","createInstallation","newNotificationMessage","setNewNotificationMessage","createNotificationMessage","newNotificationOutput","setNewNotificationOutput","createNotificationOutput","getEmptyOAuth2Client","setName","setScope","scopes","allowed_scopes","setIconURI","icon_uri","setTosURI","tos_uri","setPolicyURI","policy_uri","setRedirectURIs","uris","redirect_uris","createOAuth2Client","parentId","pid","newOrganization","setNewOrganization","createOrganization","newUser","setNewUser","createUser","notificationId","message","setMessage","getNotificationMessage","updateNotificationMessage","deleteNotificationMessage","notificationMessages","setNotificationMessages","getNotificationMessages","output","setOutput","getNotificationOutput","updateNotificationOutput","deleteNotificationOutput","executorId","outputExecutor","setOutputExecutor","getNotificationOutputExecutor","notificationExecutors","setNotificationExecutors","getNotificationOutputExecutors","notificationOutputs","setNotificationOutputs","getNotificationOutputs","clients","setClients","getOAuth2Clients","requestedScopes","setRequestedScopes","params","URLSearchParams","location","search","get","consent","scope","consentObject","fromEntries","join","consentOAuth2Authorization","_b","split","organization","setOrganization","getOrganization","org","updateOrganization","deleteOrganization","minimal","organizations","setOrganizations","getOrganizations","orgs","roles","setRoles","getRoles","username","protocol","subs","bindings","Map","exactBindings","msg","tmp","destinationName","cb","payloadString","binds","RegExp","test","options","cleanSession","keepAliveInterval","userName","s","bind","binder","re","slice","set","includes","unbind","newBinds","bindExact","unbindExact","updateSubs","length","isEq","setSubs","tokens","setTokens","getTokens","token","deleteToken","createToken","userId","getUser","updateUser","deleteUser","setUsers","getUsers"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export type ObjectOrArray<X, Y, T extends Y | Y[]> = T extends Y ? Promise<X> : Promise<PromiseSettledResult<X>[]>;
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ import { LynxClient } from '@iotopen/node-lynx';
3
+ interface lynxClientContext {
4
+ lynxClient: LynxClient;
5
+ newLynxClient: (url: string, apiKey?: string) => void;
6
+ }
7
+ interface LynxClientProviderProps {
8
+ children?: ReactNode;
9
+ url?: string;
10
+ apiKey?: string;
11
+ }
12
+ export declare const LynxClientProvider: ({ children, url, apiKey }: LynxClientProviderProps) => import("react/jsx-runtime").JSX.Element;
13
+ export declare const useGlobalLynxClient: () => lynxClientContext;
14
+ export {};
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ type LynxProviderProps = {
3
+ apiURL?: string;
4
+ apiKey?: string;
5
+ children?: ReactNode;
6
+ };
7
+ export declare const LynxProvider: ({ children, apiURL, apiKey }: LynxProviderProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ import { ErrorResponse, User } from '@iotopen/node-lynx';
3
+ interface userContext {
4
+ user: User | null;
5
+ permissions: {
6
+ [key: string]: boolean;
7
+ } | null;
8
+ error: ErrorResponse | undefined;
9
+ loading: boolean;
10
+ }
11
+ interface UserProviderProps {
12
+ children: ReactNode;
13
+ }
14
+ export declare const UserProvider: ({ children }: UserProviderProps) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const useGlobalUser: () => userContext;
16
+ export declare const useGlobalPermissions: () => ({
17
+ [key: string]: boolean;
18
+ } | null)[];
19
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './LynxProvider';
2
+ export { useGlobalUser, useGlobalPermissions } from './UserProvider';
3
+ export { useGlobalLynxClient } from './LynxClientProvider';
@@ -0,0 +1,38 @@
1
+ export * from './useMeta';
2
+ export * from './useInstallationInfo';
3
+ export * from './usePahoMQTTClient';
4
+ export * from './useSimpleMQTT';
5
+ export * from './useTokens';
6
+ export * from './useNewFunction';
7
+ export * from './useFunctions';
8
+ export * from './useFunction';
9
+ export * from './useInstallation';
10
+ export * from './useInstallations';
11
+ export * from './useNewInstallation';
12
+ export * from './useNewDevice';
13
+ export * from './useDevices';
14
+ export * from './useDevice';
15
+ export * from './useConfiguredEdgeApps';
16
+ export * from './useEdgeApps';
17
+ export * from './useEdgeApp';
18
+ export * from './useEdgeAppVersions';
19
+ export * from './useNewOAuth2Client';
20
+ export * from './useOAuth2Client';
21
+ export * from './useOAuth2Clients';
22
+ export * from './useOAuth2Consent';
23
+ export * from './useIDTokenAlgorithms';
24
+ export * from './useOrganization';
25
+ export * from './useOrganizations';
26
+ export * from './useNewOrganization';
27
+ export * from './useNewUser';
28
+ export * from './useUsers';
29
+ export * from './useUser';
30
+ export * from './useRoles';
31
+ export * from './useNewNotificationMessage';
32
+ export * from './useNotificationMessage';
33
+ export * from './useNotificationMessages';
34
+ export * from './useNewNotificationOutput';
35
+ export * from './useNotificationOutput';
36
+ export * from './useNotificationOutputs';
37
+ export * from './useNotificationOutputExecutor';
38
+ export * from './useNotificationOutputExecutors';
@@ -0,0 +1,7 @@
1
+ import { EdgeAppInstance, ErrorResponse } from '@iotopen/node-lynx';
2
+ export declare const useConfiguredEdgeApps: (installationId: number | string) => {
3
+ refresh: () => void;
4
+ loading: boolean;
5
+ error: ErrorResponse | undefined;
6
+ apps: EdgeAppInstance[];
7
+ };
@@ -0,0 +1,15 @@
1
+ import { Devicex, ErrorResponse, MetaObject, OKResponse } from '@iotopen/node-lynx';
2
+ export declare const useDevice: (installationId: number | string, deviceId: number | string) => {
3
+ loading: boolean;
4
+ error: ErrorResponse | undefined;
5
+ Device: Devicex;
6
+ setDevice: import("react").Dispatch<import("react").SetStateAction<Devicex>>;
7
+ update: () => Promise<Devicex>;
8
+ remove: () => Promise<OKResponse>;
9
+ setType: (t: string) => void;
10
+ };
11
+ export declare const useDeviceMeta: (installationId: number | string, deviceId?: number | string) => {
12
+ createMeta: (key: string, meta: MetaObject, devId?: number, silent?: boolean) => Promise<MetaObject>;
13
+ updateMeta: (key: string, meta: MetaObject, createMissing?: boolean, devId?: number, silent?: boolean) => Promise<MetaObject>;
14
+ removeMeta: (key: string, devId?: number, silent?: boolean) => Promise<MetaObject>;
15
+ };
@@ -0,0 +1,10 @@
1
+ import { Devicex, EmptyDevicex, ErrorResponse, Metadata, OKResponse } from '@iotopen/node-lynx';
2
+ import { ObjectOrArray } from '../types';
3
+ export declare const useDevices: (installationId: number | string, filter?: Metadata) => {
4
+ loading: boolean;
5
+ error: ErrorResponse | undefined;
6
+ create: <T extends EmptyDevicex | EmptyDevicex[]>(devs: T) => ObjectOrArray<Devicex, EmptyDevicex, T>;
7
+ remove: <T_1 extends Devicex | Devicex[]>(devs: T_1) => ObjectOrArray<OKResponse, Devicex, T_1>;
8
+ devices: Devicex[];
9
+ refresh: () => void;
10
+ };
@@ -0,0 +1,8 @@
1
+ import { EdgeApp, ErrorResponse } from '@iotopen/node-lynx';
2
+ export declare const useEdgeApp: (appId: number | string) => {
3
+ loading: boolean;
4
+ error: ErrorResponse | undefined;
5
+ app: EdgeApp;
6
+ setApp: import("react").Dispatch<import("react").SetStateAction<EdgeApp>>;
7
+ refresh: () => void;
8
+ };
@@ -0,0 +1,8 @@
1
+ import { EdgeAppVersion, ErrorResponse } from '@iotopen/node-lynx';
2
+ export declare const useEdgeAppVersions: (appId: number | string, untagged?: boolean) => {
3
+ loading: boolean;
4
+ error: ErrorResponse | undefined;
5
+ versions: EdgeAppVersion[];
6
+ nameVersion: (name: string, hash: string) => Promise<EdgeAppVersion>;
7
+ refresh: () => void;
8
+ };
@@ -0,0 +1,7 @@
1
+ import { EdgeApp, ErrorResponse } from '@iotopen/node-lynx';
2
+ export declare const useEdgeApps: () => {
3
+ apps: EdgeApp[];
4
+ error: ErrorResponse | undefined;
5
+ loading: boolean;
6
+ refresh: () => void;
7
+ };
@@ -0,0 +1,15 @@
1
+ import { ErrorResponse, Functionx, MetaObject, OKResponse } from '@iotopen/node-lynx';
2
+ export declare const useFunction: (installationId: number | string, functionId: number | string) => {
3
+ loading: boolean;
4
+ error: ErrorResponse | undefined;
5
+ Function: Functionx;
6
+ setFunction: import("react").Dispatch<import("react").SetStateAction<Functionx>>;
7
+ update: () => Promise<Functionx>;
8
+ remove: () => Promise<OKResponse>;
9
+ setType: (t: string) => void;
10
+ };
11
+ export declare const useFunctionMeta: (installationId: number | string, functionId?: number | string) => {
12
+ createMeta: (key: string, meta: MetaObject, funId?: number, silent?: boolean) => Promise<MetaObject>;
13
+ updateMeta: (key: string, meta: MetaObject, createMissing?: boolean, funId?: number, silent?: boolean) => Promise<MetaObject>;
14
+ removeMeta: (key: string, funId?: number, silent?: boolean) => Promise<MetaObject>;
15
+ };
@@ -0,0 +1,10 @@
1
+ import { EmptyFunctionx, ErrorResponse, Functionx, Metadata, OKResponse } from '@iotopen/node-lynx';
2
+ import { ObjectOrArray } from '../types';
3
+ export declare const useFunctions: (installationId: number | string, filter?: Metadata) => {
4
+ loading: boolean;
5
+ error: ErrorResponse | undefined;
6
+ create: <T extends EmptyFunctionx | EmptyFunctionx[]>(fns: T) => ObjectOrArray<Functionx, EmptyFunctionx, T>;
7
+ remove: <T_1 extends Functionx | Functionx[]>(fns: T_1) => ObjectOrArray<OKResponse, Functionx, T_1>;
8
+ functions: Functionx[];
9
+ refresh: () => void;
10
+ };
@@ -0,0 +1,7 @@
1
+ import { ErrorResponse } from '@iotopen/node-lynx';
2
+ export declare const useIDTokenAlgorithms: () => {
3
+ loading: boolean;
4
+ refresh: () => void;
5
+ algs: string[];
6
+ error: ErrorResponse | undefined;
7
+ };
@@ -0,0 +1,9 @@
1
+ import { Installation } from '@iotopen/node-lynx';
2
+ export declare const useInstallation: (installationId: number | string) => {
3
+ installation: Installation;
4
+ setInstallation: import("react").Dispatch<import("react").SetStateAction<Installation>>;
5
+ update: () => Promise<Installation>;
6
+ remove: () => Promise<Installation>;
7
+ error: Error | undefined;
8
+ loading: boolean;
9
+ };
@@ -0,0 +1,7 @@
1
+ import { ErrorResponse, InstallationInfo } from '@iotopen/node-lynx';
2
+ export declare const useInstallationInfo: (assignedOnly?: boolean) => {
3
+ installations: InstallationInfo[];
4
+ refresh: () => void;
5
+ loading: boolean;
6
+ error: ErrorResponse | undefined;
7
+ };
@@ -0,0 +1,7 @@
1
+ import { ErrorResponse, Installation, Metadata } from '@iotopen/node-lynx';
2
+ export declare const useInstallations: (filter?: Metadata) => {
3
+ loading: boolean;
4
+ error: ErrorResponse | undefined;
5
+ installations: Installation[];
6
+ refresh: () => void;
7
+ };